王益涵, 王凱林, 孫憲坤, 張冬松, 吳 飛
(1.上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上?!?01620; 2.中國人民解放軍 鎮(zhèn)江船艇學(xué)院,江蘇 鎮(zhèn)江 212000)
?
基于CPUfreq的DVFS節(jié)能技術(shù)的研究與實(shí)現(xiàn)
王益涵1, 王凱林1, 孫憲坤1, 張冬松2, 吳飛1
(1.上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海201620; 2.中國人民解放軍 鎮(zhèn)江船艇學(xué)院,江蘇 鎮(zhèn)江212000)
摘要:針對目前計(jì)算機(jī)系統(tǒng)普遍存在的功耗較大的問題,研究和實(shí)現(xiàn)了基于CPUfreq的DVFS節(jié)能軟件;首先,分析和比較了計(jì)算機(jī)系統(tǒng)現(xiàn)有主要的功耗管理框架;然后,闡述了CPUfreq子系統(tǒng)及其框架結(jié)構(gòu),并基于CPUfreq子系統(tǒng)開發(fā)了DVFS節(jié)能軟件,實(shí)現(xiàn)了對計(jì)算機(jī)CPU的動態(tài)電壓頻率調(diào)節(jié)(DVFS);最后,以720 p視頻播放為應(yīng)用實(shí)例,對使用DVFS節(jié)能軟件后的計(jì)算機(jī)系統(tǒng)進(jìn)行功耗測試;測試結(jié)果表明,DVFS節(jié)能軟件可以實(shí)現(xiàn)對以PC為代表的計(jì)算機(jī)系統(tǒng)的初步節(jié)能。
關(guān)鍵詞:節(jié)能; 功耗管理;動態(tài)電壓頻率調(diào)整
0引言
隨著計(jì)算機(jī)系統(tǒng)的普及,計(jì)算機(jī)芯片的集成度和復(fù)雜度的不斷提升。使得計(jì)算機(jī)的功耗,芯片溫度問題越來越突出,具體體現(xiàn)在:1)計(jì)算機(jī)能耗問題:計(jì)算機(jī)系統(tǒng)消耗的電能以及由此導(dǎo)致的資源環(huán)境問題越來越嚴(yán)重,這與當(dāng)前提倡的環(huán)境意識與環(huán)境行為相違背;2)手提電腦等移動設(shè)備的電池壽命和續(xù)航時間問題:計(jì)算系統(tǒng)配置的處理器基本都是由三星、高通的公司生產(chǎn)的高頻處理器,然而這些處理器消耗的能耗是很大的。致使這些可移動設(shè)備的耗電能力不斷增強(qiáng),但是目前的電池續(xù)航時間,不能從根本上解決用戶的需求;3)芯片的溫度改變造成的芯片可靠性下降的問題:處理器復(fù)雜度和集成度不斷提高,使得處理器的溫度問題也越來越突出,溫度問題在很大意義上影響著芯片的可靠性。研究資料表明,芯片的溫度會提高十度,處理器的可靠性會降至原來的50%左右[1]。為了減少以上問題帶來的影響,研究計(jì)算機(jī)的節(jié)能問題是十分必要的。
1計(jì)算機(jī)系統(tǒng)現(xiàn)有的功耗管理模塊
計(jì)算機(jī)系統(tǒng)中,現(xiàn)有主要的功耗管理模塊有:PM子系統(tǒng)和DPM子系統(tǒng)。
1.1PM子系統(tǒng)
PM子系統(tǒng)主要實(shí)現(xiàn)系統(tǒng)的管理和設(shè)備到低功耗狀態(tài)的切換的功能[2]。PM子系統(tǒng)的結(jié)構(gòu)如圖1所示,由硬件不相關(guān)的PM核、設(shè)備功耗管理模塊以及底層CPU低功耗管理BSP組成[2]。
圖1 PM子系統(tǒng)結(jié)構(gòu)說明
PM 核是PM子系統(tǒng)的重要組成部分,和具體硬件沒有關(guān)聯(lián)。它作為功耗管理主體與客體的接口,是整個系統(tǒng)節(jié)能的實(shí)現(xiàn)機(jī)制。PM核定義了pm_ops結(jié)構(gòu)來對CPU功耗管理底層設(shè)備進(jìn)行抽象來支持CPU功耗管理和保證PM核的硬件不相關(guān)性,在此結(jié)構(gòu)中定義了一些與低功耗狀態(tài)進(jìn)行切換的相關(guān)回調(diào)函數(shù)[2],例如,.prepare函數(shù)是讓CPU完成功耗狀態(tài)切換前的準(zhǔn)備工作,.enter函數(shù)是將CPU轉(zhuǎn)換至低功耗工作狀態(tài)等。這些回調(diào)函數(shù)會根據(jù)系統(tǒng)功耗狀態(tài)的要求對 CPU實(shí)現(xiàn)實(shí)際的設(shè)置。
Linux設(shè)備驅(qū)動模型為Linux系統(tǒng)中設(shè)備提供依賴。
PM子系統(tǒng)的框架結(jié)構(gòu)層次分明,可移植性強(qiáng)。但是它的缺點(diǎn)是在多核設(shè)備上的運(yùn)行效能將大打折扣。因?yàn)樵赑M框架中某一個CPU功耗狀態(tài)的變化不能夠切換系統(tǒng)的功耗狀態(tài),只有系統(tǒng)中全部的CPU狀態(tài)同步變化時才能將系統(tǒng)切換至相應(yīng)的功耗狀態(tài)。使得多核處理器的硬件特性沒有被充分利用,以至于系統(tǒng)的電能資源沒有被很好的分配給系統(tǒng)。另外,Linux PM框架在對設(shè)備進(jìn)行功耗管理時對其設(shè)備驅(qū)動模型的依賴很嚴(yán)重,限制了PM子系統(tǒng)在其他操作系統(tǒng)中的應(yīng)用。
1.2DPM子系統(tǒng)
DPM是以策略框架為核心的功耗管理框架[3]。它面向?qū)ο笾饕茄b有嵌入式系統(tǒng)設(shè)備的節(jié)能,能夠最大程度的利用這些設(shè)備的處理器特性進(jìn)行功耗管理,并且提供一些機(jī)制來保證軟件系統(tǒng)和硬件設(shè)備在功耗需求上的協(xié)調(diào)。DPM子系統(tǒng)的結(jié)構(gòu)如圖2所示。
圖2 DPM子系統(tǒng)結(jié)構(gòu)圖
DPM子系統(tǒng)之所以能夠以任務(wù)為基本單位進(jìn)行系統(tǒng)功耗管理是因?yàn)樗ㄟ^內(nèi)核模塊的方式來實(shí)現(xiàn)操作系統(tǒng)的電源管理。在這方式下使得系統(tǒng)中的每個任務(wù)都能夠運(yùn)行在一個滿足自身需求的操作狀態(tài)下,避免了不必要的功耗浪費(fèi),從而提高了系統(tǒng)功耗管理效率,實(shí)現(xiàn)了有效的設(shè)備電源管理,滿足了Linux的需求[4]。但是,DPM框架也存在一些不足之處,例如,DPM框架存儲策略庫中的必要數(shù)據(jù)需要花費(fèi)相當(dāng)大的內(nèi)存空間,如果數(shù)據(jù)相對較多,則會占用過多的內(nèi)存。而且,該框架目前還不能對多核設(shè)備的功耗進(jìn)行有效的管理,只能面向單核平臺進(jìn)行功耗管理。
2CPUfreq子系統(tǒng)
CPUfreq 面向不同的處理器提供了一個統(tǒng)一的設(shè)計(jì)架構(gòu),使得Linux內(nèi)核更好地支持不同的CPU調(diào)頻技術(shù)[5]。它負(fù)責(zé)在系統(tǒng)運(yùn)行時動態(tài)地調(diào)整內(nèi)核的運(yùn)行頻率和降低系統(tǒng)運(yùn)行時功耗[6]。
CPUfreq子系統(tǒng)的體系架構(gòu)如圖3所示,它由內(nèi)核調(diào)控器、體系結(jié)構(gòu)無關(guān)的 CPUfreq 核和底層的CPU-specific Driver組成。
圖3 CPUfreq子系統(tǒng)結(jié)構(gòu)圖sss
2.1CPU-Specific Driver
CPU-Specific Driver,位于CPUfreq子系統(tǒng)的最底層, 其功能是實(shí)現(xiàn)CPU的調(diào)頻等一系列與之相關(guān)的操作的驅(qū)動程序。
2.2CPUfreq核
CPUfreq核,位于CPU-Specific Driver的上層,具有硬件不相關(guān)性。封裝了變頻技術(shù)以及根據(jù)工作負(fù)載選擇合適的運(yùn)行頻率,為機(jī)制與策略提供了規(guī)范的通信接口。
2.3內(nèi)核調(diào)控器
內(nèi)核調(diào)控器,位于CPUfreq核的上層,是CPUfreq子系統(tǒng)的核心。它根據(jù)策略在必要的時間選擇出一個CPU適合的工作頻率。目前的Linux內(nèi)核(自2.6.0以后)中提供了Performance、Powersave、Userspace、Ondemand和Conservative等5種調(diào)控器供用戶選擇使用[7],如圖4所示。
圖4 CPUfreq內(nèi)核調(diào)控器
1)Performance:CPU工作在它所支持運(yùn)行的最高頻率上。
2)Powersave:CPU工作在它所支持運(yùn)行的最低頻率上。
3)Userspace:用戶態(tài)應(yīng)用程序通過它提供的接口按照需求調(diào)節(jié)CPU的運(yùn)行頻率[8]。
4)Ondemand:Ondemand只能在內(nèi)核態(tài)下運(yùn)行,能夠以更加小的時間間隔對系統(tǒng)的負(fù)載采集并分析。
5)Conservative:Conservative是在Ondemand算法的基礎(chǔ)上改進(jìn)而來的,它在降低頻率時會可供選擇的頻率中選出確保CPU運(yùn)行在80%以上的負(fù)載頻率。在這個前提下,Conservative選擇CPU所支持運(yùn)行的最低頻率。大量測試數(shù)據(jù)表明Conservative能夠在不影響系統(tǒng)性能的前提下實(shí)現(xiàn)更加高效的節(jié)能。
CPUfreq以上5個內(nèi)核調(diào)控器,不能在同一時刻使用其中的兩個或兩個以上的調(diào)控器。但是,這些調(diào)控器可以在設(shè)備運(yùn)行中根據(jù)運(yùn)行的需要進(jìn)行相應(yīng)的切換。另外,CPUfreq的內(nèi)核調(diào)控器也可以作為一個策略管理模型,能夠根據(jù)CPUfreq現(xiàn)有的調(diào)控器模型派生出相應(yīng)的自定義調(diào)控器來實(shí)現(xiàn)在DVFS算法下的CPU調(diào)頻。
2.4用戶接口
CPUfreq子系統(tǒng)在用戶態(tài)為用戶提供以下接口[9-10]:
cpuinfo_max_freq:CPU運(yùn)行在最高頻率。
cpuinfo_min_freq:CPU運(yùn)行在最低頻率。
cpuinfo_cur_freq:獲取當(dāng)前運(yùn)行的CPU的工作頻率。
governor:規(guī)定了運(yùn)行頻率在最高運(yùn)行頻率和最低運(yùn)行頻率所確定的區(qū)間內(nèi)選擇。
scaling_cur_freq:不會對CPU的硬件寄存器進(jìn)行檢查,僅返回當(dāng)前CPUfreq緩存的內(nèi)核的運(yùn)行頻率。
scaling_available_governors:通知用戶當(dāng)前狀態(tài)下可以使用的調(diào)控器。
scaling_governor:顯示當(dāng)前的管理策略。
3基于CPUfreq的DVFS節(jié)能軟件
針對目前PC功耗較大的問題,以Linux為操作系統(tǒng)平臺,基于CPUfreq子系統(tǒng),以C/C++語言為開發(fā)語言,以QT為圖形界面開發(fā)工具,以MySQL為數(shù)據(jù)庫管理系統(tǒng),以功耗測試儀為測試工具,開發(fā)了DVFS節(jié)能軟件。
3.1系統(tǒng)架構(gòu)
圖5基于CPUfreq的DVFS節(jié)能軟件的架構(gòu)
3.2系統(tǒng)功能
DVFS節(jié)能軟件,面向不同的處理器和Linux操作系統(tǒng),實(shí)現(xiàn)了CPU內(nèi)核模式和頻率讀取、CPU內(nèi)核模式和頻率設(shè)置、PC有功功率讀取、CPU頻率功耗日志記錄和顯示等功能。
3.3模塊劃分
根據(jù)上述分析,DVFS節(jié)能軟件,可劃分為CPU內(nèi)核模式讀取和設(shè)置、CPU內(nèi)核頻率讀取和設(shè)置、功耗測試儀驅(qū)動、CPU各核頻率和功耗日志 、CPU各核頻率和功耗顯示等5個功能模塊,如圖6所示。
圖6基于CPUfreq的DVFS節(jié)能軟件的功能模塊劃分
3.4程序流程
DVFS節(jié)能軟件的流程如圖7所示。
(5)綜合考慮式(4)~式(8),由式(10)和式(11)得到k+1時刻新的初始值估計(jì)值,又提出類似的優(yōu)化問題,返回步驟(3)求出Δu(k+1|k+1),即滾動優(yōu)化。
圖7基于CPUfreq的DVFS節(jié)能軟件的流程圖
1)CPUfreq初始化配置。
2)用戶根據(jù)實(shí)際需要選擇是否調(diào)節(jié)內(nèi)核CPU0-3的工作頻率,例如,當(dāng)負(fù)載較低時,可適度降低CPU0-3的工作頻率,甚至關(guān)閉CPU1-3。
3)若有用戶輸入,根據(jù)用戶指令改變CPU各內(nèi)核的頻率及其工作狀態(tài),同時通過功耗測試驅(qū)動讀取PC當(dāng)前的功耗,將這些數(shù)據(jù)寫入MySQL數(shù)據(jù)庫中,并繪制當(dāng)前CPU各內(nèi)核的頻率和PC功耗曲線圖。
4)若無用戶輸入,僅讀取當(dāng)前CPU各內(nèi)核的頻率及其工作狀態(tài),同時通過功耗測試驅(qū)動讀取PC當(dāng)前的功耗,將這些數(shù)據(jù)寫入MySQL數(shù)據(jù)庫中,并繪制當(dāng)前CPU各內(nèi)核的頻率和PC功耗曲線圖。
5)回到2),重新開始。
4測試環(huán)境、實(shí)例和結(jié)果
4.1測試環(huán)境
基于CPUfreq的DVFS節(jié)能軟件的測試環(huán)境,由目標(biāo)PC機(jī)和功耗測試儀構(gòu)成,如圖8所示。
圖8DVFS節(jié)能軟件的測試環(huán)境
1)目標(biāo)PC機(jī):目標(biāo)PC機(jī)是基于CPUfreq的DVFS節(jié)能軟件的運(yùn)行主體,其軟硬件配置如表1所示。
表1 測試用目標(biāo)PC機(jī)的軟硬件配置
2)測試工具:選用手持式用電檢測儀HP-8713/2A作為運(yùn)行DVFS節(jié)能軟件的目標(biāo)PC的功耗測試工具,該檢測儀的工作范圍如下:
負(fù)載電流:0.001~2 A;
輸入電壓:85~265 V;
電源頻率:45~65 Hz;
有功功率:0.01~440 W.
3)測試條件:測試時環(huán)境溫度為15~35℃,相對濕度為(25~75)%,大氣壓力為86~106 kPa。測試電源為交流220(±2.2)V,電源頻率為50(±1)Hz,總諧波失真不超過2%[11]。
4.2測試實(shí)例和結(jié)果
將PC上常見的應(yīng)用——視頻播放作為測試實(shí)例:即在目標(biāo)PC上播放同一影片(720 p),對比未使用和使用基于CPUfreq的DVFS節(jié)能軟件的情況時目標(biāo)PC的功耗。
1)未使用基于CPUfreq的DVFS節(jié)能軟件的情況:
當(dāng)目標(biāo)PC機(jī)的CPU四核全速(即CPU0、CPU1、CPU2和CPU3均運(yùn)行在最高頻率2 600 MHz)播放720 p影片時,目標(biāo)PC的功耗在26~29 W。
2)使用基于CPUfreq的DVFS節(jié)能軟件的情況:
當(dāng)運(yùn)行基于CPUfreq的DVFS節(jié)能軟件,通過調(diào)節(jié)頻率使CPU處于節(jié)能狀態(tài)(即CPU1、CPU2和CPU3均關(guān)閉,CPU0運(yùn)行在最高頻率2 600 MHz)播放同一部720p影片時,目標(biāo)PC的功耗在22~24 W,相比未使用基于CPUfreq的DVFS節(jié)能軟件,功耗降低了20~25%,如圖9所示。
圖9運(yùn)行DVFS節(jié)能軟件情況下播放720 p影片
PC功耗的測試結(jié)果
5結(jié)語
為解決計(jì)算機(jī)在使用過程中的能耗問題,本文在研究Linux各種功耗管理框架的基礎(chǔ)上,基于CPUfreq子系統(tǒng)實(shí)現(xiàn)了對CPU各個內(nèi)核頻率的動態(tài)調(diào)節(jié)。測試結(jié)果表明,采用基于CPUfreq子系統(tǒng)的節(jié)能程序可以方便快速地實(shí)現(xiàn)DVFS,從而有效地降低功耗。下一步的工作,將其移植和應(yīng)用到基于Linux的嵌入式移動設(shè)備中,延長其電池壽命和待機(jī)時間。
參考文獻(xiàn):
[1] 高旭宏. 操作系統(tǒng)級低功耗技術(shù)研究[D]. 合肥:中國科學(xué)技術(shù)大學(xué),2012.
[2] 汪琳玫.多核環(huán)境下動態(tài)功耗管理框架的研究及在aComl中的應(yīng)用[D].成都:電子科技大學(xué),2012.
[3] 韓進(jìn). 嵌入式系統(tǒng)功耗管理研究與實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),2010.
[4] 黃武陵,宋莉,何小慶,等. 嵌入式Linux的動態(tài)電源管理技術(shù)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2005(9):30-33.
[5] 賀小川. 單芯片系統(tǒng)(SoC)中的實(shí)時任務(wù)調(diào)度算法研究[D]. 長沙:國防科學(xué)技術(shù)大學(xué), 2008.
[6] 宋靖. SkyDPM動態(tài)電源管理模擬系統(tǒng)的研究與實(shí)現(xiàn)[D]. 長沙:國防科學(xué)技術(shù)大學(xué), 2006.
[7] 范圓圓.基于資源監(jiān)控的 Linux 電源管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].黑龍江:哈爾濱工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,2013.
[8] 張國琛. 基于Linux的低功耗手持設(shè)備系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 武漢: 武漢理工大學(xué), 2011.
[9] Chen J.J. and Kuo. C.F. Energy-Efficient Scheduling for Real-Time Systems on Dynamic Voltage Scaling (DVS) Platforms [a].//RTCSA[C]. 2007:28-38.
[10] Isci C, Contreras G, Martonosi M. Live, runtime phase monitoring and prediction on real systems with application to dynamic power management[a]Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture[C]. IEEE Computer Society, 2009: 359-370.
[11] CQC3114-2009, 中國質(zhì)量認(rèn)證中心認(rèn)證技術(shù)規(guī)范[S].
Research and Implementation of DVFS Energy-Saving Technologies Based on CPUfreq
Wang Yihan1,Wang Kailin1,Sun Xiankun1,Zhang Dongsong2,Wu Fei1
(1.College of Electronic and Electrical Engineering, Shanghai University of Engineering Science,Shanghai201620, China; 2.Zhenjiang Watercraft College of PLA, Zhenjiang212000, China)
Abstract:Nowadays, computer system requires larger power consumption. In order to solve this problem, the DVFS energy-saving software based on CPUfreq was researched and implemented. Firstly, analyzes and compares the existing main power management frameworks. Secondly, describes CPUfreq subsystem and its frame structure. Furthermore, develops the DVFS energy-saving software based on the CPUfreq subsystem and implements Dynamic Voltage Frequency Scaling (DVFS). Finally, takes the video display of 720p as example and the power consumption testing has been conducted on the computer system where the DVFS energy-saving software runs. The test results show that the DVFS energy-saving software can relatively save the energy consumption of the computer system such as PC.
Keywords:energy-saving; power management; DVFS
文章編號:1671-4598(2016)02-0151-04
DOI:10.16526/j.cnki.11-4762/tp.2016.02.041
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A
作者簡介:王益涵(1981-),碩士講師,主要從事嵌入式與實(shí)時系統(tǒng)方向的研究。
基金項(xiàng)目:國家自然科學(xué)基金(61272097);上海市大學(xué)生創(chuàng)新訓(xùn)練項(xiàng)目(cs1402012)。
收稿日期:2015-07-13;修回日期:2015-09-16。
吳飛(1968-),博士,教授,主要從事計(jì)算機(jī)并行處理與節(jié)能控制方向的研究。