术语表
A–F
- BPU(Branch Prediction Unit)
- 在分支真实执行前预测控制流方向与目标,向前端提供下一取指 PC。
- BTB
- Branch Target Buffer,缓存控制流指令及其目标;“有方向但没目标”仍会阻塞取指。
- Commit / Retire
- 指令结果按程序顺序成为架构状态。本文将两者都译作“提交/退休”,并在涉及
cache 可见性时明确区分 Store 退休与全局可见。
- Difftest
- 在提交边界把 DUT 的架构状态与参考模型比较,用于发现功能分歧。
- FTQ(Fetch Target Queue)
- 连接分支预测与取指/后端的队列,保存预测块及恢复、训练所需上下文。
H–M
- HPM(Hardware Performance Monitor)
- RISC-V 硬件性能计数器与事件选择机制,包括
mcycle/minstret 和 HPM counters。
- IBuffer
- 把变长、可能碎片化的取指结果整理为后端可接受的指令流,并吸收短期背压。
- Issue / Dispatch
- Dispatch 把已重命名微操作分配到调度结构;Issue 在操作数和执行资源就绪后发射。
- LSQ(Load-Store Queue)
- 维护乱序访存的程序顺序、前递、异常和违例检测,通常分为 LQ 与 SQ。
- MLP(Memory-Level Parallelism)
- 同时存在多个未完成 cache miss 的能力;决定 miss 延迟能否相互重叠。
- MSHR
- Miss Status Handling Register,跟踪尚未完成的 cache miss 和合并请求。
P–R
- PMA / PMP
- Physical Memory Attribute / Protection。PMA 描述物理区域属性,PMP 执行物理
访问权限检查。
- PTW(Page Table Walker)
- TLB miss 时按页表格式读取 PTE 并完成地址翻译与权限检查。
- RAB(Rename/Retire Architecture Buffer)
- 香山后端用于把指令退休与寄存器架构提交进一步解耦的结构;具体职责以当前
backend/rob 与 rename 实现为准。
- RAW / WAR / WAW
- Read After Write 是真实数据依赖;WAR/WAW 是复用逻辑寄存器名造成的伪相关,
可由寄存器重命名消除。
- Redirect
- 分支错误、异常、访存违例等事件要求流水线改从另一个 PC 执行。
- Replay
- 微操作本次执行条件未满足,保留或重新进入调度/流水线后再次执行。不是所有
replay 都要求全核 redirect。
- ROB(Reorder Buffer)
- 跟踪程序顺序、完成状态和异常,使微操作能乱序执行而按序退休。
S–W
- SBuffer / Store Buffer
- 保存已满足提交条件但尚未完成 cache 写入的 Store,可合并写入并把退休与
cache 延迟解耦。
- TLB
- Translation Lookaside Buffer,缓存虚拟地址到物理地址的翻译和权限信息。
- Top-down
- 从“周期为什么没有转化为有效退休工作”出发,逐层把损失归因到前端、后端、
访存及更细原因的方法;具体分类是实现定义的。
- uop(Micro-operation)
- 后端内部调度/执行单位。一条 ISA 指令可能对应一个或多个 uop,也可能与邻近
指令融合,因此不能把 uop 数等同
minstret。
- Wakeup
- 生产者结果即将或已经可用时通知 Issue Queue,使依赖消费者变为 ready。
- Writeback
- 执行结果进入物理寄存器/旁路和完成跟踪的阶段;早于架构退休。