V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
agagega
V2EX  ›  问与答

到底什么因素决定了计算设备的能耗?

  •  
  •   agagega · 2018-07-12 12:33:04 +08:00 · 1193 次点击
    这是一个创建于 2362 天前的主题,其中的信息可能已经有所发展或是发生改变。

    CPU 占用?外部 IO ?还是显示屏,或者类似 Wi-Fi 一样的东西?那当一个设备省电的时候,它是在哪一方面做了优化呢?写一个应用程序的时候可以主动让自己减轻对能耗的影响吗?

    6 条回复    2018-07-13 02:39:13 +08:00
    won
        1
    won  
       2018-07-12 13:04:23 +08:00 via Android
    不同设备的能耗配比肯定不一样啊,如果你指的是计算用途的设备的话,肯定 U 耗能占比最大了,根本没有显示设备嘛
    ryd994
        2
    ryd994  
       2018-07-12 13:10:35 +08:00 via Android
    怎么快怎么写
    CPU 没事做的时候最省电
    thedrwu
        3
    thedrwu  
       2018-07-12 13:58:16 +08:00 via Android
    能耗是功率还是功?提问需要专业一点
    silencefent
        4
    silencefent  
       2018-07-12 14:08:53 +08:00
    时钟频率
    zhujinliang
        5
    zhujinliang  
       2018-07-12 15:30:05 +08:00   ❤️ 2
    台式机 CPU 和 GPU 消耗大部分电能,然后硬盘这种有机械运动的可能排第二,声卡网卡鼠标键盘几乎不耗电。显示器一般 20 ~ 30W,主要是背光,屏越大越耗电。
    电池供电设备比如手机、ipad,屏幕是耗电大户,CPU 弹性很大,闲时可能耗电不及个 walkman,忙时可能比屏幕耗电都大;如果有 2G、3G、4G 模块,通信时瞬间耗电巨大。

    数字电路主要因素:制程,晶体管数,频率。
    目前绝大多少数字电路是 CMOS 技术,一个晶体管可以想象成一个电容,用导通和截止表示 1 和 0,导通需要往里面充入电荷,截止需要将电荷释放掉,充放电过程伴随能量损耗。制程( xx 纳米)越小,电容量可以做的越小,即需要重放的电荷量越小;频率越高,单位时间内晶体管充放电次数就越多,同时频率高了会带来不稳定,需要提升电压,然后 Q=CU...意味着耗电量增加;运算复杂度高,要么需要很高频率,要么需要大量晶体管做专用的硬件运算或并行运算,从数量上增加了耗电量,不过一般还是比提高频率要节能。

    低功耗除了提升制程外,几乎统一指导思想:随用随开,用完就关。

    现在的 CPU 几乎都支持休眠,把主频暂时降到 0,然后外部信号触发时在若干时钟周期内恢复工作,休眠时只需极低的功耗。软件在完成阶段性工作后,设置 CPU 唤醒条件(比如延时 10ms 或用户按下按键或网卡接收到数据包等等,视 CPU 支持的能力)及休眠等级(不同的等级意味着关闭的组件不同,一般越深度的休眠功耗越低但唤醒时间越长),然后发出休眠指令让 CPU 休眠。这是最常用的降低功耗的办法。

    其它不同的设备节能办法不一样,要看具体的工作原理,比如硬盘一般会在一段时间无读写后停转,有读写操作时再启动。有线网卡有个 EEE(绿色以太网)功能,WiFI 也有低功耗优化,基本原理大概是闲置时协商个下次唤醒时间然后关闭收发器件。显示器会在你闭眼的时候关闭背光(逗你玩的)

    PC 软件能为节能做贡献的也无非:优化算法,使用高级指令集或硬件编解码,减少 CPU 占用;尽量减少读写硬盘、网络,尽量将随机读写变为批量读写;做好软件功能,少搞花里胡哨需要显卡运算的界面效果
    agagega
        6
    agagega  
    OP
       2018-07-13 02:39:13 +08:00 via iPhone
    @zhujinliang 多谢非常专业的回答!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2607 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:45 · PVG 14:45 · LAX 22:45 · JFK 01:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.