近几年,个人计算机的运行速度有了质的飞跃,但是功耗却没能与时俱进,着实让人觉得遗憾不少。例如这样一台为游戏玩家配备的电脑:四核心处理器、两块nVidia GeFore8800 Ultra、4条DDR2内存、几块硬盘,你估计功耗会是多少?就算什么也不干,功耗也下不了200W!不管是为了省银子,还是为了环保,降低能耗已然成为我们必须考虑的问题啦。
1992年1月,微软(Microsoft)与英特尔(Intel)共同制定了电脑电源管理规格:高级电源管理(Advanced Power Management,APM)。1996年12月,APM的继任者Advanced Configuration and Power Interface(ACPI)在微软、康柏、英特尔、东芝、Phoenix的努力下诞生,这也是行业开放标准的电源管理界面。那么APM与ACPI有什么不同?
- 执行成本低,但效果不明显
- 应用程序和驱动直接控制了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系统下进入“待机”模式
- 与S1状态相似——除了CPU功耗状态
- 在S2中,CPU和缓存被关闭
- S2状态中的唤醒延迟比S1长,但更省电
- 除了RAM,CPU、缓存、芯片组、外设均被关闭
- 需要调用内存的设备仍然运行
- RAM转入低功耗、自我更新模式
- 只有RAM与板载配置的功耗
- 唤醒延迟为5-6秒
- 例如:如果硬件支持S3状态,在Windows XP系统中进入“待机”模式
- 包括RAM在内的所有部件均被关闭
- 只保留平台设置,其他部分设置被保存在硬盘的特殊位置中
- 成功切换至S4平台后,系统会关闭
- 因为几乎所有的程序和配置都已经停止运行,因此功耗<3W
- 唤醒计算机时需要再次进入“BIOS Boot Sequence”
- 不需重启系统,计算机会继续执行
- 例如:在Windows XP系统下的“睡眠”模式
睡眠状态概要
三、设备电源状态(Device Power states)
它是出现在全局系统G0工作状态。
1.D0状态
例1:硬盘驱动功耗管理
1.D0状态
- 在此状态下,计算机在全功耗和全功能下运行
- 例如:可以使用DVD-ROM光驱
- 功耗比D0状态下低
- 例如:在不使用的情况下会自动关闭DVD-ROM光驱,但驱动仍在运行
- 与D1相似,但电压更低
- 在此状态下更节能,不过从D2状态唤醒的时间更长
- 此状态下,所有设备均被关闭
- 可最大限度节能
- 唤醒时间是所有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状态(挂起)
C0状态(激活)这是CPU最大工作状态,在此状态下可以接收指令和处理数据 ,所有现代处理器必须支持这一功耗状态。
1.C1状态(挂起)
- 可以通过执行汇编指令“HLT(挂起)”进入这一状态
- 唤醒时间超快!(快到只需10纳秒!)
- 可以节省70%的CPU功耗
- 所有现代处理器都必须支持这一功耗状态
- 处理器时钟频率和I/O缓冲被停止
- 换言之,处理器执行引擎和I/0缓冲已经没有时钟频率
- 在C2状态下也可以节约70%的CPU和平台能耗
- 从C2切换到C0状态需要100纳秒以上
- 总线频率和PLL均被锁定
- 在多核心系统下,缓存无效
- 在单核心系统下,内存被关闭,但缓存仍有效
- 可以节省70%的CPU功耗,但平台功耗比C2状态下大一些
- 唤醒时间需要50微妙
- 与C3相似,但有两大区别
- 一是核心电压低于1.0V
- 二是二级缓存内的数据存储将有所减少
- 可以节约98%的CPU最大功耗
- 唤醒时间比较慢,但不超过1秒
- 二级缓存的数据被减为零
- 唤醒时间超过200微妙
- 这是Penryn处理器中新增的功耗管理模式
- 二级缓存减至零后,CPU的核心电压更低
- 不保存CPU context
- 功耗未知,应该接近零
- 唤醒时间未知
CPU电源状态概要
原文章地址:http://www.bbwxbbs.com/forum.php?mod=viewthread&tid=2552