流水线中有3类数据相关冲突:写后读相关、读后写相关、写后写相关。那么下列3组指令中存在读后写相关的是( )。 Ⅰ:I1 SUB R1,R2,R3; (R2)-(R3)→R1 Ⅰ2 ADD R4,R5,R1; (R5)+(R

admin2019-02-24  32

问题 流水线中有3类数据相关冲突:写后读相关、读后写相关、写后写相关。那么下列3组指令中存在读后写相关的是(    )。
    Ⅰ:I1 SUB R1,R2,R3;    (R2)-(R3)→R1
    Ⅰ2 ADD R4,R5,R1;    (R5)+(R1)→R4
    Ⅱ:Ⅰ1 STAM,R2;    (R2)→M,M为主存单元
    Ⅰ2  ADD R2,R4,R5;    (R4)+(R5)→R2
    Ⅲ:Ⅰ1  MUL R3,R2,R1;    (R2)×(R1)→R3
    Ⅰ2  SUB R3,R4,R5;(R4)-(R5)→R3

选项 A、仅Ⅰ、Ⅲ
B、仅Ⅱ
C、仅Ⅱ、Ⅲ
D、Ⅰ、Ⅱ、Ⅲ

答案B

解析 Ⅰ:11指令运算结果应先写入R1,然后在指令Ⅰ2中读出R1的内容。由于Ⅰ2指令进入流水线,使得Ⅰ2指令在Ⅰ1指令写入R1前就读出R1的内容,发生“写后读相关”。
    Ⅱ:11指令应先读出:R2的内容并存入存储单元M中,然后Ⅰ2指令将运算结果写入R2中。但由于Ⅰ2指令进入流水线,使得Ⅰ2指令在Ⅰ1指令读出R2之前就写入R2,发生“读后写相关”。
    Ⅲ:12指令应该在Ⅰ1指令写入R3之后,再写入R3。现由于Ⅰ2指令进入流水线,如果Ⅰ2指令减法运算在Ⅰ1指令的乘法运算之前完成,使得Ⅰ2指令在Ⅰ1指令写入R3之前就写入R3,导致R3内容错误,发生“写后写相关”。
转载请注明原文地址:https://jikaoti.com/ti/PvGjFFFM
0

最新回复(0)