cpu 在空闲的时候会执行操作系统里的空闲任务,那么既然空闲的时候 cpu 也在跑,运行密集型任务的时候 cpu 也在跑,为什么二者的功耗不一样呢?是因为频率变了吗?
1
goreliu 2019-05-24 21:27:27 +08:00 via iPhone
不只和频率有关。cpu 工作量越大,就越耗电,一个明显现象就是温度会升高,这热都是电转化来的。微观层面的话,cpu 有空指令,空闲的时候是执行空指令,很少消耗资源,而执行其他指令是需要消耗更多资源的,比如访问缓存、寄存器、内存、硬盘等等都需要电力驱动。
|
2
billlee 2019-05-24 21:41:11 +08:00
空闲任务指示操作系统的一个逻辑表示,实际上 CPU 根本就没在执行指令。
|
3
leloext 2019-05-24 21:48:33 +08:00
https://www.zhihu.com/question/266776516 供参考,前几天在 u2b 上面看到过这么讲解的。
|
4
sujin190 2019-05-24 21:50:20 +08:00
更细微的,就算 cpu 一直在运行,不同指令的功耗也不可能一样吧
|
5
bearqq 2019-05-24 21:53:50 +08:00 via Android
其实是施加的电压不一样,闲置的时候频率降低,可以用更低的电压跑,从而省电
|
6
SuperMild 2019-05-24 21:53:59 +08:00
简单来说,通电并不消耗能量,做功才消耗能量。
|
7
msg7086 2019-05-24 22:00:36 +08:00 2
执行指令最少需要译码器,然后根据指令不同还要调用 ALU FPU 甚至是 AVX 计算单元,不同的单元耗电不同。
比如只是执行算术运算的话,就是 ALU 负责,耗电很小。 而 AVX 单元耗电很大,发热很高,甚至会达到撞功耗墙需要降频的程度。 如果 CPU 空闲的话,操作系统会让核心休眠,降低运行频率,频率降低就等于每秒执行的运算减少,功耗自然小了,没用到的计算单元也会关闭。 |
8
Lax 2019-05-25 10:10:53 +08:00
空闲任务只是个逻辑的说法,并不额外消耗系统资源。变频是另一个话题了,一般在桌面版 CPU 上比较常用。
服务器变频容易造成莫名其妙的性能问题,如果为了省电可以选择关机而不是降频率 |
9
BigDogWang OP 感谢各位大佬~
|