为什么第一个add
需要转发?
# stage:
add $1, $2, $3 # WB
add $4, $5, $6 # MEM
nop # EX
beq $1, $4, target # ID
既然beq
需要$1
,如果第一个add
即将执行WB-stage,那是不是因为ID-stage不需要转发beq
,即将读取寄存器文件?beq
我的书说需要转发之前的第二条和第三条指令以避免数据危险。
编辑:我在此链接幻灯片第 11 页上找到了我的意思;另一张幻灯片通过另一种技术特殊硬件解决了我的另一个困惑,即第一个add
不需要,幻灯片第 58 页。