CPU工作状态的知识介绍
转自:http://www.bbwxbbs.com/forum.php?mod=viewthread&tid=2552
近几年,个人计算机的运行速度有了质的飞跃,但是功耗却没能与时俱进,着实让人觉得遗憾不少。例如这样一台为游戏玩家配备的电脑:四核心处理器、两块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有什么不同?
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image001.jpg
·执行成本低,但效果不明显
·应用程序和驱动直接控制了APM驱动
·各个配件的功耗由相应的驱动来管理
·CPU等硬件的功耗由APM BIOS来管理
·电源管理状态比较简单,由APM来管理
·应用程序和驱动直接控制了APM驱动
·各个配件的功耗由相应的驱动来管理
·CPU等硬件的功耗由APM BIOS来管理
·电源管理状态比较简单,由APM来管理
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image002.jpg
·执行成本偏高,但比较有效
·应用程序不负责功耗管理
·配件通过ACPI界面来管理功耗
·ACPI更抽象,因此要把操作系统和硬件分开管理
·电源管理状态更复杂,因此由操作系统来处理。
·应用程序不负责功耗管理
·配件通过ACPI界面来管理功耗
·ACPI更抽象,因此要把操作系统和硬件分开管理
·电源管理状态更复杂,因此由操作系统来处理。
ACPI电源管理状态
|
今天,我们就好好说说已经被广泛使用的ACPI电源管理标准。
以下是ACPI规格的具体电源管理状态,稍后我们详细介绍一下各个状态:
全局状态(Global system states)
·用户可见
·分4个状态:G0, G1, G2, G3
·用户可见
·分4个状态:G0, G1, G2, G3
睡眠状态(Sleeping states)
·全局状态G1(不含S5)的睡眠状态
·分5个状态:S1,S2,S3,S4,S5
·全局状态G1(不含S5)的睡眠状态
·分5个状态:S1,S2,S3,S4,S5
设备电源状态(Device Power states)
·用户不可见
·只要有一个配置显示为“on”(启动)状态,另一个则显示为“off”(关闭)状态
·分4个状态:D0,D1,D2,D3
·用户不可见
·只要有一个配置显示为“on”(启动)状态,另一个则显示为“off”(关闭)状态
·分4个状态:D0,D1,D2,D3
CPU电源状态(CPU Power states)
·也叫做CPU睡眠状态
·在全局状态G0中
·分5个状态:C0,C1,C2,C3,C4
·将来会有C6状态(Penryn)
·也叫做CPU睡眠状态
·在全局状态G0中
·分5个状态:C0,C1,C2,C3,C4
·将来会有C6状态(Penryn)
CPU/设备性能状态(CPU / Device Performance states)
·电压和时钟频率由工作量决定
·P-state状态总量符合CUP/设备规格
·例如,CPU倍频越高,P-states就越高
·电压和时钟频率由工作量决定
·P-state状态总量符合CUP/设备规格
·例如,CPU倍频越高,P-states就越高
CPU温度监控(CPU Thermal Monitor)
·当CPU温度超过极限时,监控系统会降低CPU的性能
·在TM1中,功过改变周期来降低CPU性能
·在TM2种,通过改变时钟频率和核心电压(P-state)来降低CPU性能
·当CPU温度超过极限时,监控系统会降低CPU的性能
·在TM1中,功过改变周期来降低CPU性能
·在TM2种,通过改变时钟频率和核心电压(P-state)来降低CPU性能
全局状态(G-States)
|
G0工作状态
·在这一状态下可运行应用程序
·整个计算机系统都可以运行,但外设、CPU都可动态改变各自的功耗。例如,在听音乐的时候就会把显示器关闭
·笔记本电脑在运行最大化节电模式时,CPU会在某一时间内
·是所有G状态下功耗最高的
·例如:如果只是上网或者聊天,CPU将以最低的时钟频率运行,同时关闭CD-ROM光驱等,以达到节电的目的。
·在这一状态下可运行应用程序
·整个计算机系统都可以运行,但外设、CPU都可动态改变各自的功耗。例如,在听音乐的时候就会把显示器关闭
·笔记本电脑在运行最大化节电模式时,CPU会在某一时间内
·是所有G状态下功耗最高的
·例如:如果只是上网或者聊天,CPU将以最低的时钟频率运行,同时关闭CD-ROM光驱等,以达到节电的目的。
G1睡眠状态
·在G1状态下无法运行应用程序。计算机呈“关闭”状态。
·不用重新启动,操作系统会切换到正常状态(G0)。
·计算机的大部分内容都会保存在RAM内存或硬盘中。
·唤醒延迟(从G1切换到G0)有很多种,这取决于G1状态下的S-State选择。
·功耗很小,可能降低至几瓦(由S-State决定)。
·例如:在Windows XP系统中会切换到“待机”或“休眠”模式。
·在G1状态下无法运行应用程序。计算机呈“关闭”状态。
·不用重新启动,操作系统会切换到正常状态(G0)。
·计算机的大部分内容都会保存在RAM内存或硬盘中。
·唤醒延迟(从G1切换到G0)有很多种,这取决于G1状态下的S-State选择。
·功耗很小,可能降低至几瓦(由S-State决定)。
·例如:在Windows XP系统中会切换到“待机”或“休眠”模式。
G2软关机状态
·不可运行应用程序和操作系统(保留在G2状态中)。
·除了主要的电源供电单元,基本上会关闭整个系统。
·功耗约等于零
·需重启系统,唤醒延迟时间比较长
·例如,在Windows XP系统中选择“关闭计算机”,但总电源并没有关闭。
·不可运行应用程序和操作系统(保留在G2状态中)。
·除了主要的电源供电单元,基本上会关闭整个系统。
·功耗约等于零
·需重启系统,唤醒延迟时间比较长
·例如,在Windows XP系统中选择“关闭计算机”,但总电源并没有关闭。
G3机械性关机
·通过切断总电源来彻底关闭计算机
·使用笔记本电源,只有实时时钟频率
·不考虑电池,功耗为零
·切换到工作状态的时间比较长
·通过切断总电源来彻底关闭计算机
·使用笔记本电源,只有实时时钟频率
·不考虑电池,功耗为零
·切换到工作状态的时间比较长
全局状态概要
全局状态
|
运行程序
|
唤醒延迟
|
功耗
|
重启系统
|
G0
|
可以
|
不可以
|
中到大
|
不需
|
G1
|
不可以
|
短至中
|
小
|
不需
|
G2
|
不可以
|
长时间
|
接近零
|
需要
|
G3
|
不可以
|
最长时间
|
仅有电池
|
需要
|
睡眠状态(S-States)
|
1. CPU不执行指令(彻底睡过去了,嘿嘿)
2. 不执行应用程序(睡着了嘛)
3. 部分配件处于睡眠状态,方便唤醒
4. 系统被唤醒后,计算机会继续执行
2. 不执行应用程序(睡着了嘛)
3. 部分配件处于睡眠状态,方便唤醒
4. 系统被唤醒后,计算机会继续执行
S1状态
·CPU输入频率被终止,缓存无效
·系统内存进入“Self-refreshing(自我更新)”模式
·除实时频率外,所有系统频率被关闭
·功耗比G0工作状态下更低
·一般需2秒切换到G0工作状态
·例如:如果不支持S3状态,就在Windows XP系统下进入“待机”模式
·CPU输入频率被终止,缓存无效
·系统内存进入“Self-refreshing(自我更新)”模式
·除实时频率外,所有系统频率被关闭
·功耗比G0工作状态下更低
·一般需2秒切换到G0工作状态
·例如:如果不支持S3状态,就在Windows XP系统下进入“待机”模式
S2状态
·与S1状态相似——除了CPU功耗状态
·在S2中,CPU和缓存被关闭
·S2状态中的唤醒延迟比S1长,但更省电
·与S1状态相似——除了CPU功耗状态
·在S2中,CPU和缓存被关闭
·S2状态中的唤醒延迟比S1长,但更省电
S3状态
·除了RAM,CPU、缓存、芯片组、外设均被关闭
·需要调用内存的设备仍然运行
·RAM转入低功耗、自我更新模式
·只有RAM与板载配置的功耗
·唤醒延迟为5-6秒
·例如:如果硬件支持S3状态,在Windows XP系统中进入“待机”模式
·除了RAM,CPU、缓存、芯片组、外设均被关闭
·需要调用内存的设备仍然运行
·RAM转入低功耗、自我更新模式
·只有RAM与板载配置的功耗
·唤醒延迟为5-6秒
·例如:如果硬件支持S3状态,在Windows XP系统中进入“待机”模式
S4状态
·包括RAM在内的所有部件均被关闭
·只保留平台设置,其他部分设置被保存在硬盘的特殊位置中
·成功切换至S4平台后,系统会关闭
·因为几乎所有的程序和配置都已经停止运行,因此功耗<3W
·唤醒计算机时需要再次进入“BIOS Boot Sequence”
·不需重启系统,计算机会继续执行
·例如:在Windows XP系统下的“睡眠”模式
·包括RAM在内的所有部件均被关闭
·只保留平台设置,其他部分设置被保存在硬盘的特殊位置中
·成功切换至S4平台后,系统会关闭
·因为几乎所有的程序和配置都已经停止运行,因此功耗<3W
·唤醒计算机时需要再次进入“BIOS Boot Sequence”
·不需重启系统,计算机会继续执行
·例如:在Windows XP系统下的“睡眠”模式
睡眠状态概要
睡眠状态
|
唤醒延迟
|
功耗
|
BIOS重启
|
系统重启
|
CPU
|
缓存
|
芯片组
|
RAM
|
S0(GO)
|
无
|
大
|
不需
|
不需
|
开启
|
开启
|
开启
|
开启
|
S1(G1)
|
2-3秒
|
中
|
不需
|
不需
|
无频率
|
无效
|
无频率
|
自动更新
|
S2(G1)
|
3-4秒
|
中至低
|
不需
|
不需
|
关闭
|
关闭
|
无频率
|
自动更新
|
S3(G1)
|
5-6秒
|
低
|
不需
|
不需
|
关闭
|
关闭
|
关闭
|
低功耗
|
S4(G1)
|
20-30秒
|
非常低
|
需要
|
需要
|
关闭
|
关闭
|
关闭
|
自动更新
|
S5(G2)
|
> 30秒
|
接近零
|
需要
|
需要
|
关闭
|
关闭
|
关闭
|
关闭
|
设备状态(D-States)
它是出现在全局系统G0工作状态。
D0状态
·在此状态下,计算机在全功耗和全功能下运行
·例如:可以使用DVD-ROM光驱
·在此状态下,计算机在全功耗和全功能下运行
·例如:可以使用DVD-ROM光驱
D1状态
·功耗比D0状态下低
·例如:在不使用的情况下会自动关闭DVD-ROM光驱,但驱动仍在运行
·功耗比D0状态下低
·例如:在不使用的情况下会自动关闭DVD-ROM光驱,但驱动仍在运行
D2状态
·与D1相似,但电压更低
·在此状态下更节能,不过从D2状态唤醒的时间更长
·与D1相似,但电压更低
·在此状态下更节能,不过从D2状态唤醒的时间更长
nD3状态
·此状态下,所有设备均被关闭
·可最大限度节能
·唤醒时间是所有D状态下最慢的
·此状态下,所有设备均被关闭
·可最大限度节能
·唤醒时间是所有D状态下最慢的
D状态实例
例1:硬盘驱动功耗管理
设备状态
|
功耗
|
唤醒延迟
|
驱动监控
|
驱动控制器
|
界面内容
|
D0
|
100%
|
0
|
开启
|
功能性
|
保存
|
D1
|
80%
|
5秒
|
关闭
|
功能性
|
保存
|
D2
|
待定
|
待定
|
待定
|
待定
|
待定
|
D3
|
10%
|
6-7秒
|
关闭
|
非功能性
|
不保存
|
例2:显卡功耗管理
设备状态
|
唤醒延迟
|
显示器
|
DPMS
|
控制内容
|
内存内容
|
D0
|
0
|
开启
|
开启
|
保存
|
保存
|
D1
|
1秒
|
关闭
|
关闭
|
保存
|
保存
|
D2
|
5秒
|
关闭
|
开启
|
丢失
|
丢失
|
D3
|
>6秒
|
关闭
|
关闭
|
丢失
|
丢失
|
备注:显示器电源管理(DPMS,Display Power ManagementSignal)标准由频电子标准协会(Video Electronics Standards Association, VESA)制定。
CPU电源状态(C-States)
一般用户很少注意到这个状态,通常只会在使用CPU-Z来监控时钟频率和电压时才会留意到它。移动处理器的C状态比台式机的多。例如,Core 2 Duo处理器(Meron)会支持C0-C4状态,然后桌面型Core 2 Duo处理(Conroe)仅支持C1-C0状态。
C0状态(激活)
·这是CPU最大工作状态,在此状态下可以接收指令和处理数据
·所有现代处理器必须支持这一功耗状态
·这是CPU最大工作状态,在此状态下可以接收指令和处理数据
·所有现代处理器必须支持这一功耗状态
C1状态(挂起)
·可以通过执行汇编指令“HLT(挂起)”进入这一状态
·唤醒时间超快!(快到只需10纳秒!)
·可以节省70%的CPU功耗
·所有现代处理器都必须支持这一功耗状态
·可以通过执行汇编指令“HLT(挂起)”进入这一状态
·唤醒时间超快!(快到只需10纳秒!)
·可以节省70%的CPU功耗
·所有现代处理器都必须支持这一功耗状态
C2状态(停止允许)
·处理器时钟频率和I/O缓冲被停止
·换言之,处理器执行引擎和I/0缓冲已经没有时钟频率
·在C2状态下也可以节约70%的CPU和平台能耗
·从C2切换到C0状态需要100纳秒以上
·处理器时钟频率和I/O缓冲被停止
·换言之,处理器执行引擎和I/0缓冲已经没有时钟频率
·在C2状态下也可以节约70%的CPU和平台能耗
·从C2切换到C0状态需要100纳秒以上
C3状态(深度睡眠)
·总线频率和PLL均被锁定
·在多核心系统下,缓存无效
·在单核心系统下,内存被关闭,但缓存仍有效
·可以节省70%的CPU功耗,但平台功耗比C2状态下大一些
·唤醒时间需要50微妙
·总线频率和PLL均被锁定
·在多核心系统下,缓存无效
·在单核心系统下,内存被关闭,但缓存仍有效
·可以节省70%的CPU功耗,但平台功耗比C2状态下大一些
·唤醒时间需要50微妙
C5状态
·二级缓存的数据被减为零
·唤醒时间超过200微妙
·二级缓存的数据被减为零
·唤醒时间超过200微妙
C6状态
·这是Penryn处理器中新增的功耗管理模式
·二级缓存减至零后,CPU的核心电压更低
·不保存CPU context
·功耗未知,应该接近零
·唤醒时间未知
·这是Penryn处理器中新增的功耗管理模式
·二级缓存减至零后,CPU的核心电压更低
·不保存CPU context
·功耗未知,应该接近零
·唤醒时间未知
多核心处理器的C状态(C-States)
在多状态每一个核心都会有一个多重C状态,但每一次都只能有一个C状态。假设处理器C状态是Cx,核心C状态是CCx,那么决定处理器C状态的公式是:
Cx =max (CCx1, CCx2, CCx3……, CCxn)
我们来看看下面的例子:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image003.jpg
CPU电源状态概要
电源状态
|
执行
|
唤醒时间
|
CPU功耗
|
平台
|
核心电压
|
缓存收缩
|
内容丢失
|
C0
|
是
|
0
|
大
|
正常
|
正常
|
否
|
否
|
C1
|
否
|
10ns
|
30%
|
正常
|
正常
|
否
|
否
|
C2
|
否
|
100ns
|
30%
|
无I/O缓冲
|
正常
|
否
|
否
|
C3
|
否
|
50000ns
|
30%
|
I/O,无监控
|
正常
|
否
|
否
|
C4
|
否
|
160000ns
|
2%
|
I/0,无监控
|
C4_VID
|
是
|
否
|
C5
|
否
|
200000ns
|
待定
|
待定
|
C4_VID
|
L2=0KB
|
否
|
C6
|
否
|
待定
|
待定
|
待定
|
C6_VID
|
L2=0KB
|
是
|
CPU/设备性能状态(P-States)
当CPU和设备处于执行状态时,P-States制定出电源管理状态。C0代表CPU,D0代表设备:
P0:能耗最大,P-State最小化
P1,P2,P3……. :P1 > P2 > P3等等
Pn:能耗最小,P-State最大化
P1,P2,P3……. :P1 > P2 > P3等等
Pn:能耗最小,P-State最大化
P-State电源管理一般用于现代处理器和显示核心,它可以控制有效功率。
例如, NVIDIA GeForce 7300等低端显示核心只有一个P-State。NVIDIA GeForce7900 GT等高端显示核心则至少有两个P-State:在P0状态下运行3D游戏,其频率和电压都被最大化;在P1状态下运行2D模式,频率和电压被最小化。
不过,处理器的P-State电源管理都很复杂。不同的CPU都有不同的P-State状态:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image004.jpg
多核心处理器的P-States
每一个核心都要有一个不同的P-State,这些都取决于处理器能耗控制单元的功率。
单核心
单核心P-State与处理器P-State一样。
双核心
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image005.jpg
我们用Core 2 Extreme X6800来举例说明。在Core 1中运行SuperPI,在Core 2中只能运行WinAmp。Core 1可以在最高工作状态(P0)下运行,而Core 2就要在最低工作状态(P5)下运行。
因为Core 2 Extreme只有一个PLL(时钟来源)和一个Vcore(电压源),最后的主频是2.93GHz,电压源是1.2875V。而AMDAthlon 64 X2 处理器也是只有一个PLL和一个电压源,游戏运行时的效果与Core 2 Extreme X6800差不多。
四核心(Intel)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image006.jpg
Kentsfield处理器是由两个Conroe芯片组成,每一面都有一个芯片。以Core 2 ExtremeX6800为例,我们来看看倍频和电压:
从上表可以看出,Cores 1&2的频率是2.67GHz,Cores 3&4的频率是2.3GHz。所有的核心都有一个相同的电压源(1.2875V)。
P-States
|
倍频
|
主频
|
电压
|
加载
|
P0
|
10x
|
2.67GHz
|
1.2875V
|
71-80%
|
P1
|
9x
|
2.40GHz
|
1.2500V
|
51-70%
|
P2
|
8x
|
2.13GHz
|
1.2250V
|
31-50%
|
P3
|
7x
|
1.87GHz
|
1.2000V
|
11-30%
|
P4
|
6x
|
1.60GHz
|
1.1750V
|
0-10%
|
四核心(AMD)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image007.jpg
AMD下一代四核心处理器Barcelona采用了更为先进的P-State管理技术,与目前的处理器相比,Barcelona有更多的优势。Barcelona处理有三条电源供电电路——一条用于处理CPU核心(4个核心共享一个供电电路),一条为北桥核心供电(含IMC和缓存),一条为输入/输出供电。
P-State状态的其他的特点
超低频率模式
只能在移动酷睿2处理器(Merom核心)中使用。在正常低频率模式中,Intel支持的最小倍频是6x。前端总线的频率是200MHz,CPU最大频率是1.2GHz。另外,新的PLL设计不太理想,因此Intel要把FSB频率降低至100MHz。这就迫使CPU必须在600MHz下运行,且核心电压要低于正常低频率模式。因为芯片组不支持,所以桌面型Conroe核心处理器不能使用这一模式。
CPU温度监控
温度监控的主要目的是在CPU温度过高时降低功耗。在游戏进行到一半的时候,CPU风扇突然不转了,Pentium 4处理器虽然不会烧起来,但绝对会大大影响游戏的进程。基本上有两种降温的方法——一种是靠处理器本身,一种是靠ICH芯片组。相对而言,CPU降温方法要更好更快更有效,此外,它还支持两种温度监控模式,ICH只支持一种。
温度监控1
(Thermal Monitor1, TM1)
|
超过温度极限时,TM1将改变频率周期以降低CPU功耗。在TM1状态时,用户会觉得程序运行不稳定。 Core1进入TM1状态时,Core2仍在正常状态下运行。 |
温度监控2
(Thermal Monitor2, TM2)
|
超过温度极限时,TM2将改变时钟频率与核心电压以降低CPU功耗。所有核心都会同时切入TM2状态。程序运行平稳。只有CPU支持TM2状态。
|
扩展温度监控
(Extended Thermal Monitor, ETTM)
|
在热度环境非常糟糕的情况下,TM1会突然切入TM2状态以降低CPU功耗。
|