CN111984326A - 混合式寄存器别名表恢复结构和方法 - Google Patents

混合式寄存器别名表恢复结构和方法 Download PDF

Info

Publication number
CN111984326A
CN111984326A CN202010634383.3A CN202010634383A CN111984326A CN 111984326 A CN111984326 A CN 111984326A CN 202010634383 A CN202010634383 A CN 202010634383A CN 111984326 A CN111984326 A CN 111984326A
Authority
CN
China
Prior art keywords
record
renaming
register
interval
restored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010634383.3A
Other languages
English (en)
Other versions
CN111984326B (zh
Inventor
杨思博
李�瑞
于敦山
周小龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Huachuang Micro System Co ltd
CETC 14 Research Institute
Original Assignee
Jiangsu Huachuang Micro System Co ltd
CETC 14 Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu Huachuang Micro System Co ltd, CETC 14 Research Institute filed Critical Jiangsu Huachuang Micro System Co ltd
Priority to CN202010634383.3A priority Critical patent/CN111984326B/zh
Publication of CN111984326A publication Critical patent/CN111984326A/zh
Application granted granted Critical
Publication of CN111984326B publication Critical patent/CN111984326B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明公开了混合式寄存器别名表恢复结构和方法,在指令取消完成后,判断重命名记录表中哪些项被无效,根据被无效的项判断出无效操作发生在重命名记录表中的具体区间,将发生无效操作的区间的区间记录器的内容进行统计,得到待恢复列表,根据待恢复列表的有效项检索各个部分检查点和使用重命名记录扫描器对重命名记录表进行扫描。发明中的部分检查点只针对寄存器别名表中的部分项目保存部分备份,因此实现所需的资源比单纯的检查点恢复技术小的多,部分检查点也可以帮助恢复部分项目,所以重命名扫描器的工作负担比单纯的扫描恢复技术小的多,如果是同样的恢复周期占用的资源更少,或者占用同样的资源扫描周期更短。

Description

混合式寄存器别名表恢复结构和方法
技术领域
本发明涉及混合式寄存器别名表恢复技术领域,具体为混合式寄存器别名表恢复结构和方法。
背景技术
现代处理器普遍使用了寄存器重命名技术来解决程序中的资源冲突和伪相关,以增加指令乱序执行的灵活性。寄存器别名表(Register Alias Table,简称RAT)是实现寄存器重命名的关键部件,它记录了逻辑寄存器地址与物理寄存器地址之间的对应关系。当指令需要写寄存器时,将新分配的物理地址根据寄存器的逻辑地址写入到寄存器别名表中,使得后继依赖这个结果的指令可以获取保存这个结果的物理寄存器地址;当指令要需要读取寄存器时,根据寄存器的逻辑地址索引寄存器别名表,读出当前对应的物理地址替换原来的逻辑地址。
寄存器别名表主要的设计难度在于当出现分支预测错误或者异常时需要取消未完成的指令,而这些指令有些已经经过了寄存器重命名,如果它们需要写结果到寄存器,那么就会更新寄存器别名表的内容,即用新分配的寄存器物理地址替换掉原来的值。由于这些指令被取消,因此这些物理寄存器的内容是无效的,保存在寄存器别名表中的寄存器逻辑地址到物理地址的对应关系必须被恢复到这些指令进行重命名之前的有效状态。
由于可能有很多指令被同时取消,这些被取消的指令有可能多次改写寄存器别名表的同一位置,因此在进行对寄存器别名表的恢复操作时,必须区分哪些改写操作是有效的,哪些是无效需要被撤销的。
对寄存器别名表的恢复有两种传统方法:
(1)通过检查点进行恢复:每遇到一条分支指令,就保存一份当前的寄存器别名表的镜像,保存的镜像称为检查点(check point),当需要对寄存器别名表进行恢复时,根据当前最新的分支指令,将对应的检查点的内容复制到寄存器别名表中完成恢复操作。
(2)通过扫描进行恢复:因为需要更新体系结构寄存器,所以对寄存器别名表的改写在ROB中或者其他模块中留有记录,通过对这个记录的扫描来获得各个寄存器逻辑地址与物理地址的最新映射关系。
对于使用检查点的方法,如果处理器允许更多的指令乱序执行,往往也伴随着其中有更多的分支指令,这就导致需要保存的检查点的数量增加,进而造成芯片面积增长以及随之而来的连线过长对时序的影响。
对于扫描的方法,处理器允许更多的指令乱序执行导致对寄存器别名表的改写记录也变的更长,导致扫描过程变长,同样带来面积和时序的问题。
发明内容
本发明的目的在于提供混合式寄存器别名表恢复结构和方法,以解决上述背景技术中提出的问题。
根据本发明的第一方面,提供混合式寄存器别名表恢复结构,包括重命名记录表、区间记录器、重命名记录扫描器、区间多选器、部分检查点和待恢复列表;
重命名记录表:按照程序顺序记录未提交的每一条对寄存器别名表的改写记录,当对寄存器别名表进行恢复时为扫描的对象;
区间记录器:将重命名记录表按照程序顺序平均分成多个区间,每个区间有一个记录器记录寄存器别名表的每一个表现是否在这个区间内被改写;
重命名记录扫描器:对重命名记录表进行扫描;
区间多选器:区间多选器负责把待扫描的重命名记录表送入重命名记录扫描器;
部分检查点:根据分支指令保存对应的寄存器别名表的备份;
待恢复列表:记录本次恢复过程需要恢复寄存器别名表的项目。
优选的,所述重命名记录表在由分支预测错误或异常引起的指令取消完成后,被取消指令所对应的项目会被设为无效。
优选的,所述重命名记录表内设有一个尾指针用来指示下一条寄存器别名表的改写记录存放位置,在指令取消完成后尾指针会被指向当前第一个无效项目。
优选的,所述重命名记录扫描器在进行扫描的过程中,当扫描到寄存器别名表的某一项的改写记录,则会用这项的内容更新当前的寄存器别名表,当扫描到寄存器别名表的某一项有多个改写记录,则使用其中程序顺序最新的那一项更新寄存器别名表。
根据本发明的另一方面,提供混合式寄存器别名表恢复方法,包括以下的技术流程:
第一步,在指令取消完成后,判断重命名记录表中哪些项被无效;
第二步,根据被无效的项,判断出无效操作发生在重命名记录表中的具体区间;
第三步,将发生无效操作的区间的区间记录器的内容进行统计,得到待恢复列表;
第四步,根据待恢复列表的有效项检索各个部分检查点和使用重命名记录扫描器对重命名记录表进行扫描。
优选的,第四步的具体操作方法为,在对各个部分检查点检索的过程中,当待恢复列表的有效项命中了部分检查点记录的逻辑地址,且要恢复的备份保存在部分检查点中,则该项使用部分检查点恢复,当待恢复列表的有效项没有命中部分检查点或部分检查点没有保存需要恢复的备份,则使用扫描的方法恢复。
与现有技术相比,本发明的有益效果是:本发明中的区间记录器可以在寄存器别名表的恢复过程开始前过滤掉不需要恢复的项目,发明中的部分检查点只针对寄存器别名表中的部分项目保存部分备份,因此实现所需的资源比单纯的检查点恢复技术小的多;由于区间记录器过滤掉不需要恢复的项目,部分检查点也可以帮助恢复部分项目,所以重命名扫描器的工作负担比单纯的扫描恢复技术小的多,如果是同样的恢复周期占用的资源更少,或者占用同样的资源扫描周期更短。
附图说明
图1为本发明的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明提供一种技术方案:混合式寄存器别名表恢复结构,包括重命名记录表、区间记录器、重命名记录扫描器、区间多选器、部分检查点和待恢复列表;
重命名记录表:按照程序顺序记录未提交的每一条对寄存器别名表的改写记录,当对寄存器别名表进行恢复时为扫描的对象,在由分支预测错误或异常引起的指令取消完成后,被取消指令所对应的项目会被设为无效。
区间记录器:将重命名记录表按照程序顺序平均分成多个区间,每个区间有一个记录器记录寄存器别名表的每一个表现是否在这个区间内被改写。
重命名记录扫描器:对重命名记录表进行扫描,当扫描到寄存器别名表的某一项的改写记录,则会用这项的内容更新当前的寄存器别名表,当扫描到寄存器别名表的某一项有多个改写记录,则使用其中程序顺序最新的那一项更新寄存器别名表。
区间多选器:区间多选器负责把待扫描的重命名记录表送入重命名记录扫描器。
部分检查点:根据分支指令保存对应的寄存器别名表的备份,选择记录的项目可以根据修改寄存器别名表的顺序,只记录最早修改的几项,选择记录针对分支指令可以只保存最新的若干条分支指令的备份。与传统的检查点技术不同的是:传统的检查点保存整张寄存器别名表对应所有分支指令的备份,而部分检查点只保存寄存器别名表中某几项对应于几个分支指令的备份,因此实现部分检查点所需要的硬件资源远远小于传统的检查点。
待恢复列表:记录本次恢复过程需要恢复寄存器别名表的项目。
重命名记录扫描器在进行扫描的过程中。
混合式寄存器别名表恢复方法,包括以下的技术流程:
第一步,在指令取消完成后,判断重命名记录表中哪些项被无效,重命名记录表内设有一个尾指针用来指示下一条寄存器别名表的改写记录存放位置,在指令取消完成后尾指针会被指向当前第一个无效项目,因此通过指令取消前后的尾指针变化可以得出哪些项被无效。
第二步,根据被无效的项,判断出无效操作发生在重命名记录表中的具体区间。
第三步,将发生无效操作的区间的区间记录器的内容进行统计,得到待恢复列表,其中待恢复列表内的有效项就是寄存器别名表需要恢复的项目。
第四步,根据待恢复列表的有效项检索各个部分检查点和使用重命名记录扫描器对重命名记录表进行扫描,在对各个部分检查点检索的过程中,当待恢复列表的有效项命中了部分检查点记录的逻辑地址,且要恢复的备份保存在部分检查点中,则该项使用部分检查点恢复,当待恢复列表的有效项没有命中部分检查点或部分检查点没有保存需要恢复的备份,则使用扫描的方法恢复。
对寄存器别名表的恢复过程所需的时钟周期可以是动态变化的,这取决于有多少项目需要恢复以及恢复的方式。
在寄存器别名表的恢复过程没有全部完成前,允许进行新的重命名操作,如果重命名操作要改写寄存器别名表,而被改写的项在待恢复列表上且还未完成恢复,则该项可以视为已经恢复完成,因为有了比恢复的结果更新的修改覆盖了这一项;如果重命名操作要读取寄存器别名表,而被读取的项在待恢复列表上且还未完成恢复,则寄存器重命名操作会被暂停直到该项恢复完成为止。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (6)

1.混合式寄存器别名表恢复结构,其特征在于:包括重命名记录表、区间记录器、重命名记录扫描器、区间多选器、部分检查点和待恢复列表;
重命名记录表:按照程序顺序记录未提交的每一条对寄存器别名表的改写记录,当对寄存器别名表进行恢复时为扫描的对象;
区间记录器:将重命名记录表按照程序顺序平均分成多个区间,每个区间有一个记录器记录寄存器别名表的每一个表项是否在这个区间内被改写;
重命名记录扫描器:对重命名记录表进行扫描;
区间多选器:区间多选器负责把待扫描的重命名记录表送入重命名记录扫描器;
部分检查点:根据分支指令保存对应的寄存器别名表的备份;
待恢复列表:记录本次恢复过程需要恢复寄存器别名表的项目。
2.根据权利要求1所述的混合式寄存器别名表恢复结构,其特征在于:所述重命名记录表在由分支预测错误或异常引起的指令取消完成后,被取消指令所对应的项目会被设为无效。
3.根据权利要求1所述的混合式寄存器别名表恢复结构,其特征在于:所述重命名记录表内设有一个尾指针用来指示下一条寄存器别名表的改写记录存放位置,在指令取消完成后尾指针会被指向当前第一个无效项目。
4.根据权利要求1所述的混合式寄存器别名表恢复结构,其特征在于:所述重命名记录扫描器在进行扫描的过程中,当扫描到寄存器别名表的某一项的改写记录,则会用这项的内容更新当前的寄存器别名表,当扫描到寄存器别名表的某一项有多个改写记录,则使用其中程序顺序最新的那一项更新寄存器别名表。
5.混合式寄存器别名表恢复方法,其特征在于以下的技术流程:
第一步,在指令取消完成后,判断重命名记录表中哪些项被无效;
第二步,根据被无效的项,判断出无效操作发生在重命名记录表中的具体区间;
第三步,将发生无效操作的区间的区间记录器的内容进行统计,得到待恢复列表;
第四步,根据待恢复列表的有效项检索各个部分检查点和使用重命名记录扫描器对重命名记录表进行扫描。
6.根据权利要求4所述的混合式寄存器别名表恢复方法,其特征在于:第四步的具体操作方法为,在对各个部分检查点检索的过程中,当待恢复列表的有效项命中了部分检查点记录的逻辑地址,且要恢复的备份保存在部分检查点中,则该项使用部分检查点恢复,当待恢复列表的有效项没有命中部分检查点或部分检查点没有保存需要恢复的备份,则使用扫描的方法恢复。
CN202010634383.3A 2020-07-02 2020-07-02 混合式寄存器别名表恢复系统和方法 Active CN111984326B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010634383.3A CN111984326B (zh) 2020-07-02 2020-07-02 混合式寄存器别名表恢复系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010634383.3A CN111984326B (zh) 2020-07-02 2020-07-02 混合式寄存器别名表恢复系统和方法

Publications (2)

Publication Number Publication Date
CN111984326A true CN111984326A (zh) 2020-11-24
CN111984326B CN111984326B (zh) 2023-12-19

Family

ID=73438980

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010634383.3A Active CN111984326B (zh) 2020-07-02 2020-07-02 混合式寄存器别名表恢复系统和方法

Country Status (1)

Country Link
CN (1) CN111984326B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100312993A1 (en) * 2009-06-08 2010-12-09 Rdc Semiconductor Co., Ltd. Register renaming table recovery method and system
US20130179665A1 (en) * 2012-01-06 2013-07-11 Imagination Technologies, Ltd. Restoring a register renaming map
CN107688544A (zh) * 2016-12-23 2018-02-13 北京国睿中数科技股份有限公司 一种对寄存器别名表恢复方法
CN110597556A (zh) * 2019-09-09 2019-12-20 中国人民解放军国防科技大学 一种寄存器映射表检查点资源的管理方法、系统及介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100312993A1 (en) * 2009-06-08 2010-12-09 Rdc Semiconductor Co., Ltd. Register renaming table recovery method and system
US20130179665A1 (en) * 2012-01-06 2013-07-11 Imagination Technologies, Ltd. Restoring a register renaming map
CN107688544A (zh) * 2016-12-23 2018-02-13 北京国睿中数科技股份有限公司 一种对寄存器别名表恢复方法
CN110597556A (zh) * 2019-09-09 2019-12-20 中国人民解放军国防科技大学 一种寄存器映射表检查点资源的管理方法、系统及介质

Also Published As

Publication number Publication date
CN111984326B (zh) 2023-12-19

Similar Documents

Publication Publication Date Title
US5369757A (en) Recovery logging in the presence of snapshot files by ordering of buffer pool flushing
US10261869B2 (en) Transaction processing using torn write detection
US9021303B1 (en) Multi-threaded in-memory processing of a transaction log for concurrent access to data during log replay
JP5964382B2 (ja) 無限トランザクション型メモリ(utm)システムにおけるモード切り替えの実行
JP2505112B2 (ja) トランザクション管理方法
US8171257B2 (en) Determining an end of valid log in a log of write records using a next pointer and a far ahead pointer
US20180322158A1 (en) Changing concurrency control modes
JPH0833860B2 (ja) データベースの回復方法
JPH0560617B2 (zh)
US10642792B2 (en) Distributed transaction conflict resolution
US20140040208A1 (en) Early release of transaction locks based on tags
CN107665219B (zh) 一种日志管理方法及装置
CN108694231A (zh) 使用nvm并通过多个日志记录缓冲器来预写式日志记录
CN109947742B (zh) 面向二阶段锁的多版本数据库并发控制方法和系统
EP0295424B1 (en) Method for managing subpage concurrency control and partial transaction rollback in a transaction-oriented system of the write-ahead logging type
CN116339830B (zh) 一种寄存器管理方法、装置、电子设备及可读存储介质
CN111984326A (zh) 混合式寄存器别名表恢复结构和方法
CN113722052A (zh) 一种基于数据双版本的非易失内存更新方法
CN117472447B (zh) 寄存器重命名恢复方法、装置和设备
CN117908961A (zh) 重命名映射表恢复方法、系统及终端
CN111143277A (zh) 一种数据处理方法、装置及电子设备
JP2551563B2 (ja) 不変メモリ装置
CN113986587A (zh) 基于值日志的检查点实现方法、系统、存储介质及设备
CN113508366A (zh) 调用栈采样
GB2456891A (en) Updating corrupted local working registers in a multi-staged pipelined execution unit by refreshing from the last state hold a global checkpoint array

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant