1. 程式人生 > >DVFS及多核處理器功耗優化技術詳解

DVFS及多核處理器功耗優化技術詳解

  •     概述

        降低嵌入式系統功耗有多種方法,其中動態電源管理(DPM)和動態電壓頻率調整技術(DVFS)是降低系統功耗的兩種關鍵技術。其中動態電源管理主要依據裝置工作負載的變化切換器工作狀態以達到系統功耗最小化。本篇部落格則主要從DVFS技術做詳細的介紹。DVFS(Dynamic Voltage and Frequency Scaling)動態電壓頻率調節本質上是一種低功耗技術,目的是根據的晶片當時的實際功耗需要設定工作電壓和時鐘頻率,這樣可以保證提供的功率既滿足要求又不會效能過剩,從而可以降低功耗。

        DVFS技術利用了CMOS晶片的特性:CMOS晶片的能量消耗正比於電壓的平方和時鐘頻率。DVFS技術是以延長任務執行時間為代價來達到減少系統能量消耗的目的,體現了功耗與效能之間的權衡。可以通過減少時鐘頻率來降低通用處理器功耗的。然而,僅僅降低時鐘頻率並不節約能量,因為效能的降低會帶來任務執行時間的增加。調節電壓需要以相同的比例調節頻率以滿足訊號傳播延遲要求。然而不管是電壓調節還是頻率調節,都會造成系統性能的損失,並增加系統的響應延遲。

動態功耗[55]、短路功耗[56] 和漏電流功耗[57] 是CMOS 電路的三個主要功耗,因此CMOS 電路的總功耗可由下面公式表示:                        P = P_{Dynamic} + P_{Short} + P_{Leakage} = ACV^{2}f+ AVI_{Short}+VI_{Leakage}         式中C 代表負載電容的容值,V 是工作電壓,A 是當前頻率下電路的平均翻轉率,f 為工作頻率,IShort 和ILeakage 分別為短路電流和漏電流。從公式中可知,C、V 、A、f 決定了整個CMOS 電路的功耗,而DVFS 技術就是主要通過改變頻率f 和電壓V 的值來調節系統功耗的。

        為了儘量減少可感知的系統性能負面影響同時又能最大程度地降低系統能耗,策略必須估計未來的工作負載並選擇最合適的頻率。準確地預測未來的工作負載對廣泛使用的策略是至關重要的。預測錯誤可能會導致設定的頻率太高降低節省能耗,或設定頻率過低造成系統響應延遲過高。所以,要想降低功耗,需要選擇合適的供電電壓和時鐘頻率。

  • 硬體基礎

為了實現供電電壓可調節,目前的晶片電源模組都可以提供多級輸出,本質上是多個不同輸出電壓的LDO通過選擇開關橋接,DVFS控制邏輯輸出所需電壓的控制向量,電源管理模組會自動完成電壓源切換。

                           http://www.eetop.cn/blog/attachments/2016/10/214199_201610102129311ju02.jpg

時鐘頻率的控制是目前已經很常見的,晶片內部一般都會整合CGU(Clock Generator Unit)負責時鐘源的提供,可以對某個時鐘源分頻升頻,為系統提供特定頻率的時鐘訊號,這裡不再贅述。

  • 調節順序

目前的晶片實現工藝下,更高的頻率則需要更高的供電電壓。因為更高的頻率意味著動態功率的消耗增加,而在晶片整體電容電阻值不變的前提下,更高的供電電壓可以提供更高的電源功率。

所以安全的調節機制是:

當需要提升功率時,應先提升供電電壓,然後提升時鐘頻率。

當需要降低功率時,應先降低時鐘頻率,再降低供電電壓。

                         http://www.eetop.cn/blog/attachments/2016/10/214199_201610102129312hinp.jpg

  • DVFS調節策略

        一味的降頻降壓當然是不能降低功耗的,因為低頻下執行可能使系統處理任務的時長增加,從而整體上可能增加了功耗。所以DVFS的核心是動態調整的策略,其目的是根據當時的系統負載實時調整,從而提供滿足當時效能要求的最低功率,也就達到了最低功耗。

        制定調整策略前,需要先找出系統中的耗電大的部件,如CPU、GPU、DSP等硬體演算法加速模組(結合邏輯規模);然後統計出這些模組的負載情況,基本的策略當然是工作負載增加則升頻升壓,工作負載降低則降頻降壓。工作負載的粗略模型是在一個時間視窗內,統計模組工作的時間長度,設定不同閾值,高閾值對應高電壓高頻率,低閾值對應低電壓低頻率。每次統計值穿過閾值邊界,觸發DVFS轉換。

                          http://www.eetop.cn/blog/attachments/2016/10/214199_201610102129313ZXcx.jpg

實際的系統中,每個CPU,DSP也許有自己獨立的DVFS調節系統,所以可以根據本模組的特點制定出更精確的負載模型,從而取得更優的功耗表現。

至於調節演算法的實現,可以軟體也可硬體,看資源消耗情況和DVFS響應時間要求而定。