某一单流水线处理机.包含取指、译码、执行3个功能段。取指、译码各需1T:在执行段,MOV操作需2T,ADD操作需3T,MUL操作需4T;各操作在1T内取数,在最后1T写结果。执行下面的程序后按要求分析指令流水线的功能。
k: MOV R1,R0;R1←(R0)
k+1: MOV R0.R2,R1; RO←(R1)*(R0)
k+2: MOV R0,R2,R1; RO←(R2)+(R3)
(1)设计并画出流水线功能段的结构图。
(2)考虑指令数据相关性,设计并画出指令执行过程流水线的时空图。
(3)为了加快速度,可以采取哪些改进措施。
参考答案:(1)流水线功能段的结构图为:
[*]
(2)因为第二条MUL指令中R1的内容必须是第一条MOV指令的执行结果,所以产生了数据相关性问题。简单处理数据相关性,可采取后推法,即将相关指令延迟到所需操作数被写回到寄存器后再进行操作。由于题目中隐含指令的取操作数包含在译码功能段中,所以指令流水线的时空图为:
[*]
其中,k代表MOV指令,k+1代表ADD指令,k+2代表MUL指令。
(3)为了加快速度,对于数据相关性,更好的解决方法是采取设置专用通路技术,将MOV指令产生的结果直接送往所需的指令的译码段,就可以使流水线不发生停顿。另外还可采用超流水技术、超标量流水线技术和超长指令字技术等提高流水速度。