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电源管理的一些梳理相关推荐
- linux时钟与电源管理,SOC的时钟和电源管理
SOC的时钟和电源管理 (2013-04-27 18:58:07) 标签: it dm3730 时钟 linux 电源 现在的SOC,因为多用做手持设备,所以在节省能源方面都不遗余力.我看原因到不是为 ...
- 嵌入式linux系统电源管理器,嵌入式Linux系统的动态电源管理技 - 嵌入式操作系统 - 电子发烧友网...
嵌入式Linux系统的动态电源管理技术 通过用户层制定策略与内核提供管理功能交互,实时调整电源参数而同时满足系统实时应用的需求,允许电源管理参数在短时间的空闲或任务运行在低电源需求时,可以被频繁地.低 ...
- linux 电源管理源码分析,Linux 3.8.1 电源管理之OMAP Voltage Domain分析
本系列文章将分析Linux对于OMAP的电源管理功能,以AM33XX作为实例(目前的硬件平台先主要关注AM335xStarterKit开发板),在必要时穿插其他相关内容. 在linux-3.8.1/a ...
- linux驱动编写(电源管理驱动)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 对于嵌入式设备来说,合适的电源管理,不仅可以延长电池的寿命,而且可以省电,延长设备运行时间,在提 ...
- linux内核acpi,Linux内核中ACPI电源管理部分解析
ACPI包括很多功能,电源管理是其功能之一,具体的ACPI的介绍可以参考ACPI的技术文档. Linux中利用模块机制,实现ACPI对电源的管理: static struct cpufreq_driv ...
- S3C2440时钟和电源管理:空闲模式:电源管理模块断开CPU时钟FCLK,而只给外设提供时钟,CPU不耗时钟,故而减少功耗,任何中断请求都可将CPU从空闲模式唤醒。
七.时钟&电源管理 概述 时钟&电源管理模块包含三部分:时钟控制,USB控制,电源控制. 时钟控制逻辑可以生成三种时钟信号,CPU使用的FCLK,AHB总线外设使用的HCLK,APB总 ...
- linux待机唤醒_Linux电源管理-休眠与唤醒
1.休眠方式 在内核中,休眠方式有很多种,可以通过下面命令查看 # cat /sys/power/state //来得到内核支持哪几种休眠方式. 常用的休眠方式有freeze,standby, mem ...
- 修改linux硬时钟,Linux 下用 hwclock 调节系统时钟
由 Linux 内核管理的时钟与硬件时钟并不相同.硬件时钟又叫 BIOS 时钟,在系统关闭后仍在运行,可以通过修改 BIOS 修改硬件时钟.不过当系统已经启动之后,仍可通过 hwclock 命令查看并 ...
- linux番茄时钟,Linux 番茄时钟 定时 取消 快捷方式
shell 脚本 clock.sh #!/bin/bash if [ $1 == 0 ] then at -d `atq | awk -v ORS=" " '{a[NR]=$1} ...
最新文章
- 如何配置VirtualBox中的客户机与宿主机之间的网络连接
- 中国首个AI考级来了:共分10级,北大出题,工信部认证 | 在线可测,我最多活3级...
- Jersey Restful部署到Tomcat注意事项
- 如果再写 for 循环,我就锤自己!
- [scala-spark]8. RDD的实现和编程接口
- Preparation for International Women's Day
- 【Tools】Windows下Git 2.18安装步骤
- 全量更新和增量更新_增量BIOS更新或直接更新到最新版本哪个更好?
- ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现
- Eclipse运行项目报Could not find *.apk!解决办法
- 读书笔记-互联网思维必读10本书之一《免费》
- redis storm mysql_flume+kafka+storm+redis/mysql启动命令记录
- 对Faster R-CNN的理解(1)
- struts2.1.6出现at com.opensymphony.xwork2.util.FileManager$FileRevision.needsReloading
- 6-4 链表逆置 (10 分)
- 2017-3-23校内训练
- 如何获取 WebAssembly 代码
- Spring3之InternalResourceViewResolver
- Zabbix通过SNMP协议监控H3C交换机
- 域名可以修改绑定的服务器么,域名备案绑定的服务器可以改么
热门文章
- win7关闭系统索引服务器,win7系统如何关闭索引服务
- linux下删除已经创建的数据库,MongoDB 数据库的创建和删除
- linux进程运行队列,Linux进程调度中队列的使用
- Mysql 零距离-入门(一)
- show index mysql_MySQL SHOW INDEX语法的实际应用
- Python MySQL创建表
- netbeans java9_Java 开发新选择?Apache NetBeans IDE 9.0 备受好评
- java gbk汉字 10进制,用java程序将GBK字符转成UTF-8编码格式
- python terminal调试_python执行命令行调试工具pdb
- 事物日志恢复 mysql_浅谈SQL Server中的事务日志(五)----日志在高可用和灾难恢复中的作用...