T20 流水线数据冒险 nop 插入数量

对于五段式流水线(IF,ID,Ex,Mem,WB),若指令 A 与 B 存在数据冒险,且 A 在 B 之前执行

  • 前半周期写寄存器堆,后半周期读寄存器堆:意思是 A 的 WB 周期可以与 B 的 ID 周期重叠
    • IF(B) 与 ID(A) 重叠,ID(B) 与 WB(A) 重叠,中间插入 2 个 nop
  • 不支持 👆 的特性的情况
    • IF(B) 与 ID(A) 重叠,ID(B) 在 WB(A) 之后,中间插入 3 个 nop