# 处理器电源管理

为了实现精细的电源管理，英特尔处理器目前支持通过片上电源开关创建的电压岛（一项日渐普遍的技术是将设计分割成许多的“电压岛”— 将各个功能块与不同的供电电压相关联）的多个分区。 英特尔智能电源技术（Intel SPT）和英特尔智能空闲技术（Intel SIT）软件确定平台最省电的状态，并提供指导以在任何给定时间打开或关闭处理器上的不同电压岛。收到指示进入低功耗状态的指令后，处理器将等待所有共享电压的分区到达安全点，然后再进行请求的状态更改。

## CPU状态（C状态）

CPU并非始终处于活动状态。某些应用程序需要来自系统或用户的输入，在此期间，CPU有机会等待并变为空闲状态。当CPU处于空闲状态或运行低强度应用程序时，无需保持CPU的所有内核通电。 CPU工作状态（C状态）是空闲处理器关闭未使用的组件以节省功率的能力。对于多核处理器，C状态可以应用于程序包级别或核心级别。例如，当一个单线程应用程序在四核处理器上运行时，只有一个核心处于繁忙状态，而其他三个核心可以处于低功耗，更深的C状态。任务完成后，没有内核处于繁忙状态，整个封装可以进入低功耗状态。 ACPI规范为处理器内核定义了几种低功耗空闲状态。当处理器以C0状态运行时，它正在工作。在任何其他C状态下运行的处理器都处于空闲状态。较高的C状态数字表示较深的CPU睡眠状态。在较高的C状态下，将采取更多的节能措施，例如停止处理器时钟，停止中断等。但是，较高的C状态也具有较长的退出和进入等待时间的缺点，从而导致较慢的唤醒时间。对于 如果需要更深入的了解，请参阅表6-7中对Intel Atom处理器的各种C状态的简要说明。

\| 状态 | 功能 | 描述 | | C0 | 全开 | 这是运行软件的唯一状态。 所有时钟都在运行，并且处理器内核处于活动状态。 处理器可以为侦听服务，并在此状态下保持缓存一致性。 接口，时钟门控等的所有电源管理， 在单位级别进行控制 | | C1 | 自动停止 | 当核心处理器执行自动暂停指令时，会发生第一级功耗降低。 这将停止执行指令流，并大大降低了核心处理器的功耗。 核心处理器可以为监听提供服务，并在其中保持缓存一致性 这种状态。 处理器的North Complex逻辑未明确区分C1和C0 | | C2 | 停止补助 | 当核心处理器进入“停止授权”状态时，会发生下一个级别的功耗降低。 核心处理器可以在此状态下侦听侦听并保持高速缓存一致性。 北部综合大楼仅支持接收单个停车授权。 在核心处理器请求C2（或更深层的请求）之后，将进入C2状态。 检测到中断事件后，将退出C2状态，进入C0状态。 处理器必须确保PLL处于唤醒状态，此时存储器将无法自我刷新 | | C4 | 深度睡眠 | 在这种状态下，核心处理器将关闭其PLL(锁相环)，并且无法处理监听请求。 还告诉核心处理器稳压器降低处理器的电压。 在C4状态期间，North Complex继续处理到内存的流量，只要此流量不需要监听（即，不为任何一致的流量请求提供服务）。 通过从核心处理器/ OS接收C4请求进入C4状态。 当North Complex检测到可监听的事件或Break事件时，会退出C4，这将导致它唤醒核心处理器并启动序列以返回C0状态 | | C6 | 深度掉电 | 在进入C6状态之前，核心处理器会刷新其缓存并将其核心上下文保存到不同电源板上的特殊片上SRAM中。 一旦完成C6进入顺序，就可以完全关闭核心处理器的电压。 C4状态和C6状态之间的North Complex逻辑的主要区别在于，由于核心处理器的缓存为空，因此无需在内部前端总线（FSB）上执行监听。 这意味着可以在C6状态期间不受阻碍地流动总线主控事件（这将导致从C4状态弹出到C2状态）。 但是，核心处理器仍必须返回到C0状态以处理中断。 驻留计数器由核心处理器读取 基于对过渡的能量意识和驻留/过渡的历史进行智能的提升/降级 |

## 性能状态（P状态）

处理器设计者已经意识到，以固定的频率和电压设置运行CPU并非对所有应用都有效。实际上，某些应用不需要在最高额定频率和电压设置所定义的工作点上运行。对于此类应用，可以通过降低工作点来节省功率。 处理器性能状态（P状态）是处理器执行以下操作的能力： 在支持的不同工作频率和电压之间切换以调节功耗。 ACPI为电源管理定义了几个特定于处理器的P状态，以便将系统配置为以节能的方式对系统工作负载做出反应。数字上较高的P状态表示较慢的处理器速度以及较低的功耗。例如，与在P1状态下运行的处理器相比，处于P3状态的处理器将运行得更慢并且消耗的功率更少。 当设备或处理器处于运行状态且未空闲（分别为D0和C0）时，它可以处于几种P状态之一。 P0始终是性能最高的状态，而P1至Pn则依次为性能较低的状态，根据实现的不同，n最多可以为16。 P状态根据动态电压或频率缩放的原理使用，并且在市场上可以作为Intel处理器的SpeedStep PowerNow！获得。适用于AMD处理器，以及适用于VIA处理器的PowerSaver。 P状态与C状态的不同之处在于C状态是空闲状态，而P状态是操作状态。这意味着，除了C0（CPU处于活动状态并且正在忙于执行某事）之外，C状态是空闲状态。并在较高的C状态下关闭CPU是有意义的，因为CPU没有执行任何操作。另一方面，P状态是操作状态，这意味着CPU可以在任何P状态下进行有用的工作。 C状态和P状态也是正交的-也就是说，每个状态可以彼此独立地变化。当系统恢复到C0时，它将返回到该P状态定义的工作频率和电压。 尽管P状态与CPU时钟频率有关，但它们并不相同。 CPU时钟频率是衡量CPU主时钟信号上升或下降的速度的指标，这可能是性能的指标，因为更高的性能通常意味着使用更高的时钟频率（内存绑定任务除外）。但是，这是向后看的，因为只有在经过某些时钟周期后才能测量平均时钟频率。另一方面，P状态是OS希望在特定CPU上看到的性能状态，因此P状态是前瞻性的。通常，较高的时钟频率会导致较高的功耗。 当CPU空闲时（即处于较高的C状态），无论OS请求的P状态如何，频率都应为零（或非常低）。但是，请注意，出于实际原因，当前CPU封装上的所有内核都共享相同的电压。由于在保持相同电压的情况下以不同的频率运行不同的内核效率不高，因此所有活动内核将在任何给定时间共享相同的时钟频率。但是，某些核心可能处于空闲状态，并且应具有零频率。由于OS向逻辑处理器请求某个P状态，因此只有在没有一个内核处于繁忙状态并且所有内核都保持在相同的零频率时，才可能将一个内核保持在零频率。 虽然为所有核使用全局电压电源会导致无法满足某些P状态要求的情况，但为每个核提供单独的局部电压电源将使成本过高。关于全球和本地电压平台的折衷方案是采用具有不同电压岛的多核架构，其中多个核电压岛上的电压共享相同但可调节的电源电压。 英特尔的多核平台称为单芯片云计算机就是一个例子。 另一个示例是使用某些处理器中可用的全集成稳压器（FIVR），该稳压器允许每个内核处于P状态，以便内核可以在彼此独立的频率下运行。 正如集成GPU的行为类似于CPU一样，已为GPU定义了C状态和P状态，例如CPU C状态和P状态。 这些称为渲染C状态（RC状态）和渲染P状态（RP状态）。

## 超频

可以对CPU超频，这意味着以高于制造商指定频率的频率运行内核。实际上，由于存在多个内核以及功率预算导致的所谓的超频功能，这种行为是可能的。 超频是增加频率和电压的独特情况，因此超频状态与电压和频率降低的各种P状态相反。在低于某些参数规格的情况下运行时，CPU进入加速状态，这使其有一定的余量来提高性能，而不会违反其他设计规格。这些参数包括活动核心的数量，处理器温度以及估计的电流和功耗。如果处理器的操作低于此类参数的限制，并且工作负载需要其他性能，则处理器频率将自动动态增加，直到达到上限为止。在超频状态下，复杂的算法同时管理电流，功率和温度，以实现最大的性能和功率效率。 为了更好地理解超频场景，让我们考虑一个例子。假设四核CPU的TDP限制为35W，那么每个核的最大功率预算为8.75W。如果四个内核中的三个处于空闲状态，则唯一的操作内核可以利用整个35W的功率预算，并且可以“超频”达到比使用频率可能高得多的频率不到9W的功率预算。同样，如果两个内核处于活动状态，则它们使用相同的更高频率并共享功率预算，而空闲内核则不消耗任何能量。 当条件允许处理器进入超频模式时，最大超频频率是可获得的最高可能频率。英特尔睿频加速技术的频率取决于工作量，硬件，软件和整体系统配置。由于功率特性的变化，对应于涡轮范围频率的P状态的请求可能会或可能不会得到满足。因此，折中的选择取决于许多因素，例如其他内核和GPU的性能，处理器所处的热状态等等。此行为也随时间变化。因此，由于工作频率随时间变化并且取决于C状态选择策略和图形子系统，因此选择P状态值不能保证特定的性能状态。 通常，P1状态对应于OS可以请求的最高保证性能状态。但是，OS可以请求具有较高性能的机会状态，即P0。当功率和热预算可用时，此状态允许处理器配置，其中一个或多个内核可以以比保证的P1频率更高的频率运行。处理器可以包括高于P1频率的多个所谓的Turbo模式频率。

一些处理器具有较大的超频范围，并且通常在内核寻求加速时为所有内核授予最大可能的超频频率。 但是，并非所有应用程序都能有效地使用增加的核心频率。 不同的内存访问模式，可能的缓存争用，或类似来源。 因此，让所有内核处于超频模式的最高级别可能会不必要地消耗功率。 为了克服这种低效率，技术 已经提出了有效地使一个或多个内核独立运行的建议。其中一项技术会定期分析所有授予超频模式的内核，以根据在观察间隔内内核是否被分类为停转来确定是否应增加，降低或保持其频率不变。

## 热态（T态）

为了防止潜在的过热损坏，处理器通常具有热保护机制，在这种情况下，为了减少能量消耗，处理器会通过关闭处理器时钟然后根据预定的占空比重新开启来进行节流。 定义热状态或T状态以控制这种节流以便降低功率，并且可以将其应用于各个处理器内核。 T状态可能会忽略性能影响，因为它们的主要原因是出于散热原因而降低了功率。 T状态共有8个，从0到7，而活动状态为T0。 这些状态通常不用于电源管理。
