CPU工作状态的知识介绍
·应用程序和驱动直接控制了APM驱动
·各个配件的功耗由相应的驱动来管理
·CPU等硬件的功耗由APM BIOS来管理
·电源管理状态比较简单,由APM来管理
·应用程序不负责功耗管理
·配件通过ACPI界面来管理功耗
·ACPI更抽象,因此要把操作系统和硬件分开管理
·电源管理状态更复杂,因此由操作系统来处理。
ACPI电源管理状态
|
·用户可见
·分4个状态:G0, G1, G2, G3
·全局状态G1(不含S5)的睡眠状态
·分5个状态:S1,S2,S3,S4,S5
·用户不可见
·只要有一个配置显示为“on”(启动)状态,另一个则显示为“off”(关闭)状态
·分4个状态:D0,D1,D2,D3
·也叫做CPU睡眠状态
·在全局状态G0中
·分5个状态:C0,C1,C2,C3,C4
·将来会有C6状态(Penryn)
·电压和时钟频率由工作量决定
·P-state状态总量符合CUP/设备规格
·例如,CPU倍频越高,P-states就越高
·当CPU温度超过极限时,监控系统会降低CPU的性能
·在TM1中,功过改变周期来降低CPU性能
·在TM2种,通过改变时钟频率和核心电压(P-state)来降低CPU性能
全局状态(G-States)
|
·在这一状态下可运行应用程序
·整个计算机系统都可以运行,但外设、CPU都可动态改变各自的功耗。例如,在听音乐的时候就会把显示器关闭
·笔记本电脑在运行最大化节电模式时,CPU会在某一时间内
·是所有G状态下功耗最高的
·例如:如果只是上网或者聊天,CPU将以最低的时钟频率运行,同时关闭CD-ROM光驱等,以达到节电的目的。
·在G1状态下无法运行应用程序。计算机呈“关闭”状态。
·不用重新启动,操作系统会切换到正常状态(G0)。
·计算机的大部分内容都会保存在RAM内存或硬盘中。
·唤醒延迟(从G1切换到G0)有很多种,这取决于G1状态下的S-State选择。
·功耗很小,可能降低至几瓦(由S-State决定)。
·例如:在Windows XP系统中会切换到“待机”或“休眠”模式。
·不可运行应用程序和操作系统(保留在G2状态中)。
·除了主要的电源供电单元,基本上会关闭整个系统。
·功耗约等于零
·需重启系统,唤醒延迟时间比较长
·例如,在Windows XP系统中选择“关闭计算机”,但总电源并没有关闭。
·通过切断总电源来彻底关闭计算机
·使用笔记本电源,只有实时时钟频率
·不考虑电池,功耗为零
·切换到工作状态的时间比较长
全局状态
|
运行程序
|
唤醒延迟
|
功耗
|
重启系统
|
G0
|
可以
|
不可以
|
中到大
|
不需
|
G1
|
不可以
|
短至中
|
小
|
不需
|
G2
|
不可以
|
长时间
|
接近零
|
需要
|
G3
|
不可以
|
最长时间
|
仅有电池
|
需要
|
睡眠状态(S-States)
|
2. 不执行应用程序(睡着了嘛)
3. 部分配件处于睡眠状态,方便唤醒
4. 系统被唤醒后,计算机会继续执行
·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系统下的“睡眠”模式
睡眠状态
|
唤醒延迟
|
功耗
|
BIOS重启
|
系统重启
|
CPU
|
缓存
|
芯片组
|
RAM
|
S0(GO)
|
无
|
大
|
不需
|
不需
|
开启
|
开启
|
开启
|
开启
|
S1(G1)
|
2-3秒
|
中
|
不需
|
不需
|
无频率
|
无效
|
无频率
|
自动更新
|
S2(G1)
|
3-4秒
|
中至低
|
不需
|
不需
|
关闭
|
关闭
|
无频率
|
自动更新
|
S3(G1)
|
5-6秒
|
低
|
不需
|
不需
|
关闭
|
关闭
|
关闭
|
低功耗
|
S4(G1)
|
20-30秒
|
非常低
|
需要
|
需要
|
关闭
|
关闭
|
关闭
|
自动更新
|
S5(G2)
|
> 30秒
|
接近零
|
需要
|
需要
|
关闭
|
关闭
|
关闭
|
关闭
|
·在此状态下,计算机在全功耗和全功能下运行
·例如:可以使用DVD-ROM光驱
·功耗比D0状态下低
·例如:在不使用的情况下会自动关闭DVD-ROM光驱,但驱动仍在运行
·与D1相似,但电压更低
·在此状态下更节能,不过从D2状态唤醒的时间更长
·此状态下,所有设备均被关闭
·可最大限度节能
·唤醒时间是所有D状态下最慢的
设备状态
|
功耗
|
唤醒延迟
|
驱动监控
|
驱动控制器
|
界面内容
|
D0
|
100%
|
0
|
开启
|
功能性
|
保存
|
D1
|
80%
|
5秒
|
关闭
|
功能性
|
保存
|
D2
|
待定
|
待定
|
待定
|
待定
|
待定
|
D3
|
10%
|
6-7秒
|
关闭
|
非功能性
|
不保存
|
设备状态
|
唤醒延迟
|
显示器
|
DPMS
|
控制内容
|
内存内容
|
D0
|
0
|
开启
|
开启
|
保存
|
保存
|
D1
|
1秒
|
关闭
|
关闭
|
保存
|
保存
|
D2
|
5秒
|
关闭
|
开启
|
丢失
|
丢失
|
D3
|
>6秒
|
关闭
|
关闭
|
丢失
|
丢失
|
·这是CPU最大工作状态,在此状态下可以接收指令和处理数据
·所有现代处理器必须支持这一功耗状态
·可以通过执行汇编指令“HLT(挂起)”进入这一状态
·唤醒时间超快!(快到只需10纳秒!)
·可以节省70%的CPU功耗
·所有现代处理器都必须支持这一功耗状态
·处理器时钟频率和I/O缓冲被停止
·换言之,处理器执行引擎和I/0缓冲已经没有时钟频率
·在C2状态下也可以节约70%的CPU和平台能耗
·从C2切换到C0状态需要100纳秒以上
·总线频率和PLL均被锁定
·在多核心系统下,缓存无效
·在单核心系统下,内存被关闭,但缓存仍有效
·可以节省70%的CPU功耗,但平台功耗比C2状态下大一些
·唤醒时间需要50微妙
·二级缓存的数据被减为零
·唤醒时间超过200微妙
·这是Penryn处理器中新增的功耗管理模式
·二级缓存减至零后,CPU的核心电压更低
·不保存CPU context
·功耗未知,应该接近零
·唤醒时间未知
电源状态
|
执行
|
唤醒时间
|
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
|
是
|
P1,P2,P3……. :P1 > P2 > P3等等
Pn:能耗最小,P-State最大化
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%
|
温度监控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工作状态的知识介绍的更多相关文章
- 「MoreThanJava」一文了解二进制和CPU工作原理
「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...
- [转] - Linux网络编程 -- 网络知识介绍
(一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户 ...
- (转)计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理
原文:https://blog.csdn.net/cc_net/article/details/10419645 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体 ...
- (转)Linxu磁盘体系知识介绍及磁盘介绍
Linxu磁盘体系知识介绍及磁盘介绍 系统管理 / 2017-01-14 / 0 条评论 / 浴春风 Linu磁盘设备基础知识指南磁盘速度快具备的条件: 1)主轴的转速5400/7200/10000/ ...
- PySpark SQL 相关知识介绍
title: PySpark SQL 相关知识介绍 summary: 关键词:大数据 Hadoop Hive Pig Kafka Spark PySpark SQL 集群管理器 PostgreSQL ...
- Nginx基础知识介绍
Nginx基础知识介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx是免费的.开源的.高性能的HTTP和正向/反向代理服务器.邮件代理服务器.以及T ...
- 计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理
前言 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体. 依旧记得当时在同学家看同学输入几个DOS命令就成功的打开了一个游戏,当时实在是佩服的五体投地.因为对我来 ...
- ElasticSearch实战系列四: ElasticSearch理论知识介绍
前言 在前几篇关于ElasticSearch的文章中,简单的讲了下有关ElasticSearch的一些使用,这篇文章讲一下有关 ElasticSearch的一些理论知识以及自己的一些见解. 虽然本人是 ...
- CPU发展史和相关品牌介绍
CPU发展史和相关品牌介绍 CPU发展已经有40多年的历史了.我们通常将其分成 六个阶段. (1)第一阶段 (1971年-1973年) .这是4位和8位低档微处理器时代,代表产品是Intel 4004 ...
随机推荐
- [codevs2181]田忌赛马
[codevs2181]田忌赛马 试题描述 中国古代的历史故事"田忌赛马"是为大家所熟知的.话说齐王和田忌又要赛马了,他们各派出N匹马,每场比赛,输的一方将要给赢的一方200两黄金 ...
- Ubuntu下编译安装OpenCV 2.4.7并读取摄像头[转]
主要参考: 1.http://www.ozbotz.org/opencv-installation/ 2.http://www.ozbotz.org/opencv-install-troublesho ...
- BZOJ 1355: [Baltic2009]Radio Transmission
Description 一个字符串最短周期. Sol KMP. 最短周期就是 \(n-next[n]\) 证明: 当该字符串不存在周期的时候 \(next[n]=0\) 成立. 当存在周期的时候 \( ...
- 浅析mongoEngine的document对象
引言: from mongoengine import * connect('local')class Test(Document): name=StringField(max_length=32) ...
- svn提交报错:svn: Aborting commit:XXXXXremains in conflict
Svn服务器上的对应内容,在上次Update后已被别人修改了,而我也做了修改,造成冲突.先备份自己的修改,从SVN上取一份别人的修改覆盖自己的文件,然后合并自己的修改进去,最后Commit.可以先更新 ...
- Redis Sentinel机制与用法(一)
Sentinel spring 集群配置: 概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕 ...
- oracle数据库高级应用之《自动生成指定表的insert,update,delete语句》
/* * 多条记录连接成一条 * tableName 表名 * type 类型:可以是insert/update/select之一 */ create or replace function my_c ...
- c里面的fflush函数
NAME fflush - flush a stream SYNOPSIS #include <stdio.h> int fflush(FILE *stream); DESCRIPTION ...
- Linux之图形化shell------dialog
转自:Linux dialog详解(图形化shell) | 运维生存时间 对话 UNIX: 使用 shell 脚本创建好的图形应用程序---http://www.ibm.com/developerwo ...
- Linux下查看机器公网IP
http://jimingsong.iteye.com/blog/1188905 curl http://ifconfig.me