跳转至

术语表

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
执行结果进入物理寄存器/旁路和完成跟踪的阶段;早于架构退休。