CN101794214B - 使用多块物理寄存器映射表的寄存器重命名系统及其方法 - Google Patents

使用多块物理寄存器映射表的寄存器重命名系统及其方法 Download PDF

Info

Publication number
CN101794214B
CN101794214B CN2009100048866A CN200910004886A CN101794214B CN 101794214 B CN101794214 B CN 101794214B CN 2009100048866 A CN2009100048866 A CN 2009100048866A CN 200910004886 A CN200910004886 A CN 200910004886A CN 101794214 B CN101794214 B CN 101794214B
Authority
CN
China
Prior art keywords
registers
block
register
logic
physical register
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
CN2009100048866A
Other languages
English (en)
Other versions
CN101794214A (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.)
STMicroelectronics Beijing R&D Co Ltd
Original Assignee
STMicroelectronics Beijing R&D 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 STMicroelectronics Beijing R&D Co Ltd filed Critical STMicroelectronics Beijing R&D Co Ltd
Priority to CN2009100048866A priority Critical patent/CN101794214B/zh
Priority to US12/700,638 priority patent/US8583901B2/en
Publication of CN101794214A publication Critical patent/CN101794214A/zh
Priority to US14/064,936 priority patent/US9436472B2/en
Application granted granted Critical
Publication of CN101794214B publication Critical patent/CN101794214B/zh
Expired - Fee Related 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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, 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

Abstract

本发明提供了使用多块物理寄存器映射表的寄存器重命名系统及其方法。提供了使用物理寄存器映射表的多块实现的处理器架构的多个实施例。将架构寄存器关联到物理寄存器的寄存器重命名系统包括物理寄存器映射表和重命名逻辑。物理寄存器映射表具有多个项,每个项指示相应的物理寄存器的状态。映射表具有多个非重叠段,其中每个段都具有映射表的相应的项。重命名逻辑被耦合用以并行地搜索映射表的多个段,以识别指示相应的物理寄存器具有第一状态的项。重命名逻辑选择性地将多个架构寄存器中的每个关联到相应的被识别为处于第一状态的物理寄存器。本发明还提供了使用物理寄存器映射表的多块实现的方法。

Description

使用多块物理寄存器映射表的寄存器重命名系统及其方法
技术领域
本公开一般涉及处理器架构领域,并且更为特别地涉及超标量体系结构的处理器中的寄存器重命名。
背景技术
一般而言,处理器是一种可以运行计算机程序以执行算术计算、数据置换等等的设备。微处理器是这样一种类型的处理器,其将处理器的大多数功能或所有功能都合并在单个集成电路上。超标量体系结构的微处理器是通过同时将多个指令分派给处理器中的冗余的运行资源(也称为功能单元)而能够在一个时钟周期中运行不止一个指令的微处理器。当运行指令和微操作时,处理器通常从寄存器读取源操作数并将结果或目标操作数存储在寄存器中。寄存器是处理器内的临时存储单元,与其他地方的可用存储器相比,寄存器的内容可以被更快地访问,并且寄存器通常被用于保存供处理器使用的算术和其他结果。一个给定的寄存器可包含多个比特,例如8比特、16比特或32比特,并且可通过相应的寄存器标识符诸如寄存器号来进行访问。
寄存器重命名是在超标量体系结构的处理器中用来允许并行运行指令的各种技术中的一种。因为处理器的程序指明的寄存器常常比硬件中能够实现的寄存器要少,所以一个给定的超标量体系结构的处理器实现常常具有比程序中所指明的寄存器数目更多的寄存器。在通常被称为寄存器重命名的阶段,某个程序所使用的多个通用架构寄存器被关联到或者被映射到该超标量体系结构的处理器中的多个物理寄存器。例如,在可以发出多至4条指令供并行执行的超标量体系结构的处理器中,物理寄存器文件中的多至四个空物理寄存器必须是可用的,以便允许在每个时钟周期多至4个架构寄存器可被重命名。
相关联的架构寄存器与相应的物理寄存器之间的关系通常被记录在物理寄存器映射表(PRMT)的项中。PRMT中的每个项记录物理寄存器文件中的相应的物理寄存器的状态,例如相应的物理寄存器是否是空(并且因此是否可用于存储相关联的架构寄存器的数据)。已解码的程序指令所使用的架构寄存器被关联到相应的物理寄存器,并且每个架构寄存器的标识符例如地址也被记录在与相关联的物理寄存器相联系的PRMT项中。因此,PRMT记录每个物理寄存器的状态以及架构寄存器与物理寄存器的关联/映射信息。随着程序指令的运行,从一个时钟周期到另一个时钟周期,被配置用于存储相关联的架构寄存器的数据的每个物理寄存器的状态发生变化,并且在PRMT中对已配置的物理寄存器的状态的这种变化进行跟踪。已配置的物理寄存器不能被用于另一架构寄存器,直到其所关联到的当前架构寄存器被程序指令释放为止。
物理寄存器越多,使用的物理寄存器文件就越大,使用诸如八十项的寄存器文件这样的大的物理寄存器文件在近来变得越来越普遍。使用大量的物理寄存器有助于减少发生由于指令依赖所带来的管道延迟,从而允许一次发出更多的指令。因此,PRMT中的项数随着物理寄存器的数目增加而增加。然而,在超标量体系结构的处理器中,大的PRMT相比小的PRMT而言使得更难找到指示关联的物理寄存器为空的项。另外,用传统的专用集成电路(ASIC)设计方法和结构来实现的更大的PRMT倾向于需要更大的电路面积、增加路径延迟,并且结果产生更高的功耗。因为路径延迟和功耗是处理器设计中的两个关键因素并且影响性能,所以理想的是在对性能只有最小影响的情况下实现用于寄存器重命名的更大的PRMT。
发明内容
在一方面,一种将架构寄存器关联到物理寄存器的寄存器重命名系统包括具有多个项的物理寄存器映射表和重命名逻辑。该映射表的每个项都指示相应的物理寄存器的状态。映射表具有多个非重叠的段,其中每个段具有相应的映射表项。重命名逻辑被耦合用以并行地搜索多个映射表段,以识别每个都指示相应的物理寄存器处于第一状态的项。该重命名逻辑选择性地将多个架构寄存器中的每个关联到相应的被识别为处于第一状态的物理寄存器。
在另一方面,一种处理器中的寄存器重命名系统包括第一寄存器块、第二寄存器块和被耦合到该第一和第二寄存器块的搜索逻辑。第一块中的每个寄存器存储物理寄存器映射表的第一段中的相应项,其指示相应的物理寄存器的多个状态中的一个。第二块中的每个寄存器存储物理寄存器映射表的第二段中的相应项,其指示相应的物理寄存器的多个状态中的一个。搜索逻辑并行地搜索第一和第二寄存器块,以识别第一和第二块中的所存储的相应的映射表项指示相应的物理寄存器处于第一状态的寄存器。
在另一方面,一种将架构寄存器关联到物理寄存器的寄存器重命名系统包括第一寄存器块、第二寄存器块、被耦合到该第一寄存器块的第一检查逻辑、被耦合到该第一寄存器块的第二检查逻辑、被耦合到该第二寄存器块的第三检查逻辑、以及被耦合到该第二寄存器块的第四检查逻辑。第一寄存器块存储物理寄存器映射表的第一部分,其中第一块中的每个寄存器存储映射表的第一部分中的相应项。第二寄存器块存储物理寄存器映射表的第二部分,其中第二块中的每个寄存器存储映射表的第二部分中的相应项。第一检查逻辑被耦合到第一寄存器块以在第一时钟周期中从第一块的第一端朝着第一块的与第一端相对的第二端来搜索第一块中的寄存器,以识别映射表的第一部分中的其中每个都指示相应的物理寄存器为空的项。第二检查逻辑被耦合到第一寄存器块以在第一时钟周期中从第一块的第二端朝着第一块的第一端来搜索第一块中的寄存器,以识别映射表的第一部分中的其中每个都指示相应的物理寄存器为空的项。第三检查逻辑被耦合到第二寄存器块以在第一时钟周期中从第二块的第一端朝着第二块的与第一端相对的第二端来搜索第二块中的寄存器,以识别映射表的第二部分中的其中每个都指示相应的物理寄存器为空的项。第四检查逻辑被耦合到第二寄存器块以在第一时钟周期中从第二块的第二端朝着第二块的第一端来搜索第二块中的寄存器,以识别映射表的第二部分中的其中每个都指示相应的物理寄存器为空的项。
在一个方面,一种处理器包括物理寄存器映射表、搜索逻辑和映射逻辑。物理寄存器映射表具有多个项,其中该映射表的每个项都指示相应的物理寄存器的状态。搜索逻辑被耦合用以并行地搜索映射表的多个段以识别其中每个均指示相应的物理寄存器处于第一状态的项。搜索逻辑所搜索的每段映射表具有的相应的映射表项与搜索逻辑所搜索的另一段映射表中的项不相同。映射逻辑被耦合到搜索逻辑并接收多个架构寄存器标识符,其中每个标识符指示相应的架构寄存器。映射逻辑将接收到的每个架构寄存器标识符映射到相应映射表段中的指示相应的物理表处于第一状态的相应项。
在一方面,一种基于处理器的系统包括输入设备、输出设备、数据存储设备以及耦合到该输入设备、输出设备和数据存储设备的处理器。该处理器包括多个寄存器块、被耦合到该寄存器块的搜索逻辑、以及被耦合到该寄存器块和搜索逻辑的映射逻辑。每个寄存器块存储一段物理寄存器映射表以将映射表的相应项存储在相应寄存器块的每个寄存器中,每个项指示相应的物理寄存器的状态。搜索逻辑同时搜索寄存器块中的第一块和第二块,以识别第一块和第二块中的存储指示着相应的物理寄存器处于第一状态的相应项的寄存器。映射逻辑接收多个架构寄存器标识符,其中每个标识符标识相应的架构寄存器,并且将每个架构寄存器标识符映射到该第一块和第二块中的被识别为存储着指示相应的物理寄存器处于第一状态的相应项的相应寄存器,以将每个架构寄存器关联到对应的物理寄存器。
在一方面,一种在处理器中执行寄存器重命名的方法同时搜索第一段映射表和第二段映射表以识别该映射表中的其中每个均指示相应的物理寄存器处于第一状态的项。对于多个架构寄存器,该方法将与每个架构寄存器相关的数据存储在被识别为处于第一状态的物理寄存器中的相应一个中,以将架构寄存器关联到被识别为处于第一状态的物理寄存器。
在另一方面,一种在处理器中执行寄存器重命名的方法将物理寄存器映射表的项存储在多个寄存器块中,以使得相应数目的项被存储在寄存器块中的相应寄存器块中,每个项分别指示相应的物理寄存器的状态。该方法还在第一时钟周期中按第一方向和不同于该第一方向的第二方向来搜索第一个寄存器块,以识别其中每个都指示相应的物理寄存器处于第一状态的项。该方法还将多个架构寄存器中的每个映射到相应的被识别为处于第一状态的物理寄存器。
在又一方面,一种在处理器中执行寄存器重命名的方法将第一段映射表中的项存储在第一寄存器块中以及将第二段映射表中的项存储在第二寄存器块中。该方法在第一时钟周期中识别第一块中的每个均指示相应的物理寄存器为空的物理寄存器映射表项。该方法在第一时钟周期中还识别第二块中的每个均指示相应的物理寄存器为空的物理寄存器映射表项。多个要重命名的架构寄存器被分组成第一组架构寄存器和第二组架构寄存器。架构寄存器组之一中的架构寄存器被关联到所识别的与第一块中存储的映射表项相关联的空物理寄存器。另一组架构寄存器中的架构寄存器被关联到所识别的与第二块中存储的映射表项相关联的空物理寄存器。
附图说明
图1是处理器中的常规寄存器重命名系统的简化示图。
图2是图1中的常规寄存器重命名系统中的一部分的简化示图。
图3是图1中的常规寄存器重命名系统中的物理寄存器映射表中的项的示图。
图4是在根据一个非限制性实施例的处理器中的寄存器重命名系统的简化示图。
图5是根据一个非限制性实施例的物理寄存器映射表及其存储装置的简化示图。
图6是图4中的根据一个非限制性实施例的寄存器重命名系统的一部分的简化示图。
图7A是图4中的根据一个非限制性实施例的寄存器重命名系统中的另一部分的简化示图。
图7B是图4中的根据一个非限制性实施例的寄存器重命名系统中的又一部分的简化示图。
图8是图4中的根据一个非限制性实施例的寄存器重命名系统中的另一部分的简化示图。
图9是根据另一个非限制性实施例的处理器中的寄存器重命名系统的简化示图。
图10是根据另一个非限制性实施例的处理器中的寄存器重命名系统的简化示图。
图11是根据一个非限制性实施例的具有寄存器重命名系统的处理器的简化示图。
图12是根据一个非限制性实施例的具有寄存器重命名系统的基于处理器的系统的简化示图。
图13是说明根据一个非限制性的说明性实施例的在处理器中执行寄存器重命名的过程的流程图。
图14是说明根据另一个非限制性的说明性实施例的在处理器中执行寄存器重命名的过程的流程图。
图15是说明根据又一个非限制性的说明性实施例的在处理器中执行寄存器重命名的过程的流程图。
在附图中,相同的参考号标识相似的组件或动作。附图中的组件的尺寸和相对位置不一定按比例画出。另外,所画出的组件的特定形状不是旨在传递关于特定组件的实际形状的任何信息,并且仅仅出于在附图中容易识别的目的而被选择。
具体实施方式
在以下描述中,为了提供对各种公开的实施例的透彻理解而阐述某些具体的细节。然而,本领域的普通技术人员将认识到可以在不具有这些具体细节中的一个或多个的情况下或者用其他方法、部件、材料等等来实施各个实施例。在其他情况下,没有示出或详细描述与寄存器重命名系统、处理器和基于处理器的系统相关联的公知结构,以避免不必要地混淆对实施例的描述。
图1说明处理器中的常规寄存器重命名系统100。寄存器重命名系统100包括物理寄存器映射表(PRMT)5。在图1所示的例子中,PRMT5有八十个项,也即项0到项79,其对应着八十个物理寄存器。寄存器重命名系统100还包括四个搜索模块12、22、32和42,四个对应的“屏蔽和满(mask-and-full)”检测器14、24、34和44,“比较和配置(comparison-and-allocation)”模块50,以及架构寄存器分配模块60。PRMT 5的项被存储在八十个寄存器的块中,虽然为了避免不必要地混淆说明,该寄存器块未被示出。
PRMT 5经由八比特信号总线8耦合到搜索模块12,其中信号总线8所承载的每个信号指示相应的PRMT项中所记录的相应的物理寄存器的状态。例如,如果物理寄存器为空,则PRMT 5中的相应的项将通过存储对应的值来指示物理寄存器的状态为空。同样,如果物理寄存器不为空(例如,处于除了“空”之外的状态),则PRMT 5中的相应的项将通过存储不同于指示“空”状态的值的一个值来指示物理寄存器的状态为不同于空的状态。
操作中,寄存器重命名系统100使用五个阶段(或步骤)来执行寄存器重命名。在第一步中,搜索模块12经由信号总线8从PRMT 5接收八十个状态信号,并且搜索PRMT 5的项0~79中指示相应的物理寄存器为空的项。“屏蔽和满”检测器14接收来自信号总线8的八十个状态信号和来自搜索模块12的搜索结果信号。在PRMT 5中的指示相应的物理寄存器处于空状态的那些项中,一个项被选择。搜索模块12发送七比特的空项ID信号(也即如图2中所示的空项id_0信号)给比较和配置模块50。与所选择的项相关联的物理寄存器将被配置给需要被重命名的架构寄存器之一。对应于所选择的项的信号被“屏蔽和满”检测器14所屏蔽,也即信号值被设置成指示不同于“空”状态的状态的值,因为“屏蔽和满”检测器14提供新的一组八十个信号给搜索模块22和“屏蔽和满”检测器24。这有效地使得被选择的项在后续步骤中不可被选择。如果PRMT 5的项中任何一项都不指示相应的物理寄存器为空,则“屏蔽和满”检测器14发送信号,也即id_0的有效信号,给比较和分配模块50以指示物理寄存器都是满的。
在第二、第三和第四步骤中,分别顺序地由搜索模块22和“屏蔽和满”检测器24、搜索模块32和“屏蔽和满”检测器34、以及搜索模块42和“屏蔽和满”检测器44执行类似的操作。在从第一步到第四步被执行的时间期间,架构寄存器分配模块60接收多至四个目的寄存器的标识符或地址,这些目的寄存器需要被关联到物理寄存器并每个都需要分配架构寄存器标识符。四比特信号,也即图1中所示出的目的有效信号,被提供给架构寄存器分配模块60以指示所接收到的针对四个目的寄存器的标识符的信号中哪些是有效的。四比特信号,也即图1中所示出的被分配的目的有效信号,被提供给比较和配置模块50以指示表示这四个架构寄存器标识符的四个信号中哪些是有效的。所分配的架构寄存器标识符被提供给比较和配置模块50。
在第五步中,有效的架构寄存器被关联到在前四步中通过搜索模块12、22、32和42执行的搜索所识别的空物理寄存器。如图2中所说明的,比较和配置模块50包括八十个比较和配置子块5000-5079,其中每个子块分别用于八十个物理寄存器中的相应的一个。比较和配置模块50中的比较和配置子块5000-5079中的每个将所有四个空项ID信号(空项id_0,空项id_1,空项id_2和空项id_3)与PRMT 5中针对相应的物理寄存器的项的项号进行比较。如果四个空项ID信号之一所表示的特定项号与比较和配置子块5000-5079所关联的项号匹配,则比较和配置子块5000-5079将一个有效架构寄存器标识符配置给PRMT 5中的那个项,由此将相应的架构寄存器关联到相应的物理寄存器。在PRMT 5的该项中记录该架构寄存器标识符并且相应的物理寄存器的状态被改变成不同于“空”的状态,诸如“已配置”。如图3中所示出的,PRMT 5中的每个项记录架构寄存器标识符,例如架构寄存器号,以及相应的物理寄存器的状态。例如,如果给定的物理寄存器处于物理寄存器可能处于的多个状态中的第一状态,则指示该第一状态的第一值被记录在相应的项中。同样,如果物理寄存器处于这多个状态中的第二状态,则指示该第二状态的第二值被记录在相应的项中,以此类推。
从上述描述中,可以看到与常规寄存器重命名系统100相关联的若干缺点。首先,由于每个搜索模块12、22、32和42要搜索的PRMT 5中的大量的项而带来的大延迟是不可避免的。其次,因为直到前面的搜索模块已经完成搜索,后续的搜索模块才能开始搜索这些项,所以搜索模块12、22、32和42所进行的顺序搜索也恶化了延迟问题。第三,比较和配置模块50中的每个比较和配置子块5000-5079均包括四个比较电路,并且每个配置需要320(4的80倍)个七比特比较。这种设计消耗了大量的功率。最后,诸如图1中所示出的寄存器重命名系统100之类的寄存器重命名系统需要集成电路芯片上的大面积,并且因此不适合用于具有严格尺寸限制的应用。
图4说明根据本发明的一个实施例的处理器中的寄存器重命名系统200。在寄存器重命名系统200中,PRMT 205具有多个非重叠的段,其中每个段被存储在相应的寄存器块中。在一个实施例中,如图5所示,PRMT 205有两个非重叠段,第一段205a和第二段205b,从而段205a、205b中的每个段都具有PRMT 205的总项数的一半。例如,PRMT 205可以具有八十个项,项0~79。如图5中所示,PRMT 205的项中的第一个四十个项,也即项0~39,可以位于第一PRMT段205a并且被存储在第一块的四十个寄存器202a(例如块0)中。相类似地,PRMT 205中的下一个四十个项,也即项40~79,可以位于第二PRMT段205b中并且被存储在第二块的四十个寄存器202b(例如块1)中。在其他实施例中,PRMT 205可以具有不止两个段。例如,在一个实施例中,PRMT205可具有四个非重叠段,并且在另一实施例中可以具有八个非重叠段。在一个实施例中,无论PRMT 5可以具有的段的数目是多少,PRMT 5的多个段具有相同的项数。可选择地,PRMT 5的多个段彼此可以具有不同的项数。
在寄存器重命名系统200中,PRMT 205的多个段中的至少某些段可以被并行地搜索。也即,PRMT 205中的两个段205a、205b可以被同时搜索。在PRMT 205具有不止两个段的实施例中,这些段中的两个或多个或全部可以被同时搜索。如图4中所示出的,在一个实施例中,四个检查逻辑212、214、216和218被耦合到寄存器块202a、202b,以确定物理寄存器的状态,其由寄存器块202a、202b中所存储的PRMT 205的项来指示。更为具体地,检查逻辑212、214经由标记信号总线208a耦合到第一寄存器块202a。检查逻辑216、218经由标记信号总线208b耦合到第二寄存器块202b。标记信号总线208a、208b中的每个都是四十比特宽以分别适合寄存器块202a、202b中的四十个寄存器。标记信号总线208a、208b承载从第一和第二寄存器块202a、202b到检查逻辑212、214、216和218的标记信号,并且检查逻辑212、214、216和218基于标记信号总线208a、208b所承载的信号值来确定物理寄存器的状态。当寄存器中所存储的相应PRMT项指示相应物理寄存器是空时,标记信号可以具有第一值,例如二进制值1。当相应PRMT项指示相应物理寄存器不是空时,标记信号可以具有第二值,例如二进制值0。
在一个实施例中,检查逻辑212、214、216和218以不同的方向搜索在第一寄存器块202a和第二寄存器块202b中所存储的PRMT 5的项,以识别PRMT 5中的指示相应的物理寄存器处于多个状态中的第一状态(诸如空状态)的那些项。例如,检查逻辑212可以通过以对应于从第一块202a的顶部朝着第一块202a的底部读取第一寄存器块202a的第一方向读取标记信号,来搜索空物理寄存器。类似地,检查逻辑214可以通过以与第一方向不相同的、对应于从第一块202a的底部朝着第一块202a的顶部读取第一寄存器块202a的第二方向读取标记信号,来搜索空物理寄存器。换言之,检查逻辑212首先从存储在第一寄存器块202a中的顶部寄存器(被标记为寄存器0)中的PRMT 5的项0读取标记信号,以确定相应的物理寄存器的状态是否是空,接着从PRMT 5的项1读取标记信号,等等。在这方面,来自被存储在第一寄存器块202a中的底部寄存器(被标记为寄存器39)中的PRMT 5的项39的标记信号是检查逻辑212所读取的最后一个标记信号。相反,检查逻辑214首先从被存储在第一寄存器块202a中的底部寄存器(被标记为寄存器39)中的PRMT 5的项39读取标记信号,接着从PRMT 5的项38读取标记信号,依此类推。因此,来自被存储在第一寄存器块202a中的顶部寄存器(被标记为寄存器0)中的PRMT 5的项0的标记信号是检查逻辑214所读取的最后一个标记信号。
以类似的形式,检查逻辑216可以通过以对应于从第二块202b的顶部朝着第二块202b的底部读取第二寄存器块202b的第一方向读取标记信号,来搜索空物理寄存器。类似地,检查逻辑218可以通过以对应于从第二块202b的底部朝着第二块202b的顶部读取第二寄存器块202b的第二方向读取标记信号,来搜索空物理寄存器。检查逻辑216首先从被存储在第二寄存器块202b中的顶部寄存器(被标记为寄存器40)中的PRMT 5的项40读取标记信号,以确定相应的物理寄存器的状态是否是空,接着从PRMT 5的项41读取标记信号,依此类推。来自被存储在第二寄存器块202b中的底部寄存器(被标记为寄存器79)中的PRMT 5的项79的标记信号是检查逻辑216所读取的最后一个标记信号。相反,检查逻辑218首先从被存储在第二寄存器块202b中的底部寄存器(被标记为寄存器79)中的PRMT 5的项79读取标记信号,接着从PRMT 5的项78读取标记信号,依此类推。因此,来自被存储在第二寄存器块202b中的顶部寄存器(被标记为寄存器40)中的PRMT 5的项40的标记信号是检查逻辑218所读取的最后一个标记信号。
因此,PRMT 205的多个段可以被并行地并且以不同的方向进行搜索。这在减少前面所描述的常规寄存器重命名系统100中实现的顺序搜索上的路径延迟方面提供了改善。也即,PRMT 205是通过由检查逻辑212、214、216和218并行地搜索PRMT 205的多个段而进行一次搜索,而不是通过让整个PRMT 205顺序地进行四次不同的搜索而导致串行路径延迟。
在一个实施例中,检查逻辑212、214、216和218中的每个可以是前导1探测电路,其探测并识别它所遇到的指示相应的物理寄存器为空的第一项,即使当PRMT 205可能存在指示相应的物理寄存器为空的多个项时,也是如此。因此,四个检查逻辑212、214、216和218可以并行地识别多至四个PRMT 205的项,其中每个项均指示相应的物理寄存器为空。
作为用以识别空物理寄存器的搜索的结果,每个检查逻辑212、214、216和218提供多个结果信号,其中每个结果信号指示PRMT 205中的相应项是否被识别为指示相应的物理寄存器为空。例如,在图4中所说明的实施例中,检查逻辑212、214、216和218中的每个都提供四十个结果信号,因为每个都接收四十个标记信号。在一个实施例中,每个检查逻辑212、214、216和218都将对应于它探测为指示相应的物理寄存器为空的第一项的结果信号设置成第一值,例如二进制值1,并且将剩余的结果信号设置成第二值,例如二进制值0。这允许块202a、202b中多至四个所存储的项指示相应的物理寄存器为空的寄存器被识别。继而,这识别了多至四个架构寄存器可被重命名成的多至四个处于空状态的物理寄存器。
在一个实施例中,“满(full)”检测器222被耦合以接收来自检查逻辑212、214的结果信号,而“满”检测器224被耦合以接收来自检查逻辑216、218的结果信号。基于接收自检查逻辑212、214的结果信号,“满”检测器222输出两个有效信号,有效信号0和有效信号1。如果来自检查逻辑212、214的结果信号指示两个空物理寄存器被识别,则有效信号0和有效信号1二者都被设置成第一值,例如二进制值1。如果结果信号指示仅有一个空物理寄存器被识别,则仅仅有效信号0被设置成第一值而有效信号1被设置成第二值,例如二进制值0。如果结果信号指示没有任何空物理寄存器被识别,则有效信号0和有效信号1二者都被设置成第二值。类似地,基于接收自检查逻辑216、218的结果信号,“满”检测器224输出两个有效信号,有效信号2和有效信号3。如果来自检查逻辑216、218的结果信号指示两个空物理寄存器被识别,则有效信号2和有效信号3二者都被设置成第一值。如果结果信号指示仅有一个空物理寄存器被识别,则仅仅有效信号2被设置成第一值而有效信号3被设置成第二值。如果结果信号指示没有任何空物理寄存器被识别,则有效信号2和有效信号3二者都被设置成第二值。
在一个实施例中,寄存器重命名系统200可以具有配置逻辑235,其被耦合在寄存器块202a、202b与检查逻辑212、214、216、218和“满”检测器222、224之间。在一个实施例中,寄存器重命名系统200还可包括分配逻辑245,其被耦合到配置逻辑235。
分配逻辑245接收多个架构寄存器标识符,例如架构寄存器号,每个均标识相应的要重命名的架构寄存器。在一个实施例中,分配逻辑245将所接收的每个架构寄存器标识符分组成两组架构寄存器标识符,即第一组和第二组架构寄存器标识符,并将第一组和第二组架构寄存器标识符提供给配置逻辑235。换言之,所接收的每个架构寄存器标识符或者在第一组中或者在第二组中提供给配置逻辑235。配置逻辑235接着将由第一组中的架构寄存器标识符所表示的架构寄存器重命名成由第一块202a中所存储的PRMT 205的项所表示的空物理寄存器,并且将由第二组中的架构寄存器标识符所表示的架构寄存器重命名成由第二块202b中所存储的PRMT 205的项所表示的空物理寄存器。更为具体地,作为寄存器重命名(也即将架构寄存器关联到空的物理寄存器)的结果,第一组中的架构寄存器标识符将被记录在存储在第一块202a中的PRMT205的项中,并且第二组中的架构寄存器标识符将被记录在存储在第二块202b中的PRMT 205的项中。
如图4所示,四个架构寄存器标识符AR0、AR1、AR2和AR3被分配逻辑245接收并且作为两个架构寄存器标识符一组的两组被提供给配置逻辑235。在一个实施例中,分配逻辑245在给定时钟周期中将AR0,AR1分组到第一组,例如组0,以及将AR2和AR3分组到第二组,例如组1,并且在随后的时钟周期中交换编组顺序以将AR0,AR1分组到第二组并将AR2和AR3分组到第一组,反之亦然。这两组架构寄存器标识符中的每组都被作为两个信号(即被分配的寄存器0和被分配的寄存器1)提供给配置逻辑235。分配逻辑245还可接收用以指示由架构寄存器标识符AR0-AR3所表示的四个架构寄存器标识符中的哪一个或哪几个需要被重命名的四比特有效信号。在一个实施例中,如果这两组架构寄存器标识符中的任何一组仅具有一个有效架构寄存器标识符,也即由该组中的两个标识符所表示的两个架构寄存器中的仅仅一个需要被重命名,则该有效架构寄存器标识符将被作为该组的被分配寄存器0提供给配置逻辑235。
在一个实施例中,对于第一组架构寄存器标识符,配置逻辑235将由被分配寄存器0信号所表示的架构寄存器标识符记录在由检查逻辑212所识别的第一块202a中所存储的PRMT 205的项中,并且将由被分配寄存器1信号所表示的架构寄存器标识符记录在由检查逻辑214所识别的第一块202a中所存储的PRMT 205的项中。类似地,对于第二组架构寄存器标识符,配置逻辑235将由被分配寄存器0信号所表示的架构寄存器标识符记录在由检查逻辑216所识别的第二块202b中所存储的PRMT 205的项中,并且将由被分配寄存器1信号所表示的架构寄存器标识符记录在由检查逻辑218所识别的第二块202b中所存储的PRMT205的项中。例如,如果寄存器12和寄存器27分别被检查逻辑212、214识别为存储着指示相应的物理寄存器为空的PRMT项,则AR0将被记录在寄存器12中所存储的项12中,并且AR1将被记录在寄存器27中所存储的项27中,其中假设AR0和AR1都是有效的架构寄存器标识符并且假设AR0和AR1在该特定时钟周期中被分配给第一组。类似地,在相同的时钟周期中,假设AR2和AR3也都是有效的架构寄存器标识符并且寄存器55和寄存器76分别被检查逻辑216、218识别为储存着指示相应的物理寄存器为空的PRMT项,则AR2将被记录在在寄存器55中所存储的项55中,并且AR3将被记录在存储76中所存储的项76中。
在一个实施例中,分配逻辑245可以对在给定时钟周期中分配给两组中的每组的有效架构寄存器标识符的数目进行均衡。例如,如果在一个时钟周期中总共有三个有效架构寄存器标识符,其中仅仅一个有效架构寄存器标识符被分配给第一组而另外两个被分配给第二组,则在随后的一个时钟周期中,当存在奇数个有效架构寄存器标识符时,分配逻辑245将分配较多的有效架构寄存器标识符给第一组。
在一个实施例中,分配逻辑245可包括分组电路242、交换电路244和块选择电路246。分配逻辑245接收四个有效架构寄存器标识符AR0-AR3和四比特有效信号,将这些架构寄存器标识符分组成组0和组1,并且将这两组架构寄存器标识符提供给交换电路244。基于来自块选择电路246的块选择信号,交换电路244或者将组0提供给第一块202a以及将组1提供给第二块202b,或者将组0提供给第二块202b以及将组1提供给第一块202a。块选择电路246可包括一比特寄存器,并被用于设置块选择信号的值以在重命名架构寄存器时对由第一块202a和第二块202b中的项所标识的空物理寄存器的使用率进行均衡。块选择电路246或者均衡控制逻辑可记录分组历史并且对提供给交换电路244的块选择信号进行设置。因此,由第一块202a和第二块202b中所存储的PRMT项所表示的空物理寄存器可以以均衡的方式用于寄存器重命名。否则,如果没有这种均衡的分配,可能出现块202a和202b中的一个可能不具有任何一个指示空物理寄存器的项而块202a、202b中的另一个仍然具有许多个指示相应的物理寄存器为空的项。图6说明根据一个实施例的交换电路244。
在一个实施例中,配置逻辑235可包括第一配置逻辑232和第二配置逻辑234。第一配置逻辑232可被耦合到第一寄存器块202a、检查逻辑212、214、“满”检测器222、以及分配逻辑245。第二配置逻辑234可被耦合到第二寄存器块202b、检查逻辑216、218、“满”检测器224、以及分配逻辑245。第一配置逻辑232接收第0组架构寄存器标识符。接着,第一配置逻辑232依赖于所接收的架构寄存器标识符之一或二者是否有效而将所接收到的架构寄存器标识符之一或二者存储在第一块202a中所存储的PRMT 205中的指示相应的物理寄存器为空的那些项中。第二配置逻辑234接收第1组架构寄存器标识符。接着,第二配置逻辑234依赖于所接收的架构寄存器标识符之一或二者是否有效而将所接收到的架构寄存器标识符之一或二者存储在第二块202b中所存储的PRMT 205中的指示相应的物理寄存器为空的那些项中。
在一个实施例中,第一配置逻辑232和第二配置逻辑234中的每个可能具有如图7A和7B中所示出的多个配置电路233。根据一个实施例,图7A说明第一配置逻辑232而图7B说明第二配置逻辑234。在一个实施例中,第一配置逻辑232和第二配置逻辑234中的每个可具有四十个配置电路233,每个配置电路针对第一块202a或第二块202b中的相应的寄存器中所存储的相应的PRMT 205的项。在一个实施例中,由检查逻辑214(或检查逻辑216)所提供的搜索结果信号可被用于控制在由分配给第一块202a(或第二块202b)的组中的标识符所表示的两个架构寄存器之间的选择。如果所接收的架构寄存器标识符为有效,则所接收的架构寄存器标识符将被记录在与处于空状态的物理寄存器相关联的项中;否则,它将不被记录。图8说明根据一个实施例的配置逻辑232、234中的配置逻辑233之一的结构。
因此,寄存器重命名系统200可以用两个步骤来实现寄存器重命名。也即,首先,在两个PRMT段205a、205b的每个段中,识别指示相应的物理寄存器处于空状态的两个PRMT项。接着,被分组成两组的有效架构寄存器,被重命名成相应的与两个PRMT段205a、205b中的已识别的项相关联的空物理寄存器。对与空物理寄存器相关联的项的识别是针对PRMT段205a、205b二者同时执行的,并且分别针对存储PRMT段205a、205b的寄存器块202a、202b的每一个,同时在两个方向上执行该搜索。
图9说明根据另一非限制性的说明的实施例的处理器中的寄存器重命名系统900。寄存器重命名系统900包括具有多个非重叠段的PRMT,其中每个段被存储在相应的寄存器块中。PRMT中的每个项与相应的物理寄存器相关联,并且记录相应的物理寄存器所处于的状态,以及被重命名到相应的物理寄存器的架构寄存器的标识符,如果存在任何被重命名到其的架构寄存器的话。寄存器重命名系统900还包括重命名逻辑,其被耦合到寄存器块以便对寄存器进行读和写,例如,以便搜索PRMT中指示相应的物理寄存器处于空状态的项以将架构寄存器重命名到这些空物理寄存器中的某一些。
在一个实施例中,如图9所示,寄存器重命名系统900可包括存储在第一寄存器块902a中的第一PRMT段905a以及存储在第二寄存器块902b中的第二PRMT段905b。寄存器重命名系统900还可包括耦合到寄存器块902a、902b的重命名逻辑910。重命名逻辑910可并行地搜索PRMT段905a、905b,以识别其中每个均指示相应的物理寄存器处于第一状态(例如为空)的项。重命名逻辑900还可选择性地将多个架构寄存器中的每个关联到相应的被识别为处于第一状态的物理寄存器。在图9中尽管仅仅示出两个PRMT段905a、905b,但是在其他实施例中可以有更大数量的PRMT段,例如四个或八个,它们被存储在等量的寄存器块中并且可以被同时搜索。
在一个实施例中,重命名逻辑910可包括搜索逻辑920以搜索这多个寄存器块,诸如寄存器块902a、902b,以便识别其中所存储的指示相应的物理寄存器处于第一状态的项。搜索逻辑920可按第一方向以及同时按不同于该第一方向的第二方向来搜索每个寄存器块。例如,搜索逻辑920可从每个块的顶部朝着该块的底部以及同时从每个块的底部朝着该块的顶部搜索每个块902a、902b。
在一个实施例中,重命名逻辑910可包括映射逻辑930以接收多个架构寄存器标识符,其中每个标识符均代表相应的一个架构寄存器。映射逻辑930可选择性地将每个架构寄存器标识符关联到指示相应的物理寄存器处于第一状态的PRMT项中的相应的项。更为具体地,映射逻辑930可选择性地将每个架构寄存器标识符记录在指示相应的物理寄存器处于第一状态的相应的PRMT项中。映射逻辑930还可将记录着相应的架构寄存器标识符的PRMT项的状态从第一状态改变成不同于该第一状态的另一状态。在一个实施例中,映射逻辑930可对架构寄存器标识符到映射表的每段中的项的关联进行均衡。具体地,映射逻辑930可基于先前被关联到每段映射表的项的架构寄存器标识符的相应数量,对要关联到每段映射表的项的架构寄存器标识符的相应数量进行调节。
在一个实施例中,搜索逻辑920可被耦合到映射逻辑930以提供多个标记信号,其中每个标记信号指示寄存器块中的相应寄存器中是否存储有指示相应的物理寄存器处于第一状态的相应项。映射逻辑930可将架构寄存器标识符分组成多组架构寄存器标识符。映射逻辑930还可在第一轮关联中将每组架构寄存器标识符关联到各段映射表中的项。映射逻辑930还可基于在第一轮关联中被关联到每段映射表中的项的架构寄存器标识符的相应数量在该第一轮关联之后的第二轮关联中将每组架构寄存器标识符关联到该映射表的不同段中的项。
图10说明在根据另一个非限制性的说明的实施例的处理器中的寄存器重命名系统1000。寄存器重命名系统1000包括具有多个非重叠段的PRMT,其中每个段被存储在相应的寄存器块中。PRMT中的每个项与相应的物理寄存器相关联,并且记录相应的物理寄存器所处于的状态,以及被重命名到相应的物理寄存器的架构寄存器的标识符,如果存在任何被重命名到其的架构寄存器。
在一个实施例中,如图10中所示出的,寄存器重命名系统1000可包括存储在第一寄存器块1002a中的第一PRMT段1005a和存储在第二寄存器块1002b中的第二PRMT段1005b。寄存器重命名系统1000还可包括耦合到寄存器块1002a、1002b的搜索逻辑1010。搜索逻辑1010可并行地搜索第一和第二寄存器块1002a、1002b,并在这些块中识别所存储的相应的映射表项指示相应的物理寄存器处于第一状态(例如为空)的寄存器。尽管图10中仅仅示出两个PRMT段1005a、1005b,但是在其他实施例中可存在更大数量的PRMT段,例如四个或八个,它们被存储在等量的寄存器块中并且可被同时搜索。
在一个实施例中,搜索逻辑1010可按第一方向以及同时按不同于该第一方向的第二方向搜索第一寄存器块1002a,此时还按该第一方向以及同时按该第二方向搜索第二寄存器块1002b,以识别具有指示相应的物理寄存器处于第一状态的相应项的寄存器。例如,搜索逻辑1010可同时从块1002a的顶部朝着块1002a的底部以及从块1002a的底部朝着块1002a的顶部搜索第一寄存器块1002a。搜索逻辑1010还可按相同的方式搜索第二寄存器块1002b。
在一个实施例中,寄存器重命名系统1000还可包括分配逻辑1020以接收多个架构寄存器标识符并将其分组成第一和第二组架构寄存器标识符,其中每个架构寄存器标识符均代表相应的架构寄存器。分配逻辑1020可按第一组和第二组架构寄存器标识符来提供架构寄存器标识符以重命名分为两组的架构寄存器,其中所接收的每个架构寄存器标识符或者在第一组中或者在第二组中。
在一个实施例中,寄存器重命名系统1000还可包括耦合到第一和第二寄存器块1002a、1002b,搜索逻辑1010、以及分配逻辑1020的配置逻辑1030。配置逻辑1030可从分配逻辑1020接收第一和第二组架构寄存器标识符,并选择性地将每个架构寄存器标识符关联到第一寄存器块1002a或第二寄存器块1002b中的相应的项。在一个实施例中,搜索逻辑1010可提供多个标记信号给配置逻辑1030。每个信号可具有第一值或第二值,第一值指示相应的物理寄存器具有第一状态,第二值指示相应的物理寄存器具有除第一状态之外的另一状态。在从搜索逻辑接收到标记信号时,配置逻辑1030可将每个架构寄存器标识符存储在第一寄存器块1002a或第二寄存器块1002b中相应的标记信号具有第一值的相应寄存器中,以将相应的架构寄存器关联到相应的物理寄存器。
在一个实施例中,配置逻辑1030可将第一组中的每个架构寄存器标识符关联到第一寄存器块1002a中的相应项并且还将第二组中的每个架构寄存器标识符关联到第二寄存器块1002b中的相应项。另外,如果在前一轮的关联中被关联到第一块1002a中的项的架构寄存器标识符的数目不等于被关联到第二块1002b中的项的架构寄存器标识符的数目,则配置逻辑1030可将第一组中的每个架构寄存器标识符关联到第二寄存器块1002b中的相应项,以及进一步将第二组中的每个架构寄存器标识符关联到第一寄存器块1002a中的相应项。
在一个实施例中,搜索逻辑1010可确定被识别为具有指示相应的物理寄存器处于第一状态的相应项的寄存器的数量并将针对每个已识别的寄存器的相应的有效信号提供给配置逻辑1030。针对第一和第二寄存器块1002a、1002b,配置逻辑1030可分别接收第一和第二架构寄存器标识符,并且如果相应的寄存器块中所存储的项中仅仅一个项被识别为指示相应的物理寄存器处于第一状态,则确定所接收的架构寄存器标识符中的哪个将被关联。
图11说明根据一个非限制性的说明的实施例的具有寄存器重命名系统的处理器1100。处理器1100包括具有多个非重叠段的PRMT,其中每个段都被存储在相应的寄存器块中。该PRMT的每个项都与相应的物理寄存器相关联并且记录相应的物理寄存器所处的状态,以及被重命名到相应的物理寄存器的架构寄存器的标识符,如果存在任何被重命名到其的架构寄存器。
在一个实施例中,如图11中所示,处理器1100可包括存储在第一寄存器块1102a中的第一PRMT段1105a和存储在第二寄存器块1102b中的第二PRMT段1105b。处理器1100还可包括耦合到寄存器块1102a、1102b的搜索逻辑1110。搜索逻辑1110可并行地搜索第一和第二PRMT段1105a、1105b,以识别其中每个均指示相应的物理寄存器处于第一状态(例如为空)的项。处理器1100还可包括耦合到搜索逻辑1110的映射逻辑1120。映射逻辑1120可接收多个架构寄存器标识符,其中每个标识符均指示相应的架构寄存器。映射逻辑1120可将所接收的每个架构寄存器标识符映射到指示相应的物理表处于第一状态的相应的PRMT段中的相应项。尽管在图11中仅示出两个PRMT段1105a、1105b,但是在其他实施例中,可存在更大数量的PRMT段,例如四个或八个,它们被存储在等量的寄存器块中并且可被同时搜索。
在一个实施例中,搜索逻辑1110被耦合到寄存器块1102a、1102b,并且同时从块的第一端朝着与该第一端相对的该块的第二端以及从该块的第二端朝着该块的第一端搜索每个寄存器块1102a、1102b,以寻找存储的映射表项指示相应的物理寄存器处于第一状态的寄存器。例如,搜索逻辑1110可同时从块1102a的顶部朝着块1102a的底部以及从块1102a的底部朝着块1102a的顶部搜索第一寄存器块1102a。搜索逻辑1110还可用相同的方式搜索第二寄存器块1102b。
在一个实施例中,搜索逻辑1110可提供多个标记信号给映射逻辑1120,其中每个标记信号指示针对寄存器块中的相应的寄存器的搜索结果。每个标记信号可具有第一值或第二值,第一值指示相应的寄存器存储的相应的映射表项指示相应的物理寄存器处于第一状态,第二值指示相应的寄存器存储的相应的映射表项指示相应的物理寄存器处于除第一状态之外的另一状态。
在一个实施例中,搜索逻辑1110可包括多个寄存器搜索逻辑。每个寄存器搜索逻辑可被耦合到相应的一个寄存器块1102a、1102b,以同时从块的第一端朝着与该第一端相对的该块的第二端以及从该块的第二端朝着该块的第一端搜索相应的块1102a或1102b中的寄存器,寻找所存储的映射表项指示相应的物理寄存器处于第一状态的寄存器。
图12说明根据一个实施例的具有寄存器重命名系统的基于处理器的系统1200。基于处理器的系统1200包括输入设备1230、输出设备1240、数据存储设备1250以及处理器1202,处理器1202耦合到输入设备1230、输出设备1240和数据存储设备1250。处理器1202包括多个寄存器块,其中每个寄存器块存储着一段物理寄存器映射表以将映射表的相应项存储在相应的寄存器块中的每个寄存器中,其中每个项指示相应的物理寄存器的状态。在一个实施例中,处理器1202可具有存储着第一PRMT段1205a的第一寄存器块和存储着第二PRMT段1205b的第二寄存器块1202b,如图12中所示。处理器1202还包括搜索逻辑1210,其耦合到寄存器块以同时搜索寄存器块中的第一块和第二块以便识别第一块和第二块中所存储的相应项指示相应的物理寄存器处于第一状态的寄存器。处理器1202还包括耦合到寄存器块和搜索逻辑1210的映射逻辑1220。映射逻辑1220接收多个架构寄存器标识符,其中每个标识符均标识相应的架构寄存器。接着,映射逻辑1220将每个架构寄存器标识符映射到第一块和第二块的寄存器中的被识别为所存储的相应项指示相应的物理寄存器处于第一状态的相应寄存器,以将每个架构寄存器关联到对应的物理寄存器。
在一个实施例中,搜索逻辑1210可按第一方向以及同时按不同于该第一方向的第二方向来搜索第一和第二寄存器块1202a、1202b中的至少之一,以识别第一块中所存储的相应项指示相应的物理寄存器处于第一状态的寄存器。
在一个实施例中,处理器1200还可包括耦合到映射逻辑1220的分配逻辑。分配逻辑可接收架构寄存器标识符,将架构寄存器标识符配置成多个组,以及按组将架构寄存器标识符提供给映射逻辑1220。映射逻辑1220可确定在每轮关联中被映射到第一和第二寄存器块中的每个块的架构寄存器标识符的数目。接着,映射逻辑1220在每轮关联中,基于在前一轮的关联中被映射到第一和第二寄存器块中的每个块的架构寄存器标识符的数目,对被映射到第一和第二寄存器块中的每个块的架构寄存器标识符的数目进行均衡。
在一个实施例中,搜索逻辑1210可接收针对寄存器块中的每个寄存器的空信号,其指示与相应的寄存器中所存储的相应的映射表项相关联的物理寄存器的状态。作为响应,搜索逻辑1210可提供针对每个空信号的标记信号以指示相应的物理寄存器的状态。标记信号可具有第一值或第二值,第一值指示相应的物理寄存器处于第一状态,第二值指示相应的物理寄存器处于不同于该第一状态的另一状态。例如,对于给定空信号,搜索逻辑1210可将标记信号设置成二进制值1以指示相应的物理寄存器为空,或可将标记信号设置成二进制值0以指示相应的物理寄存器为非空(例如,处于提交(commit)状态或写回状态)。
图13说明根据一个实施例的在处理器中执行寄存器重命名的过程1300。在1302处,第一段映射表和第二段映射表被同时搜索以识别映射表中的每个均指示相应的物理寄存器处于第一状态的项。在一个实施例中,它们被顺序地搜索或者根据程序指导进行搜索。在其他实施例中,它们被同时搜索。在1304处,对于多个架构寄存器,与每个架构寄存器相关的数据被存储在物理寄存器中被识别为处于第一状态的相应的物理寄存器中,以便将架构寄存器关联到被识别为处于第一状态的物理寄存器。
在一个实施例中,在1306处,过程1300在每轮关联中还可基于在前一轮关联中架构寄存器到被识别为处于第一状态的物理寄存器的关联,对架构寄存器到被识别为处于第一状态的物理寄存器的关联进行均衡。在一个实施例中,针对每轮关联,过程1300可以首先确定被关联到与每段映射表相关的物理寄存器的架构寄存器的数量。接着,过程1300可基于在前一轮关联中被关联到与每段映射表相关的物理寄存器的架构寄存器的数量,对被关联到与每段映射表相关的物理寄存器的架构寄存器的数量进行调节。
在一个实施例中,在同时搜索第一段映射表和第二段映射表时,过程1300可同时搜索存储在第一寄存器块中的第一段映射表和存储在第二寄存器块中的第二段映射表。例如,存储在第一寄存器块202a中的第一PRMT段205a和存储在第二寄存器块202b中的第二PRMT段205b可被过程1300同时搜索。在一个实施例中,过程1300可同时按第一方向和按不同于该第一方向的第二方向来搜索第一寄存器块中所存储的第一段映射表,以及同时按该第一方向和该第二方向来搜索第二寄存器块中所存储的第二段映射表。例如,在第一寄存器块202a中所存储的第一PRMT段205a可同时按第一和第二方向被过程1300搜索,而此时在第二寄存器块202b中所存储的第二PRMT段205b可同时按第一和第二方向被过程1300搜索。
图14说明根据一个实施例的在处理器中执行寄存器重命名的过程1400。在1402处,物理寄存器映射表中的项被存储在多个寄存器块中,以使得相应数目的项被存储在相应的寄存器块中,其中每个项指示相应的物理寄存器的状态。在1404处,在第一时钟周期中按第一方向以及按不同于该第一方向的第二方向搜索寄存器块中的第一块,以识别其中每个均指示相应的物理寄存器处于第一状态的项。在1406处,多个架构寄存器中的每个被映射到被识别为处于第一状态的相应的物理寄存器。
在一个实施例中,过程1400在第一时钟周期中还可按该第一方向和该第二方向搜索寄存器块中的不同于第一块的第二块,以识别其中每个均指示相应的物理寄存器处于第一状态的项。在另一实施例中,在搜索寄存器块中的第一块以识别处于第一状态的项之后,过程1400还可提供多个信号,其中每个信号表示第一块中的相应的寄存器并且每个信号都具有指示相应的物理寄存器处于第一状态的第一值或指示相应的物理寄存器处于不同于该第一状态的另一状态的第二值。在又一实施例中,过程1400在第一时钟周期中还可按该第一方向和该第二方向搜索寄存器块中的第二块以识别其中每个均指示相应的物理寄存器处于第一状态的项。在将这多个物理寄存器中的每个映射到被识别为处于第一状态的相应的物理寄存器时,过程1400可将这多个架构寄存器中的每个映射到与块中的第一块或第二块中所存储的项相关联的物理寄存器。
在一个实施例中,过程1400可将物理寄存器映射表的项存储在第一寄存器块和第二寄存器块中,使得物理寄存器映射表的第一段中的项存储在该第一块中,以及物理寄存器映射表的第二段中的项存储在该第二块中。在一个实施例中,过程1400在第一时钟周期中可按该第一方向和该第二方向在第一和第二块中的每个块中进行搜索,以识别其中每个均指示相应的物理寄存器处于第一状态的项。在一个实施例中,过程1400可将第一架构寄存器映射到与第一块中所存储的项之一相关联的物理寄存器以及将第二架构寄存器映射到与第二块中所存储的项之一相关联的物理寄存器。
在一个实施例中,当将多个架构寄存器中的每个映射到被识别为处于第一状态的相应的物理寄存器时,过程1400可将其中每个均通过多个传输路径中的相应传输路径传输的多个架构寄存器标识符中的每个映射到与被识别为处于第一状态的物理寄存器相关联的相应的项。更为具体地,过程1400可将在第一时钟周期之后的第二时钟周期中通过第一和第二传输路径传输的架构寄存器标识符映射到第一块中的处于第一状态的项。过程1400还可将在第二时钟周期之后的第三时钟周期中通过第一和第二传输路径传输的架构寄存器标识符映射到第二块中的处于第一状态的项。如果第一块中被识别为处于所述第一状态的项的数量不同于第二块中被识别为处于所述第一状态的项的数量,则过程1400可以在映射过程中相应地调整在所述第二时钟周期中或第三时钟周期中映射的架构寄存器标识符的数量。
在一个实施例中,过程1400可在第一时钟周期中从寄存器块中的第一块的第一端朝着该块的与该第一端相对的第二端来进行搜索以及从该块的第二端朝着该块的第一端来进行搜索。
图15说明根据一个实施例的在处理器中执行寄存器重命名的过程1500。在1502处,物理寄存器映射表的第一段中的项被存储在第一寄存器块中,并且物理寄存器映射表的第二段中的项被存储在第二寄存器块中。在1504处,在第一时钟周期中,识别在第一块中的那些其中每个均指示相应的物理寄存器为空的物理寄存器映射表的项。在1506处,在第一时钟周期中,还识别在第二块中的那些其中每个均指示相应的物理寄存器为空的物理寄存器映射表的项。在1508处,要重命名的多个架构寄存器被分组成第一组架构寄存器和第二组架构寄存器。在1510处,所述多组架构寄存器之一中的架构寄存器被关联到与所识别的第一块中所存储的映射表项相关联的空物理寄存器。在1512处,另一组架构寄存器中的架构寄存器被关联到与所识别的第二块中所存储的映射表项相关联的空物理寄存器。
在一个实施例中,过程1500还可对架构寄存器组到与所识别的第一块和第二块中的空项相关联的物理寄存器的关联进行均衡。更为具体地,响应于在前一时钟周期中所识别的与第一块中所存储的项相关联的空物理寄存器的数量以及与第二块中所存储的项相关联的空物理寄存器的数量,过程1500可将每组架构寄存器关联到所识别的与第一或第二块中的项相关联的相应的空物理寄存器。在另一实施例中,过程1500还可将架构寄存器之一的标识符存储在与被识别为空的物理寄存器之一相关联的相应项中。过程1500还可将相应项的状态设置成指示除了为空之外的状态。
在一个实施例中,当将多个要重命名的架构寄存器分组成第一组架构寄存器和第二组架构寄存器时,过程1500可按程序次序将这多个要重命名的架构寄存器分组成第一组架构寄存器和第二组架构寄存器。
在一个实施例中,该第一块和第二块均具有各自的第一端和与各自的第一端相对的各自的第二端,并且过程1500在第一时钟周期中可通过同时从第一端朝着第二端进行搜索以及从第二端朝着第一端进行搜索,识别第一块中的指示相应的物理寄存器为空的每个物理寄存器映射表项。过程1500在第一时钟周期中还可通过同时从第一端朝着第二端进行搜索以及从第二端朝着第一端进行搜索,识别第二块中的指示相应的物理寄存器为空的每个物理寄存器映射表项。
在一个实施例中,过程1500可识别第一块中的多至两个物理寄存器映射表项以及第二块中的多至两个物理寄存器映射表项。过程1500可将四个要重命名的架构寄存器分组成第一对架构寄存器和第二对架构寄存器,其中每组具有这四个架构寄存器中的一对。过程1500可将与所识别的第一块中的多至两个项相关联的物理寄存器关联到一对架构寄存器,以及将与所识别的第二块中的多至两个项相关联的物理寄存器关联到另一对架构寄存器。
因此,已经公开了本发明的在诸如超标量体系结构的微处理器之类的处理器中的寄存器重命名系统实现的实施例。相比诸如图1中所示出的常规寄存器重命名系统100之类的常规寄存器重命名系统实现而言,根据此处所公开的各种实施例的寄存器重命名系统提供了若干优点。例如,通过并行地搜索物理寄存器映射表中的多个段以及按两个不同方向来搜索每个段,可以减小在寻找空物理寄存器时的路径延迟。减小的路径延迟应当也有利地导致降低的功耗。
上述对说明的实施例的描述,包括摘要中所描述的内容,不是旨在作为穷举或将实施例限制到所公开的精确形式。此处尽管出于说明性的目的描述了具体实施例和例子,但是本领域技术人员将认识到在不偏离本公开内容的精神和范围的条件下可以做出各种等价的修改。此处所提供的各种实施例的教导可以应用到其他环境,而不必是上面一般描述的寄存器重命名的示例性环境。本领域技术人员将理解,尽管上面所描述的并在附图中所示出的实施例一般针对寄存器重命名的环境,但是与在处理器中使用物理寄存器相关的应用也可从此处所描述的概念中受益。
根据上述的详细描述,可以对实施例做出各种改变。一般而言,在以下权利要求书中,所使用的术语不应当被解释成将权利要求限制到在说明书和权利要求书中所公开的具体实施例,而是应当被解释成包括这些权利要求所保护的所有等同的全部范围内的所有可能的实施例。因此,权利要求书不局限于本公开内容。

Claims (65)

1.一种将架构寄存器关联到物理寄存器的寄存器重命名系统,包括:
多个寄存器块,用以存储具有多个项的物理寄存器映射表,所述映射表中的每个项均指示相应的物理寄存器的状态,所述映射表具有多个非重叠段,其中每个段均具有相应的映射表项;以及
耦合到所述多个寄存器块的重命名逻辑,所述重命名逻辑用以并行地搜索所述映射表的多个段,以识别每个均指示相应的物理寄存器处于第一状态的项,所述重命名逻辑还用以选择性地将多个架构寄存器中的每个关联到相应的被识别为处于所述第一状态的物理寄存器。
2.根据权利要求1所述的寄存器重命名系统,其中所述多个寄存器块中的每个寄存器块储存所述映射表中的相应段并且每个寄存器块中的每个寄存器储存所述映射表的相应段中的相应项。
3.根据权利要求2所述的寄存器重命名系统,其中所述重命名逻辑包括搜索逻辑,所述搜索逻辑用以搜索所述多个寄存器块以识别其中所储存的指示相应的物理寄存器处于所述第一状态的项,所述搜索逻辑用以同时按第一方向和与所述第一方向不同的第二方向搜索每个所述寄存器块。
4.根据权利要求2所述的寄存器重命名系统,其中所述重命名逻辑包括映射逻辑,所述映射逻辑用以接收多个架构寄存器标识符,其中每个架构寄存器标识符代表相应的一个架构寄存器,以及用以选择性地将每个所述架构寄存器标识符关联到指示相应的物理寄存器处于所述第一状态的相应的映射表项。
5.根据权利要求4所述的寄存器重命名系统,其中所述映射逻辑选择性地将每个架构寄存器标识符记录在指示相应的物理寄存器处于所述第一状态的相应的映射表项中。
6.根据权利要求5所述的寄存器重命名系统,其中所述映射逻辑将记录相应的架构寄存器标识符的映射表项的状态从所述第一状态改变成不同于所述第一状态的另一状态。
7.根据权利要求4所述的寄存器重命名系统,其中所述映射逻辑对架构寄存器标识符到所述映射表的每个段中的项的关联进行均衡。
8.根据权利要求7所述的寄存器重命名系统,其中所述映射逻辑基于先前关联到所述映射表的每个段中的项的架构寄存器标识符的相应数量,调整要关联到所述映射表的每个段中的项的架构寄存器标识符的相应数量。
9.根据权利要求3所述的寄存器重命名系统,其中所述搜索逻辑被耦合到映射逻辑以提供多个标记信号,其中每个所述标记信号指示所述寄存器块中的相应的寄存器中是否储存有指示相应的物理寄存器处于所述第一状态的相应项。
10.根据权利要求4所述的寄存器重命名系统,其中所述映射逻辑将所述架构寄存器标识符分组成多组架构寄存器标识符,其中所述映射逻辑在第一轮关联中将每组架构寄存器标识符关联到所述映射表的相应段中的项,并且其中所述映射逻辑基于在所述第一轮关联中关联到所述映射表的每个段中的项的架构寄存器标识符的相应数量,在所述第一轮关联之后的第二轮关联中将每组架构寄存器标识符关联到所述映射表的不同段中的项。
11.一种处理器中的寄存器重命名系统,包括:
第一寄存器块,所述第一寄存器块中的每个寄存器用以储存物理寄存器映射表的第一段中的相应项,所述第一段的所述相应项指示相应的物理寄存器的多个状态之一;
第二寄存器块,所述第二寄存器块中的每个寄存器用以储存物理寄存器映射表的第二段中的相应项,所述第二段的所述相应项指示相应的物理寄存器的多个状态之一;
搜索逻辑,其被耦合到所述第一寄存器块和第二寄存器块用以并行地搜索所述第一寄存器块和所述第二寄存器块,以便识别所述第一寄存器块和第二寄存器块中所储存的相应的映射表项指示相应的物理寄存器处于第一状态的寄存器。
12.根据权利要求11所述的寄存器重命名系统,其中所述搜索逻辑同时按第一方向和不同于所述第一方向的第二方向搜索所述第一寄存器块以及同时按所述第一方向和所述第二方向搜索所述第二寄存器块,以识别具有指示相应的物理寄存器处于所述第一状态的相应项的寄存器。
13.根据权利要求11所述的寄存器重命名系统,还包括:
分配逻辑,其用以接收多个架构寄存器标识符并且将其分组成第一组和第二组架构寄存器标识符,其中每个架构寄存器标识符均代表相应的架构寄存器,所述分配逻辑用于按所述第一组和所述第二组架构寄存器标识符来提供所述架构寄存器标识符,其中所接收的每个架构寄存器标识符或者在所述第一组中或者在所述第二组中。
14.根据权利要求13所述的寄存器重命名系统,还包括:
配置逻辑,其耦合到所述第一寄存器块和第二寄存器块、所述搜索逻辑以及所述分配逻辑,所述配置逻辑用以从所述分配逻辑接收所述第一组和第二组架构寄存器标识符,所述配置逻辑用以选择性地将每个所述架构寄存器标识符关联到所述第一寄存器块和第二寄存器块中的相应项。
15.根据权利要求14所述的寄存器重命名系统,其中所述搜索逻辑提供多个标记信号给所述配置逻辑,所述信号中的每个均具有第一值或者第二值,所述第一值指示相应的物理寄存器具有所述第一状态,所述第二值指示相应的物理寄存器具有不同于所述第一状态的另一状态。
16.根据权利要求15所述的寄存器重命名系统,其中所述配置逻辑从所述搜索逻辑接收所述标记信号,并且其中所述配置逻辑将每个所述架构寄存器标识符储存在所述第一或第二寄存器块中相应的标记信号具有第一值的寄存器中,以将相应的架构寄存器关联到相应的物理寄存器。
17.根据权利要求14所述的寄存器重命名系统,其中所述配置逻辑将所述第一组中的每个架构寄存器标识符关联到所述第一寄存器块中的相应的项,并且还将所述第二组中的每个架构寄存器标识符关联到所述第二寄存器块中的相应的项。
18.根据权利要求17所述的寄存器重命名系统,其中如果在前一轮关联中关联到所述第一寄存器块中的项的架构寄存器标识符的数目不等于关联到所述第二寄存器块中的项的架构寄存器标识符的数目,则所述配置逻辑将所述第一组中的每个架构寄存器标识符关联到所述第二寄存器块中的相应的项,并且还将所述第二组中的每个架构寄存器标识符关联到所述第一寄存器块中的相应的项。
19.根据权利要求14所述的寄存器重命名系统,其中所述搜索逻辑确定被识别为具有指示相应的物理寄存器处于所述第一状态的相应的映射表项的寄存器的数量,并且将针对每个已识别的寄存器的相应的有效信号提供给所述配置逻辑。
20.根据权利要求19所述的寄存器重命名系统,其中针对所述第一寄存器块和第二寄存器块中的每个块,所述配置逻辑接收相应的第一架构寄存器标识符和相应的第二架构寄存器标识符,并且如果仅有一个储存在相应的寄存器块中的项被识别为指示相应的物理寄存器处于所述第一状态,则确定所接收到的第一架构寄存器标识符和第二架构寄存器标识符中哪一个将被关联。
21.一种将架构寄存器关联到物理寄存器的寄存器重命名系统,包括:
第一寄存器块,其用以储存物理寄存器映射表的第一部分,所述第一寄存器块中的每个寄存器用以储存所述映射表的所述第一部分中的相应项;
第二寄存器块,其用以储存所述物理寄存器映射表的第二部分,所述第二寄存器块中的每个寄存器用以储存所述映射表的所述第二部分中的相应项;
第一检查逻辑,其被耦合到所述第一寄存器块,用以在第一时钟周期中从所述第一寄存器块的第一端朝着所述第一寄存器块的与所述第一端相对的第二端来搜索所述第一寄存器块中的寄存器,以识别所述映射表的所述第一部分中的均指示相应的物理寄存器为空的项;
第二检查逻辑,其被耦合到所述第一寄存器块,用以在所述第一时钟周期中从所述第一寄存器块的第二端朝着所述第一寄存器块的第一端来搜索所述第一寄存器块中的寄存器,以识别所述映射表的所述第一部分中的均指示相应的物理寄存器为空的项;
第三检查逻辑,其被耦合到所述第二寄存器块,用以在所述第一时钟周期中从所述第二寄存器块的第一端朝着所述第二寄存器块的与所述第一端相对的第二端来搜索所述第二寄存器块中的寄存器,以识别所述映射表的所述第二部分中的均指示相应的物理寄存器为空的项;以及
第四检查逻辑,其被耦合到所述第二寄存器块,用以在所述第一时钟周期中从所述第二寄存器块的第二端朝着所述第二寄存器块的第一端来搜索所述第二寄存器块中的寄存器,以识别所述映射表的所述第二部分中的均指示相应的物理寄存器为空的项。
22.根据权利要求21所述的寄存器重命名系统,其中所述第一检查逻辑和所述第二检查逻辑中的每个均接收第一组多个标记信号,所述第一组多个标记信号中的每个标记信号指示与所述映射表的第一部分中的相应项相关联的相应的物理寄存器是否为空,并且其中所述第三和第四检查逻辑中的每个均接收第二组多个标记信号,所述第二组标记信号中的每个标记信号指示与所述映射表的第二部分中的相应项相关联的相应的物理寄存器是否为空。
23.根据权利要求21所述的寄存器重命名系统,其中所述第一检查逻辑和第二检查逻辑中的每个均提供相应的多个结果信号,其中每个结果信号均指示针对所述映射表的第一部分中的相应项的搜索结果,其中所述第一检查逻辑选择指示相应的物理寄存器为空的项中的第一项,其中所述第二检查逻辑选择指示相应的物理寄存器为空的项中的第二项,其中由所述第一检查逻辑所提供的对应于所选择的第一项的结果信号被设置成第一值而由所述第一检查逻辑所提供的其他结果信号被设置成第二值,其中由所述第二检查逻辑所提供的对应于所选择的第二项的结果信号被设置成所述第一值而由所述第二检查逻辑所提供的其他结果信号被设置成所述第二值。
24.根据权利要求23所述的寄存器重命名系统,还包括:
第一配置逻辑,其被耦合到所述第一寄存器块、所述第一检查逻辑和所述第二检查逻辑,所述第一配置逻辑用以从所述第一检查逻辑和第二检查逻辑接收所述结果信号,所述第一配置逻辑用以接收第一组架构寄存器标识符并且将所接收的每个架构寄存器标识符储存在所述第一寄存器块中的储存着所述映射表的第一部分中的每个均指示相应的物理寄存器为空的项的那些寄存器中;以及
第二配置逻辑,其被耦合到所述第二寄存器块、所述第三检查逻辑和所述第四检查逻辑,所述第二配置逻辑用以接收第二组架构寄存器标识符并且将所接收的每个架构寄存器标识符储存在所述第二寄存器块中的储存着所述映射表的第二部分中的每个均指示相应的物理寄存器为空的项的那些寄存器中。
25.根据权利要求24所述的寄存器重命名系统,还包括:
分配逻辑,其被耦合到所述第一配置逻辑和第二配置逻辑,所述分配逻辑用以接收多个架构寄存器标识符,其中每个架构寄存器标识符均标识相应的要重命名的架构寄存器,将所接收的每个架构寄存器标识符分组到所述第一组架构寄存器标识符和所述第二组架构寄存器标识符中,并且分别将所述第一组架构寄存器标识符和第二组架构寄存器标识符提供给所述第一配置逻辑和第二配置逻辑。
26.根据权利要求25所述的寄存器重命名系统,其中所述分配逻辑基于在前一时钟周期中提供给所述第一配置逻辑和第二配置逻辑中的每个的架构寄存器标识符的数目,均衡在给定时钟周期中提供给所述第一配置逻辑和第二配置逻辑中的每个的架构寄存器标识符的数目。
27.根据权利要求26所述的寄存器重命名系统,其中所述分配逻辑包括:
块选择电路,其用以提供块选择信号以均衡提供给所述第一配置逻辑和第二配置逻辑中的每个的架构寄存器标识符的数目,所述块选择信号具有第一值或第二值;以及
组交换电路,其被耦合以从所述块选择电路接收所述块选择信号,所述组交换电路用以响应于所述块选择信号具有所述第一值而将所述第一组架构寄存器标识符提供给所述第一配置逻辑并将所述第二组架构寄存器标识符提供给所述第二配置逻辑,所述组交换电路用以响应于所述块选择信号具有所述第二值而将所述第一组架构寄存器标识符提供给所述第二配置逻辑并将所述第二组架构寄存器标识符提供给所述第一配置逻辑。
28.根据权利要求24所述的寄存器重命名系统,还包括:
第一满检测器,其被耦合到所述第一检查逻辑和第二检查逻辑以及所述第一配置逻辑,所述第一满检测器用以提供第一有效信号和第二有效信号给所述第一配置逻辑,以指示所述映射表的第一部分中是零个、一个还是两个项指示着相应的物理寄存器为空;以及
第二满检测器,其被耦合到所述第三和第四检查逻辑以及所述第二配置逻辑,所述第二满检测器用以提供第三和第四有效信号给所述第二配置逻辑,以指示所述映射表的第二部分中是零个、一个还是两个项指示着相应的物理寄存器为空。
29.根据权利要求28所述的寄存器重命名系统,其中所述第一配置逻辑包括多个第一配置电路,每个第一配置电路针对所述第一寄存器块中的相应的一个寄存器,每个第一配置电路接收来自所述第一检查逻辑的结果信号中的相应的一个结果信号和来自所述第二检查逻辑的结果信号中的相应的一个结果信号,每个第一配置电路还接收两个架构寄存器标识符。
30.根据权利要求29所述的寄存器重命名系统,其中每个第一配置电路确定选择所述两个架构寄存器标识符中的一个,并且响应于所接收的结果信号指示与第一寄存器块中的相应寄存器中所储存的映射表的第一部分中的相应项相关联的物理寄存器为空,将所选择的架构寄存器标识符储存在所述第一寄存器块中的相应寄存器中。
31.一种处理器,包括:
多个寄存器块,用以存储具有多个项的物理寄存器映射表,所述映射表中的每个项都指示相应的物理寄存器的状态;
搜索逻辑,其被耦合用以并行地搜索所述映射表的多个段,以识别其中每个均指示着相应的物理寄存器处于第一状态的项,所述搜索逻辑搜索的映射表的每个段具有的相应的映射表项与所述搜索逻辑搜索的映射表的另外的段中的项互不相同;以及
映射逻辑,其被耦合到所述搜索逻辑,所述映射逻辑用以接收多个架构寄存器标识符,其中每个标识符均指示着相应的架构寄存器,所述映射逻辑用以将所接收的每个架构寄存器标识符映射到所述映射表的相应段中的指示着相应的物理表处于第一状态的相应项。
32.根据权利要求31所述的处理器,其中所述多个寄存器块中的每个寄存器块都用以储存所述映射表的相应段以使所述寄存器块中的每个寄存器储存所述映射表的相应段中的相应项,其中所述搜索逻辑被耦合用于并行地搜索所述多个寄存器块,以搜索储存着指示相应的物理寄存器处于第一状态的映射表项的寄存器。
33.根据权利要求32所述的处理器,其中所述搜索逻辑被耦合到所述寄存器块,并且同时从寄存器块的第一端朝着所述寄存器块的与所述第一端相对的第二端以及从所述寄存器块的第二端朝着所述寄存器块的第一端来搜索每个所述寄存器块,以搜索储存着指示相应的物理寄存器处于第一状态的映射表项的寄存器。
34.根据权利要求32所述的处理器,其中所述搜索逻辑提供多个标记信号给所述映射逻辑,每个所述标记信号都指示针对所述寄存器块中的相应寄存器的搜索结果,每个具有第一值的标记信号用以指示所述相应寄存器所储存的相应的映射表项指示着相应的物理寄存器处于所述第一状态,每个具有第二值的标记信号用以指示所述相应寄存器所储存的相应的映射表项指示着相应的物理寄存器处于不同于所述第一状态的另一状态。
35.根据权利要求32所述的处理器,其中所述搜索逻辑包括多个寄存器搜索逻辑,每个所述寄存器搜索逻辑被耦合到所述寄存器块中的一个相应寄存器块,以同时从所述寄存器块的第一端朝着所述寄存器块的与所述第一端相对的第二端以及从所述寄存器块的所述第二端朝着所述寄存器块的所述第一端搜索所述相应寄存器块中的寄存器,以便搜索储存着指示相应的物理寄存器处于所述第一状态的映射表项的寄存器。
36.一种基于处理器的系统,包括:
输入设备;
输出设备;
数据存储设备;以及
处理器,其耦合到所述输入设备、所述输出设备以及所述数据存储设备,所述处理器包括:
多个寄存器块,每个寄存器块用以存储物理寄存器映射表中的一段,以在相应的寄存器块中的每个寄存器中存储所述映射表的相应项,每个项指示相应的物理寄存器的状态;
搜索逻辑,其被耦合到所述寄存器块,所述搜索逻辑用以同时搜索所述寄存器块中的第一寄存器块和第二寄存器块,以识别所述第一寄存器块和所述第二寄存器块中所存储的相应项指示相应的物理寄存器处于第一状态的寄存器;以及
映射逻辑,其被耦合到所述寄存器块和所述搜索逻辑,所述映射逻辑用以接收多个架构寄存器标识符,其中每个架构寄存器标识符均标识相应的架构寄存器,所述映射逻辑用以将每个架构寄存器标识符映射到所述第一寄存器块和所述第二寄存器块中被识别为所存储的相应项指示相应的物理寄存器处于所述第一状态的相应的寄存器,以将每个架构寄存器关联到相应的物理寄存器。
37.根据权利要求36所述的基于处理器的系统,其中所述搜索逻辑同时按第一方向和不同于所述第一方向的第二方向来搜索所述第一寄存器块和所述第二寄存器块中的至少一个块,以识别所述第一寄存器块中所存储的相应项指示相应的物理寄存器处于所述第一状态的寄存器。
38.根据权利要求37所述的基于处理器的系统,其中所述处理器还包括:
分配逻辑,其被耦合到所述映射逻辑,所述分配逻辑用以接收所述架构寄存器标识符,将所述架构寄存器标识符配置到多个组,以及按组将架构寄存器标识符提供给所述映射逻辑。
39.根据权利要求38所述的基于处理器的系统,其中所述映射逻辑在每轮关联中确定被映射到所述第一寄存器块和所述第二寄存器块中的每个块的架构寄存器标识符的数目,并且其中所述映射逻辑基于在前一轮关联中被映射到所述第一寄存器块和所述第二寄存器块中的每个块的架构寄存器标识符的数目,对在每轮关联中被映射到所述第一寄存器块和所述第二寄存器块中的每个块的架构寄存器标识符的数目进行均衡。
40.根据权利要求36所述的基于处理器的系统,其中所述搜索逻辑接收针对寄存器块中的每个寄存器的空信号,其指示了与所述相应的寄存器中所存储的映射表的相应项相关联的物理寄存器的状态,并且其中所述搜索逻辑提供针对每个空信号的标记信号,以指示相应的物理寄存器的状态,所述标记信号具有第一值或第二值,所述第一值用以指示相应的物理寄存器处于所述第一状态,所述第二值用以指示相应的物理寄存器处于不同于所述第一状态的另一状态。
41.一种在处理器中执行寄存器重命名的方法,所述方法包括:
同时搜索映射表的第一段和所述映射表的第二段,以识别所述映射表中的每个均指示相应的物理寄存器处于第一状态的项;以及
针对多个架构寄存器,将与每个所述架构寄存器相关的数据存储在被识别为处于所述第一状态的物理寄存器中的相应一个中,以将所述架构寄存器关联到被识别为处于所述第一状态的物理寄存器。
42.根据权利要求41所述的方法,其中同时搜索映射表的第一段和所述映射表的第二段包括同时搜索存储在第一寄存器块中的所述映射表的第一段以及存储在第二寄存器块中的所述映射表的第二段。
43.根据权利要求42所述的方法,其中同时搜索存储在第一寄存器块中的所述映射表的第一段和存储在第二寄存器块中的所述映射表的第二段,包括:
同时按第一方向和与所述第一方向不同的第二方向来搜索存储在第一寄存器块中的所述映射表的第一段;以及
同时按所述第一方向和所述第二方向来搜索存储在第二寄存器块中的所述映射表的第二段。
44.根据权利要求41所述的方法,还包括:
在每轮关联中,基于在前一轮的关联中所述架构寄存器到被识别为处于所述第一状态的物理寄存器之一的关联,对所述架构寄存器到被识别为处于所述第一状态的物理寄存器的关联进行均衡。
45.根据权利要求44所述的方法,其中在每轮关联中,基于在前一轮关联中所述架构寄存器到被识别为处于所述第一状态的物理寄存器之一的关联,对所述架构寄存器到被识别为处于所述第一状态的物理寄存器的关联进行均衡,包括:
针对每轮关联,确定被关联到与每段映射表相关的物理寄存器的架构寄存器的数量;以及
基于在前一轮关联中被关联到与每段映射表有关的物理寄存器的架构寄存器的数量,调节要被关联到与每段映射表项有关的物理寄存器的架构寄存器的数量。
46.一种在处理器中执行寄存器重命名的方法,所述方法包括:
将物理寄存器映射表的项存储在多个寄存器块中,以使得相应数目的项被存储在所述寄存器块中的相应寄存器块中,所述项中的每个项指示着相应的物理寄存器的状态;
在第一时钟周期中,按第一方向以及不同于所述第一方向的第二方向来搜索所述寄存器块中的第一寄存器块,以识别其中每个都指示相应的物理寄存器处于第一状态的项;以及
将多个架构寄存器中的每个映射到相应的被识别为处于所述第一状态的物理寄存器。
47.根据权利要求46所述的方法,还包括:
在所述第一时钟周期中,按所述第一方向以及所述第二方向搜索所述寄存器块中的不同于所述第一寄存器块的第二寄存器块,以识别其中每个都指示相应的物理寄存器处于所述第一状态的项。
48.根据权利要求46所述的方法,其中将物理寄存器映射表中的项存储在多个寄存器块中以使得相应数目的项被存储在所述寄存器块中的相应寄存器块中包括:将所述物理寄存器映射表的项存储在第一寄存器块和第二寄存器块中,以使得所述物理寄存器映射表中的第一段的项被存储在所述第一寄存器块中并且所述物理寄存器映射表中的第二段的项被存储在所述第二寄存器块中。
49.根据权利要求48所述的方法,其中在第一时钟周期中,按第一方向以及不同于所述第一方向的第二方向来搜索所述寄存器块中的第一寄存器块以识别其中每个都指示相应的物理寄存器处于第一状态的项,包括:在所述第一时钟周期中,按所述第一方向以及所述第二方向来搜索所述第一寄存器块和所述第二寄存器块中的每个块,以识别每个都指示相应的物理寄存器处于所述第一状态的项。
50.根据权利要求49所述的方法,其中所述将多个架构寄存器中的每个映射到相应的被识别为处于所述第一状态的物理寄存器,包括:将第一架构寄存器映射到与被存储在所述第一寄存器块中的项之一相关联的物理寄存器,以及将第二架构寄存器映射到与被存储在所述第二寄存器块中的项之一相关联的物理寄存器。
51.根据权利要求46所述的方法,其中将多个架构寄存器中的每个映射到相应的被识别为处于所述第一状态的物理寄存器,包括:将其中每个都通过多个传输路径中的相应路径传输的多个架构寄存器标识符中的每个映射到与被识别为处于所述第一状态的物理寄存器相关联的相应的项。
52.根据权利要求51所述的方法,其中将其中每个都通过多个传输路径中的相应路径传输的多个架构寄存器标识符中的每个映射到与被识别为处于所述第一状态的物理寄存器相关联的相应的项包括:
将在第一时钟周期之后的第二时钟周期中通过第一传输路径和第二传输路径传输的架构寄存器标识符映射到所述第一寄存器块中的处于所述第一状态的项;以及
将在第二时钟周期之后的第三时钟周期中通过所述第一传输路径和所述第二传输路径传输的架构寄存器标识符映射到所述第二寄存器块中的处于所述第一状态的项,
其中,响应于第一寄存器块中被识别为处于所述第一状态的项的数量不同于第二寄存器块中被识别为处于所述第一状态的项的数量,相应地调整所述第二时钟周期中或第三时钟周期中映射的架构寄存器标识符的数量。
53.根据权利要求46所述的方法,其中在第一时钟周期中,按第一方向以及不同于所述第一方向的第二方向来搜索所述寄存器块中的第一寄存器块包括:在所述第一时钟周期中,从所述寄存器块中的第一寄存器块的第一端朝着所述寄存器块的与所述第一端相对的第二端进行搜索以及从所述寄存器块的所述第二端朝着所述寄存器块的所述第一端进行搜索。
54.根据权利要求46所述的方法,还包括:
在搜索所述寄存器块中的第一寄存器块以识别处于所述第一状态的项之后,提供多个信号,其中每个信号都代表所述第一寄存器块中的相应寄存器,并且每个信号都具有指示相应寄存器处于所述第一状态的第一值或指示相应寄存器处于不同于所述第一状态的另一状态的第二值。
55.根据权利要求46所述的方法,还包括:
在所述第一时钟周期中按所述第一方向和所述第二方向来搜索所述寄存器块中的第二寄存器块以识别其中每个都指示相应的物理寄存器处于所述第一状态的项,以及其中将所述多个架构寄存器中的每个映射到相应的被识别为处于所述第一状态的物理寄存器包括:将所述多个架构寄存器中的每个映射到与所述第一寄存器块或所述第二寄存器块中所存储的项相关联的物理寄存器。
56.一种在处理器中执行寄存器重命名的方法,所述方法包括:
将物理寄存器映射表的第一段中的项存储在第一寄存器块中以及将所述物理寄存器映射表的第二段中的项存储在第二寄存器块中;
在第一时钟周期中,识别所述第一寄存器块中的其中每个都指示相应的物理寄存器为空的物理寄存器映射表的项;
在所述第一时钟周期中,识别所述第二寄存器块中的其中每个都指示相应的物理寄存器为空的物理寄存器映射表的项;
将要重命名的多个架构寄存器分组成第一组架构寄存器和第二组架构寄存器;
将所述架构寄存器组之一中的架构寄存器关联到所识别的与所述第一寄存器块中所存储的映射表的项相关联的空物理寄存器;以及
将所述另一架构寄存器组中的架构寄存器关联到所识别的与所述第二寄存器块中所存储的映射表的项相关联的空物理寄存器。
57.根据权利要求56所述的方法,其中所述第一寄存器块和所述第二寄存器块均具有各自的第一端和与所述各自的第一端相对的各自的第二端,以及在第一时钟周期中识别所述第一寄存器块中的其中每个都指示相应的物理寄存器为空的物理寄存器映射表的项,包括:在所述第一时钟周期中通过同时从所述第一端朝着所述第二端进行搜索以及从所述第二端朝着所述第一端进行搜索来识别所述第一寄存器块中的其中每个都指示相应的物理寄存器为空的物理寄存器映射表的项。
58.根据权利要求57所述的方法,其中在所述第一时钟周期中识别所述第二寄存器块中的其中每个都指示相应的物理寄存器为空的物理寄存器映射表的项,包括:在所述第一时钟周期中通过同时从所述第一端朝着所述第二端进行搜索以及从所述第二端朝着所述第一端进行搜索来识别所述第二寄存器块中的其中每个都指示相应的物理寄存器为空的物理寄存器映射表的项。
59.根据权利要求56所述的方法,其中识别所述第一寄存器块中的物理寄存器映射表的项,包括:识别所述第一寄存器块中的多至两个物理寄存器映射表项,以及,其中识别所述第二寄存器块中的物理寄存器映射表的项包括:识别所述第二寄存器块中的多至两个物理寄存器映射表项。
60.根据权利要求59所述的方法,其中将要重命名的多个架构寄存器分组成第一组架构寄存器和第二组架构寄存器,包括:将要重命名的四个架构寄存器分组成第一对架构寄存器和第二对架构寄存器。
61.根据权利要求60所述的方法,其中将所述架构寄存器组之一中的架构寄存器关联到所识别的与所述第一寄存器块中所存储的映射表的项相关联的空物理寄存器,包括:将与所识别的所述第一寄存器块中的多至两个项相关联的物理寄存器与一对架构寄存器关联起来,并且其中将另一架构寄存器组中的架构寄存器关联到所识别的与所述第二寄存器块中所存储的映射表的项相关联的空物理寄存器,包括:将与所识别的所述第二寄存器块中的多至两个项相关联的物理寄存器与另一对架构寄存器关联。
62.根据权利要求56所述的方法,其中将要重命名的多个架构寄存器分组成第一组架构寄存器和第二组架构寄存器,包括:将所述要重命名的多个架构寄存器按程序次序分组成第一组架构寄存器和第二组架构寄存器。
63.根据权利要求56所述的方法,还包括:
对所述架构寄存器组到与所识别的所述第一寄存器块和所述第二寄存器块中的空项相关联的物理寄存器的关联进行均衡。
64.根据权利要求63所述的方法,其中对所述架构寄存器组到与所识别的所述第一寄存器块和所述第二寄存器块中的空项相关联的物理寄存器的关联进行均衡,包括:响应于在前一时钟周期中所识别的与所述第一寄存器块中所存储的项相关联的空物理寄存器的数量以及与所述第二寄存器块中所存储的项相关联的空物理寄存器的数量,将每组架构寄存器关联到所识别的与所述第一或第二寄存器块中的项相关联的相应的空物理寄存器。
65.根据权利要求56所述的方法,还包括:
将架构寄存器之一的标识符存储在与被识别为空的物理寄存器之一相关联的相应项中;以及
设置将所述相应项的状态以指示相应的物理寄存器的状态为不同于空的状态。
CN2009100048866A 2009-02-04 2009-02-04 使用多块物理寄存器映射表的寄存器重命名系统及其方法 Expired - Fee Related CN101794214B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN2009100048866A CN101794214B (zh) 2009-02-04 2009-02-04 使用多块物理寄存器映射表的寄存器重命名系统及其方法
US12/700,638 US8583901B2 (en) 2009-02-04 2010-02-04 Register renaming system using multi-bank physical register mapping table and method thereof
US14/064,936 US9436472B2 (en) 2009-02-04 2013-10-28 Register renaming system using multi-bank physical register mapping table and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100048866A CN101794214B (zh) 2009-02-04 2009-02-04 使用多块物理寄存器映射表的寄存器重命名系统及其方法

Publications (2)

Publication Number Publication Date
CN101794214A CN101794214A (zh) 2010-08-04
CN101794214B true CN101794214B (zh) 2013-11-20

Family

ID=42541352

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100048866A Expired - Fee Related CN101794214B (zh) 2009-02-04 2009-02-04 使用多块物理寄存器映射表的寄存器重命名系统及其方法

Country Status (2)

Country Link
US (2) US8583901B2 (zh)
CN (1) CN101794214B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291425A (zh) * 2017-06-23 2017-10-24 上海兆芯集成电路有限公司 合并解决重命名尺寸问题的部分写入结果的系统和方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798543B2 (en) * 2009-09-24 2017-10-24 Nvidia Corporation Fast mapping table register file allocation algorithm for SIMT processors
CN102566976B (zh) * 2010-12-27 2014-10-15 北京国睿中数科技股份有限公司 管理重命名寄存器的寄存器重命名系统和方法
GB2489405B (en) * 2011-03-22 2018-03-07 Advanced Risc Mach Ltd Encrypting and storing confidential data
US20130024647A1 (en) * 2011-07-20 2013-01-24 Gove Darryl J Cache backed vector registers
JP2013206095A (ja) * 2012-03-28 2013-10-07 Fujitsu Ltd データ処理装置及びデータ処理装置の制御方法
US9336004B2 (en) * 2013-02-28 2016-05-10 Advanced Micro Devices, Inc. Checkpointing registers for transactional memory
US9588770B2 (en) * 2013-03-15 2017-03-07 Samsung Electronics Co., Ltd. Dynamic rename based register reconfiguration of a vector register file
US9471325B2 (en) 2013-07-12 2016-10-18 Qualcomm Incorporated Method and apparatus for selective renaming in a microprocessor
WO2016012832A1 (en) 2014-07-21 2016-01-28 Via Alliance Semiconductor Co., Ltd. Address translation cache that supports simultaneous invalidation of common context entries
US10108417B2 (en) 2015-08-14 2018-10-23 Qualcomm Incorporated Storing narrow produced values for instruction operands directly in a register map in an out-of-order processor
WO2017028909A1 (en) * 2015-08-18 2017-02-23 Huawei Technologies Co., Ltd. Shared physical registers and mapping table for architectural registers of multiple threads
US10514921B2 (en) 2017-09-05 2019-12-24 Qualcomm Incorporated Fast reuse of physical register names
US10936570B2 (en) 2017-12-22 2021-03-02 Teradata Us, Inc. Online and dynamic table reconfiguration
CN111143230B (zh) * 2018-11-02 2022-03-29 群联电子股份有限公司 数据整并方法、存储器存储装置及存储器控制电路单元
US10996957B1 (en) 2019-06-20 2021-05-04 Marvell Asia Pte, Ltd. System and method for instruction mapping in an out-of-order processor
US11036515B1 (en) 2019-06-20 2021-06-15 Marvell Asia Pte, Ltd. System and method for instruction unwinding in an out-of-order processor

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240507B1 (en) * 1998-10-08 2001-05-29 International Business Machines Corporation Mechanism for multiple register renaming and method therefor
EP1237072A1 (en) * 1999-09-08 2002-09-04 Hajime Seki Register renaming system
CN1581069A (zh) * 2003-07-31 2005-02-16 英特尔公司 具有多位字段的寄存器的重命名
CN101158893A (zh) * 2006-10-03 2008-04-09 Arm有限公司 数据处理系统中的寄存器重命名
CN101169710A (zh) * 2006-10-26 2008-04-30 中国科学院计算技术研究所 对状态寄存器进行重命名的方法和使用该方法的处理器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446912A (en) * 1993-09-30 1995-08-29 Intel Corporation Partial width stalls within register alias table
US5471633A (en) * 1993-09-30 1995-11-28 Intel Corporation Idiom recognizer within a register alias table
US5974240A (en) * 1995-06-07 1999-10-26 International Business Machines Corporation Method and system for buffering condition code data in a data processing system having out-of-order and speculative instruction execution
US6356918B1 (en) * 1995-07-26 2002-03-12 International Business Machines Corporation Method and system for managing registers in a data processing system supports out-of-order and speculative instruction execution
US5974524A (en) * 1997-10-28 1999-10-26 International Business Machines Corporation Method and apparatus for reducing the number of rename registers in a processor supporting out-of-order execution
JP2003503800A (ja) * 1999-06-28 2003-01-28 ネオセラ・システムズ・リミテッド ロジック・イベント・シミュレーション
JP2003256265A (ja) * 2002-02-18 2003-09-10 Internatl Business Mach Corp <Ibm> 検索メモリ、メモリ検索用コントローラ、メモリ検索方法
US6775166B2 (en) * 2002-08-30 2004-08-10 Mosaid Technologies, Inc. Content addressable memory architecture
US7467129B1 (en) * 2002-09-06 2008-12-16 Kawasaki Microelectronics, Inc. Method and apparatus for latency and power efficient database searches
US7506139B2 (en) 2006-07-12 2009-03-17 International Business Machines Corporation Method and apparatus for register renaming using multiple physical register files and avoiding associative search
US20090240875A1 (en) * 2008-03-18 2009-09-24 Chu Albert M Content addressable memory with hidden table update, design structure and method
US7949857B2 (en) * 2008-04-09 2011-05-24 International Business Machines Corporation Method and system for determining multiple unused registers in a processor
US8335912B2 (en) * 2009-04-22 2012-12-18 Oracle America, Inc. Logical map table for detecting dependency conditions between instructions having varying width operand values
US9690625B2 (en) * 2009-06-16 2017-06-27 Oracle America, Inc. System and method for out-of-order resource allocation and deallocation in a threaded machine

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240507B1 (en) * 1998-10-08 2001-05-29 International Business Machines Corporation Mechanism for multiple register renaming and method therefor
EP1237072A1 (en) * 1999-09-08 2002-09-04 Hajime Seki Register renaming system
CN1581069A (zh) * 2003-07-31 2005-02-16 英特尔公司 具有多位字段的寄存器的重命名
CN101158893A (zh) * 2006-10-03 2008-04-09 Arm有限公司 数据处理系统中的寄存器重命名
CN101169710A (zh) * 2006-10-26 2008-04-30 中国科学院计算技术研究所 对状态寄存器进行重命名的方法和使用该方法的处理器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291425A (zh) * 2017-06-23 2017-10-24 上海兆芯集成电路有限公司 合并解决重命名尺寸问题的部分写入结果的系统和方法
CN107291425B (zh) * 2017-06-23 2020-11-24 上海兆芯集成电路有限公司 合并解决重命名尺寸问题的部分写入结果的系统和方法

Also Published As

Publication number Publication date
US8583901B2 (en) 2013-11-12
US20100205409A1 (en) 2010-08-12
CN101794214A (zh) 2010-08-04
US20140122837A1 (en) 2014-05-01
US9436472B2 (en) 2016-09-06

Similar Documents

Publication Publication Date Title
CN101794214B (zh) 使用多块物理寄存器映射表的寄存器重命名系统及其方法
CN102306093B (zh) 实现现代处理器间接转移预测的装置及方法
US8135942B2 (en) System and method for double-issue instructions using a dependency matrix and a side issue queue
KR100880686B1 (ko) 2개 레벨의 분기 예측 캐시를 갖는 분기 예측
KR100708010B1 (ko) 인덱스와 선택적 경로 정합에 기반하여 데이터를 포워딩하는 저장 버퍼
CN100361072C (zh) 流水线处理一系列处理指令的方法和设备
CN100495325C (zh) 用于按需临时寄存器重命名的方法和系统
CN100440174C (zh) 使用锁定高速缓冲存储器用于直接存入的系统和方法
CN108351830A (zh) 用于存储器损坏检测的硬件装置和方法
CN107122368A (zh) 一种数据校验方法、装置及电子设备
KR102513265B1 (ko) 레지스터 뱅크에 저장된 데이터 요소들의 하나 이상의 벡터와 메모리 사이에서 복수의 데이터 구조를 전송하는 장치 및 방법
CN105701031A (zh) 取决于模式而可动态配置以选择分配至全部或是一个组的多模式组相联高速缓存存储器
CN108228094A (zh) 存储器侧高速缓存中通路的伺机增加
CN101601008B (zh) 用于执行扩展指令的方法和处理器
WO2007019001A1 (en) Call return stack way prediction repair
US6453387B1 (en) Fully associative translation lookaside buffer (TLB) including a least recently used (LRU) stack and implementing an LRU replacement strategy
US8239661B2 (en) System and method for double-issue instructions using a dependency matrix
US10296341B2 (en) Latest producer tracking in an out-of-order processor, and applications thereof
CN103988174A (zh) 无需额外寄存器执行寄存器重命名的数据处理设备和方法
US9171111B1 (en) Hardware emulation method and system using a port time shift register
CN104008021A (zh) 针对多数据体系结构的精确的异常信号发送
CN111078295B (zh) 一种乱序高性能核的混合分支预测装置及方法
CN100388187C (zh) 可变群组组合分支目标地址快取传送每一快取列多目标地址的装置和方法
US7370178B1 (en) Method for latest producer tracking in an out-of-order processor, and applications thereof
CN101819608B (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: 20131120

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