今天我正在研究 MIPS 管道并发现一件有趣的事情。看到下面的代码:
I1: lw $s1, 0($s3)
I2: add $s4, $s5, $zero
I3: beq $s1, $s5, 8
为了减少分支的惩罚,我们在ID阶段比较两个寄存器数据。让我感到困惑的是,这种情况是否是一种负载使用危险?它会导致管道停顿吗?
我想知道在这种情况下是否有一个从 MEM 阶段到 ID 阶段的转发,以避免管道停顿?
因为教科书似乎没有提到它,我不知道确切的 MIPS 是如何工作的,我想它不会造成停顿。
谢谢大家!!!