1 功耗:CPU 的极限
CPU,一般都被叫作超大规模集成电路(Very-Large-Scale Integration,VLSI)。这些电路,实际上都是一个个晶体管组合而成的。CPU 在计算,其实就是让晶体管里面的“开关”不断地去“打开”和“关闭”,来组合完成各种运算和功能。想要计算得快,一方面,我们要在 CPU 里,同样的面积里面,多放一些晶体管,也就是增加密度;另一方面,我们要让晶体管“打开”和“关闭”得更快一点,也就是提升主频。而这两者,都会增加功耗,带来耗电和散热的问题。
2 并行优化,理解阿姆达尔定律
当单核CPU性能达到了瓶颈,推出了多核CPU,通过并行的方式使“吞吐率”变大了。但是,并不是所有问题,都可以通过并行提高性能来解决。如果想要使用这种思想,需要满足这样几个条件。
- 需要进行的计算,本身可以分解成几个可以并行的任务。好比上面的乘法和加法计算,几个人可以同时进行,不会影响最后的结果。
- 需要能够分解好问题,并确保几个人的结果能够汇总到一起。
- 在“汇总”这个阶段,是没有办法并行进行的,还是得顺序执行,一步一步来。 在进行性能优化中,常常用到的一个经验定律,阿姆达尔定律(Amdahl’s Law)。这个定律说的就是,对于一个程序进行优化之后,处理器并行运算之后效率提升的情况。具体可以用这样一个公式来表示:
优化后的执行时间 = 受优化影响的执行时间 / 加速倍数 + 不受影响的执行时间
总结
在“摩尔定律”和“并行计算”之外,在整个计算机组成层面,还有这样几个原则性的性能提升方法。
- 加速大概率事件。
- 通过流水线提高性能。
- 通过预测提高性能。
此文章为 2 月Day5学习笔记,内容来源于 极客时间《深入浅出计算机组成原理》。