ACPI电源状态/CPU工作状态

2019-07-13 23:05发布

近几年,个人计算机的运行速度有了质的飞跃,但是功耗却没能与时俱进,着实让人觉得遗憾不少。例如这样一台为游戏玩家配备的电脑:四核心处理器、两块nVidia GeFore8800 Ultra、4条DDR2内存、几块硬盘,你估计功耗会是多少?就算什么也不干,功耗也下不了200W!不管是为了省银子,还是为了环保,降低能耗已然成为我们必须考虑的问题啦。 1992年1月,微软(Microsoft)与英特尔(Intel)共同制定了电脑电源管理规格:高级电源管理(Advanced Power Management,APM)。1996年12月,APM的继任者Advanced Configuration and Power Interface(ACPI)在微软、康柏、英特尔、东芝、Phoenix的努力下诞生,这也是行业开放标准的电源管理界面。那么APMACPI有什么不同?
  • 执行成本低,但效果不明显
  • 应用程序和驱动直接控制了APM驱动
  • 各个配件的功耗由相应的驱动来管理
  • CPU等硬件的功耗由APM BIOS来管理
  • 电源管理状态比较简单,由APM来管理
  • 执行成本偏高,但比较有效
  • 应用程序不负责功耗管理
  • 配件通过ACPI界面来管理功耗
  • ACPI更抽象,因此要把操作系统和硬件分开管理
  • 电源管理状态更复杂,因此由操作系统来处理。
ACPI电源管理状态

一、全局状态(Global system states)

1.G0工作状态
  • 在这一状态下可运行应用程序
  • 整个计算机系统都可以运行,但外设、CPU都可动态改变各自的功耗。例如,在听音乐的时候就会把显示器关闭
  • 笔记本电脑在运行最大化节电模式时,CPU会在某一时间内
  • 是所有G状态下功耗最高的
  • 例如:如果只是上网或者聊天,CPU将以最低的时钟频率运行,同时关闭CD-ROM光驱等,以达到节电的目的。
2.G1睡眠状态
  • 在G1状态下无法运行应用程序。计算机呈“关闭”状态。
  • 不用重新启动,操作系统会切换到正常状态(G0)。
  • 计算机的大部分内容都会保存在RAM内存或硬盘中。
  • 唤醒延迟(从G1切换到G0)有很多种,这取决于G1状态下的S-State选择。
  • 功耗很小,可能降低至几瓦(由S-State决定)。
  • 例如:在Windows XP系统中会切换到“待机”或“休眠”模式。
3.G2软关机状态
  • 不可运行应用程序和操作系统(保留在G2状态中)。
  • 除了主要的电源供电单元,基本上会关闭整个系统。
  • 功耗约等于零
  • 需重启系统,唤醒延迟时间比较长
  • 例如,在Windows XP系统中选择“关闭计算机”,但总电源并没有关闭。
4.G3机械性关机
  • 通过切断总电源来彻底关闭计算机
  • 使用笔记本电源,只有实时时钟频率
  • 不考虑电池,功耗为零
  • 切换到工作状态的时间比较长
全局状态概要


二 、睡眠状态(Sleeping states)

S1. CPU不执行指令(彻底睡过去了) S2. 不执行应用程序(睡着了) S3. 部分配件处于睡眠状态,方便唤醒 S4. 系统被唤醒后,计算机会继续执行
1.S1状态
  • CPU输入频率被终止,缓存无效
  • 系统内存进入“Self-refreshing(自我更新)”模式
  • 除实时频率外,所有系统频率被关闭
  • 功耗比G0工作状态下更低
  • 一般需2秒切换到G0工作状态
  • 例如:如果不支持S3状态,就在Windows XP系统下进入“待机”模式
2.S2状态
  • 与S1状态相似——除了CPU功耗状态
  • 在S2中,CPU和缓存被关闭
  • S2状态中的唤醒延迟比S1长,但更省电
3.S3状态
  • 除了RAM,CPU、缓存、芯片组、外设均被关闭
  • 需要调用内存的设备仍然运行
  • RAM转入低功耗、自我更新模式
  • 只有RAM与板载配置的功耗
  • 唤醒延迟为5-6秒
  • 例如:如果硬件支持S3状态,在Windows XP系统中进入“待机”模式
4.S4状态
  • 包括RAM在内的所有部件均被关闭
  • 只保留平台设置,其他部分设置被保存在硬盘的特殊位置中
  • 成功切换至S4平台后,系统会关闭
  • 因为几乎所有的程序和配置都已经停止运行,因此功耗<3W
  • 唤醒计算机时需要再次进入“BIOS Boot Sequence”
  • 不需重启系统,计算机会继续执行
  • 例如:在Windows XP系统下的“睡眠”模式
睡眠状态概要

三、设备电源状态(Device Power states)

它是出现在全局系统G0工作状态。
1.D0状态
  • 在此状态下,计算机在全功耗和全功能下运行
  • 例如:可以使用DVD-ROM光驱
2.D1状态
  • 功耗比D0状态下低
  • 例如:在不使用的情况下会自动关闭DVD-ROM光驱,但驱动仍在运行
3.D2状态
  • 与D1相似,但电压更低
  • 在此状态下更节能,不过从D2状态唤醒的时间更长
4.D3状态
  • 此状态下,所有设备均被关闭
  • 可最大限度节能
  • 唤醒时间是所有D状态下最慢的
D状态实例
例1:硬盘驱动功耗管理

例2:显卡功耗管理

四、CPU电源状态(CPU Power states)

一般用户很少注意到这个状态,通常只会在使用CPU-Z来监控时钟频率和电压时才会留意到它。 移动处理器的C状态比台式机的多。例如,Core 2 Duo处理器(Meron)会支持C0-C4状态,然后桌面型Core 2 Duo处理(Conroe)仅支持C1-C0状态。
C0状态(激活)这是CPU最大工作状态,在此状态下可以接收指令和处理数据 ,所有现代处理器必须支持这一功耗状态。
1.C1状态(挂起)
  • 可以通过执行汇编指令“HLT(挂起)”进入这一状态
  • 唤醒时间超快!(快到只需10纳秒!)
  • 可以节省70%的CPU功耗
  • 所有现代处理器都必须支持这一功耗状态
2.C2状态(停止允许)
  • 处理器时钟频率和I/O缓冲被停止
  • 换言之,处理器执行引擎和I/0缓冲已经没有时钟频率
  • 在C2状态下也可以节约70%的CPU和平台能耗
  • 从C2切换到C0状态需要100纳秒以上
3.C3状态(深度睡眠)
  • 总线频率和PLL均被锁定
  • 在多核心系统下,缓存无效
  • 在单核心系统下,内存被关闭,但缓存仍有效
  • 可以节省70%的CPU功耗,但平台功耗比C2状态下大一些
  • 唤醒时间需要50微妙
4.C4状态(更深度睡眠)
  • 与C3相似,但有两大区别
  • 一是核心电压低于1.0V
  • 二是二级缓存内的数据存储将有所减少
  • 可以节约98%的CPU最大功耗
  • 唤醒时间比较慢,但不超过1秒
5.C5状态
  • 二级缓存的数据被减为零
  • 唤醒时间超过200微妙
6.C6状态
  • 这是Penryn处理器中新增的功耗管理模式
  • 二级缓存减至零后,CPU的核心电压更低
  • 不保存CPU context
  • 功耗未知,应该接近零
  • 唤醒时间未知
CPU电源状态概要

原文章地址:http://www.bbwxbbs.com/forum.php?mod=viewthread&tid=2552