T44 数据相关冒险的阻塞时间
T20_流水线数据冒险_nop_插入数量
T20 流水线数据冒险 nop 插入数量
对于五段式流水线(IF,ID,Ex,Mem,WB),若指令 A 与 B 存在数据冒险,且 A 在 B 之前执行
Link to original
- 前半周期写寄存器堆,后半周期读寄存器堆:意思是 A 的 WB 周期可以与 B 的 ID 周期重叠
- IF(B) 与 ID(A) 重叠,ID(B) 与 WB(A) 重叠,中间插入 2 个 nop
- 不支持 👆 的特性的情况
- IF(B) 与 ID(A) 重叠,ID(B) 在 WB(A) 之后,中间插入 3 个 nop
如果上一条命令阻塞,则下一条命令的 IF 必须与上一条命令的 ID 一起执行
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
|---|---|---|---|---|---|---|---|---|---|---|
| I1 | IF | ID | EX | MEM | WB | |||||
| I2 | IF | ID | EX | MEM | WB | |||||
| I3 | IF | ID | EX | MEM | WB | |||||
| I4 | IF | ID | EX | MEM | WB |