CPU的电源状态分类

有感于CPU的各种电源状态描述复杂且混乱无比。常见的诸如S0/S1/S3,C0/C3一会儿又成了P开头的P0,P1,还有一堆P01~P0n之类的让人一时半会儿摸不着头脑,这次就一次性归纳一下吧。

首先是G字母开头的0-3,G = global是从系统全局出发给出的系统级别的电源状态。工作、休眠、软硬关机4个状态。G状态本质上并不是对CPU状态的直接描述,但CPU会在不同的全局状态下有自己对应的状态。

S开头的0-5,S个人理解为sleep,描述各种CPU的休眠状态。S0代表了CPU在工作状态,S1-4则代表CPU处于某种休眠状态,数字越大睡得越香,S5则是软关机状态。

C开头的0-10(没有C2/C4/C5的具体描述,待后续完善),C=CPU(似乎CPU core更为确切)。代表的CPU core级别的工作状态,0为工作状态,数字越大说明CPU处在越节能的状态。从单个Core的角度上说C6时core已经处在了关闭的状态,但之后的C7+则进一步从core上升到了socket,关闭同一socket上的LLC,降低电压——直至关闭电源。

P开头的0-n,P=performance,代表当前系统的性能设定状态。当P0时,CPU会以标称频率运行,数字越大频率越低,CPU将会采用更加激进的方式通过降低频率来实现节能的效果。与之相关的技术如speed step技术。本身这是一个socket级别的技术,但后期有了PCPS以及后续的HWP之后,这个技术就成为了core级别的设定。

P0之上还有个特例,就是基于turbo技术的P01~P0n,n越大,CPU将会跑在更高的高于CPU标称频率之上,这里的n等于实际倍频和标称倍频之差。受制于CPU的热功耗上限,不同工况下CPU core能承载的n值是不同的。换而言之,由于热功耗是一个固定的值,在某些核心处于低功耗状态时,允许另外核心提升到更高的频率,即可以使n更大。

最后,附上一张关联图:

推荐阅读:
如果大家了解一点CPU的知识,
事出前些日子有人咨询我:“在某
时延 latency(亦称为延

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请补全下列算式: *

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据