我有一系列说明如下:
I1 lw $1, 40($6)
I2 add $6, $2, $2
I3 sw $6, 50($1)
问题是:
在没有转发的基本五阶段管道中,I2和I3之间应该有多少个noops?
我认为这个数字是2,而本书给出的解决方案是1.我是否想念一些东西?任何线索都表示赞赏。
问题实际上是计算机组织和设计的练习4.13,硬件/软件界面第四编辑。
答案 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。我认为你的教科书是错误的。