Linux2.6內(nèi)核中最新電源管理技術分析及未來發(fā)展
并由上層的governor 負責決定 CPU 合適的工作頻率。但是在governor根據(jù)系統(tǒng)負載的變化決定調(diào)整 CPU 的運行頻率時,最終還是需要底層與 CPU 相關的特定驅(qū)動程序完成設置 CPU 運行頻率的任務。這里向讀者介紹一下支持 Intel 最新的Enhanced Speedstep 技術的 CPU 驅(qū)動程序的實現(xiàn)原理,關注的重點是如何對 CPU 進行變頻設置。實際上支持 Intel Enhanced Speedstep 技術的處理器為用戶提供了非常簡單的編程接口,對 CPU 運行頻率進行設置是通過一個名為 IA32_PERF_CTL 的MSR 寄存器進行的,另外還有一個名為 IA32_PERF_STATUS 的MSR 寄存器可供檢查 CPU 當前所處的運行頻率。當用戶需要對CPU 運行頻率進行設置時只需按照 Intel 開發(fā)手冊的說明向IA32_PERF_CTL MSR 寄存器中寫入規(guī)定的數(shù)值即可。
本文引用地址:http://www.ex-cimer.com/article/201612/327367.htm總結(jié)及未來的發(fā)展方向
本文為讀者介紹了變頻技術在 CPU 硬件上的出現(xiàn)以及 Linux 內(nèi)核中最初的實現(xiàn)存在的各種問題,并由此導致了 cpufreq 這一新的內(nèi)核子系統(tǒng)的誕生。雖然早期的cpufreq模塊所提供的三種 governors 能夠在一定程度下滿足用戶的需要并且提供了一定的靈活性,但是由于受到當時 CPU 硬件技術水平的限制,仍然有很多不盡如人意的地方。之后隨著 CPU 變頻硬件技術的不斷發(fā)展,尤其是 Intel Enhanced Speedstep 技術的出現(xiàn),原有的技術障礙被打破,隨之而來的是 cpufreq 內(nèi)核子系統(tǒng)有了一個全新的更加完善而高效的 ondemand governor 。
由此不難看出,內(nèi)核中的 cpufreq 子系統(tǒng)是由于 CPU 硬件變頻技術的出現(xiàn)而出現(xiàn),同時也在隨著 CPU 硬件變頻技術的發(fā)展而發(fā)展。這其實也預示著內(nèi)核中 cpufreq 子系統(tǒng)未來的發(fā)展方向,即繼續(xù)跟隨 CPU 硬件變頻技術的發(fā)展腳步與時俱進。在本文的最后簡單為讀者介紹一下在 Intel 最新的 CPU 中針對硬件變頻支持的一項新技術。前文提到在支持 Intel 最新的Enhanced Speedstep 技術的 CPU 中提供了名字分別為IA32_MPERF 和 IA32_APERF 的兩個 MSR 寄存器,以便為cpufreq 模塊所使用的 governor 動態(tài)收集系統(tǒng)的負載情況提供直接的硬件支持。其中 IA32_APERF MSR 寄存器當 CPU 處在ACPI C0 狀態(tài)下時按照 CPU 硬件當前的實際運行頻率每隔一個時鐘周期加一。 Intel 最新的處理器中進一步考慮了CPU 在運行過程中由于訪問內(nèi)存或 IO 等原因可能會出現(xiàn)流水線停擺的狀況時, IA32_APERF 以前這種簡單的按照 CPU 當前實際運行頻率每隔一個時鐘周期加一的做法并不能完全準確的反映CPU 的負載情況。在 Intel 最新的處理器中如果出現(xiàn)流水線停擺的情況, IA32_APERF 將暫時停止累加,而是在對用戶真正“有用”的時間周期才會遞增,這樣 CPU 硬件就可以為cpufreq 模塊所使用的 governor 提供比以前更加準確的系統(tǒng)負載統(tǒng)計信息。
評論