我目前正在软件中实施MIPS R3051作为我大学项目的一部分。
我在IDT的程序员手册中注意到,它指定计算指令可以在其RD阶段的管道中访问其他计算指令的结果,即使提前指令尚未将其结果提交给相关寄存器在WB阶段。这是通过“执行引擎中的特殊逻辑”来完成的,以防止失速。
我的查询是否也适用于非计算指令(例如跳转类型指令)?
一个例子:如果ADD指令在其ALU阶段计算一个目的地为r1的值,并且在RD的管道中有一条JR [r1]指令,那么JR指令将得到:
(a)r1的旧内容 或
(b)这个“特殊逻辑”是否允许将r1的新值转发给它?或
(c)管道是否会停止,直到r1在WB正确提交?
如果在别处被问到这是道歉(我没有发现)。非常感谢。
此致 菲尔