【技术实现步骤摘要】
还原寄存器重命名映射
技术介绍
乱序微处理器通过以不同于程序中顺序的序列来执行指令能提供提高的计算性能,使得指令当其输入数据可用时被执行,而不是等待程序中前面的指令的执行。为了允许指令在微处理器上乱序运行,能够重命名指令使用的寄存器是有用的。这使得能从指令中移除“写后读”(WAR)依赖,因为这些依赖不是真正的依赖。通过使用寄存器重命名和移除这些依赖,能不按照程序序列执行更多的指令,并且进一步提升了性能。寄存器重命名通过维护映射来执行,其中,在指令中命名的寄存器(称为架构寄存器)被映射到微处理器的物理寄存器上。但是在程序中的指令的流程在执行期间有时会改变。例如,在分支指令的情况下,分支预测经常被用于预测将采用哪个指令分支,来允许推测地乱序执行在预测分支的指令。这意味着会发生分支错误预测,这可能在已发送许多推测指令通过寄存器重命名级并且进入执行管道之后被意识到。为了在采用不正确预测的分支之后,允许重置程序流程并且正确地继续,“回绕”寄存器重命名映射到错误预测分支通过寄存器重命名级时的状态。其他指令在程序流程中引起意外改变(例如中断或异常)的情况下也能看到类似的效果。当前的乱 ...
【技术保护点】
一种在乱序处理器中还原寄存器重命名映射的方法,包括:每当将流程风险指令插入到重排序缓冲器时,将所述寄存器重命名映射的状态的拷贝存储到还原表的一个存储位置,直到所有存储位置都被使用;确定随后已变得可用的存储位置;基于先前存储的用于较旧的流程风险指令的寄存器重命名映射的状态和存储在所述重排序缓冲器中的用于中间指令的值,产生在所有存储位置都已被使用时用于插入到所述重排序缓冲器中的未记录的流程风险指令的得出的寄存器重命名映射的状态,其中,所述中间指令插入在所述较旧的流程风险指令和所述未记录的流程风险指令之间;将用于所述未记录的流程风险指令的所述得出的寄存器重命名映射的状态存储到所述 ...
【技术特征摘要】
...