CPU相关术语及缩略语

本文更新于 2018.12.02

ALU
Arithmetic Logical Unit, 算术运算单元
BTB
Branch Target Buffer
DSB
Decoded I-Cache, 缓存解码后的micro-ops
Front-End
CPU可以根据功能分为几个大块, 其中位于处理流程上游的部分称为front-end, 其中包括分支预测, 取指令, 指令解码, 微指令cache等子模板.
hazard
XXX
TLB
Translation Lookaside Buffer, 现代处理器使用虚拟地址和分页机制, 物理内存被映射到多个固定大小的内存页中, 处理器通过多级页表来完成映射工作, 这些页表也储存在内存中. 为了提升寻址性能, 处理器把部分页表缓存在特殊的cache中, 此cache称为TLB.
LSD
Loop Stream Detector
macro-fusion
即”宏融合”, 一种硬件优化, 特定情形下会将两条指令合并成一条micro-ops.
micro-fusion
某些单条指令会被解码为多个micro-ops, 这称为micro-fusion(微融合). 使用这样的指令可以更好地利用取指带宽(fetch bandwidth).
MOB
XXX
pipeline
流水线. 现代处理器处理指令的过程被分成了若干个步骤(stage), 例如Pentium 4分为20个步骤, 理论上这些步骤可以同时执行各自的工作而不受干扰, 每个步骤完成自已的工作后将结果交给下一步骤即可. 这个过程就像工厂车间里的流水线一样, 因此被称为pipeline.
register file
XXX
rename
XXX
retire / retirement
当一个uop执行完成并写完结果时, 它就被retired. retirement单元负责从execution core接收并处理执行结果, 并根据原始顺序更新architectural状态. 另外, retirement单元还追踪分支状态, 并把更新后的branch target信息送回到BTB, 然后BTB就可以清除那些不需要的pre-fetched traces.
ROB
ReOrder Buffer. the unit in the processor which buffers completed micro-ops, updates the architectural state in order, and manages the ordering of exceptions.
RS
Reservation Station
self-modifying code
XXX
SIMD

Single-Instruction, Multiple-Data. 单指令多数据. 多数据指以特定宽度为一个数据单元, 多单元数据独立操作; 而单指令指对于这样的多单元数据集, 一个指令操作作用到每个数据单元. 可以把SIMD理解为向量化的操作方式.

SIMD指令操作的寄存器比通用寄存器位宽更大, 例如128bit的XMM寄存器和256bit的YMM寄存器. MMX, SSE, AVX等都是SIMD指令集.

stall
XXX
superscalar
超标量, 指现代处理器有多个计算单元, 可以将多条指令派发到这些计算单元并发执行.
uop
程序代码被现代CPU的解码模块解码后, 生成的操作码称为micro-operation, 或称μop, 它可以直接被执行单元执行.