首页 文章

带和不带转发的MIPS管道

提问于
浏览
0

我正在查看以下MIPS代码中的停顿数量,有无转发 . 我试图更好地了解数据路径中何时需要数据 .

lw $10, 0($4)
sw $10, 24($5)

通过转发,我得到以下结论,条件是在存储器阶段之后,从加载字指令进入寄存器10的值是可用的,并且在存储器阶段之前存储字指令需要该值 . 因此,零档位 .

F D E M W
  F D E M W

如果没有转发,寄存器10将不会从加载字指令中获得正确的值,直到在写回阶段的时钟周期的前半部分写入 .

如果说存储字指令在解码阶段的时钟周期的后半部分需要寄存器10的正确值是正确的,产生以下两个停顿:

F D E M W
  F F F D E M W

或者是存储字指令需要它在执行阶段产生这两个档位的序列:

F D E M W
  F D D D E M W

我想我想在脑海里用一种方式来表达我的理解 .

1 回答

  • 1

    在没有转发的情况下,加载字指令将在写回阶段的时钟周期的前半部分之后更新寄存器10 . 存储字指令需要在解码阶段的时钟周期的后半部分读取寄存器10中的值,在解码阶段产生以下2个停顿:

    F D E M W
      F D D D E M W
    

相关问题