一种寄存器管理方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:37979294 阅读:12 留言:0更新日期:2023-06-30 09:54
本发明专利技术实施例提供一种寄存器管理方法、装置、电子设备及可读存储介质,该方法包括:确定待处理的指令序列对应的第一物理寄存器组和第二物理寄存器组;所述第一物理寄存器组中包括所述指令序列中所有指令的目的逻辑寄存器被重命名的物理寄存器编号;所述第二物理寄存器组中包括所述指令序列中各条指令的目的逻辑寄存器在重命名之前对应的物理寄存器编号;若所述第二物理寄存器组中存在目标物理寄存器编号,且所述第一物理寄存器组中不存在所述目标物理寄存器编号,则将所述目标物理寄存器编号写入空闲物理寄存器列表中。本发明专利技术实施例能够有效确定出需要释放的物理寄存器,且无需维护任何引用计数器或类似的结构,节省了设计成本。成本。成本。

【技术实现步骤摘要】
一种寄存器管理方法、装置、电子设备及可读存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种寄存器管理方法、装置、电子设备及可读存储介质。

技术介绍

[0002]数据传送指令(Move指令)是一种常见的指令,这种指令并不需要实际计算,但却会造成数据依赖,从而导致至少一拍的延迟。Move 指令消除便是希望通过一些方法,消除 Move 指令与后续指令的数据依赖,从而达到提高处理器性能的目的。在相关技术中,实现 Move 指令消除的技术路线可以分为两大类:“指令融合”和“寄存器重命名”,而目前的主流技术路线为后者。
[0003]Move 指令消除依赖于寄存器重命名技术,在对 Move 指令进行重命名时,处理器不再为 Move 指令的目的操作数分配一个新的物理寄存器,而是将源操作数对应的物理寄存器重命名给目的操作数。Move 消除带来了一个新的问题,即何时能将物理寄存器释放。在没有 Move 指令消除的情况下,只需要在指令提交时,释放旧的物理寄存器即可,但在有 Move 消除的情况下,一个物理寄存器可能会被多条指令或多个逻辑寄存器所使用。因此,处理器将不再能够无条件地在指令提交时释放旧的物理寄存器。

技术实现思路

[0004]本专利技术实施例提供一种寄存器管理方法、装置、电子设备及可读存储介质,可以解决在有Move 消除的情况下,处理器无法确定物理寄存器释放时机的问题。
[0005]为了解决上述问题,本专利技术实施例公开了一种寄存器管理方法,所述方法包括:确定待处理的指令序列对应的第一物理寄存器组和第二物理寄存器组;所述第一物理寄存器组中包括所述指令序列中所有指令的目的逻辑寄存器被重命名的物理寄存器编号;所述第二物理寄存器组中包括所述指令序列中各条指令的目的逻辑寄存器在重命名之前对应的物理寄存器编号;若所述第二物理寄存器组中存在目标物理寄存器编号,且所述第一物理寄存器组中不存在所述目标物理寄存器编号,则将所述目标物理寄存器编号写入空闲物理寄存器列表中。
[0006]可选地,所述确定待处理的指令序列对应的第一物理寄存器组和第二物理寄存器组,包括:在指令提交阶段,从重命名缓存中获取待提交的指令序列中各条指令的指令信息,所述指令信息包括第一指示、写逻辑寄存器编号和第一物理寄存器编号;所述第一指示用于指示所述指令是否写逻辑寄存器;所述第一物理寄存器编号为所述指令的写逻辑寄存器被重命名的物理寄存器编号;根据所述重命名缓存中记录的指令信息,确定所述指令序列对应的第一物理寄存器组和第二物理寄存器组;
其中,所述第一物理寄存器组中包括所述指令序列中需要写逻辑寄存器的第一指令对应的第一物理寄存器编号;所述第二物理寄存器组包括所述第一指令对应的第二物理寄存器编号;所述第二物理寄存器编号为所述第一指令的写逻辑寄存器在重命名之前对应的物理寄存器编号。
[0007]可选地,所述根据所述重命名缓存中记录的指令信息,确定所述指令序列对应的第一物理寄存器组和第二物理寄存器组,包括:根据所述第一指示确定所述指令序列中是否存在需要写逻辑寄存器的第一指令;若所述指令序列中存在需要写逻辑寄存器的第一指令,则根据所述第一指令对应的第一物理寄存器编号更新非推测重命名表中所述第一指令的写逻辑寄存器编号对应的表项;将所述第一指令的写逻辑寄存器对应的第二物理寄存器编号记录在所述第一指令对应的临时寄存器中,并将所述临时寄存器的标志位设置为第一标志位;所述若所述第二物理寄存器组中存在目标物理寄存器编号,且所述第一物理寄存器组中不存在所述目标物理寄存器编号,则将所述目标物理寄存器编号写入空闲物理寄存器列表中,包括:在所述指令序列中各条第一指令的写逻辑寄存器编号对应的非推测重命名表项均被更新的情况下,将所述指令序列对应的目标寄存器中记录的物理寄存器编号与更新后的非推测重命名表进行比对;所述目标寄存器的标志位为第一标志位;若所述目标寄存器存在目标物理寄存器编号,且更新后的非推测重命名表中不存在所述目标物理寄存器编号,则将所述目标物理寄存器号写入空闲物理寄存器列表中。
[0008]可选地,所述方法还包括:在指令提交阶段,若所述指令序列中存在不需要写逻辑寄存器的第二指令,则将所述第二指令对应的临时寄存器的标志位设置为第二标志位,或者,将所述第二指令对应的临时寄存器设置为零寄存器;所述非推测重命名表中始终包含所述零寄存器的编号。
[0009]可选地,在指令提交阶段,从重命名缓存中获取待提交的指令序列中各条指令的指令信息之前,所述方法还包括:在重命名阶段,按照指令执行顺序在重命名缓存中记录所述指令序列中各条指令的指令信息。
[0010]可选地,所述确定待处理的指令序列对应的第一物理寄存器组和第二物理寄存器组,包括:在重命名阶段,按照指令执行顺序对待处理的指令序列中的各条指令进行重命名处理,并根据所述指令的目的逻辑寄存器对应的第一物理寄存器编号更新重命名表;在重命名缓存中记录所述目的逻辑寄存器对应的第二物理寄存器编号;所述若所述第二物理寄存器组中存在目标物理寄存器编号,且所述第一物理寄存器组中不存在所述目标物理寄存器编号,则将所述目标物理寄存器编号写入空闲物理寄存器列表中,包括:在指令提交阶段,从重命名缓存中获取待提交的指令序列对应的第二物理寄存器编号,并将所述第二物理寄存器编号与当前时刻的重命名表进行比对;若所述重命名表中不存在所述第二物理寄存器编号,则将所述第二物理寄存器编
号写入空闲物理寄存器列表中;其中,所述第一物理寄存器编号为所述指令的目的逻辑寄存器被重命名的物理寄存器编号;所述第二物理寄存器编号为所述指令的目的逻辑寄存器在重命名之前对应的物理寄存器编号。
[0011]可选地,所述确定待处理的指令序列对应的第一物理寄存器组和第二物理寄存器组,包括:在指令提交阶段,获取当前时刻的第一重命名表,以及从预设存储空间中获取目标时刻对应的第二重命名表;所述预设存储空间中存储有不同时刻对应的重命名表,所述目标时刻为当前时刻之前的任一时刻;所述若所述第二物理寄存器组中存在目标物理寄存器编号,且所述第一物理寄存器组中不存在所述目标物理寄存器编号,则将所述目标物理寄存器编号写入空闲物理寄存器列表中,包括:将所述第一重命名表与所述第二重命名表进行比对;若所述第二重命名表中存在目标寄存器编号,且所述第一重命名表中不存在所述目标寄存器编号,则将所述目标物理寄存器编号写入空闲物理寄存器列表中。
[0012]可选地,所述方法还包括:在满足重定向恢复条件的情况下,从预设的快照空间中获取目标快照点对应的目标重命名表和目标空闲物理寄存器列表;根据所述目标重命名表更新当前时刻的重命名表,并基于更新后的重命名表对待处理的指令序列进行重命名处理;利用所述目标空闲物理寄存器列表对当前时刻的空间物理寄存器列表进行覆盖恢复。
[0013]另一方面,本专利技术实施例公开了一种寄存器管理装置,所述装置包括:确定模块,用于确定待处理的指令序列对应的第一物理寄存器组和第二物理寄存器组;所述第一物理寄存器组中包括所述指令序列中所有指令的目的逻辑寄存器被重命名的物理本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种寄存器管理方法,其特征在于,所述方法包括:确定待处理的指令序列对应的第一物理寄存器组和第二物理寄存器组;所述第一物理寄存器组中包括所述指令序列中所有指令的目的逻辑寄存器被重命名的物理寄存器编号;所述第二物理寄存器组中包括所述指令序列中各条指令的目的逻辑寄存器在重命名之前对应的物理寄存器编号;若所述第二物理寄存器组中存在目标物理寄存器编号,且所述第一物理寄存器组中不存在所述目标物理寄存器编号,则将所述目标物理寄存器编号写入空闲物理寄存器列表中。2.根据权利要求1所述的方法,其特征在于,所述确定待处理的指令序列对应的第一物理寄存器组和第二物理寄存器组,包括:在指令提交阶段,从重命名缓存中获取待提交的指令序列中各条指令的指令信息,所述指令信息包括第一指示、写逻辑寄存器编号和第一物理寄存器编号;所述第一指示用于指示所述指令是否写逻辑寄存器;所述第一物理寄存器编号为所述指令的写逻辑寄存器被重命名的物理寄存器编号;根据所述重命名缓存中记录的指令信息,确定所述指令序列对应的第一物理寄存器组和第二物理寄存器组;其中,所述第一物理寄存器组中包括所述指令序列中需要写逻辑寄存器的第一指令对应的第一物理寄存器编号;所述第二物理寄存器组包括所述第一指令对应的第二物理寄存器编号;所述第二物理寄存器编号为所述第一指令的写逻辑寄存器在重命名之前对应的物理寄存器编号。3.根据权利要求2所述的方法,其特征在于,所述根据所述重命名缓存中记录的指令信息,确定所述指令序列对应的第一物理寄存器组和第二物理寄存器组,包括:根据所述第一指示确定所述指令序列中是否存在需要写逻辑寄存器的第一指令;若所述指令序列中存在需要写逻辑寄存器的第一指令,则根据所述第一指令对应的第一物理寄存器编号更新非推测重命名表中所述第一指令的写逻辑寄存器编号对应的表项;将所述第一指令的写逻辑寄存器对应的第二物理寄存器编号记录在所述第一指令对应的临时寄存器中,并将所述临时寄存器的标志位设置为第一标志位;所述若所述第二物理寄存器组中存在目标物理寄存器编号,且所述第一物理寄存器组中不存在所述目标物理寄存器编号,则将所述目标物理寄存器编号写入空闲物理寄存器列表中,包括:在所述指令序列中各条第一指令的写逻辑寄存器编号对应的非推测重命名表项均被更新的情况下,将所述指令序列对应的目标寄存器中记录的物理寄存器编号与更新后的非推测重命名表进行比对;所述目标寄存器的标志位为第一标志位;若所述目标寄存器存在目标物理寄存器编号,且更新后的非推测重命名表中不存在所述目标物理寄存器编号,则将所述目标物理寄存器号写入空闲物理寄存器列表中。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:在指令提交阶段,若所述指令序列中存在不需要写逻辑寄存器的第二指令,则将所述第二指令对应的临时寄存器的标志位设置为第二标志位,或者,将所述第二指令对应的临时寄存器设置为零寄存器;所述非推测重命名表中始终包含所述零寄存器的编号。
5.根据权利要求2至4任一项所述的方法,其特征在于,在指令提交阶段,从重命名缓存中获取待提交的指令序列中各条指令的指令信息之前,所述方法还包括:在重命名阶段,按照指令执行顺序在重命名缓存中记录所述指令序列中各条指令的指令信息。6.根据权利要求1所述的方法,其特征在于...

【专利技术属性】
技术研发人员:唐浩晋张紫飞王凯帆陈键唐丹包云岗郭新贺
申请(专利权)人:北京开源芯片研究院
类型:发明
国别省市:

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

1