動(dòng)態(tài)電壓與頻率調(diào)節(jié)在降低功耗中的作用
出處:chunyang 發(fā)布于:2007-06-15 17:20:47
現(xiàn)在,為了延長(zhǎng)便攜式設(shè)備(如手機(jī)、MP3、多媒體播放器、筆記本電腦等)的電池壽命,芯片廠商們正在絞盡腦汁開發(fā)新的節(jié)電技術(shù)。簡(jiǎn)單地說(shuō),這些節(jié)電技術(shù)可以分為兩類——?jiǎng)討B(tài)技術(shù)和靜態(tài)技術(shù)。靜態(tài)技術(shù)包括不同的低功耗模式,芯片內(nèi)部不同組件的時(shí)鐘或電源的按需開關(guān)等。動(dòng)態(tài)技術(shù)則是根據(jù)芯片所運(yùn)行的應(yīng)用程序?qū)τ?jì)算能力的不同需要,動(dòng)態(tài)調(diào)節(jié)芯片的運(yùn)行頻率和電壓(對(duì)于同一芯片,頻率越高,需要的電壓也越高),從而達(dá)到節(jié)能的目的。該技術(shù)的理論依據(jù)是如下的公式:
|
|
從上面的公式可以看出,降低頻率可以降低功率,但是單純地降低頻率并不能節(jié)省能量。因?yàn)閷?duì)于一個(gè)給定的任務(wù),F(xiàn)*t是一個(gè)常量,只有在降低頻率的同時(shí)降低電壓,才能真正地降低能量的消耗。
目前許多芯片支持DVFS,比如InteI公司的芯片支持SpeedStep,ARM的支持IEM(Intelligent Energy Man-ager)和AVS(Adaptive Voltage Scaling)等。但是要讓DVFS發(fā)揮作用,真正地實(shí)現(xiàn)節(jié)能,只有芯片的支持還是不夠的,還需要軟件與硬件的綜合設(shè)計(jì)。
一個(gè)典型的DVFS系統(tǒng)的工作流程如下:
①采集與系統(tǒng)負(fù)載有關(guān)的信號(hào),計(jì)算當(dāng)前的系統(tǒng)負(fù)載。這個(gè)過(guò)程可以用軟件實(shí)現(xiàn),也可以用硬件實(shí)現(xiàn)。軟件實(shí)現(xiàn)一般是在操作系統(tǒng)的調(diào)用中安放鉤子,特別是調(diào)度器,根據(jù)其調(diào)用的頻度來(lái)判斷系統(tǒng)的負(fù)載。硬件實(shí)現(xiàn)如Frecscale的i.Mx31,通過(guò)采集一些信號(hào)中斷線、Cache、內(nèi)存總線的使用情況等,計(jì)算當(dāng)前的系統(tǒng)負(fù)載。
②根據(jù)系統(tǒng)的當(dāng)前負(fù)載,預(yù)測(cè)系統(tǒng)在下一時(shí)間段需要的性能。有多種預(yù)測(cè)算法可以選擇,要根據(jù)具體的應(yīng)用來(lái)決定。這種預(yù)測(cè),既可由軟件實(shí)現(xiàn),也可由硬件實(shí)現(xiàn)。
③將預(yù)測(cè)的性能轉(zhuǎn)換成需要的頻率,從而調(diào)整芯片的時(shí)鐘設(shè)置。
④根據(jù)新的頻率計(jì)算相應(yīng)的電壓。通知電源管理模塊調(diào)整給CPU的電壓。這需要特別的電源管理芯片,比如Freescale公司的MC13783或者NS公司的支持Pow-erWise特性的系列電源管理芯片。它們能夠支持微小的電壓調(diào)整(25 mV)并且能在極短的時(shí)間內(nèi)(幾十μs)完成電壓的調(diào)整。
另外,在調(diào)整頻率和電壓時(shí),要特別注意調(diào)整的順序。當(dāng)頻率由高到低調(diào)整時(shí),應(yīng)該先降頻率,再降電壓;相反,當(dāng)升高頻率時(shí),應(yīng)該先升電壓,再升頻率。
圖1演示了簡(jiǎn)單的DVFS過(guò)程。
![]() |
2 基于軟件的DVFS實(shí)現(xiàn)
在基于軟件的DVFS實(shí)現(xiàn)中,一般通過(guò)在操作系統(tǒng)的調(diào)用中安裝鉤子的辦法來(lái)收集系統(tǒng)調(diào)用的信息,判斷當(dāng)前的系統(tǒng)負(fù)載。其中重要的是調(diào)度器,其他地方包括讀/寫接口、定時(shí)器等。例如,在Linux內(nèi)核中,一般在以下地方安裝鉤子。
◇kernel/sched.c。修改__schedule( ),在schedule( )前和后插入語(yǔ)句,記錄一個(gè)任務(wù)的執(zhí)行時(shí)間。
◇fs/read_write.c。修改sys_read( )和sys_write( ),記錄其被某任務(wù)調(diào)用的次數(shù)。
◇kernel/timer.c。修改sys_nanosleep( )和msleep( ),記錄任務(wù)主動(dòng)休息的時(shí)間。
◇fs/ioctl.C。修改sys_ioctl( ),記錄其被調(diào)用的次數(shù)。
◇kernel/exit.c。修改do_exit( ),記錄任務(wù)主動(dòng)退出的時(shí)間。
◇include/asm_xxx/system.h,arch/xxx/system.c。修改arch_idle( ),計(jì)算cpu_idle( )線程被調(diào)用的時(shí)間。
在預(yù)測(cè)下一時(shí)間段的系統(tǒng)負(fù)載時(shí),需要利用采集到的前面幾個(gè)時(shí)間段的實(shí)際負(fù)載值,然后根據(jù)下面的公式進(jìn)行預(yù)測(cè):
|
|
根據(jù)h的不同,可以形成不同的預(yù)測(cè)算法,比如:
![]() |
以上這些算法各有其優(yōu)缺點(diǎn)。例如LMS算法類似于自適應(yīng)濾波器,能夠自動(dòng)調(diào)整參數(shù),但是面臨著收斂速度的問(wèn)題。
ARM公司為了驗(yàn)證其芯片的DVS(Dynamic VoltageScaling,動(dòng)態(tài)電壓調(diào)節(jié))特性,開發(fā)的軟件Vertigo中,采用了UH(Utilization History)算法,有關(guān)的公式如下:
![]() |
|
|
該算法對(duì)那些性能需求變化較慢的任務(wù)比較實(shí)用,比如MPEG解碼器。
在Vertigo的實(shí)現(xiàn)中,一旦預(yù)測(cè)器完成性能預(yù)測(cè),它將會(huì)把新的性能需求提交給策略管理器,由策略管理器決定是否調(diào)整當(dāng)前的性能設(shè)置。Vertigo的架構(gòu)如圖2所示。
![]() |
具體實(shí)現(xiàn)可以參閱文獻(xiàn)[3]。
3 基于硬件的DVFS實(shí)現(xiàn)
正如前面所說(shuō)的,CPU負(fù)載跟蹤與性能預(yù)測(cè)的工作都可以由硬件完成。這樣,一方面增強(qiáng)了負(fù)載計(jì)算的準(zhǔn)確性;另一方面減輕了CPU用于負(fù)載跟蹤與性能預(yù)測(cè)的負(fù)擔(dān)。當(dāng)然,這樣做也有一個(gè)弊端,就是無(wú)法靈活地選擇預(yù)測(cè)算法。但是,這個(gè)缺點(diǎn)可以通過(guò)設(shè)置不同的預(yù)測(cè)參數(shù)得到一定程度的彌補(bǔ)。
飛思卡爾的i.MX31就是這樣的一個(gè)例子。這是一款針對(duì)移動(dòng)多媒體市場(chǎng)的應(yīng)用處理器,具有強(qiáng)大的音頻和視頻處理能力。該芯片內(nèi)部包含一個(gè)ARMll的CPU核,同時(shí)它也繼承了來(lái)自ARM的DVS技術(shù)并發(fā)展為DVFS。在該芯片中,CPU負(fù)載跟蹤和性能預(yù)測(cè)都是由硬件完成的,其負(fù)載跟蹤模塊框圖如圖3所示。
![]() |
在圖3中,16路CPU活動(dòng)信號(hào)被采集之后,經(jīng)過(guò)加權(quán),被送到負(fù)載疊加器,與另外采集的CPU空閑信號(hào)(經(jīng)過(guò)簡(jiǎn)單平均)進(jìn)行疊加。疊加器輸出的結(jié)果被送到EMA模塊,執(zhí)行指數(shù)移動(dòng)平均(Exponential Moving Average)算法,進(jìn)行性能預(yù)測(cè)。EMA模塊得到的結(jié)果與預(yù)先沒置的門限值進(jìn)行比較,如果預(yù)測(cè)的性能需求高于上限,則請(qǐng)求調(diào)高頻率;反之,如果預(yù)測(cè)的性能需求低于下限,則請(qǐng)求降低頻率。這種請(qǐng)求一般作為中斷,發(fā)送給CPU自身或外接的處理器,由它們?cè)谄渲袛嗵幚沓绦蛑性O(shè)置相應(yīng)的頻率和電壓。圖4演示了整個(gè)處理流程。
在圖4中,CCM(Clock Control Module)為時(shí)鐘控制模塊,負(fù)責(zé)涮節(jié)CPU的頻率。PMIC(Power ManagementIC)為電源管理芯片,負(fù)責(zé)提供CPU所需要的電壓。該芯片提供兩種接口給CPU:常規(guī)的SPI(Serial ProgrammableInterface)和專用于動(dòng)態(tài)電壓調(diào)節(jié)的DVS接口。該接口由兩根線組成。兩根線的狀態(tài)00表示電壓無(wú)變化,01表示電壓降低一格,10表示電壓升高一格,11表示電壓升到值。
![]() |
圖4中的DPTC(Dynamic Process and TemperatureControI)指的是動(dòng)態(tài)制程與溫度控制。該技術(shù)能夠根據(jù)該芯片的制程和當(dāng)前的溫度動(dòng)態(tài)調(diào)節(jié)電源電壓,從而也可以有效地節(jié)省能量。這也是i.MX31的一項(xiàng)創(chuàng)新。
4 DVFS應(yīng)用的實(shí)際效果
為了驗(yàn)證DVFS的實(shí)際效果,需要在CPU上運(yùn)行相應(yīng)的應(yīng)用程序,并測(cè)量使用DVFS技術(shù)和不使用DVFS技術(shù)時(shí)CPU的功耗。這里,分別給出軟件實(shí)現(xiàn)的DVFS和硬件實(shí)現(xiàn)的DVFS在節(jié)省能量方面的實(shí)際測(cè)量數(shù)據(jù)。
Intrinsyc公司將ARM公司的IEM軟件移植到WinCE上,并測(cè)量了IEM使能或禁止時(shí)的CPU功耗。軟件運(yùn)行在i.MX31的開發(fā)板上,但是因?yàn)樗鼪]有使用i.MX31內(nèi)置的DVFS,因此可以將其看作軟件實(shí)現(xiàn)的DVFS。在計(jì)算CPU負(fù)載時(shí),采用了簡(jiǎn)單移動(dòng)平均算法(即式(3)中的h恒為1/N);同時(shí),它通過(guò)一個(gè)GPIO來(lái)指示系統(tǒng)是否已經(jīng)進(jìn)入空閑狀態(tài)(cpu_i-dle()線程被調(diào)度)。如果Idle的比例越小,則表明CPU的利用率越高。表l和表2是實(shí)際的測(cè)量數(shù)據(jù)。
![]() |
為了驗(yàn)證硬件實(shí)現(xiàn)的DVFS的功效,作者在i.MX31的開發(fā)板上進(jìn)行了測(cè)量。所使用的操作系統(tǒng)是Linux。表3給出了實(shí)際的測(cè)量數(shù)據(jù)。
![]() |
從表3中可以清楚地看出,無(wú)論軟件實(shí)現(xiàn)的DVFS還是硬件實(shí)現(xiàn)的DVFS,都可以有效地降低能量消耗。
5 影響DVFS應(yīng)用的因素
動(dòng)態(tài)電壓與頻率調(diào)節(jié)的技術(shù)提出很久了,在Linux上也有專門的開源項(xiàng)目cpufreq,但是這項(xiàng)技術(shù)并沒有得到廣泛的應(yīng)用。其中一個(gè)關(guān)鍵的因素就是預(yù)測(cè)的可靠性。沒有一種預(yù)測(cè)算法是100%準(zhǔn)確的,也沒有一種算法可以應(yīng)用于所有的程序;而對(duì)于實(shí)時(shí)類的應(yīng)用(如音頻、視頻等),預(yù)測(cè)失敗的結(jié)果是不可接受的。因?yàn)閷?shí)時(shí)類的應(yīng)用都有一個(gè)Deadline,錯(cuò)過(guò)Deadline,就意味著程序的運(yùn)行出了問(wèn)題。比如音頻或視頻幀的播放時(shí)間錯(cuò)過(guò)以后,用戶就能明顯地感覺到音頻或視頻的不連貫,這會(huì)極大地影響用戶的體驗(yàn),從而也會(huì)影響用戶對(duì)DVFS的信心。作者在進(jìn)行DVFS的測(cè)試時(shí),就碰到過(guò)這些問(wèn)題。IEM測(cè)試中采用的簡(jiǎn)單移動(dòng)平均算法只對(duì)單一應(yīng)用程序有效。但是i.MX31內(nèi)置的移動(dòng)指數(shù)平均算法EMA也不是的。對(duì)于Pink Floyd的某些音樂,它就不能平滑地播放(也許通過(guò)修改一些加權(quán)參數(shù),可以播放)。
但是作者相信,隨著預(yù)測(cè)算法的進(jìn)步,DVFS技術(shù)必將得到廣泛的應(yīng)用,因?yàn)樗軌蚬?jié)省很多能量。而節(jié)能對(duì)許多便攜式設(shè)備來(lái)說(shuō),常常是要求。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 高溫環(huán)境下電源IC選型建議2026/4/13 13:53:19
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)2026/4/10 11:03:45
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)2026/4/9 10:06:18
- AC-DC電源模塊選型指南2026/4/8 10:35:45
- 如何選擇適合你項(xiàng)目的AC-DC電源轉(zhuǎn)換方案?2026/4/8 10:15:39
- PCB焊盤與過(guò)孔設(shè)計(jì)核心實(shí)操規(guī)范(含可焊性與可靠性保障)
- 汽車電子常用電子元器件選型指南
- MOSFET驅(qū)動(dòng)與隔離方案設(shè)計(jì)
- 高溫環(huán)境下電源IC選型建議
- 安防監(jiān)控設(shè)備連接器應(yīng)用分析
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法

















