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