资料介绍
任何系统的运转都需要能量。计算机系统依靠电能运行。而能量的获取是有成本的,因此如果能在保证系统运转的基础上,尽量节省对能量的消耗,就会大大提升该系统的生存竞争力。这方面,大自然已经做的很好了,如植 物的落叶,如动物的冬眠,等等。而在计算机的世界里(这里以运行 Linux OS 的嵌入式系统为例),称作电源管理(Power Management)。通俗的讲,电源管理就是:“想让马儿跑,不想马吃草”。不过,从能量守恒的角度,想让马儿跑多快、跑多久,就一定要让它吃相应数量的草。那么我们就退而求其次:“只在需要马儿跑时,才让它吃草”。这就是电源管理的核心思想。那方法呢?可以这样:方法 1:不需要马儿跑时,把它杀掉,这样就不吃草了。需要马儿跑时,再养一匹。在现实世界中,除了傻瓜,应该没人使用这种方法。因为重新养一匹马需要时间 ---- 我哪里等得及,需要草 ---- 有可能比养一匹闲马需要的更多。方法 2:不需要马儿跑时,让它睡觉,不能睁眼,不能动,不能叫。先不讲马儿是否愿意一直睡觉,这种方法只能减少马儿吃草的数量,因为它的心脏还在跳动、血液还在流通,这些也消耗能量。不过还好,需要马儿跑时,应该不需要等太久了。方法 3:不是说心脏跳动、血液流通也消耗能量吗?那把这些也停下来好了,能省多少是多少嘛。确实是好方法,不多得先去问问兽医,能不能搞定。不过以现在的医学水平,估计实现不了啊。在计算机世界中,上面的方法是再平常不过的了,而且控制的远比这些精细。因为计算机是人类设计出来的,而马儿却是经上帝之手。不过通过马儿的例子,我们可以总结出电源管理的基本行为: a, 实时的关闭暂时不使用的部分(可称作“工作状态到非工作状态的转移”)。例如手机在口袋时,屏幕没必要亮。 b, 当需要重新使用那些已关闭部分时(可称作“非工作状态到工作状态的转移”),不能有太长时间的等待,且转移过程不能消耗太多的能量。上面的方法 1 就是一个反面教材,但在计算机的世界里,情况会好很多。
Linux 电源管理的组成
电源管理(Power Management)在 Linux Kernel 中,是一个比较庞大的子系统,涉及到供电(Power Supply)、充电 (Charger)、时钟(Clock)、频率(Frequency)、电压(Voltage)、睡眠 / 唤醒(Suspend /Resume)等方方面面(如下图),蜗蜗会在 Linux 电源管理系列文章中,对它们一一讲述。
注 1:该图片只是一个示意图,并没有划分软件层次,因此模块之间的关系不一定是真正的关系。在对图片中的这些组件(也可以称作 Framework)进行详细描述之前,先在这里了解一下基本概念。注 2:Framework 是一个中间层的软件,提供软件开发的框架。其目有三:一是屏蔽具体的实现细节,固定对上的接口,这样可以方便上层软件的开发和维 护;二是尽可能抽象公共逻辑,并在 Framework 内实现,以提高重用性、减少开发量;三是向下层提供一系列的回调函数(callback function),下层软件可能面对差别较大的现实,但只要填充这些回调函数,即可完成所有逻辑,减小了开发的难度。 Power Supply,是一个供用户空间程序监控系统的供电状态(电池供电、USB 供电、AC 供电等等)的 class。通俗的讲,它是一个 Battery&Charger 驱动的 Framework Clock Framework,Clock 驱动的 Framework,用于统一管理系统的时钟资源 Regulator Framework,Voltage/Current Regulator 驱动的 Framework。该驱动用于调节 CPU 等模块的电压和电流值 Dynamic Tick/Clock Event,在传统的 Linux Kernel 中,系统 Tick 是固定周期(如 10ms)的,因此每隔一个 Tick,就会产生一个 Timer 中断。这会唤醒处于 Idle 或者 Sleep 状态 的 CPU,而很多时候这种唤醒是没有意义的。因此新的 Kernel 就提出了 Dynamic Tick 的概念,Tick 不再是周期性的,而是根据系统中定时器的情况,不规律的产生,这样可以减少很多无用的 Timer 中断 CPU Idle,用于控制 CPU Idle 状态的 Framework Generic PM,传统意义上的 Power Management,如 Power Off、Suspend to RAM、Suspend to Disk、Hibernate 等 Runtime PM and Wakelock,运行时的 Power Management,不再需要用户程序的干涉,由 Kernel 统一调度,实时的关闭或打开设备,以便在使用性能和省电性能之间找到最佳的平衡注 3:Runtime PM 是 Linux Kernel 亲生的运行时电源管理机制,Wakelock 是由 Android 提出的机制。这两种机制的目的是一样的,因此只需要支持一种即可。另外,由于 Wakelock 机制路子太野了,饱受 Linux 社区的鄙视,因此我们不会对该机制进行太多的描述。 CPU Freq/Device Freq,用于实现 CPU 以及 Device 频率调整的 Framework OPP(Operating Performance Point),是指可以使 SOCs 或者 Devices 正常工作的电压和频率组合。内核提供这一个 Layer,是为了在众多的电压和频率组合中,筛选出一些相对固定的组合,从而使事情变得更为简单一些 PM QOS,所谓的 PM QOS,是指系统在指定的运行状态下(不同电压、频率,不同模式之间切换,等等)的工作质量,包括 latency、timeout、throughput 三个参数,单位分别为 us、us 和 kb/s。通过 QOS 参数,可以分析、改善系统的性能
- LINUX电源管理
- 信号源结构和原理详细介绍
- Linux的内核结构详细说明 16次下载
- Linux的使用基础详细资料说明 15次下载
- Android系统电源的管理和省电机制的详细资料说明
- 如何使用ARM进行嵌入式linux的系统设计
- Linux操作系统分析与实践PDF电子书免费下载 15次下载
- TI电源管理芯片的种类和介绍详细资料说明 23次下载
- Linux应用基础教程之Linux如何进行系统管理 2次下载
- 数据库系统概论之数据库管理系统详细资料概述 0次下载
- 如何在Win7与linux双系统时卸载linux详细方法概述 21次下载
- Linux操作系统实用教程之如何进行Linux系统下的编程管理 5次下载
- Linux操作系统实用教程之如何Linux系统的远程管理 0次下载
- linux教程之Linux系统的安装与启动详细资料 7次下载
- 电源管理模拟应用的资料详细概述免费下载 12次下载
- 模拟芯片之电源管理芯片介绍 1065次阅读
- linux和windows的区别 linux系统一般用来干嘛 657次阅读
- Linux操作系统介绍和基本命令 1776次阅读
- 要学习Linux,得从Linux系统结构开始吧! 405次阅读
- Linux内存管理体系介绍 1459次阅读
- Linux指令的详细整理 1985次阅读
- Linux电源管理系统结构的详细资料说明 647次阅读
- Linux电源管理系统的结构详细说明 877次阅读
- Linux电源管理系统的组成详细资料介绍 895次阅读
- Linux内核的发展简史与系统层次结构 7204次阅读
- Windows和Linux的区别以及Linux系统的目录结构 8393次阅读
- 电源管理芯片引脚说明_电源管理芯片的应用 8w次阅读
- 基于Linux各文件夹的结构说明及用途的简单解析 2770次阅读
- 基于Linux进程管理的详细剖析 3630次阅读
- 电源管理芯片是什么_电源管理芯片介绍 1.6w次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多