從當前嵌入式消費電子產品來看,媒體處理與無線通信、3D游戲逐漸融合,其強大的功能帶來了芯片處理能力的增加,在復雜的移動應用環境中,功耗正在大幅度增加。比如手機,用戶往往希望待機時間、聽音樂時間,以及看MPEG4時間能更長。在這樣的背景下,如何降低嵌入式芯片的功耗已迫在眉睫。 1 低功耗技術分析 表1給出低功耗技術分析表。由表1可見,隨著溝道寬度的減少,單位面積上的動態功耗和靜態功耗都在不斷增加。 這樣芯片功耗則可描述為: 式中:CeffVdd2fclock是動態功耗部分。其中a為當前頻率下的翻轉率;Ceff為節點負載電容;Vdd為工作電壓;fclock為工作頻率。IleakVd是靜態功耗部分,其中Ileak為漏電流。由式(1)可知,降低芯片功耗所需要降低的參數。 1.1 降低動態功耗的手段 1.1.1 降低α 降低α有兩種方法:一是通過工具優化邏輯結構來降低α;二是通過編碼方式來實現低的α,例如采用翻轉碼。實際上假設每一次翻轉都是有效和最優的,則afclock可視為一常數,但真實情況并非如此,每次時鐘驅動下的設計往往存在冗余,同時對于某種額定的上層任務本身,也可能不適合軟硬件劃分。對于fclock,若不使用該模塊時,可直接gated該模塊。這種gated有三種手段: (1)在時鐘產生端進行gated,由軟件配置。該手段要求在前端設計這樣的功能,包括正向時鐘gated和反相時鐘gated,其結構是對稱的。實際上設計時,器件lib會提供標準的gated單元,這使得前端設計變得較為容易。 (2)在模塊中進行硬件判斷,以gated clock時鐘。例如,在AHB總線上有一塊memory,作為AHB從動裝置。由于軟件頻繁訪問該模塊,因此若采用軟件頻繁gated,則導致操作不連續;若將模塊設計在內部,則因AHB的HSEL信號變高,下一拍時鐘在模塊內部被打開,這樣即可節省時鐘翻轉的功耗。尤其對于memory來說,時鐘翻轉和不翻轉的功耗差別較大。 (3)利用綜合工具在近端加gated,而無需在前端設計。 理論上,單純的頻率下降,并不能帶來功耗的變化,因為工作量一定,頻率的下降只能帶來運行時間的增加,但是芯片功耗中,時鐘樹的功耗幾乎占去30%,所以在合適降低頻率時,會減少時鐘樹上的功耗。 1.1.2 降低Ceff Ceff的降低因工藝選擇的不同而存在較大的差別。因此,選擇合適的工藝更有利于降低Vdd這樣可使功耗得到平方關系的下降。然而,基于成本、可靠性及商務等考慮,只能選擇某一種工藝,如130 nm工藝,可通過DVFS來改變電壓。它的核心是:(1)某種工藝下的library可以在一定電壓范圍內工作正常。 (2)由于模塊或系統工作在不同任務下所需的工作頻率不同,因此可以計算DVFS的收益。假設一個系統可以進行MP3或MP4的解碼任務,這樣在MP3解碼時,所需頻率只有100 MHz;在MP4解碼時,所需頻率是200 MHz。通過STA分析,在1.1 V電壓下工作時,系統可運行頻率為100 MHz;在1.3 V電壓下工作時,系統可運行頻率為200 MHz,這樣便可采用DVFS技術調節。假設翻轉率、電容都沒有發生變化,則在兩種不同工作模式下,所需功耗下降64%。當然,前面的數值都是假設的,實際情況并非這么理想。 1.2 降低靜態功耗的手段 降低靜態功耗可采用Multi-Vdd,Multi-Vth兩種方法,在此不做詳述。 2 DVFS系統 如果DVFS是基于CPU自身OS調度的需求,則在自身頻率需要變化時才進行電壓變化,此時可認為是一個開環的DVFS技術。比如說,Windows Mobile中的OEMidle進程就提供了一個根據CPU占用率來調節CPU頻率和電壓的方式。但是,在采用開環方式調節時,需要足夠的余量,同時需要軟件,尤其是操作系統予以支持,這對軟件來說也不是透明的。 對于一個閉環系統,則需要一個性能monitotor,以監控性能,并根據性能變化,直接調節電壓和頻率。圖1給出一個簡單的自適應DVFS系統。 在該系統中,CPU是一個電壓可變的power do-main,稱為CPU-subsys。然而,對于其他模塊,則是另一個power domain,稱為peri_subsys,其中包括外部memory接口(EMI)、媒體協處理器(MCP)、LCD控制器(LCDC),以及與電壓控制相關的PerformaneeMonitor(PM)模塊,用于對芯片性能進行正向監控;.Power Controller(PC)模塊用于在接受到PM的性能描述后計算得到控制參數,并傳遞給Power Supply(PS)模塊,用于提供可變的電壓Vdd_arm,同時armsubsys與peri subsys之間有Level shifter相隔。 對于PM模塊,ARM可以通過總線進行配置,PM通過監測可變電壓區的電流實現性能監控。對于處理MIPS需求比較高的操作,CPU空轉時間變少,電流需求變小;對于處理MIPS要求比較低的操作,CPU執行密集操作,電流需求變大。 該設計核心在于如何使PM模塊能根據某種算法來自適應地預測電流的需求,而且預測的響應時間、額外功耗都比較小,即達到適時、恰好的電壓要求。對于自適應算法,可選取圖2所示的簡單前向線性預測。 3 仿真實驗與結果 圖3給出系統模型。構造這樣一個系統,使得測試將按事先在開發板上的運行給定benchmark程序。測試得到的功耗參數,則按CPU負載折算成為歸一的nop和mac兩種類型指令程序,這兩種指令在測試向量中間或分布。CPU行為模型執行相關程序,該模型只能取指令,執行2級流水。對于nop操作,在執行階段進行nop;對于mac:操作,在執行階段對固定數據進行mac,這樣即可簡化設計。CPU BM采用Verilog進行編寫。CPU有一條AHB總線,對memory進行訪問控制。MEM模塊采用ahb接口,存放編譯好的二進制指令,并固定頻率。PM Model對CPU BM的翻轉率進行monitotor在監控各階段的翻轉率后,作為輸入流入自適應濾波器,計算得到所需的調節電壓,給PS Model;同時輸出翻轉率,給PC Model。 PC Model將翻轉率、時鐘、電壓作為輸入,用于計算系統功耗。PS Model按照PM發出的電壓調節指令進行電壓頻率調節。由于是rtl Model,所以電壓調節是不可見的,只是按照實際情況,若電壓從低到高,則先調節電壓,再調節頻率;反之亦反。 對于自適應選取的電壓,可按圖4予以實現。表2給出按照130 nm工藝實現電壓時,CPU與總線頻率的關系。在調節電壓時,時鐘被停頓若干時鐘周期。假設電源網絡的RC參數不變,則認為電壓切換與切換電壓差成正比,如圖4所示。 對于前向預測的步長,按照實時操作系統的節拍,從1~50 ms進行調節。通過實踐,可得圖5所示不同步長下的不同功耗數值,同時每次切換的額外開銷也計算在內。 由圖5可見,對功耗、效率與調節步長都有一定的關系,合理選取調節步長后,可得效率與功耗的均衡。采用步長為25 ms時,功耗不到DVFS的25%,而效率損失只有1/3。由此可見,在CPU資源總負荷利用率為30%時,該步長相對較為合理。 4 結 語 提供了一種自適應動態電壓頻率調節方式,構造了與之對應的系統模型。在計算機上對該模型進行了模擬實驗,得到一組均衡的前向預測參數。實驗結果驗證了自適應動態電壓頻率調節方式的有效性,給出了評估動態電壓頻率調節仿真的有效途徑。 |