- 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 (高级配置和电源接口) 是协调 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,我尝试探索技术世界每天为我们提供的所有新闻和新机会,以改善我们的生活。

