问答题 流水线中有三类数据相关冲突:写后读(RAW)相关;读后写(WAR)相关;写后写(WAW)相关。判断以下三组指令各存在哪种类型的数据相关。 (1)I 1 ADD R,R2,R3;(R 2 +R 3 )→R 1 I 2 SUB R4,R1,R5;(R 1 -R 5 )→R 4 (2)I 3 STA M(x),R3;(R 3 )→M(x),M(x)是存储器单元 I 4 ADD R3,R4,R5;(R 4 +R 5 )→R 3 (3)I 5 MUL R3,R1,R2;(R 1 )×(R 2 )→R 3 I 6 ADD R3,R4,R5;(R 4 +R 5 )→R 3
【正确答案】正确答案:第(1)组指令中,I 1 指令运算结果应先写入R 1 然后在I 2 指令中读出R 1 内容。由于I 3 指令进入流水线,变成I 2 指令在I 1 指令写入R 1 前就读出R 1 内容,发生RAW相关。 第(2)组指令中,I 3 指令应先读出R 3 内容并存入存储单元M(x),然后在I 4 指令中将运算结果写入R 3 。但由于I 4 指令进入流水线,变成I 4 指令在I 3 指令读出R 3 内容前就写入R 3 ,发生WAR相关。 第(3)组指令中,如果I 6 指令的加法运算完成时间早于I 5 指令的乘法运算时间,变成指令I 6 在指令I 5 写入R 3 前就写入R 3 ,导致R 3 的内容错误,发生WAW相关。
【答案解析】