MIPS指令之间的无操作数

时间:2016-11-19 11:31:43

标签: mips pipeline noop

我有一系列说明如下:

I1 lw  $1, 40($6)
I2 add $6, $2, $2
I3 sw  $6, 50($1)

问题是:

在没有转发的基本五阶段管道中,I2和I3之间应该有多少个noops?

我认为这个数字是2,而本书给出的解决方案是1.我是否想念一些东西?任何线索都表示赞赏。

问题实际上是计算机组织和设计的练习4.13,硬件/软件界面第四编辑

1 个答案:

答案 0 :(得分:0)

好吧,如果你没有在你的管道中转发,解决这个冲突的唯一方法是使用两个 noops。

    1    2    3    4    5    6    7    8    9
I1  IF   ID   EX   MEM  WB
I2       IF   ID   EX   MEM  [WB]
NOP           IF   ID   EX   MEM  WB
NOP                IF   ID   EX   MEM  WB
I3                      IF   [ID] EX   MEM  WB

你可以从这张粗略的表格中清楚地看到I2的回写和I3的指令解码只是"对齐"有两个noops。我认为你的教科书是错误的。