Assembly MIPS 5阶段基本

Assembly MIPS 5阶段基本,assembly,mips,pipeline,Assembly,Mips,Pipeline,问题:假设以下指令序列在传统的5级管道中执行。lw/add指令组合是否表示数据危险?若然,原因为何?若否,原因为何 lw $5, 4($6) sub $6, $5, $10 add $7, $6, $5 你为什么用和做标记?无论如何,是的,这是一种危险。执行add时,$5的值还不可用。我不同意。sub指令取决于lw的$5值,但是add跟随sub,因此对lw的$5依赖性不是问题。但是,add取决于sub指令中的$6。取决于“传统”管道的含义。将子项替换为其他内容会使增加危险。仅仅因为sub也是

问题:假设以下指令序列在传统的5级管道中执行。lw/add指令组合是否表示数据危险?若然,原因为何?若否,原因为何

lw  $5, 4($6)
sub $6, $5, $10
add $7, $6, $5

你为什么用和做标记?无论如何,是的,这是一种危险。执行
add
时,
$5
的值还不可用。我不同意。
sub
指令取决于
lw
$5
值,但是
add
跟随
sub
,因此对
lw
$5
依赖性不是问题。但是,
add
取决于
sub
指令中的
$6
。取决于“传统”管道的含义。将
子项
替换为其他内容会使
增加
危险。仅仅因为
sub
也是一种危险,并不会使
add
无效。如果您有消除
子项
危险的机制,该机制也将修复
添加
,对此毫无疑问。我仍然不明白问题是lw/add组合是否代表危险?如果您忽略
子项
,则它确实存在。如果您假设由
子项
造成的危险已经得到处理,则不需要(关于
$5
)。