CPU从产生之初就追求更快的速度,那么提高CPU速度的方法到底有哪些?下面就从简单到复杂大致的记录下最近的一些学习心得:
- 流水线技术。把指令细分作更小的部分,又不同的功能部件来完成。假设每条指令都可以分作4步:取指,译码,执行,写回。这4步分别由不同的功能部件来完成,流水线技术带来的好处就是:取指部件在做完指令1的取指之后,可以立即开始指令2的取指,而不需要等待指令1的“写回”完成。从单条指令的执行时间来看并没有减少,但针对整个程序而言,CPU可以在每个周期执行完一条指令,相比于不采取流水线技术时4个周期才能完成一条指令,速度提高了4倍。即流水线中分作N个部分,理论上整体速度能提高N倍,但在实际应用中是不可能做到的:首先,指令不可能无限划分为更小的部分;其次,指令之间可能相互依赖,可能需要等待;再次,指令流并不是顺序执行的,中间可能有条件转移和跳转指令。
- 循环展开。这个技术是如何提高CPU的指令处理速度的呢?主要是从两个方面:第一,循环展开之后,原有的条件转移指令次数会减少,从而性能会提高;第二,循环展开之后,动态调度可以在更大范围内进行。其实在tomasulo方法中,动态调度是能够处理转移指令的。
- 分支预测。主要是针对指令流中的条件跳转指令。CPU遇到条件转移指令时,在转移所依赖的结果还未计算出来时,无法知道接下来的指令在哪里。那么,有一种方法就是猜测。等到转移所依赖的结果计算出来时,就能知道猜测是否正确,如果正确,就节省了时间,如果错误,当然需要把之前已经执行的指令及其产生的状态全部清掉。这里,就是希望猜测的准确率提高。如何做到?在CPU设计时可以增加一个bit用来记录之前条件转移是否发生,如果发生,该bit为1,否则为0.第二次进行条件

本文介绍了CPU速度提升的几种技术,包括流水线技术、循环展开、分支预测和动态调度。流水线技术通过指令细分提高整体执行效率;循环展开减少条件转移指令并扩大动态调度范围;分支预测通过猜测条件跳转提高执行速度;动态调度利用未完成指令后的空闲资源。此外,还提及了多发射和静态调度在超向量机和VLIW架构中的应用。
最低0.47元/天 解锁文章
336

被折叠的 条评论
为什么被折叠?



