例如,在具有以下指令集的 5 级流水线中:
add $t3, $t1, $t2
add $t6, $t4, $t5
sw $t3, 4($t6) //is there a dependency on $t3 and $t6?
add $t6, $t6, $t3 //does the add have to wait until sw stores $t3 into the memory?
我不确定 sw 是否同时依赖 rt 和 rs 字段,在这种情况下 rt$t3
和 rs 将是$t6
。从我了解到的情况来看,将存在$t3
依赖关系,因为$t3
寄存器内的东西将存储到的地址中4($t6)
,但我很困惑是否存在依赖关系$t6
(因为 add$t6, $t4, $t5
指令写入$t6
)。
另外,我了解到加载字(lw)指令依赖于 rs 字段,但我不太确定 rt 字段,因为无论其中包含什么,加载字指令都会覆盖 rt 字段?
add $t3, $t1, $t2
add $t6, $t4, $t5
lw $t3, 4($t6) //is there a dependency on $t3 and $t6?