首页 > 试题广场 >

在采用“取指、译码取数、执行、访存、写回”5段流水线的处理

[单选题]
在采用“取指、译码/取数、执行、访存、写回”5 段流水线的处理器中,执行如下指 令序列,其中 s0、s1、s2、s3 和 t2 表示寄存器编号
I1:add s2,s1,s0     // R[s2]<-R[s1]+R[s0] 
I2:load s3,0(t2)     // R[s3]<-M[R[t2]+0] 
I3:add s2,s2,s3     // R[s2]<-R[s2]+R[s3] 
I4:store s2,0(t2)    // M[R[t2]+0]-<R[s2]
下列指令对中,不存在数据冒险的是___
  • I1 和 I3
  • I2 和 I3
  • I2 和 I4
  • I3 和 I4
参考:

解析:画出这四条指令在流水线中执行的过程如下图所示。(有图)

数据冒险即数据相关,指在程序中存在必须等前一条指令执行完才能执行后一条指令的情况,此时这两条指令即为数据相关。其中11 和13 、12 和13 、13 和14 均发生了写后读相关,因此必须等相关的前一条指令执行完才能执行后一条指令。只有12 和14 不存在数据冒险,选C。


发表于 2024-03-04 14:44:53 回复(0)

数据冒险

        流水线使原先有先后顺序的指令同时处理,当出现某些指令的组合时,可能会导致指令使用了错误的数据。

发表于 2021-08-26 20:39:33 回复(1)