zoukankan      html  css  js  c++  java
  • 04、计算机功耗,提升性能

      CPU性能公式:程序的 CPU 执行时间 = 指令数×CPI×Clock Cycle Time

    降低能耗

    从以上公式看出,可以从指令数、CPI以及CPU主频这三个方面入手来提升计算机性能。然而当CPU的主频达到极限时,功耗会增加,导致性能不会达到预期的目的,一方面,我们要在 CPU 里,同样的面积里面,多放一些晶体管,也就是增加密度;另一方面,我们要让晶体管“打开”和“关闭”.”得更快一点,也就是提升主频。而这两者,都会增加功耗,带来耗电和散热的问题。因此这两方面都是有限的。此时又会降低电压来降低能耗;

    并行优化,阿姆达尔定律

    提升主频达到了瓶颈之后,又通过并行处理来提高CPU的吞吐率,现代的CPU都发展到多核,2核、4核,乃至8核的CPU。这就是将一个程序任务交给多个CPU核进行并行处理来提高性能。阿姆达尔定律说的就是,对于一个程序进行优化之后,处理器并行运算之后效率提升的情况。可以用公式表示:

              优化后的执行时间 = 受优化影响的执行时间 / 加速倍数 + 不受影响的执行时间

    不受影响的执行时间就是不能被并行处理的任务所执行的时间。

    总结延伸

    无论是提升主频,还是增加更多的CPU核心数量,通过并行来提升性能,都会遇到瓶颈。简单的堆硬件已经不能满足需求了。

    在摩尔定律和并行计算之外,还有这几个原则性的性能提升方法:

      1、加速大概了事件

        加速大概率事件(common case fast)远比优化小概率事件更能够提高性能 ,大概率事件通常比小概率事件简单,从而易于提高。

        大概率事件规则意味着设计者需要知道什么事件是经常发生的,这只有通过仔细的实验与评估才能够得出。

      2、通过流水线提高性能

        把CPU指令执行的过程进行拆分,细化运行。反之,过长的流水线也会带来新的功耗和效率的负面影响。

      3、通过预测提高性能

        通过预先猜测一下下一步该干什么,提前进行运算,也是让程序跑的更快一点的方法。

    补充资料

    《计算机组成与设计:软 / 硬件接口》(第 5 版)的 1.7 和 1.10 节,也简单介绍了功耗墙和阿姆达尔定律

    《深入理解计算机系统》(第 3 版)的 1.9 节也不错

  • 相关阅读:
    1083 List Grades (25 分)
    1075 PAT Judge (25 分)
    15. 会话之session
    我的编程路----
    jQuery
    CSS
    HTML display 属性 和 行内元素、块状元素、行内块状元素的区别
    实例1 : 返回顶部小操作(JQ + JS 实现)
    jQuery 事件方法
    为什么静态方法 不可以 被 非静态方法调用?
  • 原文地址:https://www.cnblogs.com/gopark/p/10980369.html
Copyright © 2011-2022 走看看