新聞中心

EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > Linux2.6內(nèi)核中的最新電源管理技術(shù)綜述

Linux2.6內(nèi)核中的最新電源管理技術(shù)綜述

作者: 時(shí)間:2016-12-07 來(lái)源:網(wǎng)絡(luò) 收藏

文在討論cpufreq 的軟件結(jié)構(gòu)時(shí)已經(jīng)指出, cpufreq 從設(shè)計(jì)上將 CPU 變頻的 policy 與mechanism 分離開(kāi)來(lái)并由上層的governor 負(fù)責(zé)決定 CPU 合適的工作頻率。但是在governor根據(jù)系統(tǒng)負(fù)載的變化決定調(diào)整 CPU 的運(yùn)行頻率時(shí),最終還是需要底層與 CPU 相關(guān)的特定驅(qū)動(dòng)程序完成設(shè)置 CPU 運(yùn)行頻率的任務(wù)。這里向讀者介紹一下支持 Intel 最新的Enhanced Speedstep 技術(shù)的 CPU 驅(qū)動(dòng)程序的實(shí)現(xiàn)原理,關(guān)注的重點(diǎn)是如何對(duì) CPU 進(jìn)行變頻設(shè)置。實(shí)際上支持 Intel Enhanced Speedstep 技術(shù)的處理器為用戶提供了非常簡(jiǎn)單的編程接口,對(duì) CPU 運(yùn)行頻率進(jìn)行設(shè)置是通過(guò)一個(gè)名為 IA32_PERF_CTL 的MSR 寄存器進(jìn)行的,另外還有一個(gè)名為 IA32_PERF_STATUS 的MSR 寄存器可供檢查 CPU 當(dāng)前所處的運(yùn)行頻率。當(dāng)用戶需要對(duì)CPU 運(yùn)行頻率進(jìn)行設(shè)置時(shí)只需按照 Intel 開(kāi)發(fā)手冊(cè)的說(shuō)明向IA32_PERF_CTL MSR 寄存器中寫(xiě)入規(guī)定的數(shù)值即可。

本文引用地址:http://m.butianyuan.cn/article/201612/327535.htm

  總結(jié)及未來(lái)的發(fā)展方向

  本文為讀者介紹了變頻技術(shù)在 CPU 硬件上的出現(xiàn)以及 Linux 內(nèi)核中最初的實(shí)現(xiàn)存在的各種問(wèn)題,并由此導(dǎo)致了 cpufreq 這一新的內(nèi)核子系統(tǒng)的誕生。雖然早期的cpufreq模塊所提供的三種 governors 能夠在一定程度下滿足用戶的需要并且提供了一定的靈活性,但是由于受到當(dāng)時(shí) CPU 硬件技術(shù)水平的限制,仍然有很多不盡如人意的地方。之后隨著 CPU 變頻硬件技術(shù)的不斷發(fā)展,尤其是 Intel Enhanced Speedstep 技術(shù)的出現(xiàn),原有的技術(shù)障礙被打破,隨之而來(lái)的是 cpufreq 內(nèi)核子系統(tǒng)有了一個(gè)全新的更加完善而高效的 ondemand governor 。

  由此不難看出,內(nèi)核中的 cpufreq 子系統(tǒng)是由于 CPU 硬件變頻技術(shù)的出現(xiàn)而出現(xiàn),同時(shí)也在隨著 CPU 硬件變頻技術(shù)的發(fā)展而發(fā)展。這其實(shí)也預(yù)示著內(nèi)核中 cpufreq 子系統(tǒng)未來(lái)的發(fā)展方向,即繼續(xù)跟隨 CPU 硬件變頻技術(shù)的發(fā)展腳步與時(shí)俱進(jìn)。在本文的最后簡(jiǎn)單為讀者介紹一下在 Intel 最新的 CPU 中針對(duì)硬件變頻支持的一項(xiàng)新技術(shù)。前文提到在支持 Intel 最新的Enhanced Speedstep 技術(shù)的 CPU 中提供了名字分別為IA32_MPERF 和 IA32_APERF 的兩個(gè) MSR 寄存器,以便為cpufreq 模塊所使用的 governor 動(dòng)態(tài)收集系統(tǒng)的負(fù)載情況提供直接的硬件支持。其中 IA32_APERF MSR 寄存器當(dāng) CPU 處在ACPI C0 狀態(tài)下時(shí)按照 CPU 硬件當(dāng)前的實(shí)際運(yùn)行頻率每隔一個(gè)時(shí)鐘周期加一。 Intel 最新的處理器中進(jìn)一步考慮了CPU 在運(yùn)行過(guò)程中由于訪問(wèn)內(nèi)存或 IO 等原因可能會(huì)出現(xiàn)流水線停擺的狀況時(shí), IA32_APERF 以前這種簡(jiǎn)單的按照 CPU 當(dāng)前實(shí)際運(yùn)行頻率每隔一個(gè)時(shí)鐘周期加一的做法并不能完全準(zhǔn)確的反映CPU 的負(fù)載情況。在 Intel 最新的處理器中如果出現(xiàn)流水線停擺的情況, IA32_APERF 將暫時(shí)停止累加,而是在對(duì)用戶真正“有用”的時(shí)間周期才會(huì)遞增,這樣 CPU 硬件就可以為cpufreq 模塊所使用的 governor 提供比以前更加準(zhǔn)確的系統(tǒng)負(fù)載統(tǒng)計(jì)信息。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: Linux2.6內(nèi)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉