在采用“取指、译码/取数、执行、访存、写回”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]下列指令对中,不存在数据冒险的是( )
A: I2和I4
B: I1和I3
C: I2和I3
D: I3和I4
A: I2和I4
B: I1和I3
C: I2和I3
D: I3和I4
举一反三
- 下面是一段MIPS指令序列: 1 add$s3, $s1, $s0 #R[$t3]←R[$s1]+R[$s0] 2 add$t2, $s0, $s3 #R[$t2]←R[$s0]+R[$s3] 3 1w$t1, 0($t2) #R[$t1]←M[R[$t2]+0] 4 add$t1, $t1, $t2 #R[$t1]←R[$t1]+R[$t2] 以上指令序列中,______指令之间发生数据相关 A: 1和2、2和3 B: 1和2、2和4 C: 1和3、2和3、2和4、3和4 D: 1和2、2和3、2和4、3和4
- 下面代码的输出结果是( )。 a=[[1,2,3],[4,5,6],[7,8,9]] s=0 for i in range(2): for j in range(3): s+=a[i][j] print(s)[/i] A: 15 B: 6 C: 45 D: 21
- 设有如下定义和语句[1] char *s; s="string";[2] char s[7]; s="string";[3] char s[ ]="string";[4] char s[ ]={'s','t','r','i','n','g'};其中定义项可以作为字符串使用的是______。 A: [1]和[2] B: [1]和[3] C: [1]和[4] D: [3]和[4]
- I2在液态水和CCl4中分配达到平衡(无固体存在),下列正确的是( )。 A: S=3、R=1、R’=1、C=1 B: S=3、R=1、R’=0、C=2 C: S=3、R=0、R’=0、C=3 D: S=3、R=0、R’=1、C=2
- 下面代码的输出结果是( )。 t=[1,2,3] s=tuple(t) print(t,s) A: [1, 2, 3] [1, 2, 3] B: (1, 2, 3) (1, 2, 4) C: [1, 2, 3] (1, 2, 3) D: (1, 2, 6)[1, 2, 3]