linux系统电源时钟,linux电源管理的一些梳理
由于項目產品需要過能源之星3.0,所以最近做了一些電源管理低功耗方面的工作,抽個時間正好梳理一下。
其實Linux 電源管理非常復雜,牽扯到很多方面,比如系統級的待機、頻率電壓變換、系統空閑時的處理以及每個設備驅動對于系統待機的支持和每個設備的運行時電源管理,可以說和系統中的每個設備驅動也都息息相關。
在Linux內核上有如下的框架支持:
1. CPU 在運行時根據系統負載進行動態電壓和頻率變換的CPUFreq ;
2. CPU 在系統空閑時根據空閑的情況進行低功耗模式的CPUIdle ;
3. 多核系統下CPU 的熱插拔支持 ;
4. 系統和設備對于延遲的特別需求而提出申請的PMQoS,它會作用于CPUIdle 的具體策略 ;
5. 設備驅動針對系統Suspend to RAM/Disk 的一系列入口函數 ;
6. SoC 進入suspend 狀態、SDRAM 自刷新的入口 ;
7. 設備的runtime(運行時)動態電源管理,根據使用情況動態開關設備 ;
8. 底層的時鐘、穩壓器、頻率/電壓表(OPP 模塊完成)支撐;
Linux電源管理中主要使用的技術包括:
1、CPUFreq : 即DVFS(Dynamic voltage and frequency scaling),即動態電壓頻率調整。在系統運行時根據系統負載動態調節;
2、DEVFreq:CPUFreq只針對CPU做動態電壓頻率調節,而devfreq可以對設備,如DRAM,GPU等做動態電壓頻率調節;
3、CPUIdle:CPU在系統空閑時根據空閑的情況進行低功耗模式,比如C0--C3四個狀態對應不同的低功耗策略;
4、CPUHotplug:多核系統下CPU的熱插拔支持;
5、PM QOS:主要作用于cpuidle的具體策略,是針對系統和設備對于延遲的特別需求而提出的;
6、SUSPEND:主要有suspend to ram和suspend to disk兩種,suspend to ram主要是掛起各設備,并使dram進入自刷新,而suspend to disk就干脆把dram也關掉,直接把狀態保存到disk;
7、RUNTIME PM:設備的runtime(運行時)動態電源管理,根據使用情況動態開關設備;
8、Regulator:用于調節CPU等模塊的電壓和電流值;
9、OPP:可以使SOCs或者Devices正常工作的電壓和頻率組合。內核提供這一個Layer,是為了在眾多的電壓和頻率組合中,篩選出一些相對固定的組合,從而使事情變得更為簡單一些;
10、Thermal:溫控管理。
電源管理相關源碼在內核樹中主要分布于:
kernel/power/ *
drivers/power/
drivers/base/power/*
drivers/cpuidle/*
drivers/cpufreq/*
drivers/devfreq/*
include/linux/power_supply.h
include/linux/cpuidle.h
include/linux/cpufreq.h
include/linux/cpu_pm.h
include/linux/device.h
include/linux/pm.h
include/linux/pm domain.h
include/linux/pm runtime.h
include/linux/pm wakeup.h
include/linux/suspend.h
總結
以上是生活随笔為你收集整理的linux系统电源时钟,linux电源管理的一些梳理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql介绍与安装LinuxmacOS
- 下一篇: c是过程化语言吗数据库,关于SQL错误的