Assembly MIPS 5阶段基本
问题:假设以下指令序列在传统的5级管道中执行。lw/add指令组合是否表示数据危险?若然,原因为何?若否,原因为何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也是
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
)。