RFID世界網(wǎng) >
技術(shù)文章 >
其他 >
正文
嵌入式系統(tǒng)的動(dòng)態(tài)電源管理架構(gòu)
作者:重慶郵電學(xué)院 夏 軍 鄭建宏
來源:RFID世界網(wǎng)
日期:2007-03-30 10:18:05
摘要:本文主要根據(jù)嵌入式系統(tǒng)的特點(diǎn),提出一個(gè)系統(tǒng)級的DPM構(gòu)架。 DPM構(gòu)架是結(jié)構(gòu)化的規(guī)則和機(jī)制來整合系統(tǒng)不同組件的DPM技術(shù)或者相關(guān)算法,使之能從整個(gè)系統(tǒng)的角度來著眼系統(tǒng)的電源管理問題,而不是僅僅局限于系統(tǒng)的某一組件。
1 簡介
隨著系統(tǒng)集成技術(shù)和無線通信技術(shù)的快速發(fā)展,嵌入式系統(tǒng)的應(yīng)用日趨網(wǎng)絡(luò)化。尤其是無線通信系統(tǒng)中,人們對嵌入式設(shè)備提出了更高的要求:除了提供基本的語音、數(shù)據(jù)通信等基本功能外,還需要事例復(fù)雜的多媒體應(yīng)用。這就要求嵌入式系統(tǒng)在滿足必要的實(shí)時(shí)性前提下,提供更高的計(jì)算性能和大容量的存儲(chǔ)空間;在這些系統(tǒng)一般都帶有電池部件并通過它向整個(gè)系統(tǒng)供電。滿足高性能要求的代價(jià)是更大的能量消耗,這就必須縮短電池的供電時(shí)間。大量研究證明,系統(tǒng)處于空閑的時(shí)間占整個(gè)運(yùn)行時(shí)間的相當(dāng)大一部分。電源管理就是為了減少系統(tǒng)在空閑時(shí)間的能量消耗,使嵌入式系統(tǒng)的有效能量供給率最大化,從而延長電池的供電時(shí)間。
為了延長電池的使用時(shí)間,在硬件領(lǐng)域,低功耗硬件電路的設(shè)計(jì)方法得到了廣泛應(yīng)用。然而僅僅利用低功耗硬件電路仍舊不夠,進(jìn)一步的,在系統(tǒng)設(shè)計(jì)技術(shù)中,提出了“動(dòng)態(tài)電源管理DPM(Dynamic Power Management)”的概念。在DPM中,普通的方法是把系統(tǒng)中不在使用的組件關(guān)閉或者進(jìn)入低功耗模式(待機(jī)模式),另外一種更加有效的方法就是動(dòng)態(tài)可變電壓DVS和動(dòng)態(tài)可變頻率DFS。通過在運(yùn)行時(shí)態(tài)動(dòng)態(tài)地調(diào)節(jié)CPU頻率或者電壓。可以在滿足瞬時(shí)性能的前提下,使得有效能量供給率最大化。
硬件上提供的低功耗機(jī)制,需要軟件實(shí)現(xiàn)上來發(fā)揮它的效能。理想的條件下,是希望在系統(tǒng)中,以“功率監(jiān)控(power-aware)”的方法,管理不同的系統(tǒng)資源(硬件和軟件上的資源),這樣才能滿足嵌入式系統(tǒng)高性能和低功耗的要求。據(jù)研究顯示,系統(tǒng)范圍內(nèi)能量的驟降,完全因?yàn)橄到y(tǒng)任務(wù)的工作負(fù)荷急劇增加和外設(shè)的頻繁利用。必然地,實(shí)時(shí)嵌入式操作系統(tǒng)就成了唯一理想的來實(shí)現(xiàn)軟件上的DPM。這是因?yàn)椋孩賹?shí)時(shí)嵌入式操作系統(tǒng)可以決策不同應(yīng)用任務(wù)的運(yùn)行,可以收集任務(wù)相關(guān)的實(shí)時(shí)限制信息和性能需求信息;②實(shí)時(shí)嵌入式操作系統(tǒng)可以直接控制底層的硬件,利用硬件提供的DPM技術(shù)或者機(jī)制。
本文主要根據(jù)嵌入式系統(tǒng)的特點(diǎn),提出一個(gè)系統(tǒng)級的DPM構(gòu)架。
2 DPM構(gòu)架需求
DPM構(gòu)架是結(jié)構(gòu)化的規(guī)則和機(jī)制來整合系統(tǒng)不同組件的DPM技術(shù)或者相關(guān)算法,使之能從整個(gè)系統(tǒng)的角度來著眼系統(tǒng)的電源管理問題,而不是僅僅局限于系統(tǒng)的某一組件。
①DPM構(gòu)架應(yīng)具有靈活性。由于嵌入式系統(tǒng)沒有一個(gè)開放式的統(tǒng)一標(biāo)準(zhǔn),因此DPM系統(tǒng)構(gòu)架應(yīng)具有靈活性,使之能在不同平臺(tái)中得到應(yīng)用。DPM系統(tǒng)盡管作為操作系統(tǒng)的一個(gè)獨(dú)立模塊,但是應(yīng)該和操作系統(tǒng)透明,上層的應(yīng)用通過DPM間接對硬件提供的電源管理機(jī)制進(jìn)行控制,無須考慮底層的硬件細(xì)節(jié)。
②DPM構(gòu)架需要收集系統(tǒng)的資源利用信息。DPM系統(tǒng)通過收集上層應(yīng)用的信息和設(shè)備的信息,利用這些信息作出決策,進(jìn)行整個(gè)系統(tǒng)范圍內(nèi)的電源管理。
③DPM應(yīng)支持普通任務(wù)和功能監(jiān)控任務(wù)并發(fā)管理機(jī)制。理想的情況下,對于每一個(gè)應(yīng)用都希望功率監(jiān)控,這樣可以大大降低系統(tǒng)的能耗。然而,實(shí)際中,應(yīng)用開發(fā)來自不同的廠商,大多數(shù)是對硬件透明的,因此實(shí)現(xiàn)每一個(gè)任務(wù)的功率監(jiān)控是非常困難的;只有少數(shù)關(guān)鍵程序,由嵌入式系統(tǒng)的設(shè)計(jì)者開發(fā)。因?yàn)樗麄兪煜び布奶匦裕梢詫?shí)現(xiàn)功率監(jiān)控,所以,在DPM系統(tǒng)中,應(yīng)用采取某種機(jī)制實(shí)現(xiàn)兩種混合任務(wù)的電源管理。
④DPM對外設(shè)管理應(yīng)具有透明性。外設(shè)狀態(tài)的變化應(yīng)該做到和上層應(yīng)用的DPM策略無關(guān),不會(huì)因?yàn)橥庠O(shè)狀態(tài)的變化,而影響上層所采用的DPM策略的變化。
⑤DPM構(gòu)架應(yīng)支持硬件提供的電源管理機(jī)制和技術(shù)。比如DVS、DFS,系統(tǒng)的不同電源模式(活動(dòng)、睡眠、冬眼),外設(shè)的時(shí)鐘管理,外設(shè)的自動(dòng)睡眠技術(shù)等等。
3 DPM構(gòu)架描述
首先需要明確的是,DPM不是DVS算法,也不是功率監(jiān)控的操作系統(tǒng),更不是類似ACPI的電源管理控制機(jī)制。它其實(shí)是一個(gè)操作系統(tǒng)模塊,負(fù)責(zé)管理運(yùn)行時(shí)態(tài)的電源管理。DPM策略管理者和應(yīng)用程序通過簡單的API和該模塊交互。盡管沒有ACPI應(yīng)用廣泛,DPM架構(gòu)卻可以對設(shè)備和設(shè)備驅(qū)動(dòng)進(jìn)行管理,這樣就適合對高整合的SoC處理器進(jìn)行有效的電源管理。
本文提出的DPM是以策略框架(policy framework)為中心的軟件結(jié)構(gòu)。其中包含幾個(gè)重要的概念:操作點(diǎn)(operationg point)、操作狀態(tài)(operationg state)、策略(policy)、約束(constraint)。
(1)操作點(diǎn)
在給定時(shí)間點(diǎn)上,系統(tǒng)運(yùn)行在某個(gè)特定操作點(diǎn)上。操作點(diǎn)封裝了最小的、相互關(guān)聯(lián)的、物理的離散參數(shù)集合。一般來說,參數(shù)主要是CPU的頻率、電壓、電源管理模式、總線頻率和不同外設(shè)狀態(tài)等。一旦確定了操作點(diǎn),也就確定了整個(gè)系統(tǒng)的性能等級和與之關(guān)聯(lián)的能耗等級。操作點(diǎn)由系統(tǒng)的設(shè)計(jì)者定義,在定義的時(shí)候必須注意到參數(shù)間的相關(guān)性和合理性。比如,在某種特定電源管理模式下,CPU的最高核心電壓被限制,而在核心電壓的限制下,可變頻CPU的工作頻率不能超過一個(gè)最大值。對于支持多操作點(diǎn)的嵌入式系統(tǒng),當(dāng)某個(gè)事件發(fā)生時(shí),系統(tǒng)會(huì)從有一個(gè)操作點(diǎn)切換到另一個(gè)操作點(diǎn)。這樣就需要定義一種機(jī)制,來管理不同操作點(diǎn)的切換。對于這一點(diǎn),會(huì)在后面的操作點(diǎn)類型和設(shè)備管理中詳細(xì)描述。在策略框架結(jié)構(gòu)中,操作點(diǎn)是最底層的抽象對象。
在OMAP1612中包含兩個(gè)內(nèi)核:ARM926EJS和C5510(DSP)。ARM內(nèi)核負(fù)責(zé)整個(gè)系統(tǒng)的管理、無線通信協(xié)議棧和應(yīng)用程序的運(yùn)行;DSP內(nèi)核負(fù)責(zé)與無線通信相關(guān)的數(shù)字信號處理。其中,ULPD(Ultralow-Power-Device)模塊提供了芯片級的電源管理機(jī)制,包括時(shí)鐘、電壓、省電模式的管理。UPLD分為三個(gè)不同的工作模式—Deep Sleep、Big Sleep和Awake,分別對應(yīng)不同的能耗等級。TC(Traffic Controller)負(fù)責(zé)管理相關(guān)存儲(chǔ)器接口。
(2)操作狀態(tài)
如果把操作點(diǎn)比喻為點(diǎn)的話,操作狀態(tài)就是一個(gè)面。在多操作點(diǎn)的系統(tǒng)下,操作狀態(tài)與操作點(diǎn)的關(guān)系是一對多的關(guān)系。引入操作狀態(tài)的動(dòng)機(jī)主要有兩個(gè)考慮。
①為了利用DVS和DFS,需要實(shí)時(shí)監(jiān)控系統(tǒng)的工作負(fù)荷,但是工作負(fù)荷是一個(gè)連續(xù)值,而操作點(diǎn)卻是離散的。極端的情況下,可以為不同的工作負(fù)荷定主不同的操作點(diǎn):但是,由于硬件上改變頻率和電壓都存在延遲和多余的能量消耗,如果頻繁地改變操作點(diǎn),效果卻適得其反,因此需要對工作負(fù)荷的范圍進(jìn)行劃分。在實(shí)際情況下,系統(tǒng)的工作負(fù)荷和操作系統(tǒng)的狀態(tài)緊密相磁。一般可以把操作系統(tǒng)看作一個(gè)狀態(tài)機(jī),操作系統(tǒng)通過事件的觸發(fā),在沒的狀態(tài)音間切換。簡單地,可以把操作系統(tǒng)的狀態(tài)與操作狀態(tài)一一對應(yīng)。由于處于“空閑”和“調(diào)度”,對應(yīng)不同的工作量范圍,映射不同的操作點(diǎn)。當(dāng)然可以對“調(diào)度”狀態(tài)再進(jìn)行劃分。
②作為功率監(jiān)控的任務(wù),它可以配置特定一個(gè)或者多個(gè)操作點(diǎn),但是為了維持底層硬件細(xì)節(jié)對任務(wù)的透明性,通過設(shè)置操作狀態(tài)來間接指定操作點(diǎn),體現(xiàn)了DPM構(gòu)架的靈活性。為了滿足這樣的需求,DPM構(gòu)架中引入了“任務(wù)狀態(tài)(task state)”的概念。對于功率監(jiān)控的任務(wù)來說,可以在自己的代碼空間中,根據(jù)任務(wù)本身的運(yùn)行狀況設(shè)置該任務(wù)自己的任務(wù)狀態(tài),而任務(wù)狀態(tài)作為特定的操作狀態(tài)在系統(tǒng)初始化的時(shí)候登記到DPM中。當(dāng)在操作系統(tǒng)任務(wù)上下文調(diào)度切換的時(shí)候,根據(jù)任務(wù)狀態(tài),直接調(diào)用DPM的相關(guān)例程,應(yīng)用新的操作狀態(tài);對于普通的任務(wù),在“任務(wù)狀態(tài)”操作中配置參數(shù)“NO STATE”。“NO?。樱裕粒裕拧北硎緵]有特定的任務(wù)狀態(tài),即不改變系統(tǒng)當(dāng)前的操作點(diǎn).那么,該任務(wù)的運(yùn)行在上下文切換時(shí),能保持原有的操作狀態(tài)。
由于要同時(shí)管理普通任務(wù)和功率監(jiān)控任務(wù),在上下文切換設(shè)置操作狀態(tài)的最低點(diǎn)必然會(huì)出現(xiàn)DVS算法和應(yīng)用頻率監(jiān)控任務(wù)狀態(tài)的矛盾。為了解決這個(gè)問題,需要引入操作狀態(tài)優(yōu)先級機(jī)制。在實(shí)現(xiàn)中,功率監(jiān)控的任務(wù)狀態(tài)對應(yīng)的操作狀態(tài)優(yōu)先級高于DVS算法配置的操作狀態(tài)。這樣,在上述矛質(zhì)出現(xiàn)的時(shí)候,優(yōu)先應(yīng)用功率監(jiān)控任務(wù)配置的操作狀態(tài)。
根據(jù)操作系統(tǒng)運(yùn)行的狀態(tài),簡單地定義了五種操作狀態(tài)——空閑、任務(wù)-、任務(wù)+、任務(wù)、睡眠,并且給出了操作狀態(tài)之間的狀態(tài)遷移,如圖1所示。特別地,當(dāng)操作系統(tǒng)處于中斷狀態(tài)時(shí),并不為其定義特定的操作狀態(tài),而是通過把中斷處理例程的任務(wù)狀態(tài)定義為“NO?。樱裕粒裕拧眮韺?shí)現(xiàn)。
(3)策略和策略管理者
DPM最高級的抽象對象是策略。定義一個(gè)策略就是定義每個(gè)操作狀態(tài)所映射的操作點(diǎn)。在系統(tǒng)中,對某個(gè)電源管理方案必須至少定義一個(gè)策略,也可以根據(jù)不同情況不定期義多策略。在多策略電源方案中,需要策略管理器來協(xié)調(diào)不同的策略。策略管理器可以從操作系統(tǒng)、用戶調(diào)用、運(yùn)行程序、物理設(shè)備收集信息從而作出策略決策。策略管理器的位置(用戶空間和內(nèi)核空間)、所收集信息的內(nèi)容和形式以及相應(yīng)的操作,需要系統(tǒng)的DPM設(shè)計(jì)者來定義和實(shí)現(xiàn)。
(4)設(shè)備管理和同等操作點(diǎn)類
在DPM架構(gòu)中,策略管理者不會(huì)直接對設(shè)備的狀態(tài)進(jìn)行管理,而是通過底層的設(shè)備驅(qū)動(dòng)來管理設(shè)備的能耗。在某個(gè)操作狀態(tài)下,映射一類可以在該狀態(tài)下能被系統(tǒng)接受的操作點(diǎn)。在該狀態(tài)下,當(dāng)某個(gè)睡眠的設(shè)備需要被喚醒的時(shí)候,通過驅(qū)動(dòng)對DPM聲明約束(constraints),接著DPM在這一類的操作點(diǎn)中選擇另外一個(gè)操作點(diǎn),使得該操作點(diǎn)下,該設(shè)備能夠正常工作,選擇的機(jī)制可以在策略中定義。簡單的方法是選擇該類中合法的(滿足約束條件)能耗最低的操作點(diǎn),或者是特別指不定期某個(gè)操作點(diǎn)。
4 DPM模塊實(shí)現(xiàn)
在實(shí)時(shí)嵌入式操作系統(tǒng)Nucleus微內(nèi)核中實(shí)現(xiàn)了DPM模塊,采用的平臺(tái)是基于TI?。希停粒校保叮保驳模裕模樱茫模停翢o線終端參考設(shè)計(jì)(32MB?。模模遥粒停?76×220 16bpp TFT液晶顯示屏,USB和其它外設(shè))。圖2是整合DPM的操作系統(tǒng)結(jié)構(gòu)。
在DPM模塊中,整合了策略管理、功率監(jiān)控調(diào)度器(power-aware scheduler)、工作負(fù)荷監(jiān)控器、操作狀態(tài)管理器、操作點(diǎn)管理、約束管理六個(gè)子模塊。其中,功率監(jiān)控調(diào)度器和工作負(fù)荷監(jiān)控器嵌入到內(nèi)核的上下文切換中,工作負(fù)荷監(jiān)控器通過計(jì)算操作系統(tǒng)處于空閑調(diào)度的時(shí)間和采樣周期的比值來表征CPU的工作負(fù)荷,然后把這個(gè)值傳遞給功率監(jiān)控調(diào)度器,通過內(nèi)部整合“動(dòng)態(tài)減慢因子”DVS算法,預(yù)測下一任務(wù)的工作負(fù)荷,并設(shè)置與之相對應(yīng)的操作狀態(tài)。其它四個(gè)模塊分別對構(gòu)架中的抽象對象操作點(diǎn)、約束、操作狀態(tài)、策略進(jìn)行管理。特別地,策略管理的核心是策略管理者,它以一個(gè)獨(dú)立線程的形式運(yùn)行在內(nèi)核空間。
5 結(jié)論
經(jīng)過測試,整合DPM的TD-SCDMA無線終端平均能耗下降了50%。其中在操作點(diǎn)High Active時(shí),電流為400mA左右,而在操作點(diǎn)Sleep時(shí)降到了200mA左右;如果應(yīng)用操作點(diǎn)Deep Sleep(關(guān)閉ARM、DSP和所有設(shè)備,維持一個(gè)32kHz的時(shí)鐘)電流甚至可以降到10~20mA,完全滿足長時(shí)間待機(jī)。實(shí)驗(yàn)表明,利用DPM構(gòu)架,可以對3G無線終端實(shí)行之有效的動(dòng)態(tài)電源管理。隨著半導(dǎo)體技術(shù)、應(yīng)用程序優(yōu)化技術(shù)以及高粒度時(shí)鐘門控和電壓門控技術(shù)的發(fā)展,為提升嵌入式系統(tǒng)的有效能量供給率提供了可能。利用這些新技術(shù)繼續(xù)開發(fā)和改進(jìn)DPM架構(gòu)和實(shí)現(xiàn),正是今后研究的方向和重點(diǎn)。
隨著系統(tǒng)集成技術(shù)和無線通信技術(shù)的快速發(fā)展,嵌入式系統(tǒng)的應(yīng)用日趨網(wǎng)絡(luò)化。尤其是無線通信系統(tǒng)中,人們對嵌入式設(shè)備提出了更高的要求:除了提供基本的語音、數(shù)據(jù)通信等基本功能外,還需要事例復(fù)雜的多媒體應(yīng)用。這就要求嵌入式系統(tǒng)在滿足必要的實(shí)時(shí)性前提下,提供更高的計(jì)算性能和大容量的存儲(chǔ)空間;在這些系統(tǒng)一般都帶有電池部件并通過它向整個(gè)系統(tǒng)供電。滿足高性能要求的代價(jià)是更大的能量消耗,這就必須縮短電池的供電時(shí)間。大量研究證明,系統(tǒng)處于空閑的時(shí)間占整個(gè)運(yùn)行時(shí)間的相當(dāng)大一部分。電源管理就是為了減少系統(tǒng)在空閑時(shí)間的能量消耗,使嵌入式系統(tǒng)的有效能量供給率最大化,從而延長電池的供電時(shí)間。
為了延長電池的使用時(shí)間,在硬件領(lǐng)域,低功耗硬件電路的設(shè)計(jì)方法得到了廣泛應(yīng)用。然而僅僅利用低功耗硬件電路仍舊不夠,進(jìn)一步的,在系統(tǒng)設(shè)計(jì)技術(shù)中,提出了“動(dòng)態(tài)電源管理DPM(Dynamic Power Management)”的概念。在DPM中,普通的方法是把系統(tǒng)中不在使用的組件關(guān)閉或者進(jìn)入低功耗模式(待機(jī)模式),另外一種更加有效的方法就是動(dòng)態(tài)可變電壓DVS和動(dòng)態(tài)可變頻率DFS。通過在運(yùn)行時(shí)態(tài)動(dòng)態(tài)地調(diào)節(jié)CPU頻率或者電壓。可以在滿足瞬時(shí)性能的前提下,使得有效能量供給率最大化。
硬件上提供的低功耗機(jī)制,需要軟件實(shí)現(xiàn)上來發(fā)揮它的效能。理想的條件下,是希望在系統(tǒng)中,以“功率監(jiān)控(power-aware)”的方法,管理不同的系統(tǒng)資源(硬件和軟件上的資源),這樣才能滿足嵌入式系統(tǒng)高性能和低功耗的要求。據(jù)研究顯示,系統(tǒng)范圍內(nèi)能量的驟降,完全因?yàn)橄到y(tǒng)任務(wù)的工作負(fù)荷急劇增加和外設(shè)的頻繁利用。必然地,實(shí)時(shí)嵌入式操作系統(tǒng)就成了唯一理想的來實(shí)現(xiàn)軟件上的DPM。這是因?yàn)椋孩賹?shí)時(shí)嵌入式操作系統(tǒng)可以決策不同應(yīng)用任務(wù)的運(yùn)行,可以收集任務(wù)相關(guān)的實(shí)時(shí)限制信息和性能需求信息;②實(shí)時(shí)嵌入式操作系統(tǒng)可以直接控制底層的硬件,利用硬件提供的DPM技術(shù)或者機(jī)制。
本文主要根據(jù)嵌入式系統(tǒng)的特點(diǎn),提出一個(gè)系統(tǒng)級的DPM構(gòu)架。
2 DPM構(gòu)架需求
DPM構(gòu)架是結(jié)構(gòu)化的規(guī)則和機(jī)制來整合系統(tǒng)不同組件的DPM技術(shù)或者相關(guān)算法,使之能從整個(gè)系統(tǒng)的角度來著眼系統(tǒng)的電源管理問題,而不是僅僅局限于系統(tǒng)的某一組件。
①DPM構(gòu)架應(yīng)具有靈活性。由于嵌入式系統(tǒng)沒有一個(gè)開放式的統(tǒng)一標(biāo)準(zhǔn),因此DPM系統(tǒng)構(gòu)架應(yīng)具有靈活性,使之能在不同平臺(tái)中得到應(yīng)用。DPM系統(tǒng)盡管作為操作系統(tǒng)的一個(gè)獨(dú)立模塊,但是應(yīng)該和操作系統(tǒng)透明,上層的應(yīng)用通過DPM間接對硬件提供的電源管理機(jī)制進(jìn)行控制,無須考慮底層的硬件細(xì)節(jié)。
②DPM構(gòu)架需要收集系統(tǒng)的資源利用信息。DPM系統(tǒng)通過收集上層應(yīng)用的信息和設(shè)備的信息,利用這些信息作出決策,進(jìn)行整個(gè)系統(tǒng)范圍內(nèi)的電源管理。
③DPM應(yīng)支持普通任務(wù)和功能監(jiān)控任務(wù)并發(fā)管理機(jī)制。理想的情況下,對于每一個(gè)應(yīng)用都希望功率監(jiān)控,這樣可以大大降低系統(tǒng)的能耗。然而,實(shí)際中,應(yīng)用開發(fā)來自不同的廠商,大多數(shù)是對硬件透明的,因此實(shí)現(xiàn)每一個(gè)任務(wù)的功率監(jiān)控是非常困難的;只有少數(shù)關(guān)鍵程序,由嵌入式系統(tǒng)的設(shè)計(jì)者開發(fā)。因?yàn)樗麄兪煜び布奶匦裕梢詫?shí)現(xiàn)功率監(jiān)控,所以,在DPM系統(tǒng)中,應(yīng)用采取某種機(jī)制實(shí)現(xiàn)兩種混合任務(wù)的電源管理。
④DPM對外設(shè)管理應(yīng)具有透明性。外設(shè)狀態(tài)的變化應(yīng)該做到和上層應(yīng)用的DPM策略無關(guān),不會(huì)因?yàn)橥庠O(shè)狀態(tài)的變化,而影響上層所采用的DPM策略的變化。
⑤DPM構(gòu)架應(yīng)支持硬件提供的電源管理機(jī)制和技術(shù)。比如DVS、DFS,系統(tǒng)的不同電源模式(活動(dòng)、睡眠、冬眼),外設(shè)的時(shí)鐘管理,外設(shè)的自動(dòng)睡眠技術(shù)等等。
3 DPM構(gòu)架描述
首先需要明確的是,DPM不是DVS算法,也不是功率監(jiān)控的操作系統(tǒng),更不是類似ACPI的電源管理控制機(jī)制。它其實(shí)是一個(gè)操作系統(tǒng)模塊,負(fù)責(zé)管理運(yùn)行時(shí)態(tài)的電源管理。DPM策略管理者和應(yīng)用程序通過簡單的API和該模塊交互。盡管沒有ACPI應(yīng)用廣泛,DPM架構(gòu)卻可以對設(shè)備和設(shè)備驅(qū)動(dòng)進(jìn)行管理,這樣就適合對高整合的SoC處理器進(jìn)行有效的電源管理。
本文提出的DPM是以策略框架(policy framework)為中心的軟件結(jié)構(gòu)。其中包含幾個(gè)重要的概念:操作點(diǎn)(operationg point)、操作狀態(tài)(operationg state)、策略(policy)、約束(constraint)。
(1)操作點(diǎn)
在給定時(shí)間點(diǎn)上,系統(tǒng)運(yùn)行在某個(gè)特定操作點(diǎn)上。操作點(diǎn)封裝了最小的、相互關(guān)聯(lián)的、物理的離散參數(shù)集合。一般來說,參數(shù)主要是CPU的頻率、電壓、電源管理模式、總線頻率和不同外設(shè)狀態(tài)等。一旦確定了操作點(diǎn),也就確定了整個(gè)系統(tǒng)的性能等級和與之關(guān)聯(lián)的能耗等級。操作點(diǎn)由系統(tǒng)的設(shè)計(jì)者定義,在定義的時(shí)候必須注意到參數(shù)間的相關(guān)性和合理性。比如,在某種特定電源管理模式下,CPU的最高核心電壓被限制,而在核心電壓的限制下,可變頻CPU的工作頻率不能超過一個(gè)最大值。對于支持多操作點(diǎn)的嵌入式系統(tǒng),當(dāng)某個(gè)事件發(fā)生時(shí),系統(tǒng)會(huì)從有一個(gè)操作點(diǎn)切換到另一個(gè)操作點(diǎn)。這樣就需要定義一種機(jī)制,來管理不同操作點(diǎn)的切換。對于這一點(diǎn),會(huì)在后面的操作點(diǎn)類型和設(shè)備管理中詳細(xì)描述。在策略框架結(jié)構(gòu)中,操作點(diǎn)是最底層的抽象對象。
在OMAP1612中包含兩個(gè)內(nèi)核:ARM926EJS和C5510(DSP)。ARM內(nèi)核負(fù)責(zé)整個(gè)系統(tǒng)的管理、無線通信協(xié)議棧和應(yīng)用程序的運(yùn)行;DSP內(nèi)核負(fù)責(zé)與無線通信相關(guān)的數(shù)字信號處理。其中,ULPD(Ultralow-Power-Device)模塊提供了芯片級的電源管理機(jī)制,包括時(shí)鐘、電壓、省電模式的管理。UPLD分為三個(gè)不同的工作模式—Deep Sleep、Big Sleep和Awake,分別對應(yīng)不同的能耗等級。TC(Traffic Controller)負(fù)責(zé)管理相關(guān)存儲(chǔ)器接口。
(2)操作狀態(tài)
如果把操作點(diǎn)比喻為點(diǎn)的話,操作狀態(tài)就是一個(gè)面。在多操作點(diǎn)的系統(tǒng)下,操作狀態(tài)與操作點(diǎn)的關(guān)系是一對多的關(guān)系。引入操作狀態(tài)的動(dòng)機(jī)主要有兩個(gè)考慮。
①為了利用DVS和DFS,需要實(shí)時(shí)監(jiān)控系統(tǒng)的工作負(fù)荷,但是工作負(fù)荷是一個(gè)連續(xù)值,而操作點(diǎn)卻是離散的。極端的情況下,可以為不同的工作負(fù)荷定主不同的操作點(diǎn):但是,由于硬件上改變頻率和電壓都存在延遲和多余的能量消耗,如果頻繁地改變操作點(diǎn),效果卻適得其反,因此需要對工作負(fù)荷的范圍進(jìn)行劃分。在實(shí)際情況下,系統(tǒng)的工作負(fù)荷和操作系統(tǒng)的狀態(tài)緊密相磁。一般可以把操作系統(tǒng)看作一個(gè)狀態(tài)機(jī),操作系統(tǒng)通過事件的觸發(fā),在沒的狀態(tài)音間切換。簡單地,可以把操作系統(tǒng)的狀態(tài)與操作狀態(tài)一一對應(yīng)。由于處于“空閑”和“調(diào)度”,對應(yīng)不同的工作量范圍,映射不同的操作點(diǎn)。當(dāng)然可以對“調(diào)度”狀態(tài)再進(jìn)行劃分。
②作為功率監(jiān)控的任務(wù),它可以配置特定一個(gè)或者多個(gè)操作點(diǎn),但是為了維持底層硬件細(xì)節(jié)對任務(wù)的透明性,通過設(shè)置操作狀態(tài)來間接指定操作點(diǎn),體現(xiàn)了DPM構(gòu)架的靈活性。為了滿足這樣的需求,DPM構(gòu)架中引入了“任務(wù)狀態(tài)(task state)”的概念。對于功率監(jiān)控的任務(wù)來說,可以在自己的代碼空間中,根據(jù)任務(wù)本身的運(yùn)行狀況設(shè)置該任務(wù)自己的任務(wù)狀態(tài),而任務(wù)狀態(tài)作為特定的操作狀態(tài)在系統(tǒng)初始化的時(shí)候登記到DPM中。當(dāng)在操作系統(tǒng)任務(wù)上下文調(diào)度切換的時(shí)候,根據(jù)任務(wù)狀態(tài),直接調(diào)用DPM的相關(guān)例程,應(yīng)用新的操作狀態(tài);對于普通的任務(wù),在“任務(wù)狀態(tài)”操作中配置參數(shù)“NO STATE”。“NO?。樱裕粒裕拧北硎緵]有特定的任務(wù)狀態(tài),即不改變系統(tǒng)當(dāng)前的操作點(diǎn).那么,該任務(wù)的運(yùn)行在上下文切換時(shí),能保持原有的操作狀態(tài)。
由于要同時(shí)管理普通任務(wù)和功率監(jiān)控任務(wù),在上下文切換設(shè)置操作狀態(tài)的最低點(diǎn)必然會(huì)出現(xiàn)DVS算法和應(yīng)用頻率監(jiān)控任務(wù)狀態(tài)的矛盾。為了解決這個(gè)問題,需要引入操作狀態(tài)優(yōu)先級機(jī)制。在實(shí)現(xiàn)中,功率監(jiān)控的任務(wù)狀態(tài)對應(yīng)的操作狀態(tài)優(yōu)先級高于DVS算法配置的操作狀態(tài)。這樣,在上述矛質(zhì)出現(xiàn)的時(shí)候,優(yōu)先應(yīng)用功率監(jiān)控任務(wù)配置的操作狀態(tài)。
根據(jù)操作系統(tǒng)運(yùn)行的狀態(tài),簡單地定義了五種操作狀態(tài)——空閑、任務(wù)-、任務(wù)+、任務(wù)、睡眠,并且給出了操作狀態(tài)之間的狀態(tài)遷移,如圖1所示。特別地,當(dāng)操作系統(tǒng)處于中斷狀態(tài)時(shí),并不為其定義特定的操作狀態(tài),而是通過把中斷處理例程的任務(wù)狀態(tài)定義為“NO?。樱裕粒裕拧眮韺?shí)現(xiàn)。
(3)策略和策略管理者
DPM最高級的抽象對象是策略。定義一個(gè)策略就是定義每個(gè)操作狀態(tài)所映射的操作點(diǎn)。在系統(tǒng)中,對某個(gè)電源管理方案必須至少定義一個(gè)策略,也可以根據(jù)不同情況不定期義多策略。在多策略電源方案中,需要策略管理器來協(xié)調(diào)不同的策略。策略管理器可以從操作系統(tǒng)、用戶調(diào)用、運(yùn)行程序、物理設(shè)備收集信息從而作出策略決策。策略管理器的位置(用戶空間和內(nèi)核空間)、所收集信息的內(nèi)容和形式以及相應(yīng)的操作,需要系統(tǒng)的DPM設(shè)計(jì)者來定義和實(shí)現(xiàn)。
(4)設(shè)備管理和同等操作點(diǎn)類
在DPM架構(gòu)中,策略管理者不會(huì)直接對設(shè)備的狀態(tài)進(jìn)行管理,而是通過底層的設(shè)備驅(qū)動(dòng)來管理設(shè)備的能耗。在某個(gè)操作狀態(tài)下,映射一類可以在該狀態(tài)下能被系統(tǒng)接受的操作點(diǎn)。在該狀態(tài)下,當(dāng)某個(gè)睡眠的設(shè)備需要被喚醒的時(shí)候,通過驅(qū)動(dòng)對DPM聲明約束(constraints),接著DPM在這一類的操作點(diǎn)中選擇另外一個(gè)操作點(diǎn),使得該操作點(diǎn)下,該設(shè)備能夠正常工作,選擇的機(jī)制可以在策略中定義。簡單的方法是選擇該類中合法的(滿足約束條件)能耗最低的操作點(diǎn),或者是特別指不定期某個(gè)操作點(diǎn)。
4 DPM模塊實(shí)現(xiàn)
在實(shí)時(shí)嵌入式操作系統(tǒng)Nucleus微內(nèi)核中實(shí)現(xiàn)了DPM模塊,采用的平臺(tái)是基于TI?。希停粒校保叮保驳模裕模樱茫模停翢o線終端參考設(shè)計(jì)(32MB?。模模遥粒停?76×220 16bpp TFT液晶顯示屏,USB和其它外設(shè))。圖2是整合DPM的操作系統(tǒng)結(jié)構(gòu)。
在DPM模塊中,整合了策略管理、功率監(jiān)控調(diào)度器(power-aware scheduler)、工作負(fù)荷監(jiān)控器、操作狀態(tài)管理器、操作點(diǎn)管理、約束管理六個(gè)子模塊。其中,功率監(jiān)控調(diào)度器和工作負(fù)荷監(jiān)控器嵌入到內(nèi)核的上下文切換中,工作負(fù)荷監(jiān)控器通過計(jì)算操作系統(tǒng)處于空閑調(diào)度的時(shí)間和采樣周期的比值來表征CPU的工作負(fù)荷,然后把這個(gè)值傳遞給功率監(jiān)控調(diào)度器,通過內(nèi)部整合“動(dòng)態(tài)減慢因子”DVS算法,預(yù)測下一任務(wù)的工作負(fù)荷,并設(shè)置與之相對應(yīng)的操作狀態(tài)。其它四個(gè)模塊分別對構(gòu)架中的抽象對象操作點(diǎn)、約束、操作狀態(tài)、策略進(jìn)行管理。特別地,策略管理的核心是策略管理者,它以一個(gè)獨(dú)立線程的形式運(yùn)行在內(nèi)核空間。
5 結(jié)論
經(jīng)過測試,整合DPM的TD-SCDMA無線終端平均能耗下降了50%。其中在操作點(diǎn)High Active時(shí),電流為400mA左右,而在操作點(diǎn)Sleep時(shí)降到了200mA左右;如果應(yīng)用操作點(diǎn)Deep Sleep(關(guān)閉ARM、DSP和所有設(shè)備,維持一個(gè)32kHz的時(shí)鐘)電流甚至可以降到10~20mA,完全滿足長時(shí)間待機(jī)。實(shí)驗(yàn)表明,利用DPM構(gòu)架,可以對3G無線終端實(shí)行之有效的動(dòng)態(tài)電源管理。隨著半導(dǎo)體技術(shù)、應(yīng)用程序優(yōu)化技術(shù)以及高粒度時(shí)鐘門控和電壓門控技術(shù)的發(fā)展,為提升嵌入式系統(tǒng)的有效能量供給率提供了可能。利用這些新技術(shù)繼續(xù)開發(fā)和改進(jìn)DPM架構(gòu)和實(shí)現(xiàn),正是今后研究的方向和重點(diǎn)。