书中的例子: 显示执行此代码的转发路径:
add $3, $4, $6
sub $5, $3, $2
lw $7, 100($5)
add $8, $7, $2
书中的管道图:
I1: IF ID EX MEM WB
I2: IF ID EX MEM WB
I3: IF ID EX MEM WB
NOP NOP NOP NOP NOP
I4 IF ID EX MEM WB
为什么要插入5个气泡而不是像:
I1: IF ID EX MEM WB
I2: IF ID EX MEM WB
I3: IF ID EX MEM WB
I4 IF ID ID EX MEM WB
答案 0 :(得分:0)
它不是五个气泡,它是在第三个指令之后插入的气泡并且进展到所有流水线阶段,因此您会在每个流水线阶段看到气泡。
插入气泡的原因是第四条指令需要第三条指令的输出($ 7)。只有在'之后才能使用。 MEM'第三条指令的阶段和价值7美元的前提是需要的。指令阶段4.在第3和第4指令之间插入气泡,指令3的存储级输出可用于输入' ex'教学阶段4。