跳转至

流水线架构

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)

  • Load-Use 冒险:插入 1 个停顿周期

5. 控制冒险处理

5.1 分支预测

  • 静态预测:向后分支预测taken,向前分支预测 not-taken

5.2 分支延迟

  • 分支误预测惩罚:2 个周期

6. 性能指标

指标
CPI 1.0 (理想)
分支误预测率 < 5%
Cache 命中率 > 95%