CN102707930B - 寄存器换名系统及方法 - Google Patents

寄存器换名系统及方法 Download PDF

Info

Publication number
CN102707930B
CN102707930B CN201210125393.XA CN201210125393A CN102707930B CN 102707930 B CN102707930 B CN 102707930B CN 201210125393 A CN201210125393 A CN 201210125393A CN 102707930 B CN102707930 B CN 102707930B
Authority
CN
China
Prior art keywords
name
unit
register
calling
renaming
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.)
Expired - Fee Related
Application number
CN201210125393.XA
Other languages
English (en)
Other versions
CN102707930A (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.)
SUZHOU RUIYUN IPCORE MICROELECTRONICS CO Ltd
Original Assignee
SUZHOU RUIYUN IPCORE MICROELECTRONICS CO Ltd
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 SUZHOU RUIYUN IPCORE MICROELECTRONICS CO Ltd filed Critical SUZHOU RUIYUN IPCORE MICROELECTRONICS CO Ltd
Priority to CN201210125393.XA priority Critical patent/CN102707930B/zh
Publication of CN102707930A publication Critical patent/CN102707930A/zh
Application granted granted Critical
Publication of CN102707930B publication Critical patent/CN102707930B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Advance Control (AREA)

Abstract

本发明公开了一种寄存器换名系统,包括第一换名单元和第二换名单元,所述第一换名单元,对所有经过译码的操作进行换名;所述第二换名单元,对依存对象不确定的操作进行再次换名。本发明寄存器换名系统,在寄存器换名时,对于依存对象不确定的Operand给与2次换名。一个是CPU自身拥有的换名,一个是提案的换名。换名的同时利用MP(MappingTable)和ST(S-tagTable)保持状态。因为使用了原来换名的资源,所以硬件的资源没有大幅度的增加。如果出现预测错误时,用新的换名并寻找正确的依存对象,从而得到正确地执行。对处理速度得到了显著的提高。

Description

寄存器换名系统及方法
技术领域
本发明涉及计算机处理器领域,特别是涉及一种寄存器换名系统及方法。
背景技术
处理器是一种可以运算计算机程序以执行算术计算、数据置换等等的设备。微处理器是这样一种类型的处理器,其将处理器的大多数功能或所有功能都合并在单个集成电路上,可以通过同时将多个指令分派给处理器中的冗余的运行资源而能够在一个时钟周期中运行不止一个指令。当运行指令和微操作时,处理器通常从寄存器中读取源操作数并将结果或目标操作数存储在寄存器中。寄存器是处理器中的临时存储单元,寄存器通常被用于保存供处理器使用的算术和其他结果。
寄存器重命名是微处理器设计中用于通过允许指令无序执行来提高性能的一种公知技术。程序由对数值进行运算的指令组成。指令必须对这些数值进行命名,以便将他们相互区分。一个典型的指令例如可以是:将X和Y相加,并将结果放到Z中。在该指令中,X、Y和Z是存储位置的名字。为了具有紧凑的指令编码,大多数处理器指令集具有很小一组特定位置能够被直接命名。在更小的处理器中,这些位置的名字直接对应于寄存器文件的元素。
随着中央处理器(CPU)的pipeline段数的增加,分支预测错误错带来的损失将越来越大。以图1所示的分支命令为例,命令A是分支命令,他们有2种情况可能发生,一个就是执行ABCDEFGH的路径,另一个就是执行AIJCDEFGH的路径。
现有技术的具体实行方法是,当命令A被取出是,为了不间断CPU的运作,现在的中央处理器大都采用了分支预测的手段来预测分支命令A之后要被执行的命令。如果预测正确,CPU将不间断执行。如果预测失败,CPU将取消A之后的命令,在重新取出正确的命令。用上面的例子进一步说明,如果预测的是BCDEFGH,那么CPU将取出BCDEFGH并执行,当A执行完毕发现预测的路径为错误将删除BCDEFGH,再度读取IJCDEFGH。但是在这种方法下,我们发现CDEFGH是被读取了2次和删除了一次。所以说中央处理器在处理分支预测错误是产生了浪费。
现有的方法主要有文献一(E. Rotenberg, Q. Jacobsen, and J. Smith.“A Study of Control Independence in Superscalar Processors”,Proc. 5th ISCA, pp.115-124, January 1999.)公开的方法,将所有的命令都做了重命名,这样需要需要大量的硬件支持,比较浪费资源。
另一个文献(A. Gandhi, H. Akkary, and S. Srinivasan.“Reducing Branch Misprediction Penalty via Selective Branch Recovery”,Proc. 10th HPCA, pp.254-265, Feb.2004.)公开的方法只能针对特殊情况,没有普遍意义。
发明内容
本发明主要解决的技术问题是提供一种寄存器换名系统,能够有效提高处理速度,避免不必要的浪费。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种寄存器换名系统,包括第一换名单元和第二换名单元,
所述第一换名单元,对所有经过译码的操作进行换名;
所述第二换名单元,对依存对象不确定的操作进行再次换名。
在本发明一个较佳实施例中,所述第一换名单元包括:第一分发队列单元和第一映射表,所述第一分发队列单元保存换名后的操作队列,等待分发;所述第一映射表保存操作标签和寄存器的关系。
在本发明一个较佳实施例中,所述第二换名单元包括第二分发队列单元和第二映射表,所述第二分发队列单元保存双重换名后的操作队列,等待分发;所述第二映射表保存追加的操作标签和寄存器的关系。
本发明的另一个目的是提供一种寄存器换名方法,具体步骤包括:
(100)提供一种寄存器换名系统,包括第一换名单元和第二换名单元;
(200)、对所有经过译码的指令进行换名;
(300)、判断操作是否为依存对象不确定的操作,是则对该操作进行再次换名,将进行双重换名后的操作依次保存在第二换名单元中;
(400)、当出现预测错误时,对错误的指令进行更正。
在本发明一个较佳实施例中,所述第一换名单元包括:第一分发队列和第一映射表,所述第一分发队列单元保存换名后的操作队列,等待分发;所述第一映射表保存操作标签和寄存器的关系;所述步骤(200)中,将所述换名后的操作依次保存到第一分发队列中。
在本发明一个较佳实施例中,所述第二换名单元包括第二分发队列和第二映射表,所述第二分发队列保存双重换名后的操作队列,等待分发;所述第二映射表保存追加的操作标签和寄存器的关系;所述步骤(300)中,将进行双重换名后的操作依次保存在第二分发队列中。
本发明的有益效果是:本发明寄存器换名系统,在寄存器换名时,对于依存对象不确定的Operand给与2次换名。一个是CPU自身拥有的换名,一个是提案的换名。换名的同时利用MP( Mapping Table ) 和ST(S-tag Table)保持状态。因为使用了原来换名的资源,所以硬件的资源没有大幅度的增加。如果出现预测错误时,用新的换名并寻找正确的依存对象,从而得到正确地执行。对处理速度得到了显著的提高。
附图说明
图1是一种常见分支命令执行结构;
图2是本发明寄存器换名系统的结构示意图;
图3是本发明寄存器换名方法的一种优选实施例的换名流程示意图;
图4是图3预测错误后改正的流程示意图;
图5所示为本发明寄存器换名方法的检测结果图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
请参阅图2,本发明实施例包括:
一种寄存器换名系统,一种寄存器换名系统,包括:指令缓存区(I-cache)、指令提取(Fetch)模块、指令译码队列(Decode queue)、指令译码(Decode) 模块和分派单元,依次进行数据传输。
所述分派单元主要完成从指令提取队列经过译码和相关性检测的指令送到相应的发射队列以及指令重新定序缓冲区的过程。
所述分派单元包括依次进行数据传输的换名单元、分派(Dispatch)模块、发布队列(Issue queue)、发布(Issue)单元和重定序缓冲区(Reorder Buffer),所述换名单元包括第一换名模块和第二换名模块,所述第一换名模块对所有经过译码的操作进行换名,换名后的操作队列保存在第一分发队列(Dispatch queue)中,等待分发;所述第二换名模块,对依存对象不确定的操作进行再次换名,双重换名后的操作队列保存在第二分发队列(Re- Dispatch queue)中,等待分发。
图1所示A为分支命令,可能执行B操作,也可能执行I、F,一定会执行的对象命令为C、D、E、F、G、H。
我们发现C的源操作数(Source Operand)的R1(左)为依存对象不确定的操作数(Operand)。
D的源操作数(Source Operand)的R2也为依存对象不确定的操作数(Operand)。
E的源操作数(Source Operand)的R3也为依存对象不确定的操作数(Operand)。
所以换名(Renaming)时候给与2个Tag。
结合图3所示,以预测命令预测执行B操作为例,
Dispatch Queue是等待发行的命令的Queue,保存Renaming后的ABCDE的Queue;
Re-Dispatch Queue是保存了双重Renaming的命令(C’,D’,E’);
MT为Mapping Table,ST为secondTag(追加Tag的Table)它保存这追加的tag(Stag)和Register的关系。
命令被Renaming,这时候C,D,E是提案手法双重寄存器换命的对象,
因为C的Source Operand的R1(左)为依存对象不确定的操作Operand;
D的Source Operand的R2也为依存对象不确定的Operand;
E的Source Operand的R3也为依存对象不确定的Operand;
所以给它们进行双重命名。
本来的命名结果存放在Dispatch Queue,tag和Register的关系保存在MT中;
追加的命名的命令存放在Re-dispatch Queue中,Stag和Register的关系保存在ST中。
图4所示为预测命令错误时的操作流程图;
当错误发生时,首先加入命令IJ,更新MT。
其次我们用,追加的S-tag来寻找依赖对象。
首先查看check命令C’的 S1 我们发现S1->R1->P1;
因为P1在A错误后被更改,所以S1将被更改为P1再执行;
查看check命令D’的S2我们发现S2->R2->P16;
因为P2在A错误后被更改,所以S2将被更改为P16再执行;
查看check命令E’的S3我们发现S3->R3->P3;
因为P3在A错误后未被更改,所以该命令不用再执行。这也就是本发明方法能够提高效率的原因。
检测结果见图5:
如图5所示,利用Commbench 和Specint2000的进行了评价,本发明的寄存器换名方法最大达到了29.52%的提速,平均8%左右的提速。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (2)

1.一种寄存器换名系统,其特征在于,包括第一换名单元和第二换名单元,
所述第一换名单元,对所有经过译码的操作进行换名,所述第一换名单元包括:第一分发队列和第一映射表,所述第一分发队列保存换名后的操作队列,等待分发;所述第一映射表保存操作标签和寄存器的关系;
所述第二换名单元,对依存对象不确定的操作进行再次换名,所述第二换名单元包括第二分发队列和第二映射表,所述第二分发队列保存双重换名后的操作队列,等待分发;所述第二映射表保存追加的操作标签和寄存器的关系。
2.一种寄存器换名方法,其特征在于,具体步骤包括:
(100)、提供一种寄存器换名系统,包括第一换名单元和第二换名单元;所述第一换名单元包括:第一分发队列和第一映射表,所述第一分发队列保存换名后的操作队列,等待分发;所述第一映射表保存操作标签和寄存器的关系;所述第二换名单元包括第二分发队列和第二映射表,所述第二分发队列保存双重换名后的操作队列,等待分发;所述第二映射表保存追加的操作标签和寄存器的关系;
(200)、对所有经过译码的操作进行换名,将所述换名后的操作依次保存到第一分发队列中;
(300)、判断操作是否为依存对象不确定的操作,是则对该操作进行再次换名,将进行双重换名后的操作依次保存在第二换名单元的第二分发队列中;
(400)、当出现预测错误时,对错误的操作进行更正。
CN201210125393.XA 2012-04-26 2012-04-26 寄存器换名系统及方法 Expired - Fee Related CN102707930B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210125393.XA CN102707930B (zh) 2012-04-26 2012-04-26 寄存器换名系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210125393.XA CN102707930B (zh) 2012-04-26 2012-04-26 寄存器换名系统及方法

Publications (2)

Publication Number Publication Date
CN102707930A CN102707930A (zh) 2012-10-03
CN102707930B true CN102707930B (zh) 2015-04-08

Family

ID=46900759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210125393.XA Expired - Fee Related CN102707930B (zh) 2012-04-26 2012-04-26 寄存器换名系统及方法

Country Status (1)

Country Link
CN (1) CN102707930B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101036120A (zh) * 2004-11-29 2007-09-12 英特尔公司 频率和电压缩放架构

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070072848A (ko) * 2004-06-08 2007-07-06 유니버시티 오브 로체스터 밀집된 클러스터에서 통신-병렬성 트레이드 오프를동적으로 관리하는 방법
CN101763243B (zh) * 2008-12-25 2013-06-19 世意法(北京)半导体研发有限责任公司 用于恢复体系结构寄存器映射表的系统和方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101036120A (zh) * 2004-11-29 2007-09-12 英特尔公司 频率和电压缩放架构

Also Published As

Publication number Publication date
CN102707930A (zh) 2012-10-03

Similar Documents

Publication Publication Date Title
EP2660715B1 (en) Optimizing register initialization operations
US8433885B2 (en) Method, system and computer-accessible medium for providing a distributed predicate prediction
CN106648843B (zh) 用于改善连续的事务性存储器区的吞吐量的系统、方法和装置
CN108139910B (zh) 处理用于向量算术指令的例外状况
CN103218203B (zh) 具有条件指令的微处理器及其处理方法
CN107003853B (zh) 用于数据推测执行的系统、装置和方法
CN101776989B (zh) 乱序执行微处理器及提升效能的方法、执行方法
US20140195787A1 (en) Tracking speculative execution of instructions for a register renaming data store
CN103257849A (zh) 程序执行控制装置
CN107003850B (zh) 用于数据推测执行的系统、装置和方法
US9317285B2 (en) Instruction set architecture mode dependent sub-size access of register with associated status indication
US20160283247A1 (en) Apparatuses and methods to selectively execute a commit instruction
TW201732566A (zh) 從亂序處理器中的不良儲存-至-負載轉發復原的方法與設備
US11645078B2 (en) Detecting a dynamic control flow re-convergence point for conditional branches in hardware
CN110928577B (zh) 一种带异常返回的向量存储指令的执行方法
CN113535236A (zh) 基于指令集体系结构的和自动的加载跟踪的方法和装置
CN100451951C (zh) Risc cpu中的5+3级流水线设计方法
WO2014190699A1 (zh) 一种cpu指令处理方法和处理器
TWI729033B (zh) 控制轉移強制執行中的非追蹤控制轉移的方法及處理器
US9116719B2 (en) Partial commits in dynamic binary translation based systems
CN102707930B (zh) 寄存器换名系统及方法
US9323532B2 (en) Predicting register pairs
CN101216755A (zh) Risc处理器及其浮点寄存器的非对齐访存方法
US10824496B2 (en) Apparatus and method for vectored machine check bank reporting
CN113703842B (zh) 一种基于分支预测的值预测方法、装置及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150408

Termination date: 20210426

CF01 Termination of patent right due to non-payment of annual fee