mips 系统桥_计算机系统结构-MIPS指令流水线冲突

以下是一段MIPS指令序列,

loop:

add $t1, $s3, $s3 //t1=s3+s3

add $t1, $t1, $t1 //t1=t1+t1

add $t1, $t1, $s6 //t1=t1+s6

lw $t0, 0($t1) //lw 从存储器中读取一个字的数据到寄存器中,从t1中读取一个数给t0

bne $t0, $s5, exit //条件转移指令,当两个寄存器中内容不等时转移发生,转移到exit中去

add $s3, $s3, $s4 //s3=s3+s4

j loop //直接跳转指令,跳转到loop

假如在实验的五段流水线中执行上述指令序列,在数据通路中,寄存器写口和寄存器读口分别安排一个时钟周期的前、后半个周期内独立工作,请思考:

(1)哪些指令之间发生数据相关?哪些指令之间发生控制相关?

答:

数据冲突:

add $t1, $s3, $s3和add $t1, $t1, $t1

add $t1, $t1, $t1和add $t1, $t1, $s6

add $t1, $t1, $s6和lw $t0, 0($t1)

lw $t0, 0($t1)和bne $t0, $s5, exit

add $s3, $s3, $s4和add $t1, $s3, $s3

控制相关:

bne $t0, $s5, exit和j loop

(2)如果不采用“直通”技术进行数据冲突处理,那么应该在何处、加入几条nop指令才能避免数据冲突?假定采用“直通”技术

你可能感兴趣的:(mips,系统桥)