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 节也不错

原文地址:https://www.cnblogs.com/gopark/p/10980369.html