- C-States 在空闲时保存(更深 = 更长延迟),P-States 在负载下调整频率/电压。
- 两者是正交的:CPU 可以在高频运行后深度睡眠。
- C6/C7 延迟会影响游戏、音频和网络;根据负载调整最大 C 状态。
- 使用工具(Windows 和 Linux)和 BIOS/OS 配置文件进行测量和管理,而不会失去稳定性。

在现代处理器中,电源管理不是一个单独的开关,而是一组 协调机制(CPU 的 C 状态和 P 状态等) 操作系统、固件和 CPU 本身会利用这些参数实时调整功耗、温度和性能。本文将对这些复杂的缩写进行提炼和整理,以便您了解计算机在省电或加速时背后的运作机制。
尽管每个制造商和 CPU 系列都添加了自己的特色,但基础是共同的: ACPI 定义标准“状态” 适用于系统、设备和处理器。在这里,您将了解 C 状态和 P 状态之间的区别、它们与 G/S/D 状态的关系、它们对延迟的实际影响、游戏玩家和专业音响发烧友经常禁用深度睡眠的原因,以及在 Windows、Linux 和 ESXi 等环境中有哪些实用工具可用。
ACPI 简介
ACPI (Advanced Configuration and Power Interface) 是协调 PC 和服务器电源的标准, 以更好的控制和粒度取代 APM。它诞生于 90 年代,由英特尔、微软和东芝共同开发,并发展到包括 64 位、多处理、现代总线(PCIe、SATA、USB 3.x)和事件检测(例如电源按钮)的功能。
虽然 ACPI 主要用于 x86 系列,但它也已部署在其他架构上。然而,在 ARM 移动设备上, 使用专有策略(例如 big.LITTLE 和异构集群) 根据负载平衡效率和响应。

全局和暂停状态(G 状态和 S 状态)
全局状态描述了系统的完整状态。最重要的是 G0/S0(工作),其中计算机处于活动状态。在最近的硬件上 S0ix(S0 的子状态) 它允许部分 SoC 进入睡眠状态,实现非常精细的睡眠模式,尤其是在笔记本电脑中。
- G0/S0:系统正在运行。
- G1(睡眠):涵盖 S1、S2、S3(挂起到 RAM)和 S4(休眠到磁盘)。 S3 保持 RAM 供电 快速恢复;S4 将内存刷新到非易失性存储器。
- G2/S5(软关机):以最小功率进行逻辑关机,以允许通过事件(键盘、网络等)唤醒。
- G3(机械关闭):物理关机;每个电池仅能维持 RTC 运行。
请记住这一点 处理器的 C 状态位于 G0/S0 内:当系统进入 G1 时,CPU 包关闭并且 C 状态停止播放。
设备状态(D 状态)
ACPI 还定义了外围设备如何睡眠或唤醒。 D0 相当于“全功能”,D1/D2 为中间 (取决于设备)并且 D3 分支为热(使用辅助电源,响应总线)或冷(完全关闭,无响应)。例如,这允许网卡在其他设备处于休眠状态时唤醒计算机。
T-States:时钟调制,最后的手段
除了 P 和 C 之外,还有 时钟调制(T 状态):一种 PWM,它会以某种模式(例如,每 8 个脉冲中抑制 1 个)抑制内部时钟脉冲,从而减少活动,而不会改变标称的基准频率。它旨在作为一种热效应或紧急应对措施 (PROCHOT),并通过 IA32_CLOCK_MODULATION 进行控制,原因/日志位于 MSR_*_PERF_LIMIT_REASONS 中。
尽管有些文件认为这“无关紧要”,但在实践中 它不断出现在具有良好散热设计的笔记本电脑上 以及持续负载下。如果您看到 Windows 报告的“速度”低于最低 EIST,则很可能存在 T 状态激活(时钟门控)。
M-States:节省内存
ACPI 还提供内存状态以在系统空闲时降低 DRAM 子系统的功耗。 M0为正常运行M1/M2 和其他模式会强制内存自我刷新,从而降低时序,延长唤醒延迟,降低功耗。这些变化对用户来说不太明显,但有助于整体节能。
处理器 C 状态:头部睡眠
现在我们来讨论一下本文的主题:C 状态和 P 状态。C 状态是内核或程序包的空闲状态。 数字越高,睡眠越深 并带来更大的节省,但唤醒延迟也更高。它们通过特权指令(例如 HLT 或 MWAIT)进行请求(后者可以明确请求 Cx 和子状态),并且功能映射通过 ACPI(_CST)到达操作系统。
- C0:正常执行。这时 P 状态就发挥作用了。
- C1/C1E(停止):核心停止, 几乎立即返回 至C0;C1E进一步降低消耗。
- C2(停表):时钟信号停止,返回需要稍长的时间。
- C3(睡眠/深度睡眠):L1/L2 被刷新到最后一个缓存(LLC)并且核心时钟被关闭; 仅保留原子核的本质状态.
- C6 及以上:内核可以关闭,其上下文信息会保存在专用 SRAM 中,从而将内核电压降至约 0 V;退出时,内核状态将恢复。某些型号在最新平台上最高可达 C10。
除了每个原子核的 C 态(CC 态)之外,还有 包 C 状态(PC 状态) 当所有核心都允许时,关闭共享块(例如 LLC)。存在无效的组合(如果核心位于 C0,则数据包不能位于 PC6),并且 CPU 可以根据目标延迟和驻留时间自动“提升”或“降低”层级。
延迟很重要: C1 仅用几十个周期就被废弃而 C6/C7 则可能耗时数百微秒。因此,如果处理器频繁进入深度睡眠,延迟敏感型负载(游戏、实时音频、高要求网络)就会受到影响。
性能 P 状态:频率和电压
C 型州是“没有工作时睡觉”,而 P 型州是“调整节奏时 是的,有工作,但不需要付出最大努力。”。P0 代表最高性能状态(最高频率/电压),然后是 P1、P2……每个状态的频率/电压对依次递减。这些表通过 ACPI (_PSS) 声明到操作系统,并由 IA32_PERF_CTL/IA32_PERF_STATUS 等 MSR 控制。
历史上,操作系统要求 P-States(英特尔的 EIST/SpeedStep,AMD 的 PowerNow!),但今天常见的是 硬件控制的性能状态(HWP/Speed Shift):操作系统指示偏好(性能/节省),CPU 以毫秒为单位决定精确点,并且每个核心的粒度非常精细。
一个关键细节: P 状态和 C 状态是“正交的”您可以处于 P0(高频)状态,然后在进入非活动状态后进入 C6 状态。相反,在 P2 持续负载下,由于核心正在执行(C0),因此不存在 C 状态。这就是为什么最好在心理上将“频率/电压”(P)与“空闲”(C)区分开来。
从 APM 到 ACPI:范式转变
APM 是以前主要由 BIOS 和驱动程序管理的 API。它允许 关闭不活动的外围设备并定义简单的全局状态但出于安全原因,CPU 不受操作系统的直接控制。ACPI 发展成为一个更丰富、更标准化的模型,具有表格描述、精细控制以及固件、操作系统和硬件之间的紧密协作。
如何进入和退出 C 状态
当调度程序没有准备好的线程时,它会执行 HLT 或 MWAIT 并提示目标 C 状态; 干扰会“破坏”睡眠 并将核心返回到 C0。私有缓存在 C3 处刷新;上下文在 C6 处保存到 SRAM,电压降至零。一些 CPU 实现了电源感知中断路由 (PAIR),将中断路由到 已经活跃的核心(保存)或闲置的核心 (为了表现),视情况而定。
Turbo、TDP 和功率限制
处理器定义了冷却系统必须能够持续散热的 TDP(PL1:安全平均功率)。 以上,更高级别的电动车窗可以进入(PL2以及根据平台而定的 PL3/PL4 等额外级别)在有限时间内保持稳定。如果存在散热和电气余量,核心可以通过 Turbo 超过基频,即使 不对称形状(涡轮增压更多,活动核心更少).
当温度超过阈值或 VRM/电源需要时, PROCHOT 可以激活 并进入T状态或频率削波来保护芯片。这种行为在轻薄笔记本电脑中很常见。
Windows:电源计划、读数和计数器
Windows 提供 “节能”等计划、“平衡”和“高性能”。前者倾向于 积极降低 P 状态并安然入睡第三种方案保持高频率,并避免延迟下降,但以牺牲效率为代价。“平衡”方案则尝试一种中间立场。
在任务管理器中,“速度”是一个综合指标, 每核平均值并考虑调制占空比 如果存在 T 状态。它可能超过基准值(Turbo)或低于最低 EIST(门控)。对于高级遥测,“\处理器信息(_Total)\% 处理器性能”计数器反映的是 CPU 有效性能的百分比。
有一些实用程序可以诊断或调整: CPU-Z (基础数据), HWiNFO (传感器), 油门停止 (时钟、每个核心的 C 状态和 PROCHOT/调制控制),或 ParkControl (核心停车调整/C 状态)触及隐藏的电源计划参数(powercfg 允许编辑“IDLE_PROMOTE/DEMOTE”等)。
Linux:cpupower、turbostat 和 CoreFreq
在 Linux 中,类似这样的工具 中央处理器 显示调节器、频率范围和转换延迟; 涡轮增压器 显示 MSR、核心性能限制原因(MSR_CORE_PERF_LIMIT_REASONS)以及 C-State 的居住地; 核心频率 提供每个核心/封装的绝对频率、C 状态和 Turbo 的详细视图。
一个实际的细微差别:在某些计算机上,驱动程序 intel_idle 可以忽略 BIOS 限制 覆盖 C 状态并使用其自己的表。在其他情况下,固件通过 MSR“锁定”操作系统允许的最深 C 状态。
BIOS/UEFI 和配置文件:谁真正负责?
它们通常出现在 BIOS/UEFI 设置中 按键开关:EIST/SpeedStep、TurboBoost 和 CPU C-States此外,许多服务器允许您选择电源配置文件:“最高性能”(所有功能均处于最佳状态,延迟最小)或“操作系统控制/自定义”(由虚拟机管理程序或操作系统控制 P/C 状态)。选择“操作系统控制模式”可将智能委托给操作系统。
如果您使用 ESXi 之类的虚拟机管理程序,最好结合 BIOS 中的操作系统控制模式与“高性能”计划 当目标是压缩性能时(例如使用 NSX-T、边缘节点或延迟敏感功能),虚拟机管理程序会更加依赖 P 状态 0。在这种情况下,您会更频繁地看到 P 状态 0,而 C 状态限制为 C0/C1;而使用“平衡”计划,主机将更多地依赖较低的 P 状态和更深的 C 状态。
总结一下整个 C 状态和 P 状态的混乱情况:ACPI 定义框架,C 状态在没有工作时节省电力,P 状态在负载下调整高/低档,T 状态在极端高温下挽救局面,M 状态减少内存的瓦数。 关键是选择适合您用途的正确配置文件。,使用正确的工具进行测量,并在必要时对休止深度设置合理的限制。
专门研究技术和互联网问题的编辑,在不同数字媒体领域拥有十多年的经验。我曾在电子商务、通讯、在线营销和广告公司担任编辑和内容创作者。我还在经济、金融和其他领域的网站上撰写过文章。我的工作也是我的热情所在。现在,通过我的文章 Tecnobits,我尝试探索技术世界每天为我们提供的所有新闻和新机会,以改善我们的生活。

