一种对寄存器别名表恢复方法技术

技术编号:17265175 阅读:27 留言:0更新日期:2018-02-14 12:35
本发明专利技术公开了一种对寄存器别名表恢复方法,包括:在指令取消时,对重排序缓冲站进行更新;从重排序缓冲站队列的头指针所指项开始将队列分成多个组,并在每个周期把其中一组的用于寄存器别名表恢复的信息送入与逻辑寄存器对应的映射关系恢复模块中;从送入的一组信息倒序搜索,并判断用于寄存器别名表恢复的信息是否满足要求;如果满足要求,则产生寄存器别名表对应项的更新信号,并在重命名缓冲站中对应项的目标寄存器的物理地址发送到寄存器别名表中;重命名缓冲站的不同组使用的映射关系恢复模块分时复用。本发明专利技术具有如下优点:在重排序缓冲器深度较大时减小面积并优化时序性能。

A method for restoring the register alias table

The invention discloses a recovery method of register alias table included in the instruction reorder buffer to cancel, update the station; from the station sort buffer queue head pointer refers to start the queue into multiple groups, and among them for a set of register alias table recovery information into the mapping relationship corresponding with the logical register recovery module in each cycle; search from a set of information into reverse, and judge for register alias table to restore the information whether meet the requirements; if meet the requirements, produces the register alias table update signal corresponding items, and in the corresponding station in the destination register rename buffer physical address to send to register alias table; recovery mapping between different groups using the rename buffer station module of time division multiplexing. The invention has the following advantages: the area is reduced and the timing performance is optimized when the depth of the reordering buffer is larger.

【技术实现步骤摘要】
一种对寄存器别名表恢复方法
本专利技术涉及寄存器处理
,具体涉及一种对寄存器别名表恢复方法。
技术介绍
现代的超标量处理器广泛地使用分支预测、寄存器重命名和猜测执行技术来提升运行效率。其中分支预测技术使得处理器可以在分支指令被执行前根据程序运行的历史信息,提前预测分支目标并进行取指;寄存器重命名技术可以通过冗余的物理寄存器,消除由于逻辑寄存器数量不足引起的数据先读后写相关和写写相关,从而允许更多的指令并行执行;猜测执行可以提前执行根据分支预测而预取的指令。这三种技术的联合使用可以使处理器减小由于程序分支带来的性能损失,但是也对处理器的设计提出了挑战。处理器的运行频率是衡量处理器性能的重要指标,如果某些用于提升处理器运行效率的技术的加入,导致处理器结构复杂化,进一步使处理器可运行的频率降低,那么这些技术对处理器实际运行速度的帮助就要打折扣,在某些场合下可能还会损害处理器的实际性能。比如上述技术,如果处理器运行的程序中分支指令很少,那它们能够给处理器带来的运行效率提高是有限的,如果它们的加入降低了处理器的运行频率,那么此时处理器性能反而会降低。处理器要应付各式各样的应用,要求在各个应用场景下都能有较好的性能表现,而全面提升处理器性能的最佳方式就是提升处理器的运行频率。因此,在加入提高处理器运行效率的技术时,如何尽量降低其对处理器运行频率的影响是一个特别重要的问题。上述三种提升处理器运行效率的技术之间有连锁作用:当分支预测发生错误时,从错误的目标取得的指令可能已经被猜测执行,而在执行前的寄存器重命名操作已经改写了寄存器别名表,因此不能仅仅取消掉这写被错误执行的指令,而必须将寄存器别名表恢复到猜测执行前的状态,否则后面的执行会出错。寄存器别名表记录了逻辑寄存器和物理寄存器之间的对应关系,在寄存器重命名时,指令要写入的逻辑寄存器别赋予一个对应的物理寄存器,当之后的指令要读取这个逻辑寄存器的值时,实际上是从寄存器别名表中查找到它所对应的物理寄存器,并读取这个物理寄存器。当处理器发现分支预测错误时,猜测执行的指令已经根据自己要写入的逻辑寄存器获取了物理寄存器并改写了寄存器别名表,此时必须对寄存器别名表进行恢复,释放被取消指占用的物理寄存器并重建逻辑寄存器与物理寄存器的对应关系,否则后继指令将可能从被取消的指令所占用的物理寄存器获取数据,造成程序运行结果的错误。当处理器发现分支预测错误时,可能有很多条来自于错误地址的指令已经被猜测执行,此时寄存器别名表已经被多次改写,如果对寄存器别名表的恢复需要很多个周期,在此期间内寄存器别名表处于不可用状态,会影响到重新取指后新指令的执行,降低处理器的执行效率,而要想快速恢复寄存器别名表,则又可能需要在一个时钟周期内执行太多的操作,影响处理器的运行频率。一个常用的解决这个问题的方法是采用备份寄存器别名表的方式,当一个新的分支指令到来时,原有的寄存器别名表保持不变,而使用一个新的寄存器别名表来进行分支指令之后的指令的寄存器重命名操作,如果在之后发现分支预测错误,就作废当前的寄存器别名表,换回原先使用的寄存器别名表。这个方法的问题是需要多张寄存器别名表,还需要同时更新其中的两张或在寄存器别名表切换时将旧表的内容拷贝到新表中以使新表能够继承旧表的内容,保持寄存器映射关系的一致性。当处理器支持很多个分支的猜测执行时,系统中会存在很多寄存器别名表,需要很大的面积,而且从多张寄存器别名表进行选择的逻辑是加在程序正常执行的时序路径上的,对处理器的运行频率可能会产生不利影响。在专利(申请号为利CN201010607215)中披露了一种使用重排序缓冲器中的信息恢复寄存器别名表的方法。该方法利用从发现分支预测错误到新取指指令到达流水线重命名阶段的空闲时间,通过搜索分支取消后的重排序缓冲器的方法进行寄存器别名表恢复操作,避免了需要多个寄存器别名表,以及对寄存器别名表的选择影响时序的问题。但是该专利技术仍然存在一些限制,最突出的就是对重排序缓冲器的搜索过程是顺序进行的,如果重排序的深度较大,则搜索逻辑也会占用较大的时间,而且较长的逻辑链的时序开销不一定能够完全被新取指指令到达流水线寄存器重命名阶段的空闲时间所覆盖。
技术实现思路
本专利技术旨在至少解决上述技术问题之一。为此,本专利技术的目的在于提出一种对寄存器别名表恢复方法,以在重排序缓冲器深度较大时优化时序性能。为了实现上述目的,本专利技术的实施例公开了一种对寄存器别名表恢复方法,包括以下步骤:S1:在指令取消发生时,对重排序缓冲站进行更新;S2:从所述重排序缓冲站队列的头指针所指项开始分成多个组,并在每个周期把一组的每一项的指令有效位、目标寄存器有效位和目标寄存器的逻辑地址送入与逻辑寄存器对应的映射关系恢复模块中;S3:所述映射关系恢复模块从送入的一组信息中的最后信息开始倒序搜索,并判断所述信息的指令有效位是否有效、目标寄存器有效位是否有效以及目标寄存器逻辑地址是否与所述映射关系恢复模块所对应的逻辑寄存器地址相同;S4:如果所述信息的指令有效位有效、目标寄存器有效位有效且目标寄存器逻辑地址与所述映射关系恢复模块所对应的逻辑寄存器地址相同,则产生寄存器别名表对应项的更新信号,并在所述重命名缓冲站中对应项的目标寄存器的物理地址发送到所述寄存器别名表中。S5:重复步骤S3-S4,直至所述重排序缓冲站队列的所有项均处理完毕。进一步地,在步骤S3中,如果处理器中存在多个寄存器别名表,则目标寄存器有效位的数量与所述寄存器别名表的数量相对应,分别对多个所述目标寄存器有效位是否有效进行判断。进一步地,在步骤S4中,如果存在多个寄存器别名表,则根据所述多个寄存器别名表相应的目标寄存器有效位一一对应地生成的更新信号。进一步地,重命名寄存器与所述重排序缓冲站相对应,将重命名缓冲站的队列ID作为更新的物理地址。进一步地,重命名寄存器与体系结构寄存器共用同一个物理寄存器文件,用重命名保留站中保存的目标寄存器的物理地址来进行更新所述寄存器别名表的物理地址。进一步地,所述重排序缓冲站中的不同组使用的映射关系恢复模块是相同的。根据本专利技术实施例的对寄存器别名表恢复方法,相比现有技术存在以下优点:在重排序缓冲器深度较大时减小面积并优化时序性能。本专利技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1是本专利技术实施例的对寄存器别名表恢复方法的流程图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能理解为对本专利技术的限制。参照下面的描述和附图,将清楚本专利技术的实施例的这些和其他方面。在这些描述和附图中,具体公开了本专利技术的实施例中的一些特定实施方式,来表示实施本专利技术的实施例的原理的一些方式,但是应当理解,本专利技术的实施例的范围不受此限制。相反,本专利技术的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。以下结合附图描述本专利技术。图1是本专利技术实施例的对寄存器别名表恢复方法的流程本文档来自技高网
...
一种对寄存器别名表恢复方法

【技术保护点】
一种对寄存器别名表恢复方法,其特征在于,包括以下步骤:S1:在指令取消发生时,对重排序缓冲站进行更新;S2:从所述重排序缓冲站队列的头指针所指项开始分成多个组,并在每个周期把一组的每一项的指令有效位、目标寄存器有效位和目标寄存器的逻辑地址送入与逻辑寄存器对应的映射关系恢复模块中;S3:所述映射关系恢复模块从送入的一组信息中的最后信息开始倒序搜索,并判断所述信息的指令有效位是否有效、目标寄存器有效位是否有效以及目标寄存器逻辑地址是否与所述映射关系恢复模块所对应的逻辑寄存器地址相同;S4:如果所述信息的指令有效位有效、目标寄存器有效位有效且目标寄存器逻辑地址与所述映射关系恢复模块所对应的逻辑寄存器地址相同,则产生寄存器别名表对应项的更新信号,并在所述重命名缓冲站中对应项的目标寄存器的物理地址发送到所述寄存器别名表中;S5:重复步骤S3‑S4,直至所述重排序缓冲站中队列的所有项均处理完毕。

【技术特征摘要】
1.一种对寄存器别名表恢复方法,其特征在于,包括以下步骤:S1:在指令取消发生时,对重排序缓冲站进行更新;S2:从所述重排序缓冲站队列的头指针所指项开始分成多个组,并在每个周期把一组的每一项的指令有效位、目标寄存器有效位和目标寄存器的逻辑地址送入与逻辑寄存器对应的映射关系恢复模块中;S3:所述映射关系恢复模块从送入的一组信息中的最后信息开始倒序搜索,并判断所述信息的指令有效位是否有效、目标寄存器有效位是否有效以及目标寄存器逻辑地址是否与所述映射关系恢复模块所对应的逻辑寄存器地址相同;S4:如果所述信息的指令有效位有效、目标寄存器有效位有效且目标寄存器逻辑地址与所述映射关系恢复模块所对应的逻辑寄存器地址相同,则产生寄存器别名表对应项的更新信号,并在所述重命名缓冲站中对应项的目标寄存器的物理地址发送到所述寄存器别名表中;S5:重复步骤S3-S4,直至所述重排序缓冲站中队列的所有项均处理完毕。2.根据权利要求1所...

【专利技术属性】
技术研发人员:杨思博李明
申请(专利权)人:北京国睿中数科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1