This commit is contained in:
2025-11-18 00:55:46 +08:00
parent 464d19d647
commit aa1a73202c
18 changed files with 2051 additions and 0 deletions

47
lab1/实验报告/1.md Normal file
View File

@@ -0,0 +1,47 @@
好~我把(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我也可以直接帮你生成文件。