如果采用MIPS流水线执行指令序列,哪些语句之间存在数据相关?
时间: 2023-12-10 11:37:02 浏览: 75
MIPS流水线实验报告计算机体系结构MIPS流水线
5星 · 资源好评率100%
在MIPS流水线中,数据相关分为3种类型:数据读后写(WAW)、数据读后读(RAR)、数据读后写(RAW)。下面是一个MIPS指令序列:
```assembly
add $t0, $s1, $s2
sub $t1, $t0, $s3
lw $t2, 0($t1)
add $t3, $t2, $s4
sw $t3, 4($t1)
```
其中,存在以下数据相关:
1. 第2条指令与第1条指令之间存在RAW相关:因为第2条指令需要$t0的值,而第1条指令的结果会写入$t0寄存器,因此需要等待第1条指令执行完毕才能执行第2条指令。
2. 第3条指令与第2、1条指令之间存在RAR相关:因为第3条指令需要$t1的值,而$t1的值来自第2条指令的结果,第2条指令又需要$t0的值,$t0的值来自第1条指令的结果,因此需要等待第1、2条指令执行完毕才能执行第3条指令。
3. 第4条指令与第3条指令之间存在RAW相关:因为第4条指令需要$t2的值,而$t2的值来自第3条指令的结果,因此需要等待第3条指令执行完毕才能执行第4条指令。
4. 第5条指令与第4条指令之间存在WAW相关:因为第5条指令和第4条指令都要将$t3的值写入内存,而它们的执行顺序是不能调换的,因此需要等待第4条指令执行完毕才能执行第5条指令。
阅读全文