文章目录
EIST 能够根据不同的 OS(操作系统)工作量自动调节 CPU 的电压和频率,以减少耗电量和发热量。它的引入,大大节省了 CPU 在低工作量的能耗,受到了极大的欢迎,从此每一代 Intel CPU 上都有了它的身影。
EIST 的工作原理:首先我们要明白,OS 主导了在整个 EIST 在各个频率的切换,只有它最了解工作量。同时 EIST 要工作,硬件,固件和 OS 三方缺一不可。我们也就从这三个方面介绍它的工作原理。
硬件
Intel CPU 是 EIST 可以工作的硬件基础。它通过一系列寄存器保证固件和 OS 可以得到足够的信息,有足够的手段控制 EIST 的工作模式。
固件
说到固件,不得不提到 ACPI(Advanced Configuration and Power Interface,高级配置与电源接口),它是固件和 OS 的电源管理接口和模型。
其中 ACPI 规范定义了 CPU 的工作状态,包含:
- S-States(Sleeping):系统睡眠状态。
-
C-States(CPU Power):CPU 电源状态,更改 CPU 供电功率。是 ACPI 定义的 CPU 工作在 G0 时的 Power states,这些状态包括 C0,C1,C2,C3…Cn。其中 C0 被称为 Active 状态,也只有 C0 的时候 CPU 才会执行指令;其余的状态则被称为 Sleeping,这时 CPU 是不执行指令的,也因而会节省更多的功耗。系统在运行时会根据 Loading 状况在各个 C-state 之间切换,以此来降低功耗,而 EIST 各个工作频率是通过在 C0 下的各种 P-states 表现出来的。
- P-States(CPU Performance):CPU 性能状态,更改 CPU 主频率。
- T-states(CPU Throttling):CPU 节能状态,更改单位时间内 CPU Clock On 的比例。
- G-States(全局状态)
- D-States(设备状态)
操作系统
OS 知道现在的工作量,由它来决定是不是要在各个 P-states 之间迁移。Linux 对 EIST 的支持始于 Linux Kernel 2.6.0,由 cpufreq 工具提供支持。cpufreq 工具主要由两个部分组成:调控器 + 守护程序。
可以使用 i7z 小工具(同时向下兼容 i5、i3 处理器)来查看线上服务器的 CPU 工作模式。e.g.