Linux在消費電子領域的應用相當普遍,而對于消費電子產(chǎn)品,省電是一個重要的議題。下面是電源管理的全局架構(gòu)。
Linux電源管理非常復雜,牽扯到系統(tǒng)級的待機、頻率電壓變換、系統(tǒng)空閑時的處理以及每個設備驅(qū)動對于系統(tǒng)待機的支持和每個設備的運行時電源管理,可以說和系統(tǒng)中的每個設備驅(qū)動都息息相關。
對于消費電子產(chǎn)品來說,電源管理相當重要。因此,這部分工作往往在開發(fā)周期中占據(jù)相當大的比重,圖1呈現(xiàn)了Linux內(nèi)核電源管理的整體架構(gòu)。大體可以歸納為如下幾類:
1. CPU在運行時根據(jù)系統(tǒng)負載進行動態(tài)電壓和頻率變換的CPUFreq
2. CPU在系統(tǒng)空閑時根據(jù)空閑的情況進行低功耗模式的CPUIdle
3. 多核系統(tǒng)下CPU的熱插拔支持
4. 系統(tǒng)和設備對于延遲的特別需求而提出申請的PM QoS,它會作用于CPUIdle的具體策略
5. 設備驅(qū)動針對系統(tǒng)Suspend to RAM/Disk的一系列入口函數(shù)
6. SoC進入suspend狀態(tài)、SDRAM自刷新的入口
7. 設備的runtime(運行時)動態(tài)電源管理,根據(jù)使用情況動態(tài)開關設備
8. 底層的時鐘、穩(wěn)壓器、頻率/電壓表(OPP模塊完成)支撐,各驅(qū)動子系統(tǒng)都可能用到
圖1 Linux電源管理系統(tǒng)架構(gòu)