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

  • 相关阅读:
    新学期,新起点
    判断整数的正负零特性
    C# 静态类与非静态类、静态成员的区别
    适配器模式:类适配器和对象适配器
    设计模式学习笔记
    C# 全局变量的实现
    设计模式
    Tuples in .Net 4 (System.Tuple)
    EnableViewState
    HashMap 、HashTable、HashSet的区别
  • 原文地址:https://www.cnblogs.com/gopark/p/10980369.html
Copyright © 2011-2022 走看看