首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >战争危险引起管道泡沫(MIPS)

战争危险引起管道泡沫(MIPS)
EN

Stack Overflow用户
提问于 2016-05-13 18:38:23
回答 1查看 298关注 0票数 0

如果我有两条生产线,比如:

代码语言:javascript
复制
add $s1, $s3, $s5 
sub $s3, $s6, $s8

这应该会引起战争(读后写)的危险,对吗?

问题是,我不明白它是否会导致在管道中插入气泡,因为我必须绘制管道表。

有什么不同的情况下,这可能会造成危险或不?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-13 18:51:12

在合理的(有序)管道中,战争危险是不常见的/不可能的。

管道危险,第2页

这里有一个表来演示为什么,在一个5阶段流水线CPU.让我们给他们贴上说明书1和2的标签。

代码语言:javascript
复制
 IF | ID | EX | MEM | WB
-------------------------
 1  |    |    |     |
-------------------------
 2  |(1) |    |     |     Instruction 1 is obtaining $s3
-------------------------
    | 2  | 1  |     |    
-------------------------
    |    | 2  |  1  |
-------------------------
    |    |    |  2  | 1
-------------------------
    |    |    |     |(2)  Instruction 2 is writing $s3 back

指令在ID (指令解码)阶段从寄存器文件中获取操作数,但是结果直到WB (写回)阶段才被写回寄存器文件。指令1在指令2进入WB阶段之前处于ID阶段4时钟周期,因此在使用之前不可能覆盖$s3

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37217142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档