嵌入式Linux系統的動(dòng)態(tài)電源管理技術(shù)
3.2平臺動(dòng)態(tài)電源管理設計
在Linux架構下實(shí)現電源管理內核模塊需要實(shí)現一個(gè)應用層和操作系統的接口,一個(gè)為多個(gè)硬件平臺提供通用電源管理邏輯控制框架的硬件無(wú)關(guān)層,以及一個(gè)管理特定硬件電源控制接口的平臺相關(guān)電源控制層。
3.2.1 內核模塊控制模型
模型主要由操作點(diǎn)、管理類(lèi)、管理策略等組成。
?、儆秒娫垂芾聿僮鼽c(diǎn)對應平臺硬件相關(guān)參數。例如,TIOMAPl610參考開(kāi)發(fā)板有多個(gè)參數:CPU電壓、DPLL頻率控制(通過(guò)倍頻器和分頻器兩個(gè)參數)、CPU頻率控制、TC交通控制器、外部設備控制、DSP運行頻率、DSP的MMU單元頻率和LCD刷新頻率。如果使用TI的DSP代碼,則后四個(gè)參數為不可控,均使用默認值,如表1所列。
其中,“192 MHz—1.5 V”操作點(diǎn)參數“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).
?、陬?lèi):多個(gè)操作點(diǎn)組成一個(gè)管理類(lèi)。
?、鄄呗裕憾鄠€(gè)或一個(gè)類(lèi)組成策略。
一般可以簡(jiǎn)化系統模型,直接將DPM策略映射到一個(gè)系統操作狀態(tài)下特定的DPM操作點(diǎn),如表2所列。復雜點(diǎn)系統可以考慮將DPM策略映射到一個(gè)多操作點(diǎn)的DPM管理類(lèi),再根據操作狀態(tài)切換時(shí)選擇管理類(lèi)中滿(mǎn)足約束的第一個(gè)操作點(diǎn)。
表2中策略映射到四個(gè)操作點(diǎn),分別對應“sleep”、 “idle”、“task-1”、“task”四種電源狀態(tài)。除非用戶(hù)加以改變,否則系統fork創(chuàng )建的任務(wù)默認運行在DPM-TASK-STATE狀態(tài),對應表2中task狀態(tài),其操作點(diǎn)為192 MHz-1.5 V。
通過(guò)這種結構,電源管理系統把系統創(chuàng )建的任務(wù)和具體的電源管理硬件單元參數連接起來(lái),為任務(wù)間精細電源管理提供一個(gè)框架。
3.2.2內核功能實(shí)現
如圖2所示,DPM軟件實(shí)現可以分為應用層、內核層、硬件設備等幾個(gè)部分。其中內核層又可以分為接口層,硬件無(wú)關(guān)層和內核硬件相關(guān)層(圖2中虛線(xiàn)部分),可以分為以下幾個(gè)方面來(lái)描述。
第一,用戶(hù)層可以通過(guò)內核提供的sysfs文件系統和設備驅動(dòng)模型(LDM)接口來(lái)進(jìn)行電源管理。DPM實(shí)現還提供Proc接口來(lái)實(shí)現電源管理的命令;也可以通過(guò)增加系統調用接口使用戶(hù)程序更容易調用DPM功能。
通過(guò)修改任務(wù)切換宏switch_tO,添加dpm_set_OS(task_dpm_ state)接口,然后電源管理引擎將當前任務(wù)電源狀態(tài)設置到硬件參數。
第二,內核硬件無(wú)關(guān)層提供電源管理邏輯控制框架。電源管理引擎主要實(shí)現API調用,選擇操作點(diǎn),提供操作點(diǎn)設置的同步和異步邏輯等。
設備電源管理模塊還實(shí)現設備驅動(dòng)約束,通過(guò)LDM接口管理設備時(shí)鐘和電源,提供掛起和恢復控制。 設備時(shí)鐘電源關(guān)層主要對應系統的各種總線(xiàn)和設備時(shí)鐘電源參數管理。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂) 分頻器相關(guān)文章:分頻器原理
評論