I0: slli $s2, $s1, 4
I1: beq $s1, $zero, top
I2: addi $s3, $s2, 6
I3: mult $t2, $s3, $s1
I4: addi $s4, $s2, 8
I5: sw $t2, 0($s4)
考虑没有任何危险处理的管道。该流水线是典型的5级IF,ID,EX,MEM,WB MIPS设计。对于上面的代码,请完成代码的管道。为框中的每条指令插入字符IF(指令获取),ID(指令解码),EX(执行),M(存储器),WB(写回)。你们认为我的图表是否正确? 谢谢!http://imgur.com/PbJ2egd
答案 0 :(得分:3)
首先让我们绘制哪些指令依赖于前面指令的输出:
因此,当一条指令依赖于另一条指令时,如I4上的I5,它的EX块在其依赖的指令完成其WB块之前无法运行。在I5的情况下,我们可以清楚地看到这一点,因为一旦I4的WB块完成,EX块仅启动。
另请注意,分支会阻止下一条指令开始,直到其EX块完成为止。
根据这两条规则,我们可以逐条教学并将其绘制出来:
所以最后我们停了3次,每次停两次。这相当于老师画的6“x”。
答案 1 :(得分:0)
这是她在昨天的审核会议上给出的正确答案。你能指出我如何回答这个问题的正确方向吗?你怎么知道什么时候推迟,把X等等?对不起,我无法详细说明答案,但只知道这是正确的答案。