MIPS - 为什么在这个管道中插入了五个气泡?

时间:2017-03-12 05:47:09

标签: mips pipeline cpu-architecture

书中的例子: 显示执行此代码的转发路径:

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

1 个答案:

答案 0 :(得分:0)

它不是五个气泡,它是在第三个指令之后插入的气泡并且进展到所有流水线阶段,因此您会在每个流水线阶段看到气泡。

插入气泡的原因是第四条指令需要第三条指令的输出($ 7)。只有在'之后才能使用。 MEM'第三条指令的阶段和价值7美元的前提是需要的。指令阶段4.在第3和第4指令之间插入气泡,指令3的存储级输出可用于输入' ex'教学阶段4。