【发布时间】:2016-05-13 18:38:23
【问题描述】:
如果我有 2 行汇编,例如:
add $s1, $s3, $s5
sub $s3, $s6, $s8
这应该会导致 WAR(读后写)危险,对吗?
问题是我不明白它是否会导致管道中插入气泡,因为我必须绘制管道表。
这是否会导致危险是否有任何不同的情况?
【问题讨论】:
-
您的管道中有多少阶段?如果有 5 个阶段,这不是危险。
-
是的,这是一个 5 阶段的管道(获取、解码、读取、执行、写入)。所以不需要气泡?
-
这确实是一种反依赖,但在经典管道中不会造成危害。读取发生得很早,写入发生得很晚,这没有问题。
-
@GiacomoBenso 顺便说一句,欢迎来到 Stack Overflow。如果我没有解决您的问题,请告诉我,否则您可以投票和/或接受我的回答。
-
@IRTFM:[cpu-architecture] 标签涵盖了管道中的数据危害等内容。如果您正在修复其他问题中滥用 [hazard] 标签的问题,请在该标签尚未出现时添加。
标签: assembly mips cpu-architecture