指令的流水处理
(1)指令控制方式
1.顺序方式
各条机器指令之间顺序串行地执行,执行完一条指令后才取下一条指令,而且每条机器指令内部的各个微操作也是顺序串行地执行。优点是控制简单,缺点是速度慢,机器各部件的利用率低。
2.重叠方式
在解释第K条指令的操作完成之前就可以开始解释第K+1条指令,如下图所示,通常采用一次重叠。即在任何时候,指令分析部件和指令执行部件都只有相邻两条指令在重叠解释。优点是速度有所提高,控制不太复杂。缺点是会出现冲突、转移和相关等问题。
3.流水方式
它把重复的顺序处理过程分解为若干个子过程,每个子过程能在专门的独立模块上有效地并发工作,如下图
(2)流水的相关处理
1.局部性相关
由于流水时机器同时解释多条指令,这些指令可能有对同一主存单元或同一寄存器的“先写后读”的要求,这时就出现了相关。它只影响相关的两条或几条指令,而且最多影响流水线的某些段推后工作,并不会改动指令缓冲器中预取到的指令内容,影响是局部的。
解决方法有两种
后推法:推后对相关单元的读,直至写入完成。
通路法:设置相关专用通道,使得不必先把运算结果写入相关存储单元,再从这里读出后才能使用频度而是经过相关专用通路直接使用运算结果,以加快速度。
2.全局性相关
转移指令与它后面的指令之间存在关联,使之不能同时解释。执行转移指令时,可能会改动指令缓冲器中预取到的指令内容,从而会造成流水线吞吐率和效率的下降。
解决方法有:猜测转移分支、加快和提前形成条件码、加快短循环程序的处理。