BigDogWang
V2EX  ›  问与答

各位,我有一个问题:为什么 cpu 执行空闲任务时的消耗和密集型的任务消耗不一样

  •  
  •   BigDogWang · May 24, 2019 · 2550 views
    This topic created in 2723 days ago, the information mentioned may be changed or developed.

    cpu 在空闲的时候会执行操作系统里的空闲任务,那么既然空闲的时候 cpu 也在跑,运行密集型任务的时候 cpu 也在跑,为什么二者的功耗不一样呢?是因为频率变了吗?

    9 replies  •  2019-05-31 10:24:19 +08:00
    goreliu
    goreliu
    May 24, 2019 via iPhone
    1
    不只和频率有关。cpu 工作量越大,就越耗电,一个明显现象就是温度会升高,这热都是电转化来的。微观层面的话,cpu 有空指令,空闲的时候是执行空指令,很少消耗资源,而执行其他指令是需要消耗更多资源的,比如访问缓存、寄存器、内存、硬盘等等都需要电力驱动。
    billlee
    billlee
    May 24, 2019
    2
    空闲任务指示操作系统的一个逻辑表示,实际上 CPU 根本就没在执行指令。
    leloext
    leloext
    May 24, 2019
    3
    https://www.zhihu.com/question/266776516 供参考,前几天在 u2b 上面看到过这么讲解的。
    sujin190
    sujin190
    May 24, 2019
    4
    更细微的,就算 cpu 一直在运行,不同指令的功耗也不可能一样吧
    bearqq
    bearqq
    May 24, 2019 via Android
    5
    其实是施加的电压不一样,闲置的时候频率降低,可以用更低的电压跑,从而省电
    SuperMild
    SuperMild
    May 24, 2019
    6
    简单来说,通电并不消耗能量,做功才消耗能量。
    msg7086
    msg7086
    May 24, 2019❤️2
    7
    执行指令最少需要译码器,然后根据指令不同还要调用 ALU FPU 甚至是 AVX 计算单元,不同的单元耗电不同。
    比如只是执行算术运算的话,就是 ALU 负责,耗电很小。
    而 AVX 单元耗电很大,发热很高,甚至会达到撞功耗墙需要降频的程度。
    如果 CPU 空闲的话,操作系统会让核心休眠,降低运行频率,频率降低就等于每秒执行的运算减少,功耗自然小了,没用到的计算单元也会关闭。
    Lax
    Lax
    May 25, 2019
    8
    空闲任务只是个逻辑的说法,并不额外消耗系统资源。变频是另一个话题了,一般在桌面版 CPU 上比较常用。
    服务器变频容易造成莫名其妙的性能问题,如果为了省电可以选择关机而不是降频率
    BigDogWang
    BigDogWang
    OP
    May 31, 2019
    9
    感谢各位大佬~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1730 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 12:37 · PVG 20:37 · LAX 04:37 · JFK 07:37
    ♥ Do have faith in what you're doing.