Files
2025-yatcpu/lab1/实验报告/1.md
2025-11-18 00:55:46 +08:00

2.1 KiB
Raw Blame History

好~我把(3)和(4)都整理成流水线时序表5 级IF/ID/EX/M/WB空白表示该拍无操作。

(3) 指令:

I1: LOAD R1,[a] I2: LOAD R2,[b] I3: ADD R1,R2 (结果写回 R2 I4: STORE R2,[x]

时序表(到 14 拍)

指令 1 2 3 4 5 6 7 8 9 10 11 12 13 14
I1 IF ID EX M WB
I2 IF ID EX M WB
I3 IF ID ID ID ID EX M WB
I4 IF ID ID ID ID EX M

说明I3 在 ID 等待到 R1@5、R2@6 写回后才在第 7 拍完成读寄存器I4 受 I3 占据 ID 反压IF 被阻塞到第 7 拍开始;又因需等 R2@10 写回ID 等到第 11 拍才读到新 R2随后 EX→M 结束。


(4) 指令(提示给定):

I1: LOAD R1,[x] I2: LOAD R2,[a] I3: SHL R1 x*2 I4: ADD R1,R2 (写回 R2 I5: STORE R2,[x]

时序表(到 16 拍)

指令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
I1 IF ID EX M WB
I2 IF ID EX M WB
I3 IF ID ID ID EX M WB
I4 IF ID ID ID EX M WB
I5 IF ID ID ID ID EX M
  • 关键等待:

    • I3 需等 R1@5 写回,故在 ID 等到第 6 拍读寄存器→7 EX→9 WB
    • I4 需等 I3 的 R1 在第 9 拍写回,故在第 10 拍读寄存器→11 EX→13 WB
    • I5 需等 R2 在第 13 拍写回,于第 14 拍读寄存器→15 EX→16 MSTORE 在 M 完成写内存)。

如果你想把这两张表导成可打印的 Word/Excel我也可以直接帮你生成文件。