首页 > 代码库 > CPU工作状态的知识介绍

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来管理
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image002.jpg
    ·执行成本偏高,但比较有效
    ·应用程序不负责功耗管理
    ·配件通过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
  
  
S0GO
  
  
  
  
  
  
不需
  
  
不需
  
  
开启
  
  
开启
  
  
开启
  
  
开启
  
  
S1G1
  
  
2-3
  
  
  
  
不需
  
  
不需
  
  
无频率
  
  
无效
  
  
无频率
  
  
自动更新
  
  
S2G1
  
  
3-4
  
  
中至低
  
  
不需
  
  
不需
  
  
关闭
  
  
关闭
  
  
无频率
  
  
自动更新
  
  
S3G1
  
  
5-6
  
  
  
  
不需
  
  
不需
  
  
关闭
  
  
关闭
  
  
关闭
  
  
低功耗
  
  
S4G1
  
  
20-30
  
  
非常低
  
  
需要
  
  
需要
  
  
关闭
  
  
关闭
  
  
关闭
  
  
自动更新
  
  
S5G2
  
  
> 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)
    我们来看看下面的例子:
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最大化
    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功耗。
  
 

CPU工作状态的知识介绍