转自: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

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)
    我们来看看下面的例子:
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工作状态的知识介绍的更多相关文章

  1. 「MoreThanJava」一文了解二进制和CPU工作原理

    「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...

  2. [转] - Linux网络编程 -- 网络知识介绍

    (一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍客户端和服务端         网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户 ...

  3. (转)计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理

    原文:https://blog.csdn.net/cc_net/article/details/10419645 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体 ...

  4. (转)Linxu磁盘体系知识介绍及磁盘介绍

    Linxu磁盘体系知识介绍及磁盘介绍 系统管理 / 2017-01-14 / 0 条评论 / 浴春风 Linu磁盘设备基础知识指南磁盘速度快具备的条件: 1)主轴的转速5400/7200/10000/ ...

  5. PySpark SQL 相关知识介绍

    title: PySpark SQL 相关知识介绍 summary: 关键词:大数据 Hadoop Hive Pig Kafka Spark PySpark SQL 集群管理器 PostgreSQL ...

  6. Nginx基础知识介绍

    Nginx基础知识介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx是免费的.开源的.高性能的HTTP和正向/反向代理服务器.邮件代理服务器.以及T ...

  7. 计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理

    前言 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体. 依旧记得当时在同学家看同学输入几个DOS命令就成功的打开了一个游戏,当时实在是佩服的五体投地.因为对我来 ...

  8. ElasticSearch实战系列四: ElasticSearch理论知识介绍

    前言 在前几篇关于ElasticSearch的文章中,简单的讲了下有关ElasticSearch的一些使用,这篇文章讲一下有关 ElasticSearch的一些理论知识以及自己的一些见解. 虽然本人是 ...

  9. CPU发展史和相关品牌介绍

    CPU发展史和相关品牌介绍 CPU发展已经有40多年的历史了.我们通常将其分成 六个阶段. (1)第一阶段 (1971年-1973年) .这是4位和8位低档微处理器时代,代表产品是Intel 4004 ...

随机推荐

  1. HDU 2861 四维dp打表

    Patti and Terri run a bar in which there are 15 stools. One day, Darrell entered the bar and found t ...

  2. java socket client

    用tornado做了个socket server.无奈联调的人员对接不上. 于是撸出了以下demo import java.io.*; import java.net.*; public class ...

  3. jenkins Auth fail验证失败

    重新设置密码

  4. discuz论坛移植修改数据库配置

    从其他地方拷贝的discuz源码,可能需要修改数据库配置 分别打开discuz目录下面以下三个文件 discuzRoot/uc_server/data/config.inc.phpdiscuzRoot ...

  5. 2017/1/7 学习笔记 jar包,maven

    ① 关于tar,jar,war文件 tar是通用的另一种打包格式,为了部署到服务器时方便. jar是java app server识别的java部署格式,其实是Zip文件,只是内部的文件有规范. wa ...

  6. MD5 加密字符串

    public class MD5 { /*** * MD5加码 生成32位md5码 */ public static String string2MD5(String inStr){ MessageD ...

  7. Linux设置交换分区swap

    参考: http://www.vpser.net/opt/vps-add-swap.html https://www.zntec.cn/archives/vps-swap.html http://yz ...

  8. struts2 插件使用

    1.引用这个jar包 2.http://localhost:8080/strute2demo/config-browser/actionNames.action

  9. 2.openstack之mitaka搭建控制节点数据库和消息队列

    一:部署mariadb数据库 控制节点(192.168.11.103): yum install mariadb mariadb-server python2-PyMySQL -y 编辑: /etc/ ...

  10. Mathematics:Ultra-QuickSort(POJ 2299)

    极度快速排序 题目大意:在一个输入数组中找逆序数... 水题,求逆序数的很好的算法,就是MergeSort,和我之前发的DNA那个差不多,最后就是后台数据很大,答案要用long long #inclu ...