第 3 章 核心基础结构及技巧
3.1. CPU 闲置状态
使用 x86 构架的 CPU 支持不同的状态,在这些状态中部分 CPU 会被取消激活或者以低性能设置运行。这些状态,也就是我们知道的 C 状态,允许系统通过部分取消激活其不使用的 CPU 达到节能的目的。C 状态从 C0 开始用数字计算,数字越大代表 CPU 功能降低越多,也就越节能。虽然给定数字的 C 状态在不同处理器间类似,但为特定处理器或者处理器产品线使用的特定 C 状态的含义是特定的。C 状态 0-3 定义如下:
- C0
- 操作或者运行状态。在这个状态中,CPU 处于工作状态,完全没有空闲。
- C1, 挂起
- 处理器不执行任何步骤的状态,但通常不处于较低功率状态。CPU 可继续进行处理而没有延迟。所有提供 C 状态的处理器都需要支持这个状态。奔腾 4 处理器支持改进的 C1 状态,即 C1E,它实际上是一个低能耗状态。
- C2, 时钟停止
- 在这个状态中处理器停止时钟,但它让其暂存器和缓冲保持完整状态,因此重新启动时钟后,它可以立即重新启动处理。这是一个可选状态。
- C3, 休眠
- 处理器真正进入睡眠状态且不需要保存保持更新其缓冲。因此从这个状态唤醒的时间要大大长于从 C2 唤醒的时间。这也是一个可选状态。
最近使用 "Nehalem" 微构架的 Intel CPU 有新的 C 状态,即 C6。它可将供应 CPU 的电压降低到 0,但通常的节能率在 80% 到 90% 之间。红帽企业版 Linux 6 中的内核包括对这个新 C 状态的优化。