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