重命名映射表恢复方法、系统及终端与流程

文档序号:37716237发布日期:2024-04-23 11:46阅读:13来源:国知局
本发明涉及寄存器重命名,特别是涉及一种重命名映射表恢复方法、系统及终端。
背景技术
::1、现代处理器基本上借助指令的乱序执行来开发程序中的指令级并行,从而提升处理器性能。乱序执行允许不相干的指令越过长延迟的事件,从而提升指令吞吐。这些处理器往往采用分支预测技术,寄存器重命名技术和乱序执行技术等提升处理器性能。2、重命名单元会在分支预测的指令路径上推测地对译码之后的指令进行重命名,更新重命名映射表,因此映射表有可能被错误地更新。比如发生分支预测错误,存储顺序违例,甚至是发生异常、中断;此类事件需要处理器内核重定向取指地址(re-fetch),重新从某个地址开始取指并执行。发生refetch操作时,需要将映射表恢复到refetch前一条指令的状态。这个恢复过程不同的处理器有不同的方案。3、有一些处理器采用反向遍历重命名映射表来将修改过的映射从最新的指令开始,遍历到发生推测错误的那条指令。该方案随着处理器乱序窗口的增大,恢复的指令数目将增大,恢复延迟将有所增加。有一些处理器采用checkpoint的方式,随着处理器内核乱序窗口增大,checkpoint table将变得越来越大,硬件存储成本变高。有一些处理器会存储指令替换和更新映射表的历史信息,将寄存器重命名映射表恢复到flush所在指令之前的映射状态。这些方案硬件较复杂,而且延迟比较高。技术实现思路1、鉴于以上所述现有技术的缺点,本发明的目的在于提供一种重命名映射表恢复方法、系统及终端,用于解决以上现有技术问题。2、为实现上述目的及其他相关目的,本发明提供一种重命名映射表恢复方法,所述方法包括:基于由预测错误触发的流水线清空指令的itag位置,利用映射历史缓冲区在所有重命名指令中确定一或多个重命名指令的itag位置分别为对应一恢复位的恢复索引位;其中,每个重命名指令分别分配有一itag位置以及一物理寄存器编号,用于对重命名映射表中一目标寄存器进行重命名;对每个恢复索引位分别生成对应的映射缓冲索引;基于各映射缓冲索引,分别在所述映射历史缓冲区中读取各恢复位的重命名指令所对应的恢复信息;其中,所述恢复信息包括:目标寄存器编号、目标寄存器类型、物理寄存器编号;将读取的各恢复信息分别写入重命名映射表中相应目标寄存器的对应位置中,以获得恢复的重命名映射表。3、于本发明的一实施例中,所述映射历史缓冲区包括:重命名信息表以及替换位置表;其中,所述重命名信息表,包括:未提交的各重命名指令的重命名信息;其中,所述重命名信息包括:目标寄存器编号、新分配的物理寄存器编号、位置被替换的物理寄存器编号以及目标寄存器类型;所述替换位置表,包括:所有替换旧重命名指令的itag位置的新重命名指令所对应的旧itag位置、对应旧itag位置的指令提交信息以及对应itag位置的重命名标志信息;其中,将被新重命名指令的itag位置替换的旧重命名指令的itag位置作为对应新重命名指令的旧itag位置;所述指令提交信息在对应旧itag位置的旧重命名指令未被提交的情况下为设置1,在对应旧itag位置的旧重命名指令被提交的情况下设置为0;所述重命名标志信息在对应itag位置进行重命名的情况下设置为1,在对应itag位置未进行重命名的情况下设置为0。4、于本发明的一实施例中,利用每个重命名指令对重命名映射表中对应目标寄存器进行重命名的方式包括:利用当前重命名指令所对应的目标寄存器索引当前的重命名映射表中该目标寄存器对应itag位置和itag_v信息;根据itag位置以及itag_v信息更新替换位置表,且在更新替换位置表后执行所述重命名操作;执行完所述重命名操作后,更新重命名信息表;其中,所述重命名操作包括:由当前重命名指令所对应的物理寄存器编号替换重命名映射表中对应目标寄存器的物理寄存器编号,同时由当前重命名指令所对应的itag位置替换对应目标寄存器的itag位置,并将对应itag位置的itag_v信息置为1。5、于本发明的一实施例中,更新替换位置表的方式包括:在itag_v信息为0时,将当前重命名指令的itag位置作为写地址,将设置为0的指令提交信息以及设置为1的重命名标志信息作为写数据更新所述替换位置j表;在itag_v信息为1时,将当前重命名指令的itag位置作为写地址,将被当前重命名指令的itag位置替换的重命名指令的itag位置、设置为1的指令提交信息以及设置为1的重命名标志信息作为写数据更新所述替换位置表。6、于本发明的一实施例中,更新重命名信息表的方式包括:将当前重命名指令对应的itag位置作为写地址以及将对应的目标寄存器编号、新分配的物理寄存器编号、被替换的物理寄存器编号以及目标寄存器类型作为写数据更新所述重命名信息表。7、于本发明的一实施例中,所述基于由预测错误触发的流水线清空指令的itag位置,利用映射历史缓冲区在所有重命名指令中确定一或多个重命名指令的itag位置分别为对应一恢复位的恢复索引位包括:基于恢复位查找规则,根据流水线清空指令的itag位置在所述映射历史缓冲区确定各恢复位以及对应各恢复位的恢复索引位,以获得对应所有重命名指令的恢复组。8、于本发明的一实施例中,所述恢复位查找规则包括:在所述替换位置表中获取所有itag位置不小于所述流水线清空指令的itag位置且对应重命名标志信息不为0的重命名指令的指令提交信息以及重命名标志信息;在获取的所有指令提交信息以及重命名标志信息均为1的重命名指令中筛选所有对应旧itag位置小于所述流水线清空指令的itag位置的重命名指令,并将对应重命名指令的itag位置作为恢复索引位以及将其对应的旧itag位置作为恢复位;将获取的所有指令提交信息为0且重命名标志信息为1的重命名指令的itag位置作为恢复索引位以及将其对应的旧itag位置作为恢复位。9、于本发明的一实施例中,所述对每个恢复索引位分别生成对应的映射缓冲索引包括:利用编码器扫描恢复组中各恢复索引位生成对应各恢复索引位的映射缓冲索引;其中,每个映射缓冲索引指向一历史条目;其中,历史条目储存一目标寄存器中的物理寄存器编号。10、于本发明的一实施例中,基于各映射缓冲索引,分别在所述映射历史缓冲区中读取各恢复位的重命名指令所对应的恢复信息包括:基于各映射缓冲索引在所述重命名信息表中查询各恢复索引位的重命名指令对应的目标寄存器编号、目标寄存器类型以及位置被替换的物理寄存器编号;将各恢复索引位对应的目标寄存器编号、目标寄存器类型以及位置被替换的物理寄存器编号,分别作为各恢复位的恢复信息中的目标寄存器编号、目标寄存器类型以及物理寄存器编号。11、为实现上述目的及其他相关目的,本发明提供一种重命名映射表恢复系统,所述系统包括:恢复位确认模块,用于基于由预测错误触发的流水线清空指令的itag位置,利用映射历史缓冲区在所有重命名指令中确定一或多个重命名指令的itag位置分别为对应一恢复位的恢复索引位;其中,每个重命名指令分别分配有一itag位置以及一物理寄存器编号,用于对重命名映射表中一目标寄存器进行重命名;映射缓冲索引生成模块,连接所述恢复位确认模块,对每个恢复索引位分别生成对应的映射缓冲索引;恢复信息读取模块,连接所述映射缓冲索引生成模块,用于基于各映射缓冲索引,分别在所述映射历史缓冲区中读取各恢复位的重命名指令所对应的恢复信息;其中,所述恢复信息包括:目标寄存器编号、目标寄存器类型、物理寄存器编号;恢复模块,连接所述恢复信息读取模块,用于将读取的各恢复信息分别写入重命名映射表中相应目标寄存器的对应位置中,以获得恢复的重命名映射表。12、为实现上述目的及其他相关目的,本发明提供一种重命名映射表恢复终端,包括:一或多个存储器及一或多个处理器;所述一或多个存储器,用于存储计算机程序;所述一或多个处理器,连接所述存储器,用于运行所述计算机程序以执行所述重命名映射表恢复方法。13、如上所述,本发明是一种重命名映射表恢复方法、系统及终端,具有以下有益效果:本发明通过在预测错误触发时利用映射历史缓冲区确定各恢复索引位,并对每个恢复索引位分别生成对应的映射缓冲索引,通过映射缓冲索引在所述映射历史缓冲区中读取各恢复位的重命名指令所对应的恢复信息,以将读取的各恢复信息分别写入重命名映射表中相应目标寄存器中,获得恢复的重命名映射表。本发明不仅可以在较小硬件复杂度的情况下降低处理器恢复映射表的延迟,并且还有利于功耗和面积。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1