嵌入式Linux系統的動態電源管理技術
發布時間:2007/8/30 0:00:00 訪問次數:467
通過用戶層制定策略與內核提供管理功能交互,實時調整電源參數而同時滿足系統實時應用的需求,允許電源管理參數在短時間的空閑或任務運行在低電源需求時,可以被頻繁地、低延遲地調整,從而實現更精細、更智能的電源管理。
1 動態電源管理原理
CMOS電路的總功耗是活動功耗與靜態功耗之和。當電路工作或邏輯狀態轉換時會產生活動功耗,未發生轉換時晶體管漏電流會造成靜態功耗:
式中C為電容,fc為開關頻率,Vdd為電源電壓,IQ為漏電流。C·Vdd·fc為活動功耗;VddIQ為靜態功耗。在操作系統級的電源管理設計實現中,重點是活動功耗。從中可以得出幾種管理活動功耗的方法:
①電壓/時鐘調節。通過降低電壓和時鐘來減少活動功耗和靜態功耗。
②時鐘選通。停止電路時鐘,即設fc為O,讓Pactive為0。將時鐘從不用的電路模塊斷開,減少活動功耗。許多CPU都有“閑置”或“停止”指令,一些處理器還可通過門控關閉非CPU時鐘模塊,如高速緩存、DMA外設等。
③電源供應選通。斷開電路中不使用的模塊電源供應。這種方法需要考慮重新恢復該模塊的代價。
前者電源狀態是DPM_NO_STATE,不作電源管理;后者對功率敏感,在被調度時(參見圖1)可以通過DPM來設置其電源管理狀態,要求運行在不同的電源級別。本文重點描述平臺動態電源管理和設備電源管理兩類,并將設備電源管理視為動態電源管理的組成部分。
1.1平臺動態電源管理設計
在Linux架構下實現電源管理內核模塊需要實現一個應用層和操作系統的接口,一個為多個硬件平臺提供通用電源管理邏輯控制框架的硬件無關層,以及一個管理特定硬件電源控制接口的平臺相關電源控制層。
1.1.1 內核模塊控制模型
模型主要由操作點、管理類、管理策略等組成。
①用電源管理操作點對應平臺硬件相關參數。例如,TIOMAPl610參考開發板有多個參數:CPU電壓、DPLL頻率控制(通過倍頻器和分頻器兩個參數)、CPU頻率控制、TC交通控制器、外部設備控制、DSP運行頻率、DSP的MMU單元頻率和LCD刷新頻率。如果使用TI的DSP代碼,則后四個參數為不可控,均使用默認值,如表1所列。
其中,“192 MHz—1.5 V”操作點參數“1 500”表示OMAP3.2核心電壓為1 500 mV;“16”表示DPLL頻率控制12 MHz晶振輸入16倍頻;“1”表示分頻為1;“1”表示OMAP3.2核心分頻為1(所以它運行在192 MHz)“2”表示TC(交通控制器)分頻為2(所以它運行在96 MHz).
②類:多個操作點組成一個管理類。
③策略:多個或一個類組成策略。
一般可以簡化系統模型,直接將DPM策略映射到一個系統操作狀態下特定的DPM操作點,如表2所列。復雜點系統可以考慮將DPM策略映射到一個多操作點的DPM管理類,再根據操作狀態切換時選擇管理類中滿足約束的第一個操作點。
表2中策略映射到四個操作點,分別對應“sleep”、 “idle”、“task-1”、“task”四種電源狀態。除非用戶加以改變,否則系統fork創建的任務默認運行在DPM-TASK-STATE狀態,對應表2中task狀態,其操作點為192 MHz-1.5 V。
通過這種結構,電源管理系統把系統創建的任務和具體的電源管理硬件單元參數連接起來,為任務間精細電源管理提供一個框架。
1.1.2內核功能實現
如圖2所示,DPM軟件實現可以分為應用層、內核層、硬件設備等幾個部分。其中內核層又可以分為接口層,硬件無關層和內核硬件相關層(圖2中虛線部分),可以分為以下幾個方面來描述。
通過用戶層制定策略與內核提供管理功能交互,實時調整電源參數而同時滿足系統實時應用的需求,允許電源管理參數在短時間的空閑或任務運行在低電源需求時,可以被頻繁地、低延遲地調整,從而實現更精細、更智能的電源管理。 1 動態電源管理原理 CMOS電路的總功耗是活動功耗與靜態功耗之和。當電路工作或邏輯狀態轉換時會產生活動功耗,未發生轉換時晶體管漏電流會造成靜態功耗: 式中C為電容,fc為開關頻率,Vdd為電源電壓,IQ為漏電流。C·Vdd·fc為活動功耗;VddIQ為靜態功耗。在操作系統級的電源管理設計實現中,重點是活動功耗。從中可以得出幾種管理活動功耗的方法: ①電壓/時鐘調節。通過降低電壓和時鐘來減少活動功耗和靜態功耗。 ②時鐘選通。停止電路時鐘,即設fc為O,讓Pactive為0。將時鐘從不用的電路模塊斷開,減少活動功耗。許多CPU都有“閑置”或“停止”指令,一些處理器還可通過門控關閉非CPU時鐘模塊,如高速緩存、DMA外設等。 前者電源狀態是DPM_NO_STATE,不作電源管理;后者對功率敏感,在被調度時(參見圖1)可以通過DPM來設置其電源管理狀態,要求運行在不同的電源級別。本文重點描述平臺動態電源管理和設備電源管理兩類,并將設備電源管理視為動態電源管理的組成部分。 1.1平臺動態電源管理設計 在Linux架構下實現電源管理內核模塊需要實現一個應用層和操作系統的接口,一個為多個硬件平臺提供通用電源管理邏輯控制框架的硬件無關層,以及一個管理特定硬件電源控制接口的平臺相關電源控制層。 1.1.1 內核模塊控制模型 模型主要由操作點、管理類、管理策略等組成。 ①用電源管理操作點對應平臺硬件相關參數。例如,TIOMAPl610參考開發板有多個參數:CPU電壓、DPLL頻率控制(通過倍頻器和分頻器兩個參數)、CPU頻率控制、TC交通控制器、外部設備控制、DSP運行頻率、DSP的MMU單元頻率和LCD刷新頻率。如果使用TI的DSP代碼,則后四個參數為不可控,均使用默認值,如表1所列。 其中,“192 MHz—1.5 V”操作點參數“1 500”表示OMAP3.2核心電壓為1 500 mV;“16”表示DPLL頻率控制12 MHz晶振輸入16倍頻;“1”表示分頻為1;“1”表示OMAP3.2核心分頻為1(所以它運行在192 MHz)“2”表示TC(交通控制器)分頻為2(所以它運行在96 MHz). ②類:多個操作點組成一個管理類。 ③策略:多個或一個類組成策略。 一般可以簡化系統模型,直接將DPM策略映射到一個系統操作狀態下特定的DPM操作點,如表2所列。復雜點系統可以考慮將DPM策略映射到一個多操作點的DPM管理類,再根據操作狀態切換時選擇管理類中滿足約束的第一個操作點。 表2中策略映射到四個操作點,分別對應“sleep”、 “idle”、“task-1”、“task”四種電源狀態。除非用戶加以改變,否則系統fork創建的任務默認運行在DPM-TASK-STATE狀態,對應表2中task狀態,其操作點為192 MHz-1.5 V。 通過這種結構,電源管理系統把系統創建的任務和具體的電源管理硬件單元參數連接起來,為任務間精細電源管理提供一個框架。 1.1.2內核功能實現 如圖2所示,DPM軟件實現可以分為應用層、內核層、硬件設備等幾個部分。其中內核層又可以分為接口層,硬件無關層和內核硬件相關層(圖2中虛線部分),可以分為以下幾個方面來描述。
③電源供應選通。斷開電路中不使用的模塊電源供應。這種方法需要考慮重新恢復該模塊的代價。