CPU工作状态的知识介绍

转自:http://blog.csdn.net/fivedoumi/article/details/11617545

近几年,个人计算机的运行速度有了质的飞跃,但是功耗却没能与时俱进,着实让人觉得遗憾不少。例如这样一台为游戏玩家配备的电脑:四核心处理器、两块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电源管理状态
  
    今天,我们就好好说说已经被广泛使用的ACPI电源管理标准。
    以下是ACPI规格的具体电源管理状态,稍后我们详细介绍一下各个状态:
    全局状态(Global system states)
    ·用户可见
    ·分4个状态:G0, G1, G2, G3
    睡眠状态(Sleeping states)
    ·全局状态G1(不含S5)的睡眠状态
    ·分5个状态:S1,S2,S3,S4,S5
    设备电源状态(Device Power states)
    ·用户不可见
    ·只要有一个配置显示为“on”(启动)状态,另一个则显示为“off”(关闭)状态
    ·分4个状态:D0,D1,D2,D3
    CPU电源状态(CPU Power states)
    ·也叫做CPU睡眠状态
    ·在全局状态G0中
    ·分5个状态:C0,C1,C2,C3,C4
    ·将来会有C6状态(Penryn)
    CPU/设备性能状态(CPU / Device Performance states)
    ·电压和时钟频率由工作量决定
    ·P-state状态总量符合CUP/设备规格
    ·例如,CPU倍频越高,P-states就越高
    CPU温度监控(CPU Thermal Monitor)
    ·当CPU温度超过极限时,监控系统会降低CPU的性能
    ·在TM1中,功过改变周期来降低CPU性能
    ·在TM2种,通过改变时钟频率和核心电压(P-state)来降低CPU性能
 
  
全局状态(G-States)
  
    G0工作状态
    ·在这一状态下可运行应用程序
    ·整个计算机系统都可以运行,但外设、CPU都可动态改变各自的功耗。例如,在听音乐的时候就会把显示器关闭
    ·笔记本电脑在运行最大化节电模式时,CPU会在某一时间内
    ·是所有G状态下功耗最高的
    ·例如:如果只是上网或者聊天,CPU将以最低的时钟频率运行,同时关闭CD-ROM光驱等,以达到节电的目的。
    G1睡眠状态
    ·在G1状态下无法运行应用程序。计算机呈“关闭”状态。
    ·不用重新启动,操作系统会切换到正常状态(G0)。
    ·计算机的大部分内容都会保存在RAM内存或硬盘中。
    ·唤醒延迟(从G1切换到G0)有很多种,这取决于G1状态下的S-State选择。
    ·功耗很小,可能降低至几瓦(由S-State决定)。
    ·例如:在Windows XP系统中会切换到“待机”或“休眠”模式。
    G2软关机状态
    ·不可运行应用程序和操作系统(保留在G2状态中)。
    ·除了主要的电源供电单元,基本上会关闭整个系统。
    ·功耗约等于零
    ·需重启系统,唤醒延迟时间比较长
    ·例如,在Windows XP系统中选择“关闭计算机”,但总电源并没有关闭。
    G3机械性关机
    ·通过切断总电源来彻底关闭计算机
    ·使用笔记本电源,只有实时时钟频率
    ·不考虑电池,功耗为零
    ·切换到工作状态的时间比较长
    全局状态概要
  
全局状态
  
  
运行程序
  
  
唤醒延迟
  
  
功耗
  
  
重启系统
  
  
G0
  
  
可以
  
  
不可以
  
  
中到大
  
  
不需
  
  
G1
  
  
不可以
  
  
短至中
  
  
小
  
  
不需
  
  
G2
  
  
不可以
  
  
长时间
  
  
接近零
  
  
需要
  
  
G3
  
  
不可以
  
  
最长时间
  
  
仅有电池
  
  
需要
  
 
  
睡眠状态(S-States)
  
    1. CPU不执行指令(彻底睡过去了,嘿嘿)
    2. 不执行应用程序(睡着了嘛)
    3. 部分配件处于睡眠状态,方便唤醒
    4. 系统被唤醒后,计算机会继续执行
    S1状态
    ·CPU输入频率被终止,缓存无效
    ·系统内存进入“Self-refreshing(自我更新)”模式
    ·除实时频率外,所有系统频率被关闭
    ·功耗比G0工作状态下更低
    ·一般需2秒切换到G0工作状态
    ·例如:如果不支持S3状态,就在Windows XP系统下进入“待机”模式
    S2状态
    ·与S1状态相似——除了CPU功耗状态
    ·在S2中,CPU和缓存被关闭
    ·S2状态中的唤醒延迟比S1长,但更省电
    S3状态
    ·除了RAM,CPU、缓存、芯片组、外设均被关闭
    ·需要调用内存的设备仍然运行
    ·RAM转入低功耗、自我更新模式
    ·只有RAM与板载配置的功耗
    ·唤醒延迟为5-6秒
    ·例如:如果硬件支持S3状态,在Windows XP系统中进入“待机”模式
    S4状态
    ·包括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光驱
    D1状态
    ·功耗比D0状态下低
    ·例如:在不使用的情况下会自动关闭DVD-ROM光驱,但驱动仍在运行
    D2状态
    ·与D1相似,但电压更低
    ·在此状态下更节能,不过从D2状态唤醒的时间更长
    nD3状态
    ·此状态下,所有设备均被关闭
    ·可最大限度节能
    ·唤醒时间是所有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最大工作状态,在此状态下可以接收指令和处理数据
    ·所有现代处理器必须支持这一功耗状态
    C1状态(挂起)
    ·可以通过执行汇编指令“HLT(挂起)”进入这一状态
    ·唤醒时间超快!(快到只需10纳秒!)
    ·可以节省70%的CPU功耗
    ·所有现代处理器都必须支持这一功耗状态
    C2状态(停止允许)
    ·处理器时钟频率和I/O缓冲被停止
    ·换言之,处理器执行引擎和I/0缓冲已经没有时钟频率
    ·在C2状态下也可以节约70%的CPU和平台能耗
    ·从C2切换到C0状态需要100纳秒以上
    C3状态(深度睡眠)
    ·总线频率和PLL均被锁定
    ·在多核心系统下,缓存无效
    ·在单核心系统下,内存被关闭,但缓存仍有效
    ·可以节省70%的CPU功耗,但平台功耗比C2状态下大一些
    ·唤醒时间需要50微妙
    C4状态(更深度睡眠)
    ·与C3相似,但有两大区别
    ·一是核心电压低于1.0V
    ·二是二级缓存内的数据存储将有所减少
    ·可以节约98%的CPU最大功耗
    ·唤醒时间比较慢,但不超过1秒
    C5状态
    ·二级缓存的数据被减为零
    ·唤醒时间超过200微妙
    C6状态
    ·这是Penryn处理器中新增的功耗管理模式
    ·二级缓存减至零后,CPU的核心电压更低
    ·不保存CPU context
    ·功耗未知,应该接近零
    ·唤醒时间未知
多核心处理器的C状态(C-States)
在多状态每一个核心都会有一个多重C状态,但每一次都只能有一个C状态。假设处理器C状态是Cx,核心C状态是CCx,那么决定处理器C状态的公式是:
    Cx =max (CCx1, CCx2, CCx3……, CCxn)
    我们来看看下面的例子:
    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最大化
    P-State电源管理一般用于现代处理器和显示核心,它可以控制有效功率。
    例如, NVIDIA GeForce 7300等低端显示核心只有一个P-State。NVIDIA GeForce7900 GT等高端显示核心则至少有两个P-State:在P0状态下运行3D游戏,其频率和电压都被最大化;在P1状态下运行2D模式,频率和电压被最小化。
    不过,处理器的P-State电源管理都很复杂。不同的CPU都有不同的P-State状态:
多核心处理器的P-States
每一个核心都要有一个不同的P-State,这些都取决于处理器能耗控制单元的功率。
    单核心
    单核心P-State与处理器P-State一样。
    双核心
    我们用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)
    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)
    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功耗。
  
 
 
 
posted @ 2016-05-09 11:02  随风飘落的雨滴  阅读(4887)  评论(0)    收藏  举报