流水线架构
1. 概述
本项目采用经典的 5 级 RISC 流水线架构,实现 RV32IMC 指令集。
2. 流水线级
2.1 IF (Instruction Fetch) - 取指级
- 从 I-Cache 获取指令
- 程序计数器 (PC) 管理
- 分支预测 (简单静态预测)
2.2 ID (Instruction Decode) - 译码级
- 指令译码
- 寄存器文件读取
- 立即数生成
- 分支目标计算
2.3 EX (Execute) - 执行级
- ALU 运算
- 地址计算 (Load/Store)
- 比较运算 (Branch)
2.4 MEM (Memory) - 访存级
- 数据缓存访问
- Load 数据返回
- Store 数据写入
2.5 WB (Write Back) - 写回级
3. 流水线寄存器
| 流水线寄存器 | 内容 |
| IF/ID | PC, 指令 |
| ID/EX | 操作数, 立即数, 控制信号 |
| EX/MEM | ALU 结果, 写回数据 |
| MEM/WB | 读回数据, 写回数据 |
4. 数据冒险处理
4.1 前递 (Forwarding)
- EX/MEM → EX 前递
- MEM/WB → EX 前递
- MEM/WB → ID 前递 (Load 停顿)
4.2 停顿 (Stall)
5. 控制冒险处理
5.1 分支预测
- 静态预测:向后分支预测taken,向前分支预测 not-taken
5.2 分支延迟
6. 性能指标
| 指标 | 值 |
| CPI | 1.0 (理想) |
| 分支误预测率 | < 5% |
| Cache 命中率 | > 95% |