鄢传钦,孟建熠
(浙江大学超大规模集成电路设计研究所,浙江杭州310027)
寄存器重命名是超标量流水线中实现处理器内核指令动态调度的关键技术,解决了指令之间的反相关(WAR)和输出相关(WAW)问题[1]。随着超标量处理器指令级并行性的不断挖掘和流水线进一步加深,指令发射窗口进一步增大[2],停留在流水线中的“飞行”指令也随之增加,因此,必须增加物理寄存器的数量来完成指令的调度[3],然而寄存器资源的增大给处理器带来了寄存器的访问延迟、面积、功耗等一系列问题[4,5]。这些问题的存在使得通过简单地增加物理寄存器的资源来提高处理器的性能变得举步维艰[6],因此,提高物理寄存器的利用效率以达到提高处理器性能的同时节省资源变得尤为重要。
传统的寄存器重命名方法[7]为了降低设计的复杂度,在译码阶段为指令分配物理寄存器,在指令退休写回时释放寄存器资源。其问题在于物理寄存器的使用效率太低,一旦发生物理寄存器的结构冲突,流水线必须停顿直到资源冲突消除。
文献[4,5]提出了一种通过两级映射推迟物理寄存器的分配的重命名方法。这种方法在译码阶段通过第一级映射为指令分配虚拟寄存器。在指令发[5]或执行完成[4]时通过第二级映射为指令分配真实的物理寄存器。两级映射的方法虽然能够通过推迟实际物理寄存器的分配来提高利用效率,却很大程度上增加了硬件设计的复杂度。
本……