基于自適應(yīng)DVFS的SoC低功耗技術(shù)研究
1 低功耗技術(shù)分析
表1給出低功耗技術(shù)分析表。由表1可見,隨著溝道寬度的減少,單位面積上的動態(tài)功耗和靜態(tài)功耗都在不斷增加。
這樣芯片功耗則可描述為:
式中:CeffVdd2fclock是動態(tài)功耗部分。其中a為當(dāng)前頻率下的翻轉(zhuǎn)率;Ceff為節(jié)點負(fù)載電容;Vdd為工作電壓;fclock為工作頻率。IleakVd是靜態(tài)功耗部分,其中Ileak為漏電流。由式(1)可知,降低芯片功耗所需要降低的參數(shù)。
1.1 降低動態(tài)功耗的手段
1.1.1 降低α
降低α有兩種方法:一是通過工具優(yōu)化邏輯結(jié)構(gòu)來降低α;二是通過編碼方式來實現(xiàn)低的α,例如采用翻轉(zhuǎn)碼。實際上假設(shè)每一次翻轉(zhuǎn)都是有效和最優(yōu)的,則afclock可視為一常數(shù),但真實情況并非如此,每次時鐘驅(qū)動下的設(shè)計往往存在冗余,同時對于某種額定的上層任務(wù)本身,也可能不適合軟硬件劃分。對于fclock,若不使用該模塊時,可直接gated該模塊。這種gated有三種手段:
(1)在時鐘產(chǎn)生端進(jìn)行g(shù)ated,由軟件配置。該手段要求在前端設(shè)計這樣的功能,包括正向時鐘gated和反相時鐘gated,其結(jié)構(gòu)是對稱的。實際上設(shè)計時,器件lib會提供標(biāo)準(zhǔn)的gated單元,這使得前端設(shè)計變得較為容易。
(2)在模塊中進(jìn)行硬件判斷,以gated clock時鐘。例如,在AHB總線上有一塊memory,作為AHB從動裝置。由于軟件頻繁訪問該模塊,因此若采用軟件頻繁gated,則導(dǎo)致操作不連續(xù);若將模塊設(shè)計在內(nèi)部,則因AHB的HSEL信號變高,下一拍時鐘在模塊內(nèi)部被打開,這樣即可節(jié)省時鐘翻轉(zhuǎn)的功耗。尤其對于memory來說,時鐘翻轉(zhuǎn)和不翻轉(zhuǎn)的功耗差別較大。
(3)利用綜合工具在近端加gated,而無需在前端設(shè)計。
理論上,單純的頻率下降,并不能帶來功耗的變化,因為工作量一定,頻率的下降只能帶來運(yùn)行時間的增加,但是芯片功耗中,時鐘樹的功耗幾乎占去30%,所以在合適降低頻率時,會減少時鐘樹上的功耗。
1.1.2 降低Ceff
Ceff的降低因工藝選擇的不同而存在較大的差別。因此,選擇合適的工藝更有利于降低Vdd這樣可使功耗得到平方關(guān)系的下降。然而,基于成本、可靠性及商務(wù)等考慮,只能選擇某一種工藝,如130 nm工藝,可通過DVFS來改變電壓。它的核心是:(1)某種工藝下的library可以在一定電壓范圍內(nèi)工作正常。
(2)由于模塊或系統(tǒng)工作在不同任務(wù)下所需的工作頻率不同,因此可以計算DVFS的收益。假設(shè)一個系統(tǒng)可以進(jìn)行MP3或MP4的解碼任務(wù),這樣在MP3解碼時,所需頻率只有100 MHz;在MP4解碼時,所需頻率是200 MHz。通過STA分析,在1.1 V電壓下工作時,系統(tǒng)可運(yùn)行頻率為100 MHz;在1.3 V電壓下工作時,系統(tǒng)可運(yùn)行頻率為200 MHz,這樣便可采用DVFS技術(shù)調(diào)節(jié)。假設(shè)翻轉(zhuǎn)率、電容都沒有發(fā)生變化,則在兩種不同工作模式下,所需功耗下降64%。當(dāng)然,前面的數(shù)值都是假設(shè)的,實際情況并非這么理想。
1.2 降低靜態(tài)功耗的手段
降低靜態(tài)功耗可采用Multi-Vdd,Multi-Vth兩種方法,在此不做詳述。
2 DVFS系統(tǒng)
如果DVFS是基于CPU自身OS調(diào)度的需求,則在自身頻率需要變化時才進(jìn)行電壓變化,此時可認(rèn)為是一個開環(huán)的DVFS技術(shù)。比如說,Windows Mobile中的OEMidle進(jìn)程就提供了一個根據(jù)CPU占用率來調(diào)節(jié)CPU頻率和電壓的方式。但是,在采用開環(huán)方式調(diào)節(jié)時,需要足夠的余量,同時需要軟件,尤其是操作系統(tǒng)予以支持,這對軟件來說也不是透明的。
對于一個閉環(huán)系統(tǒng),則需要一個性能monitotor,以監(jiān)控性能,并根據(jù)性能變化,直接調(diào)節(jié)電壓和頻率。圖1給出一個簡單的自適應(yīng)DVFS系統(tǒng)。
在該系統(tǒng)中,CPU是一個電壓可變的power do-main,稱為CPU-subsys。然而,對于其他模塊,則是另一個power domain,稱為peri_subsys,其中包括外部memory接口(EMI)、媒體協(xié)處理器(MCP)、LCD控制器(LCDC),以及與電壓控制相關(guān)的PerformaneeMonitor(PM)模塊,用于對芯片性能進(jìn)行正向監(jiān)控;.Power Controller(PC)模塊用于在接受到PM的性能描述后計算得到控制參數(shù),并傳遞給Power Supply(PS)模塊,用于提供可變的電壓Vdd_arm,同時armsubsys與peri subsys之間有Level shifter相隔。
評論