李煊鵬,張 哲,時龍興, *
(1.東南大學(xué)集成電路學(xué)院,南京 210096;2.東南大學(xué)電子工程學(xué)院, 南京210096)
隨著CMOS制造工藝技術(shù)的不斷提升以及嵌入式系統(tǒng)軟硬件構(gòu)架的不斷更新,各種嵌入式設(shè)備如移動電話, MP4播放器,數(shù)碼相機等性能都獲得了大幅的增長。然而,伴隨著性能的改善,能耗問題越來越成為關(guān)注的焦點。電池技術(shù)相對落后性能增長的實際情況要求我們不得不將注意力集中到在移動嵌入式設(shè)備有限的電池電量條件下,如何最大限度地降低系統(tǒng)功耗以延長有效使用時間,并且在有實時性要求的設(shè)備中,如何滿足任務(wù)截止時間限。
在所有移動終端中,處理器是整個系統(tǒng)的核心部件,它的性能與功耗情況直接影響到嵌入式設(shè)備的運行狀況。目前,兩種主流的降低系統(tǒng)功耗的方法是:①設(shè)備關(guān)閉,也就是通常我們所說的動態(tài)電源管理(Dynamic Power Management—DPM)和②設(shè)備減速,也就是我們將要分析的動態(tài)電壓調(diào)節(jié)(Dynamic Voltage Scaling—DVS)[5]。通過處理器調(diào)度關(guān)閉閑置設(shè)備,如內(nèi)存、硬盤、顯示器、I/O接口等可以有效的降低系統(tǒng)功耗,然而大部分情況下,我們很難實現(xiàn)對這些設(shè)備的頻繁操作,并且考慮關(guān)斷開銷更讓DPM技術(shù)只存在理論價值。然而, DVS技術(shù)則根據(jù)電壓和功耗之間的關(guān)系,運用處理器動態(tài)調(diào)節(jié)特性,既滿足任務(wù)截止時間限,又通過調(diào)節(jié)電壓和頻率實現(xiàn)系統(tǒng)功耗的降低。
本文中,我們將在第1部分中引入DVS策略的模型基礎(chǔ),介紹DVS技術(shù)實現(xiàn)功耗降低的基本原理。在第2部分中,將根據(jù)第1部分中提到的策略模型,對關(guān)鍵DVS算法進行分類比較。相關(guān)算法的仿真將在第3部分中進行描述。最后,第4 部分對實時嵌入式系統(tǒng)DVS策略進行總結(jié)。
縱觀實時系統(tǒng)下DVS策略,不難發(fā)現(xiàn)絕大多數(shù)策略都基于兩大影響因素,其一,動態(tài)電流功耗,其二,結(jié)合漏電流功耗的總功耗。前者是早期大部分文章研究的重點,而后者則在近幾年DVS策略的研究中占有越來越重要的位置。
根據(jù)CMOS晶體管特性,動態(tài)電流產(chǎn)生的功耗PAC可有下式表示:
其中, CL表示負載電容, Vdd表示供電電壓, f表示系統(tǒng)頻率。
而供電電壓Vdd與電路延遲τ的關(guān)系可由下式表示:
其中, VT表示CMOS晶體管的閾值電壓, VG表示輸入門電壓。
從上述等式我們可以看出,動態(tài)電流功耗PAC與供電電壓Vdd成二次方關(guān)系,而電路延遲限制了系統(tǒng)頻率,所以供電電壓Vdd也與頻率f相關(guān)。因而,考慮動態(tài)電流作用的DVS策略將根據(jù)電壓,頻率與功耗之間的關(guān)系,以降低系統(tǒng)動態(tài)功耗為主,并且要求滿足任務(wù)截止時間限。
然而,隨著工藝技術(shù)的不斷提升,從微米工藝到深亞微米,再到如今的納米級工藝,單個芯片的集成度越來越高,單個CMOS晶體管的閾值電壓呈指數(shù)下降趨勢,以至于過去在功耗方面并不起主導(dǎo)作用的漏電流不斷增大。伴隨著越來越大的旁路電流,漏電流所產(chǎn)生的功耗PDC成為整個系統(tǒng)功耗的重要組成部分,其功耗計算由下列等式表示:
其中, Isubn表示子閾值電流, Ij表示反向偏置節(jié)點電流, Vbs表示體偏置電壓。可看出漏電流功耗PDC與供電電壓Vdd也相互關(guān)聯(lián)。
系統(tǒng)的總功耗P可以由下式表示:
其中, Pon表示系統(tǒng)工作內(nèi)部電壓功耗。根據(jù)漏電流產(chǎn)生的功耗對總功耗的影響,采用計算關(guān)鍵點(Critical Point)的方法,尋求最小可能功耗。因而,區(qū)分動態(tài)電流功耗與漏電流功耗將成為我們分類的重要標準。
我們分析研究的對象主要是實時系統(tǒng)下周期性任務(wù)的動態(tài)電壓調(diào)節(jié)(DVS)策略。在本文中,我們將DVS策略分為兩大類:動態(tài)功耗DVS策略和靜態(tài)功耗DVS策略。動態(tài)功耗DVS策略將根據(jù)動態(tài)功耗模型進行分析,又可以細化成三類子策略:任務(wù)間DVS(InterDVS)策略,任務(wù)中DVS(IntraDVS)策略和混合DVS(HybridDVS)策略[8]。而靜態(tài)功耗DVS策略將根據(jù)漏電流功耗模型進行分析,更加注重漏電流在系統(tǒng)功耗中的作用,同時考慮整個系統(tǒng)部件功耗,不僅包括處理器以及外圍設(shè)備如內(nèi)存和I/O等[5]。
動態(tài)功耗的DVS策略利用功耗與電壓,頻率之間的關(guān)系,以及實時系統(tǒng)下任務(wù)調(diào)度策略,如單調(diào)速率調(diào)度(RM)和最早截止時間優(yōu)先調(diào)度(EDF),來降低系統(tǒng)功耗。實時系統(tǒng)下動態(tài)功耗DVS策略的計算將通過減速因子(slowdown factor)的取值來決定運行時處理器的速度,進而達到滿足任務(wù)時限要求的同時降低功耗。減速因子(slowdown factor)則根據(jù)系統(tǒng)是否運行時更新狀態(tài)又分別對應(yīng)離線(Off-Line)算法和在線(On-Line)算法[6]。
由于減速因子對任務(wù)執(zhí)行速率的影響,任務(wù)會余留一定的空閑時間(slack time)。它是任務(wù)實際執(zhí)行時間和最壞運行時間之間的差值。無論任務(wù)間DVS策略還是任務(wù)中DVS策略都是探求空閑時間進而修正處理器速度。對于任務(wù)間DVS策略而言,一般都是采用運行-計算-分配-再運行的步驟。任務(wù)間DVS策略又細分為兩部分:空閑時間評估(slack estimation)與空閑時間分配(slack distribution),后者大多采用貪心算法,即所有的空閑時間都默認全部分配給下一個處于激活狀態(tài)的任務(wù)。本文DVS策略主要集中在空閑時間評估上,根據(jù)減速因子的特性決定分類,又可分為動態(tài)空閑評估和靜態(tài)空閑評估。動態(tài)空閑評估是一種在線算法,我們將給出三種動態(tài)空閑評估算法類別:
(1)基于優(yōu)先級的空閑時間獲取算法
該類算法基于EDF與RM的調(diào)度特性,若高優(yōu)先級任務(wù)完成時間早于最壞運行時間(WCET),后續(xù)的低優(yōu)先級任務(wù)能夠使用已完成的高優(yōu)先級任務(wù)所余留的空閑時間[9,11]。當然,也可能出現(xiàn)相反的情況,只不過那樣往往需要更大的運行開銷。
(2)處理器利用率更新算法
該類算法通過已完成任務(wù)的實際執(zhí)行時間重新計算最壞處理器利用率來評估所需處理器性能。一旦處理器利用率進行了更新,時鐘速率也要進行相應(yīng)地修正[1]。該類算法的優(yōu)點在于執(zhí)行簡單,僅在單個調(diào)度點根據(jù)已完成任務(wù)的處理器利用率進行更新。
(3)任務(wù)到達時間算法
該類算法使用下一任務(wù)到達時間(NTA)來評估動態(tài)空閑時間,如果調(diào)度點時間t與最壞運行時間WCET的和小于NTA,任務(wù)則按更低的速率運行以滿足當前任務(wù)完成時間是下一任務(wù)到達時間[14]。該類算法相對前一算法計算開銷較大,但考慮到任務(wù)到達的閾值時間,具有更好的實時性。
相對于動態(tài)空閑評估而言,靜態(tài)空閑評估算法較為簡單,因為算法靜態(tài)確定下一任務(wù)所能獲得的空閑時間,而動態(tài)空閑時間則是來自于任務(wù)執(zhí)行期間的運行時變量。靜態(tài)空閑評估是一種離線算法,下面我們給出一種靜態(tài)空閑評估算法:
(4)最大恒速率算法
該類算法是一種最為普遍使用的靜態(tài)空閑評估方法。最大恒速率被定義為能夠保證任務(wù)有效調(diào)度的最小時鐘頻率[10,14]。例如在EDF調(diào)度中,任務(wù)的處理器利用率U小于1時(對應(yīng)于最大處理器速度fmax),則采用f′max=U?fmax來計算新速率。
相比較任務(wù)間DVS策略,任務(wù)中DVS策略大多比較簡單,因為是根據(jù)單個任務(wù)運行狀態(tài)來決定任務(wù)的執(zhí)行速率。因而任務(wù)中DVS策略大多采用一種離線算法。下面給出兩類任務(wù)中DVS策略:
(1)基于路徑算法
該類算法基于預(yù)測參考執(zhí)行路徑來進行調(diào)度,例如最壞執(zhí)行路徑(WCEP)。當實際執(zhí)行與預(yù)測執(zhí)行路徑不同時就對系統(tǒng)時鐘頻率進行調(diào)整。如果新路徑要比預(yù)測執(zhí)行路徑花費更長的執(zhí)行時間,則調(diào)高時鐘頻率。反之,降低時鐘頻率。具體有Shin D等人[12]提出的intraShin算法。
(2)隨機算法
該類算法采用相對保守的策略,認為系統(tǒng)以低速開始運行后提速的方法在功耗節(jié)省上優(yōu)于以高速開始若出現(xiàn)空閑時間而降速的策略[10]。該類算法中,時鐘速度會在特定時間點提升而無論采用何種執(zhí)行路徑。因為采用了相對保守的策略,不像前一策略能夠充分利用所有空閑時間,通過最大程度功耗節(jié)省來彌補性能的損失。
混合DVS策略則根據(jù)空閑時間,可以工作在任務(wù)間和任務(wù)中兩種模式下。它不同于純的任務(wù)間或任務(wù)中DVS策略,從理論上比后兩者能夠降低更多功耗。
上述的DVS策略大都通過頻率調(diào)節(jié)來進行減速,然而這樣的策略雖然降低動態(tài)功耗卻導(dǎo)致漏電流功耗的增長。特別是近年來,隨著每一代CMOS工藝技術(shù)提升,漏電流功耗出現(xiàn)大幅增長,過去的130 nm工藝對應(yīng)亞閾值漏電流為0.01 μA/μm,而如今的45 nm工藝相應(yīng)的亞閾值電流則為3 μA/μm,僅電流就提高了30倍,因而降低漏電流功耗就變得越為重要。
基于能耗和減速因子成比例的前提,如 input vector control和power supply gating等用來降低漏電流功耗,以及通過控制體偏置電壓進而調(diào)節(jié)閾值電壓的方法和基于自適應(yīng)體偏置的調(diào)度技術(shù)也是降低靜態(tài)功耗的方法。這些方法在只考慮處理器功耗時能夠獲得不錯的效果,但當涉及如內(nèi)存、I/O等設(shè)備時,上述方法往往不能起到很好的降低系統(tǒng)總功耗的效果。這就產(chǎn)生了將減速因子(slowdown)與關(guān)斷因子(shutdown)組合考慮的新方法來降低功耗。這里,處于關(guān)斷(shutdown)狀態(tài)被認為是幾乎沒有漏電流功耗的狀態(tài)。
在早期研究中, Irani等人[15]考慮了DVS與關(guān)斷因子的組合問題,作者基于連續(xù)電壓范圍和功耗凸函數(shù)(convex power consumption function)的假設(shè)提出了一種競爭性離線算法。 Lee Y等人[16]提出了實時周期系統(tǒng)下的一種延遲調(diào)度(procrastination scheduling)策略以及Leakage Control EDF(LC-EDF)和Leakage Control Dual Priority(LC-DP)調(diào)度算法。單個設(shè)備的延遲算法將決定系統(tǒng)何時進入或離開關(guān)斷狀態(tài)。延遲算法通過延長睡眠間隔能夠有效地減少喚醒次數(shù),能夠帶來更高效的系統(tǒng)性能同時滿足任務(wù)的截止時間限。
整合延遲算法和動態(tài)電壓調(diào)節(jié)技術(shù)是一種有效的降低系統(tǒng)功耗的方法。 Jejurikar R等人[7]評估了在EDF調(diào)度策略下的延遲算法的使用情況,并測試了固定優(yōu)先級(fixed priority)和競爭優(yōu)先級(dual priority)系統(tǒng)調(diào)度性能。他們認為Lee的LC-DP算法中延遲會導(dǎo)致任務(wù)不能滿足截止時間限,進而修正了該延遲算法存在的問題。在隨后的研究中,他們計算了兩種優(yōu)先級調(diào)度策略下的任務(wù)延遲間隔,指出競爭優(yōu)先級調(diào)度比固定優(yōu)先級調(diào)度在延遲間隔中能更有效地降低系統(tǒng)功耗。
集成靜態(tài)功耗的DVS策略因為需要考慮漏電流功耗對總功耗的影響,所以在結(jié)合動態(tài)功耗條件下,計算系統(tǒng)的關(guān)鍵點(Critical Point)來確定最小總功耗時系統(tǒng)的關(guān)鍵速度(Critical Speed),繼而給出系統(tǒng)的低功耗調(diào)度策略, 于是有相應(yīng)的 Critical Speed DVS(CS-DVS)和Critical Speed DVSwith Procrastination(CS-DVS-P)[4];后者引入延遲算法,通過增加任務(wù)之間的空閑時間,進一步降低功耗。
我們的實時DVS策略仿真是根據(jù)Pering T等人[2]和Shin D等人[13]提出的仿真與評估方法加以改進。該方法以UI、Real-Time Audio和MPEG Decompression等作為基準測試程序,硬件平臺也使用具有能夠進行連續(xù)電壓調(diào)節(jié)的如Intel PXA系列處理器,并且系統(tǒng)搭載一定的外設(shè),如內(nèi)存、I/O和硬盤等。仿真器將一組任務(wù)序列作為輸入,該序列包含每個任務(wù)的周期和運行開銷以及相應(yīng)的一些系統(tǒng)參數(shù)。輸出為處理器利用率與功耗的關(guān)系模型。在仿真中我們將最壞截止時間(WCET)對應(yīng)處理器速率為最大執(zhí)行速率,任務(wù)序列為隨機序列,并定義其周期和WCET的取值范圍。
在動態(tài)功耗DVS策略中具體算法可能是由一種或幾種空閑評估算法組成。我們列出主要的算法組合,如表1。
表1 動態(tài)DVS策略算法組合
針對上述DVS算法,我們通過標準化評估模型分析他們的平均功耗情況與不使用DVS策略模型的功耗比,如圖1。
圖1 動態(tài)功耗DVS策略的功耗比較
對于考慮靜態(tài)功耗的DVS算法而言,在處理器利用率較小的時候, CS-DVS-P算法能獲得最小的功耗,隨著處理器利用的上升,一般DVS以及CS-DVS算法都能與CS-DVS-P獲得大致相同的功耗,如圖2。
圖2 漏電流功耗DVS策略功耗比較
圖2中的功耗是相對于沒有采用DVS策略的功耗而得到的標準化功耗。 CS-DVS相對于普通DVS策略能夠減少5%的系統(tǒng)功耗,而CS-DVS-P通過延長睡眠間隔時間而進一步減少了關(guān)斷開銷,從而能夠獲得了比CS-DVS多達18 %的功耗節(jié)省。
實時嵌入式系統(tǒng)的DVS策略在仿真環(huán)境下往往能達到10 %~40%的功耗節(jié)省。然而在實際應(yīng)用中往往因為現(xiàn)實環(huán)境的復(fù)雜性和多樣性而無法達到令人滿意的功耗降低。我們看到多數(shù)理論都基于貪心算法,即從理論上滿足任務(wù)時限的條件下最大可能地降低功耗。后續(xù)研究將把重點放在DVS策略與DPM策略相結(jié)合以及針對混合DVS策略研究的拓展。
我們認為從近些年實時DVS策略發(fā)展的角度來看,漏電流功耗對整個系統(tǒng)功耗影響的研究將占更大的比重,特別是在考慮漏電流與動態(tài)電流之間相互關(guān)系的研究上有望進一步深入。同時,在實際工程領(lǐng)域的應(yīng)用也會是未來一段時間的研究重點。此外,我們認為結(jié)合VLSI等相關(guān)芯片制造領(lǐng)域技術(shù)的發(fā)展,將DVS策略集成到芯片制造中也會成為未來DVS策略研究的一個重要方向。
[ 1] Pillai P, Shin K G.Real-Time Dynam ic Voltage Scaling for Low-Power Embedded Operating Systems[ J] .ACM SIGOPSOperating Systems Review.New York:ACM, 2001:89-102.
[ 2] Pering T, Burd T, Brodersen R.The Simulation and Evaluation of Dynamic Voltage Scaling Algorithms[ C] //Proceedings of the 1998 International Symposium on Low Power Electronics and Design.New York:ACM, 1998:76-81.
[ 3] Pouwelse J, Langendoen K, Skips H.Dynamic Voltage Scalingon a Low-Power Microprocessor[ C] //Proceedings of the 7th annual international conference on Mobile computing and networking,New York:ACM, 2001:251-259.
[ 4] Jejurikar R, Pereira C, GuptaR.Leakage Aware Dynamic Voltage Scaling for Real-time Embedded Systems[ C] //Proceedings of the 41st Annual Design Automation Conference.New York:ACM,2004:275-180.
[ 5]Jejurikar R, Gupta R.Dynam ic Voltage Scaling for System-wide Energy Minimization in Real-time Embedded Systems[ C] //Proceedings of the 2004 International Symposium on Low Power Electronics and Design(ISLPED'04), 2004:78-81.
[ 6] Jejurikar R, Gupta R.Energy Aware Task Scheduling with Task Synchronization for Embedded Real-Time Systems[ J] //Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactionson, June 2006:1024-1037.
[ 7] Jejurikar R, GuptaR.Procrastination Scheduling in Fixed Priority Real-time Systems[ C] //Proceedingsof the 2004ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems.New York:ACM, 2004:57-66.
[ 8] Kim W, Shin D, Yun H S, et al.Performance Comparison of Dynam ic Voltage Scaling Algorithms for Hard Real-time Systems[ C] //Proceedingsof the 2002 Real-Time and Embedded Technology and Applications Symposium, 2002:219-228.
[ 9]Aydin H, Melhem R, Alvarez P M.Dynamic and Aggressive Scheduling Techniques for Power-aware Real-time Systems[C] //Proceedingsof the 22nd IEEEReal-time Systems Symposium, December, 2001.
[ 10] Gruian F.Hard Real-time Scheduling Using Stochastic Data and DVSProcessors[C] //Proceedings of the International Symposium on Low Power Electronicsand Design.August, 2001:46-51.
[ 11] Kim W, Kim J, Min S L.A Dynam ic Voltage Scaling A lgorithm for Dynam ic Priority Hard Real-time Systems Using Slack Time Analysis[C] //Proceedingsof Design, Automation and Test in Europe(DATE'02).March 2002:788-794.
[ 12] Shin D, Kim J, Lee S.Intra-task Voltage Scheduling for Low-energy Hard Real-time Applications[ J].IEEE Design and Test of Computers.March 2001, 18(2):20-30.
[ 13] Shin D, Kim W, Jeon J, Kim J, et al.SL.SimDVS:An Integrated Simulation Environment for Performance Evaluation of Dynamic Voltage Scaling Algorithms[ C] //Proceedings ofWorkshop on Power-aware Computer Systems(PACS 2002).February, 2002.
[ 14] Shin Y, Choi K, Sakurai T.Power Optimization of Real-time Embedded Systemson Variable Speed Processors[ C] //Proceedingsof the International Conference on Computer-aided Design.November, 2000:365-368.
[ 15] Irani S, Shukla S, Gupta R.Algorithms for Power Savings[ C] //Proceedingsof Symposium on Discrete Algorithms.January, 2003.
[ 16] Lee Y, Reddy K P, Krishna CM.Scheduling Techniques for Reducing Leakage Power in Hard Real-time Systems[ C] //EcuroMicro Conference on Real Time Systems, 2003.