《深入浅出计算机组成原理》-入门篇(四)(笔记)

穿越功耗墙.应该从哪些方面提升性能?

  根据上一章提到的公式:(程序的CPU执行时间 = 指令数*CPI*Clock Cycle Time)得出,提升性能可以从指令数、CPI以及CPU主频这三个地方入手。所以,80年代开始,CPU主频开始不断提升,1978年 5MHZ、1980年 40MHZ、1989年100MHZ、2000年1.4GHZ,2000年,奔腾4处理器达到1.4GHZ的同时也夸下海口,表示奔腾4所使用的CPU结可以做到10GHZ,然鹅:凡事有上限,低头看下段。

功耗:“人体极限”

  奔腾4主频上限定格 3.8GHZ。

  CPU一般被叫做”超大规模集成电路“,由晶体管组成。CPU计算:其实就是晶体管不断开关来组合完成计算和功能。想要计算的更快一点,就要从两方面入手:

  1、在CPU里,相同的面积多放一些晶体管,也就是增加密度

  2、让晶体管”打开“,”关闭“的速度更快一点,就是提升主频

  两者都会增加功耗,带来耗电和散热的问题,所以,就有了公式:功耗~=1/2 * 负载电容 * 电压平方 * 开关频率 * 晶体管数量。

并行优化,理解阿姆达尔定律

  并行简单来说,就是多核CPU,通过提升吞吐率来达到目的。

  但并不是所有的问题,都可以通过并行来解决的,是有条件的:

  1、需要进行的计算,本身可以被分解成几个并行的任务。(举例说明:你要做一顿晚餐,需要炒菜,蒸米饭,而你正好有两个锅,炒菜加备菜的过程需要10分钟,蒸米饭需要30分钟,加起来,你需要40分钟,那为了减少时间,你可以在蒸米饭的同时,炒菜,这样最后你所需时间就只需要30分钟)

  2、需要能够分解好问题,并确保最后结果可以汇总到一起。(举例:分解好问题:你要在蒸米饭的同时备菜炒菜,而不是把备菜和炒菜同时进行。最后结果可以汇总在一起:在蒸米饭的同时炒菜备菜,菜熟了就先盛出来放到碟子里,等米饭熟了就可以一起吃了,而不是米饭需要30分钟,炒菜也炒了30分钟,这样的话,菜就糊了,这饭自然也就没的吃了)

  3、在汇总阶段是没有办法并行的,还是得按顺序进行,一步步来。(举例:最后盛菜和盛饭需要分开盛,而不是同时盛)

  阿姆达尔定律(Amdahl's Law)对于一个程序进行优化之后,处理器并行运算之后的效率提升情况。

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

在“摩尔定律”和“并行计算”之外,在整个计算机组成层面,还有这样几个原则性的性能提升方法。

  1.加速大概率事件:比如每次机器起来就要执行的代码,可以通过代码预热的方式,先加载到缓存中,避免第一次请求就超时等

  2.通过流水线提高性能:并发编程

  3.通过预测提高性能:比如预设好集合的内存大小等,或者缓存大小,避免中途扩容

本章结束,加油!

posted @ 2021-03-25 16:41  与疯  阅读(135)  评论(0)    收藏  举报