加载中...

寄存器重命名(Register Renaming)是乱序处理器中的关键技术:将指令引用的架构寄存器(如x86-64的16个通用寄存器)动态映射到数量多得多的物理寄存器,从而消除"假相关"。
指令间的相关分三类:真相关(读后写RAW)、反相关(写后读WAR)和输出相关(写后写WAW)。后两类并非数据流的本质约束,只是寄存器名字被重复使用造成的。重命名阶段为每个目的寄存器分配一个新的物理寄存器,并用映射表记录当前对应关系,使不同指令对同名架构寄存器的写入互不干扰,只保留真正的数据依赖,乱序执行的调度空间因此大幅扩大。
常见实现包括基于重排序缓冲区(ROB)保存推测结果,或使用统一物理寄存器堆加寄存器别名表(RAT);物理寄存器在指令退休后按规则回收。
寄存器重命名让指令集只需定义少量架构寄存器,硬件却能利用上百个物理寄存器挖掘并行性,是现代高性能CPU的标配。

登录 后参与讨论
暂无讨论,来发表第一条评论吧