了解bubble vs stall与重复解码/获取

时间:2017-03-12 03:30:30

标签: assembly mips computer-science cpu-architecture pipelining

我对气泡,档位和重复解码/提取之间的区别感到困惑。我的文字是Patterson的文字,第3版 例1:

add $3, $4, $6
sub $5, $3, $2
lw $7, 100($5)
add $8, $7, $2

解决方案:Click here(使用图像,因为很难输出有什么内容)
在此示例/解决方案中,将FIVE气泡插入第3和第4条指令之间的新行。

示例2:

lw $4, 100($2)
sub $6, $4, $3
add $2, $3, $5

解决方案:Click here
在这个例子中,气泡在时钟周期4中包装第2和第3条指令。在时钟周期4中,重复I2的解码并重复I3的取指。
例1和2之间有什么区别?为什么在示例1中插入了一行气泡,而在示例2中,插入了气泡并重复解码/获取?它们在功能上是一样的吗? 如果它们在功能上相同,这是一个有效的解决方案,例如1?

I1: IF ID EX MEM WB
I2:    IF ID EX  MEM WB
I3:       IF ID  EX  MEM WB
I4:          IF  NOP ID  EX MEM WB 

对于示例1,这也是一个有效的解决方案吗?

I1: IF ID EX MEM WB
I2:    IF ID EX  MEM WB
I3:       IF ID  EX  MEM WB
I4:          NOP IF  ID  EX MEM WB 

这是否是例2的有效解决方案?

I1: IF ID EX  MEM WB
I2:    IF NOP ID  EX MEM WB
I3:       NOP IF  ID EX  MEM WB

这也是示例2的有效解决方案吗?

I1: IF ID EX  MEM WB
I2:    IF ID  ID  EX MEM WB
I3:       IF  IF  ID EX  MEM WB

0 个答案:

没有答案