为什么“空闲”过程不会产生(太多)热量?

为什么“空闲”过程不会产生(太多)热量?

据我所知,运行中的 CPU 实际上永远不会无所事事。即使没有正在运行的活动“作业”,也总会有一个“空闲进程”在运行,以保持 CPU 的“运转”。

所以,我的问题是:为什么这个空闲进程不会像其他进程一样产生太多热量?为什么所有 CPU/GPU 并非始终处于其最高运行温度(一旦启动)?

答案1

空闲进程使用停止指令,大多数 CPU 都有此指令。

暂停时,CPU 不会运行,而是等待中断以便再次启动运行。

在英特尔处理器上,此链接详细HLT说明。

答案2

当前的 CPU/GPU 仍然基于互补金属氧化物半导体CMOS电路中很大一部分功耗是由数字信号值改变引起的(“动态”功耗)。

“空闲进程”尝试尽可能减少信号变化,即通过连续执行相同的指令 - 通常称为无操作(NOP)。因此,CPU/GPU 消耗更少的电量。

此外,如果仅执行 NOP 指令,CPU/GPU 会检测到它实际上“很少”执行操作。因此,CPU 时钟受到限制,对于 CPU/GPU 的部分,甚至可以关闭时钟信号(“时钟门控”)和/或降低这些部分的电源电压,甚至可以将其降至 0。

后一种措施还降低了 CMOS 电路的“静态”功耗(“泄漏”),该功耗会随着 CMOS 特征尺寸的减小和标称电源电压水平的降低而增加。

相关内容