第 19 题
流水线计算机中,下列语句发生的数据相关类型是( )。 ADD R1, R2, R3; (R2)+(R3)→R1 ADD R4, R1, R5; (R1)+(R5)→R4
A. 写后写 B. 读后写 C. 写后读 D. 读后读
[tag_link]
正确答案:C
在流水线计算机中,数据相关是指令之间由于共享寄存器或内存位置而导致的依赖关系。 分析给定的两条指令:第一条指令 ADD R1, R2, R3 将 R2 和 R3 的值相加后写入 R1; 第二条指令 ADD R4, R1, R5 需要读取 R1 的值与 R5 相加后写入 R4。 因此,第二条指令读取 R1 的操作依赖于第一条指令写入 R1 的结果。
这种依赖关系是第一条指令“写”R1,第二条指令“读”R1,即写操作之后发生读操作,属于写后读数据相关。 在流水线执行中,如果第二条指令的读阶段在第一条指令的写阶段之前发生,就会读取到旧值,导致数据冲突。 其他选项如写后写、读后写和读后读均不匹配此处依赖,因为指令间没有写入同一寄存器或先读后写的场景。