動(dòng)態(tài)電壓與頻率調節在降低功耗中的作用
關(guān)鍵詞 電源管理 動(dòng)態(tài)電壓與頻率調節 CPU負載跟蹤 預測算法
1 DVFS的工作流程
現在,為了延長(cháng)便攜式設備(如手機、MP3、多媒體播放器、筆記本電腦等)的電池壽命,芯片廠(chǎng)商們正在絞盡腦汁開(kāi)發(fā)新的節電技術(shù)。簡(jiǎn)單地說(shuō),這些節電技術(shù)可以分為兩類(lèi)――動(dòng)態(tài)技術(shù)和靜態(tài)技術(shù)。靜態(tài)技術(shù)包括不同的低功耗模式,芯片內部不同組件的時(shí)鐘或電源的按需開(kāi)關(guān)等。動(dòng)態(tài)技術(shù)則是根據芯片所運行的應用程序對計算能力的不同需要,動(dòng)態(tài)調節芯片的運行頻率和電壓(對于同一芯片,頻率越高,需要的電壓也越高),從而達到節能的目的。該技術(shù)的理論依據是如下的公式:
從上面的公式可以看出,降低頻率可以降低功率,但是單純地降低頻率并不能節省能量。因為對于一個(gè)給定的任務(wù),F*t是一個(gè)常量,只有在降低頻率的同時(shí)降低電壓,才能真正地降低能量的消耗。
目前許多芯片支持DVFS,比如Intel公司的芯片支持SpeedStep,ARM的支持IEM(Intelligent Energy Man-ager)和AVS(Adaptive Voltage Scaling)等。但是要讓DVFS發(fā)揮作用,真正地實(shí)現節能,只有芯片的支持還是不夠的,還需要軟件與硬件的綜合設計。
一個(gè)典型的DVFS系統的工作流程如下:
①采集與系統負載有關(guān)的信號,計算當前的系統負載。這個(gè)過(guò)程可以用軟件實(shí)現,也可以用硬件實(shí)現。軟件實(shí)現一般是在操作系統的核心調用中安放鉤子,特別是調度器,根據其調用的頻度來(lái)判斷系統的負載。硬件實(shí)現如Freescale的i.Mx3l,通過(guò)采集一些核心信號中斷線(xiàn)、Cache、內存總線(xiàn)的使用情況等,計算當前的系統負載。
②根據系統的當前負載,預測系統在下一時(shí)間段需要的性能。有多種預測算法可以選擇,要根據具體的應用來(lái)決定。這種預測,既可由軟件實(shí)現,也可由硬件實(shí)現。
③將預測的性能轉換成需要的頻率,從而調整芯片的時(shí)鐘設置。
④根據新的頻率計算相應的電壓。通知電源管理模塊調整給CPU的電壓。這需要特別的電源管理芯片,比如Frccscak公司的MCl3783或者NS公司的支持PowerWise特性的系列電源管理芯片。它們能夠支持微小的電壓調整(25 mV)井且能在極短的時(shí)間內(幾十μs)完成電壓的凋整。
另外,在調整頻率和電壓時(shí),要特別注意調整的順序。當頻率由高到低調整時(shí),應該先降頻率,再降電壓;相反,當升高額率時(shí),應該先升電壓,再升頻率。
圖1演示了簡(jiǎn)單的DVFS過(guò)程。
2 基于軟件的DVFS實(shí)現
在基于軟件的DVFS實(shí)現中,一般通過(guò)在操作系統的核心調用中安裝鉤子的辦法來(lái)收集系統調用的信息,判斷當前的系統負載。其中最重要的是調度器,其他地方包括讀/寫(xiě)接口、定時(shí)器等。例如,在Linux內核中,一般在以下地方安裝鉤子。
在預測下一時(shí)間段的系統負載時(shí),需要利用采集到的前面幾個(gè)時(shí)間段的實(shí)際負載值,然后根據下面的公式進(jìn)行預測:
以上這些算法各有其優(yōu)缺點(diǎn)。例如LMS算法類(lèi)似于自適應濾波器,能夠自動(dòng)調整參數,但是面臨著(zhù)收斂速度的問(wèn)題。
ARM公司為了驗證其芯片的DVS(Dynamic Voltage Sealing,動(dòng)態(tài)電壓凋節)特性,開(kāi)發(fā)的軟件Vertigo中,采用了UH(Utilization History)算法,有關(guān)的公式如下:
該算法對那些性能需求變化較慢的任務(wù)比較實(shí)用,比如MPEG解碼器。
在Vertigo的實(shí)現中,一些預測器完成性能預測,它將會(huì )把新的性能需求提交給策略管理器,由策略管理器決定是否調整當前的性能設置。Vertigo的架構如圖2昕示。
3 基于硬件的DVFS實(shí)現
正如前面所說(shuō)的,CPU負載跟蹤與性能預測的工作都可以由硬件完成。這樣,一方面增強了負載計算的準確性;另一方面減輕了CPU用于負載跟蹤與性能預測的負擔。當然,這樣做也有一個(gè)弊端,就是無(wú)法靈活地選擇預測算法。但是,這個(gè)缺點(diǎn)可以通過(guò)設置不同的預測參數得到一定程度的彌補。
飛思卡爾的i.MX31就是這樣的一個(gè)例子。這是一款針對移動(dòng)多媒體市場(chǎng)的應用處理器,具有強大的音頻和視頻處理能力。該芯片內部包含一個(gè)ARMll的CPU核,同時(shí)它也繼承了來(lái)自ARM的DVS技術(shù)并發(fā)展為DVFS。在該芯片中,CPU負載跟蹤和性能預測都是由硬件完成的,其負載跟蹤模塊框圖如圖3所示。
在圖3中,16路CPU活動(dòng)信號被采集之后,經(jīng)過(guò)加權,被送到負載疊加器,與另外采集的CPU空閑信號(經(jīng)過(guò)簡(jiǎn)單平均)進(jìn)行疊加。疊加器輸出的結果被送到EMA模塊,執行指數移動(dòng)平均(Exponential Moving Average)算法,進(jìn)行性能預測。EMA模塊得到的結果與預先設置的門(mén)限值進(jìn)行比較,如果預測的性能需求高于上限,則請求調高頻率;反之,如果預測的性能需求低于下限,則請求降低頻率。這種請求一般作為中斷,發(fā)送給CPU自身或外接的處理器,由它們在其中斷處理程序中設置相應的頻率和電壓。圖4演示了整個(gè)處理流程。
在圖4中,CCM(Clock Control Module)為時(shí)鐘控制模塊,負責調節CPU的頻率,PMIC(Power ManagementIC)為電源管理芯片,負責提供CPU所需要的電壓。該芯片提供兩種接口給CPU:常規的SPI(Scrial ProgrammableInterface)和專(zhuān)用于動(dòng)態(tài)電壓調節的DVS接口。該接口由兩根線(xiàn)組成。兩根線(xiàn)的狀態(tài)00表示電壓無(wú)變化,01表示電壓降低一格,10表示電壓升高一格,11表示電壓升到最高值。
圖4中的DPTC(Dynamic Process and Tempcrature Control)指的是動(dòng)態(tài)制程與溫度控制。該技術(shù)能夠根據該芯片的制程和當前的溫度動(dòng)態(tài)調節電源電壓,從而也可以有效地節省能量。這也是i.MX3l的一項創(chuàng )新。
4 DVFS應用的實(shí)際效果
為了驗證DVFS的實(shí)際效果,需要在CPU上運行相應的應用程序,并測量使用DVFS技術(shù)和不使用DVFS技術(shù)時(shí)CPU的功耗。這里,分別給出軟件實(shí)現的DVFS和硬件實(shí)現的DVFS在節省能量方面的實(shí)際測量數據。
Intrinsyc公司將ARM公司的IEM軟件移植到WinCE上,并測量了IEM使能或禁止時(shí)的CPU功耗。軟件運行在i.MX31的開(kāi)發(fā)板上,但是因為它沒(méi)有使用i.MX31內置的DVFS,因此可以將其看作軟件實(shí)現的DVFS。在計算CPU負載時(shí),采用了簡(jiǎn)單移動(dòng)平均算法(即式(3)中的h恒為1/N);同時(shí),它通過(guò)一個(gè)GPIO來(lái)指示系統是否已經(jīng)進(jìn)入空閑狀態(tài)(cpu_i-dle()線(xiàn)程被調度)。如果Idle的比例越小,則表明CPU的利用率越高。表1和表2是實(shí)際的測量數據。
為了驗證硬什實(shí)現的DVFS的功效,作者在i.MX3l的開(kāi)發(fā)板上進(jìn)行了測量。所使用的操作系統是Linux。表3給出了實(shí)際的測量數據。
從表3中可以清楚地看出,無(wú)論軟件實(shí)現的DVFS還是硬件實(shí)現的DVFS,都可以有效地降低能量消耗。
5 影響DVFS應用的因素
動(dòng)態(tài)電壓與頻率調節的技術(shù)提出很久了,在Linux上也有專(zhuān)門(mén)的開(kāi)源項目cpufreq,但是這項技術(shù)并沒(méi)有得到廣泛的應用。其中一個(gè)最關(guān)鍵的因素就是預測的可靠性。沒(méi)有一種預測算法是l00%準確的,也沒(méi)有一種算法可以應用于所有的程序;而對于實(shí)時(shí)類(lèi)的應用(如音頻、視頻等),預測失敗的結果是不可接受的。因為實(shí)時(shí)類(lèi)的應用都有一個(gè)Deadline,錯過(guò)Deadline,就意味著(zhù)程序的運行出了問(wèn)題。比如音頻或視頻幀的播放時(shí)間錯過(guò)以后,用戶(hù)就能明顯地感覺(jué)到音頻或視頻的不連貫,這會(huì )極大地影響用戶(hù)的體驗,從而也會(huì )影響用戶(hù)對DVFS的信心。作者在進(jìn)行DVFS的測試時(shí),就碰到過(guò)這些問(wèn)題。IEM測試中采用的簡(jiǎn)單移動(dòng)平均算法只對單一應用程序有效。但是i.MX31內置的移動(dòng)指數平均算法EMA也不是萬(wàn)能的。對于Pink Floyd的某些音樂(lè ),它就不能平滑地播放(也許通過(guò)修改一些加權參數,可以播放)。
但是作者相信,隨著(zhù)預測算法的進(jìn)步,DVFS技術(shù)必將得到廣泛的應用,因為它能夠節省很多能量。而節能對許多便攜式設備來(lái)說(shuō),常常是第一要求。
評論