MIPS:如果一条指令从同一个寄存器加载,加载字是否会产生数据危险?
MIPS: Does a load word create a data hazard if an instruction loads from the same register?
如果后续指令从同一寄存器加载,加载字是否会产生数据危险?
我有
lw $t0 0($t1)
addi $s0, $t1, 4
这会不会造成数据危害,因为您需要为这两个操作存储在寄存器中的内容?指令反了或者有偏移怎么办?
没有。一般来说,寄存器读取不会造成危险。在这种情况下,如果 $t1
被 lw
读取,那么它可以被下一条指令读取而无需流水线 stall/hazard.
如果后续指令从同一寄存器加载,加载字是否会产生数据危险? 我有
lw $t0 0($t1)
addi $s0, $t1, 4
这会不会造成数据危害,因为您需要为这两个操作存储在寄存器中的内容?指令反了或者有偏移怎么办?
没有。一般来说,寄存器读取不会造成危险。在这种情况下,如果 $t1
被 lw
读取,那么它可以被下一条指令读取而无需流水线 stall/hazard.