处理器的流水线设计
流水线的概念
流水线技术是一种将指令分解为多步,并让不同指令的各步操作重叠,从而实现几条指令并行处理,以加速程序运行过程的技术。指令的每步有各自独立的电路来处理,每完成一步,就进到下一步,而前一步则处理后续指令。而这也是大部分微处理器架构改进的方面:提高程序的指令并行度(ILP)。
对于最简单的微处理器,我们可以将指令的执行分为四个阶段:
- 取指:将下一条指令从存储器中取出来。
- 译码:决定指令中所定义的操作类型。
- 执行:执行指令所定义的操作。
- 写回:指令操作结果被储存起来。
一个简单的串行执行微处理器如下图所示:
在这个处理器中,每个指令阶段需要一个时钟周期,而且仅当当前的指令执行完毕后,下一条指令才会开始执行。
由于指令的每个阶段都有相互独立的模块进行执行,因此我们发现使用流水线可以提高处理器的性能。通过增加一些控制逻辑,处理器中可以有处于不同阶段的多个指令同时执行。
下图展示了流水线设计的处理器执行指令的过程。简单的串行处理器每4个时钟周期完成一条指令,而一个理想的流水线处理器每个时钟周期都可以完成一条指令。