在无转发机制的五段基本流水线(取指、译码,读寄存器、运算、访存、写回寄存器)中,下列指令序列存在数据冒险的指令对是( )。 I1: add R1,R2,R3; (R2)+(R3)→R1 I2: add R5

admin2017-08-16  5

问题 在无转发机制的五段基本流水线(取指、译码,读寄存器、运算、访存、写回寄存器)中,下列指令序列存在数据冒险的指令对是(          )。
    I1:    add R1,R2,R3;  (R2)+(R3)→R1
    I2:    add  R5,R2,R4;  (R2)+(R4)→R5
    I3:    add  R4,R5,R3;  (R5)+(R3)→R4
    I4:    add R5,R2,R6;  (R2)+(R6)→R5

选项 A、II和I2
B、I2和I3
C、I2和I4
D、I3和I4

答案B

解析 数据冒险,即数据相关,指在一个程序中存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关。当多条指令重叠处理时就会发生冲突。首先这两条指令发生写后读相关,并且两条指令在流水线中执行情况(发生数据冒险)如下表所示。

指令12在时钟5时将结果写入寄存器(R5),但指令13在时钟3时读寄存器(R5)。本来指令12应先写入R5,指令13后读R5,结果变成指令I3先读R5,指令12后写入R5,因而发生数据冲突。
转载请注明原文地址:https://jikaoti.com/ti/mifjFFFM
0

相关试题推荐
最新回复(0)