我目前正在攻读我的计算机体系结构考试,并在sub
的第3阶段之后遇到了一个问题,要求说明(我会假设一点一点)mips管道架构中包含的值。时钟通勤)给出以下指示。
add $t0,$t1,$t2
sub $t3,$t3,$t5
beq $t6,$t0,16
add $t0,$t1,$t3
我并不是要求解决这个问题,但经过一些研究后,我并没有取得太大的成功,因此我想要一些帮助/建议。
首先,我仍然不清楚管道寄存器的大小(IF / ID,ID / EX,EX / MEM,MEM / WB)。我知道它们包含下一阶段的控制单元代码,并且它们包含前一阶段的结果,因此它可以传递到下一阶段。
那就是(请纠正我,如果我错了)+ 9代表ID / EX,+ 5代表EX / MEM而+2代表MEM / WB但是我还没有设法找到一个清晰的数据模式我们可以期望这些寄存器包含。
此外,我认为我们需要使用硬件转发将第一个add
的结果转发到beq
(因为$t0
)并转发sub
的结果到最后add
(由于$t3
)。这是否会影响寄存器中包含的内容?
如果有人能指出我正确的方向,那就太好了。
非常感谢。