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