
| 访问延迟 | < 1 个时钟周期 |
| x86-64 通用寄存器数 | 16 个(64 位) |
| AVX-512 向量寄存器宽度 | 512 位(ZMM0~ZMM31) |
寄存器是处理器核心里一小块极速的存储空间,由触发器(flip-flop)直接构成,物理上就在执行单元旁边。CPU 做任何计算,操作数必须先装入寄存器,结果也先写回寄存器,再视情况刷入缓存或内存。x86 平台从 8086 时代的 8 个 16 位通用寄存器(AX/BX/CX/DX/SI/DI/SP/BP),到 AMD64 扩展为 16 个 64 位寄存器(RAX~R15),每一代扩展都向下兼容。
除通用寄存器外,还有专用寄存器:程序计数器(PC/RIP)记录下一条指令地址,标志寄存器(RFLAGS)保存运算状态位(进位/零/溢出),段寄存器在保护模式下参与地址翻译。x87 浮点单元另有 8 个 80 位浮点栈寄存器,SSE/AVX 则引入了 XMM/YMM/ZMM 系列向量寄存器,ZMM 宽达 512 位,可一次并行处理 8 个 64 位双精度浮点数。[1]
软件看到的是架构寄存器(architectural registers),数量固定;芯片内部实际有更多物理寄存器,Intel Sunny Cove 微架构(Ice Lake,2019)有 280 个整数物理寄存器和 224 个浮点物理寄存器。乱序执行引擎通过寄存器重命名(register renaming)把架构寄存器映射到物理寄存器,消除写后写(WAW)、读后写(WAR)的假依赖,让互不相关的指令并行执行。这一技术由 Robert Tomasulo 在 1967 年为 IBM 360/91 浮点单元发明,称为 Tomasulo 算法,是现代超标量 CPU 的基础之一。

| 访问延迟 | < 1 个时钟周期 |
| x86-64 通用寄存器数 | 16 个(64 位) |
| AVX-512 向量寄存器宽度 | 512 位(ZMM0~ZMM31) |
登录 后参与讨论
暂无讨论,来发表第一条评论吧