CN111984326A - 混合式寄存器别名表恢复结构和方法 - Google Patents
混合式寄存器别名表恢复结构和方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000011084 recovery Methods 0.000 title claims abstract description 29
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result 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所述的混合式寄存器别名表恢复方法,其特征在于:第四步的具体操作方法为,在对各个部分检查点检索的过程中,当待恢复列表的有效项命中了部分检查点记录的逻辑地址,且要恢复的备份保存在部分检查点中,则该项使用部分检查点恢复,当待恢复列表的有效项没有命中部分检查点或部分检查点没有保存需要恢复的备份,则使用扫描的方法恢复。
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)
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 | 中国人民解放军国防科技大学 | 一种寄存器映射表检查点资源的管理方法、系统及介质 |
-
2020
- 2020-07-02 CN CN202010634383.3A patent/CN111984326B/zh active Active
Patent Citations (4)
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 |