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