Assembly 战争危险导致管道中出现泡沫(MIPS)?

Assembly 战争危险导致管道中出现泡沫(MIPS)?,assembly,mips,cpu-architecture,Assembly,Mips,Cpu Architecture,如果我有两条装配线,如: add $s1, $s3, $s5 sub $s3, $s6, $s8 这会导致战争(读后写)危险,对吗 问题是,我不明白这是否会导致管道中插入气泡,因为我必须绘制管道表 是否有其他情况会导致危险 战争危险在合理的情况下是罕见的/不可能的(按顺序) 管道 这里有一个表格来说明为什么,在一个5级流水线CPU中。让我们给它们贴上说明1和说明2 IF | ID | EX | MEM | WB ------------------------- 1 | |

如果我有两条装配线,如:

add $s1, $s3, $s5 
sub $s3, $s6, $s8
这会导致战争(读后写)危险,对吗

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

是否有其他情况会导致危险

战争危险在合理的情况下是罕见的/不可能的(按顺序) 管道

这里有一个表格来说明为什么,在一个5级流水线CPU中。让我们给它们贴上说明1和说明2

 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

战争危险在合理的情况下是罕见的/不可能的(按顺序) 管道

这里有一个表格来说明为什么,在一个5级流水线CPU中。让我们给它们贴上说明1和说明2

 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

您的管道中有多少个阶段?如果有5个阶段,这不是危险。是的,这是一个5阶段的管道(获取、解码、读取、执行、写入)。所以不需要泡沫?这确实是一种反依赖,但在经典的管道中不会产生危险。“读取发生得很早,写入发生得很晚,这没有问题。”GiacomoBenso,顺便说一句,欢迎使用堆栈溢出。如果我没有解决您的问题,请告诉我,否则您可以投票和/或接受我的答案。@IRTFM:[cpu体系结构]标记包含管道中的数据危险等内容。如果您正在解决在其他问题中滥用[hazard]标签的问题,请在尚未出现的情况下添加该问题。您的流程中有多少个阶段?如果有5个阶段,这不是危险。是的,这是一个5阶段的管道(获取、解码、读取、执行、写入)。所以不需要泡沫?这确实是一种反依赖,但在经典的管道中不会产生危险。“读取发生得很早,写入发生得很晚,这没有问题。”GiacomoBenso,顺便说一句,欢迎使用堆栈溢出。如果我没有解决您的问题,请告诉我,否则您可以投票和/或接受我的答案。@IRTFM:[cpu体系结构]标记包含管道中的数据危险等内容。如果您正在解决在其他问题中滥用[危险]标签的问题,请在尚未出现的情况下添加该问题。