電源管理(Power Management)在 Linux Kernel 中,是一個(gè)比較龐大的子系統(tǒng),涉及到供電(PowerSupply)、充電(Charger)、時(shí)鐘(Clock)、頻率(Frequency)、電壓(Voltage)、睡眠/喚醒(Suspend/Resume)等方方面面。
注1:該圖片只是一個(gè)示意圖,并沒(méi)有劃分軟件層次,因此模塊之間的關(guān)系不一定是真正的關(guān)系。
注2:Framework是一個(gè)中間層的軟件,提供軟件開(kāi)發(fā)的框架。其目有三:一是屏蔽具體的實(shí)現(xiàn)細(xì)節(jié),固定對(duì)上的接口,這樣可以方便上層軟件的開(kāi)發(fā)和維護(hù);二是盡可能抽象公共邏輯,并在Framework 內(nèi)實(shí)現(xiàn),以提高重用性、減少開(kāi)發(fā)量;三是向下層提供一系列的回調(diào)函數(shù)(callbackfunction),下層軟件可能面對(duì)差別較大的現(xiàn)實(shí),但只要填充這些回調(diào)函數(shù),即可完成所有邏輯,減小了開(kāi)發(fā)的難度。
注3:Runtime PM 是 Linux Kernel 親生的運(yùn)行時(shí)電源管理機(jī)制,Wakelock 是由 Android
提出的機(jī)制。這兩種機(jī)制的目的是一樣的,因此只需要支持一種即可。另外,由于 Wakelock 機(jī)制路子太野了,飽受 Linux 社區(qū)的鄙視。
在對(duì)圖片中的這些組件(也可以稱作 Framework )進(jìn)行詳細(xì)描述之前,先在這里了解一下基本概念。
Power Supply,是一個(gè)供用戶空間程序監(jiān)控系統(tǒng)的供電狀態(tài)(電池供電、USB 供電、AC供電等等)的 class。通俗的講,它是一個(gè)Battery&Charger 驅(qū)動(dòng)的 Framework
Clock Framework,Clock 驅(qū)動(dòng)的 Framework,用于統(tǒng)一管理系統(tǒng)的時(shí)鐘資源
Regulator Framework,Voltage/Current Regulator 驅(qū)動(dòng)的 Framework。該驅(qū)動(dòng)用于調(diào)節(jié) CPU
等模塊的電壓和電流值
Dynamic Tick/Clock Event,在傳統(tǒng)的 Linux Kernel 中,系統(tǒng) Tick 是固定周期(如 10ms)的,因此每隔一個(gè)Tick,就會(huì)產(chǎn)生一個(gè) Timer 中斷。這會(huì)喚醒處于 Idle 或者 Sleep 狀態(tài)的 CPU,而很多時(shí)候這種喚醒是沒(méi)有意義的。因此新的 Kernel就提出了 Dynamic Tick 的概念,Tick 不再是周期性的,而是根據(jù)系統(tǒng)中定時(shí)器的情況,不規(guī)律的產(chǎn)生,這樣可以減少很多無(wú)用的 Timer 中斷。
CPU Idle,用于控制 CPU Idle 狀態(tài)的 Framework
Generic PM,傳統(tǒng)意義上的 Power Management,如Power Off、Suspend to RAM、Suspend to
Disk、Hibernate 等
Runtime PM and Wakelock,運(yùn)行時(shí)的 Power Management,不再需要用戶程序的干涉,由 Kernel統(tǒng)一調(diào)度,實(shí)時(shí)的關(guān)閉或打開(kāi)設(shè)備,以便在使用性能和省電性能之間找到最佳的平衡
CPU Freq/Device Freq,用于實(shí)現(xiàn) CPU 以及 Device 頻率調(diào)整的 Framework
OPP(Operating Performance Point),是指可以使 SOCs 或者 Devices 正常工作的電壓和頻率組合。內(nèi)核提供這一個(gè)Layer,是為了在眾多的電壓和頻率組合中,篩選出一些相對(duì)固定的組合,從而使事情變得更為簡(jiǎn)單一些
PM QOS,所謂的 PM QOS,是指系統(tǒng)在指定的運(yùn)行狀態(tài)下(不同電壓、頻率,不同模式之間切換,等等)的工作質(zhì)量,包括latency、timeout、throughput 三個(gè)參數(shù),單位分別為 us、us 和 kb/s。通過(guò) QOS 參數(shù),可以分析、改善系統(tǒng)的性能
-
電源
+關(guān)注
關(guān)注
185文章
18357瀏覽量
256135 -
Linux
+關(guān)注
關(guān)注
87文章
11508瀏覽量
213653 -
系統(tǒng)
+關(guān)注
關(guān)注
1文章
1032瀏覽量
21808
發(fā)布評(píng)論請(qǐng)先 登錄
Linux內(nèi)核電源管理的整體架構(gòu)介紹
LINUX電源管理的相關(guān)資料分享
Linux電源管理的系統(tǒng)架構(gòu)和驅(qū)動(dòng)
嵌入式Linux系統(tǒng)的動(dòng)態(tài)電源管理技術(shù)

Linux操作系統(tǒng)實(shí)用教程之如何Linux系統(tǒng)的遠(yuǎn)程管理
Linux電源管理系統(tǒng)結(jié)構(gòu)介紹

Linux電源管理系統(tǒng)的組成詳細(xì)資料介紹

Linux電源管理系統(tǒng)結(jié)構(gòu)的詳細(xì)介紹

Linux電源管理

LINUX電源管理

基于嵌入式Linux系統(tǒng)的電源管理軟件

評(píng)論