小编Joh*_*n D的帖子

了解气泡、失速、重复解码/获取

我真的很困惑气泡、停顿和重复解码/获取之间的区别。我的文本是帕特森文本,第三版。
示例1:

add $3, $4, $6
sub $5, $3, $2
lw $7, 100($5)
add $8, $7, $2
Run Code Online (Sandbox Code Playgroud)

解决方案:点击这里(使用图像,因为很难输入其中的内容)
在此示例/解决方案中,将五个气泡插入到第三条和第四条指令之间的新行中。

示例2:

lw $4, 100($2)
sub $6, $4, $3
add $2, $3, $5
Run Code Online (Sandbox Code Playgroud)

解决方案:点击这里
在此示例中,气泡包裹了时钟周期 4 中的第二条和第三条指令。在时钟周期 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 
Run Code Online (Sandbox Code Playgroud)

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

assembly computer-science mips cpu-architecture pipelining

5
推荐指数
1
解决办法
2552
查看次数