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

文档序号:6480489阅读:121来源:国知局
专利名称:使用多块物理寄存器映射表的寄存器重命名系统及其方法
技术领域
本公开一般涉及处理器架构领域,并且更为特别地涉及超标量体系结构的处理器
中的寄存器重命名。
背景技术
—般而言,处理器是一种可以运行计算机程序以执行算术计算、数据置换等等的 设备。微处理器是这样一种类型的处理器,其将处理器的大多数功能或所有功能都合并在 单个集成电路上。超标量体系结构的微处理器是通过同时将多个指令分派给处理器中的冗 余的运行资源(也称为功能单元)而能够在一个时钟周期中运行不止一个指令的微处理 器。当运行指令和微操作时,处理器通常从寄存器读取源操作数并将结果或目标操作数存 储在寄存器中。寄存器是处理器内的临时存储单元,与其他地方的可用存储器相比,寄存器 的内容可以被更快地访问,并且寄存器通常被用于保存供处理器使用的算术和其他结果。 一个给定的寄存器可包含多个比特,例如8比特、16比特或32比特,并且可通过相应的寄存 器标识符诸如寄存器号来进行访问。 寄存器重命名是在超标量体系结构的处理器中用来允许并行运行指令的各种技 术中的一种。因为处理器的程序指明的寄存器常常比硬件中能够实现的寄存器要少,所以 一个给定的超标量体系结构的处理器实现常常具有比程序中所指明的寄存器数目更多的 寄存器。在通常被称为寄存器重命名的阶段,某个程序所使用的多个通用架构寄存器被关 联到或者被映射到该超标量体系结构的处理器中的多个物理寄存器。例如,在可以发出多 至4条指令供并行执行的超标量体系结构的处理器中,物理寄存器文件中的多至四个空物 理寄存器必须是可用的,以便允许在每个时钟周期多至4个架构寄存器可被重命名。
相关联的架构寄存器与相应的物理寄存器之间的关系通常被记录在物理寄存器 映射表(PRMT)的项中。PRMT中的每个项记录物理寄存器文件中的相应的物理寄存器的状 态,例如相应的物理寄存器是否是空(并且因此是否可用于存储相关联的架构寄存器的数 据)。已解码的程序指令所使用的架构寄存器被关联到相应的物理寄存器,并且每个架构寄 存器的标识符例如地址也被记录在与相关联的物理寄存器相联系的PRMT项中。因此,PRMT 记录每个物理寄存器的状态以及架构寄存器与物理寄存器的关联/映射信息。随着程序指 令的运行,从一个时钟周期到另一个时钟周期,被配置用于存储相关联的架构寄存器的数 据的每个物理寄存器的状态发生变化,并且在PRMT中对已配置的物理寄存器的状态的这 种变化进行跟踪。已配置的物理寄存器不能被用于另一架构寄存器,直到其所关联到的当 前架构寄存器被程序指令释放为止。 物理寄存器越多,使用的物理寄存器文件就越大,使用诸如八十项的寄存器文件 这样的大的物理寄存器文件在近来变得越来越普遍。使用大量的物理寄存器有助于减少发 生由于指令依赖所带来的管道延迟,从而允许一次发出更多的指令。因此,PRMT中的项数 随着物理寄存器的数目增加而增加。然而,在超标量体系结构的处理器中,大的PRMT相比 小的PRMT而言使得更难找到指示关联的物理寄存器为空的项。另外,用传统的专用集成电
11路(ASIC)设计方法和结构来实现的更大的PRMT倾向于需要更大的电路面积、增加路径延 迟,并且结果产生更高的功耗。因为路径延迟和功耗是处理器设计中的两个关键因素并且 影响性能,所以理想的是在对性能只有最小影响的情况下实现用于寄存器重命名的更大的 P丽。

发明内容
在一方面,一种将架构寄存器关联到物理寄存器的寄存器重命名系统包括具有多 个项的物理寄存器映射表和重命名逻辑。该映射表的每个项都指示相应的物理寄存器的状 态。映射表具有多个非重叠的段,其中每个段具有相应的映射表项。重命名逻辑被耦合用 以并行地搜索多个映射表段,以识别每个都指示相应的物理寄存器处于第一状态的项。该 重命名逻辑选择性地将多个架构寄存器中的每个关联到相应的被识别为处于第一状态的 物理寄存器。 在另一方面,一种处理器中的寄存器重命名系统包括第一寄存器块、第二寄存器 块和被耦合到该第一和第二寄存器块的搜索逻辑。第一块中的每个寄存器存储物理寄存器 映射表的第一段中的相应项,其指示相应的物理寄存器的多个状态中的一个。第二块中的 每个寄存器存储物理寄存器映射表的第二段中的相应项,其指示相应的物理寄存器的多个 状态中的一个。搜索逻辑并行地搜索第一和第二寄存器块,以识别第一和第二块中的所存 储的相应的映射表项指示相应的物理寄存器处于第一状态的寄存器。 在另一方面,一种将架构寄存器关联到物理寄存器的寄存器重命名系统包括第一 寄存器块、第二寄存器块、被耦合到该第一寄存器块的第一检查逻辑、被耦合到该第一寄存 器块的第二检查逻辑、被耦合到该第二寄存器块的第三检查逻辑、以及被耦合到该第二寄 存器块的第四检查逻辑。第一寄存器块存储物理寄存器映射表的第一部分,其中第一块中 的每个寄存器存储映射表的第一部分中的相应项。第二寄存器块存储物理寄存器映射表的 第二部分,其中第二块中的每个寄存器存储映射表的第二部分中的相应项。第一检查逻辑 被耦合到第一寄存器块以在第一时钟周期中从第一块的第一端朝着第一块的与第一端相 对的第二端来搜索第一块中的寄存器,以识别映射表的第一部分中的其中每个都指示相应 的物理寄存器为空的项。第二检查逻辑被耦合到第一寄存器块以在第一时钟周期中从第一 块的第二端朝着第一块的第一端来搜索第一块中的寄存器,以识别映射表的第一部分中的 其中每个都指示相应的物理寄存器为空的项。第三检查逻辑被耦合到第二寄存器块以在第 一时钟周期中从第二块的第一端朝着第二块的与第一端相对的第二端来搜索第二块中的 寄存器,以识别映射表的第二部分中的其中每个都指示相应的物理寄存器为空的项。第四 检查逻辑被耦合到第二寄存器块以在第一时钟周期中从第二块的第二端朝着第二块的第 一端来搜索第二块中的寄存器,以识别映射表的第二部分中的其中每个都指示相应的物理 寄存器为空的项。 在一个方面,一种处理器包括物理寄存器映射表、搜索逻辑和映射逻辑。物理寄存 器映射表具有多个项,其中该映射表的每个项都指示相应的物理寄存器的状态。搜索逻辑 被耦合用以并行地搜索映射表的多个段以识别其中每个均指示相应的物理寄存器处于第 一状态的项。搜索逻辑所搜索的每段映射表具有的相应的映射表项与搜索逻辑所搜索的另 一段映射表中的项不相同。映射逻辑被耦合到搜索逻辑并接收多个架构寄存器标识符,其中每个标识符指示相应的架构寄存器。映射逻辑将接收到的每个架构寄存器标识符映射到 相应映射表段中的指示相应的物理表处于第一状态的相应项。 在一方面,一种基于处理器的系统包括输入设备、输出设备、数据存储设备以及耦 合到该输入设备、输出设备和数据存储设备的处理器。该处理器包括多个寄存器块、被耦合 到该寄存器块的搜索逻辑、以及被耦合到该寄存器块和搜索逻辑的映射逻辑。每个寄存器 块存储一段物理寄存器映射表以将映射表的相应项存储在相应寄存器块的每个寄存器中, 每个项指示相应的物理寄存器的状态。搜索逻辑同时搜索寄存器块中的第一块和第二块, 以识别第一块和第二块中的存储指示着相应的物理寄存器处于第一状态的相应项的寄存 器。映射逻辑接收多个架构寄存器标识符,其中每个标识符标识相应的架构寄存器,并且 将每个架构寄存器标识符映射到该第一块和第二块中的被识别为存储着指示相应的物理 寄存器处于第一状态的相应项的相应寄存器,以将每个架构寄存器关联到对应的物理寄存 器。 在一方面,一种在处理器中执行寄存器重命名的方法同时搜索第一段映射表和第
二段映射表以识别该映射表中的其中每个均指示相应的物理寄存器处于第一状态的项。对 于多个架构寄存器,该方法将与每个架构寄存器相关的数据存储在被识别为处于第一状态 的物理寄存器中的相应一个中,以将架构寄存器关联到被识别为处于第一状态的物理寄存器。 在另一方面, 一种在处理器中执行寄存器重命名的方法将物理寄存器映射表的项 存储在多个寄存器块中,以使得相应数目的项被存储在寄存器块中的相应寄存器块中,每 个项分别指示相应的物理寄存器的状态。该方法还在第一时钟周期中按第一方向和不同于 该第一方向的第二方向来搜索第一个寄存器块,以识别其中每个都指示相应的物理寄存器 处于第一状态的项。该方法还将多个架构寄存器中的每个映射到相应的被识别为处于第一 状态的物理寄存器。 在又一方面,一种在处理器中执行寄存器重命名的方法将第一段映射表中的项存 储在第一寄存器块中以及将第二段映射表中的项存储在第二寄存器块中。该方法在第一时 钟周期中识别第一块中的每个均指示相应的物理寄存器为空的物理寄存器映射表项。该方 法在第一时钟周期中还识别第二块中的每个均指示相应的物理寄存器为空的物理寄存器 映射表项。多个要重命名的架构寄存器被分组成第一组架构寄存器和第二组架构寄存器。 架构寄存器组之一中的架构寄存器被关联到所识别的与第一块中存储的映射表项相关联 的空物理寄存器。另一组架构寄存器中的架构寄存器被关联到所识别的与第二块中存储的 映射表项相关联的空物理寄存器。


图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。在图l所示的例子中,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所承载的每个 信号指示相应的PMT项中所记录的相应的物理寄存器的状态。例如,如果物理寄存器为 空,则PRMT 5中的相应的项将通过存储对应的值来指示物理寄存器的状态为空。同样,如
14果物理寄存器不为空(例如,处于除了"空"之外的状态),则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_l,空项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倍)个七比特比较。这种设计消耗了大量的功率。最后,诸如图l中所示出的 寄存器重命名系统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的多个段中的至少某些段可以被并行地搜 索。也S卩,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项指示相应物理寄存器不是空时,标记信号可以 具有第二值,例如二进制值O。 在一个实施例中,检查逻辑212、214、216和218以不同的方向搜索在第一寄存器 块202a和第二寄存器块202b中所存储的PRMT 5的项,以识别PRMT 5中的指示相应的物理 寄存器处于多个状态中的第一状态(诸如空状态)的那些项。例如,检查逻辑212可以通 过以对应于从第一块202a的顶部朝着第一块202a的底部读取第一寄存器块202a的第一 方向读取标记信号,来搜索空物理寄存器。类似地,检查逻辑214可以通过以与第一方向不 相同的、对应于从第一块202a的底部朝着第一块202a的顶部读取第一寄存器块202a的第 二方向读取标记信号,来搜索空物理寄存器。换言之,检查逻辑212首先从存储在第一寄存 器块202a中的顶部寄存器(被标记为寄存器0)中的PRMT 5的项0读取标记信号,以确定
16相应的物理寄存器的状态是否是空,接着从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中的每个可以是前导l探测电路, 其探测并识别它所遇到的指示相应的物理寄存器为空的第一项,即使当PRMT 205可能存 在指示相应的物理寄存器为空的多个项时,也是如此。因此,四个检查逻辑212、214、216和 218可以并行地识别多至四个PRMT 205的项,其中每个项均指示相应的物理寄存器为空。
作为用以识别空物理寄存器的搜索的结果,每个检查逻辑212、214、216和218提 供多个结果信号,其中每个结果信号指示PMT 205中的相应项是否被识别为指示相应的 物理寄存器为空。例如,在图4中所说明的实施例中,检查逻辑212、214、216和218中的每 个都提供四十个结果信号,因为每个都接收四十个标记信号。在一个实施例中,每个检查逻 辑212、214、216和218都将对应于它探测为指示相应的物理寄存器为空的第一项的结果信 号设置成第一值,例如二进制值l,并且将剩余的结果信号设置成第二值,例如二进制值O。 这允许块202a、202b中多至四个所存储的项指示相应的物理寄存器为空的寄存器被识别。 继而,这识别了多至四个架构寄存器可被重命名成的多至四个处于空状态的物理寄存器。
在一个实施例中,"满(full)"检测器222被耦合以接收来自检查逻辑212、214的 结果信号,而"满"检测器224被耦合以接收来自检查逻辑216、218的结果信号。基于接收 自检查逻辑212、214的结果信号,"满"检测器222输出两个有效信号,有效信号0和有效
17信号1。如果来自检查逻辑212、214的结果信号指示两个空物理寄存器被识别,则有效信 号0和有效信号1 二者都被设置成第一值,例如二进制值1。如果结果信号指示仅有一个空 物理寄存器被识别,则仅仅有效信号0被设置成第一值而有效信号1被设置成第二值,例如 二进制值0。如果结果信号指示没有任何空物理寄存器被识别,则有效信号O和有效信号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所示,四个架构寄存器标识符ARO、 AR1 、 AR2和AR3被分配逻辑245接收并 且作为两个架构寄存器标识符一组的两组被提供给配置逻辑235。在一个实施例中,分配 逻辑245在给定时钟周期中将AR0,AR1分组到第一组,例如组0,以及将AR2和AR3分组到 第二组,例如组l,并且在随后的时钟周期中交换编组顺序以将ARO,ARl分组到第二组并将 AR2和AR3分组到第一组,反之亦然。这两组架构寄存器标识符中的每组都被作为两个信号 (即被分配的寄存器0和被分配的寄存器1)提供给配置逻辑235。分配逻辑245还可接收 用以指示由架构寄存器标识符AR0-AR3所表示的四个架构寄存器标识符中的哪一个或哪 几个需要被重命名的四比特有效信号。在一个实施例中,如果这两组架构寄存器标识符中 的任何一组仅具有一个有效架构寄存器标识符,也即由该组中的两个标识符所表示的两个 架构寄存器中的仅仅一个需要被重命名,则该有效架构寄存器标识符将被作为该组的被分 配寄存器0提供给配置逻辑235。 在一个实施例中,对于第一组架构寄存器标识符,配置逻辑235将由被分配寄存 器0信号所表示的架构寄存器标识符记录在由检查逻辑212所识别的第一块202a中所存 储的PRMT 205的项中,并且将由被分配寄存器1信号所表示的架构寄存器标识符记录在由 检查逻辑214所识别的第一块202a中所存储的PRMT 205的项中。类似地,对于第二组架
18构寄存器标识符,配置逻辑235将由被分配寄存器0信号所表示的架构寄存器标识符记录 在由检查逻辑216所识别的第二块202b中所存储的PRMT 205的项中,并且将由被分配寄 存器1信号所表示的架构寄存器标识符记录在由检查逻辑218所识别的第二块202b中所 存储的PRMT205的项中。例如,如果寄存器12和寄存器27分别被检查逻辑212、214识别 为存储着指示相应的物理寄存器为空的PMT项,则ARO将被记录在寄存器12中所存储的 项12中,并且AR1将被记录在寄存器27中所存储的项27中,其中假设ARO和AR1都是有效 的架构寄存器标识符并且假设ARO和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中的指示相应的物 理寄存器为空的那些项中。
19
在一个实施例中,第一配置逻辑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项中的相应的项。更
20为具体地,映射逻辑930可选择性地将每个架构寄存器标识符记录在指示相应的物理寄存 器处于第一状态的相应的PRMT项中。映射逻辑930还可将记录着相应的架构寄存器标识 符的PRMT项的状态从第一状态改变成不同于该第一状态的另一状态。在一个实施例中,映 射逻辑930可对架构寄存器标识符到映射表的每段中的项的关联进行均衡。具体地,映射 逻辑930可基于先前被关联到每段映射表的项的架构寄存器标识符的相应数量,对要关联 到每段映射表的项的架构寄存器标识符的相应数量进行调节。 在一个实施例中,搜索逻辑920可被耦合到映射逻辑930以提供多个标记信号,其 中每个标记信号指示寄存器块中的相应寄存器中是否存储有指示相应的物理寄存器处于 第一状态的相应项。映射逻辑930可将架构寄存器标识符分组成多组架构寄存器标识符。 映射逻辑930还可在第一轮关联中将每组架构寄存器标识符关联到各段映射表中的项。映 射逻辑930还可基于在第一轮关联中被关联到每段映射表中的项的架构寄存器标识符的 相应数量在该第一轮关联之后的第二轮关联中将每组架构寄存器标识符关联到该映射表 的不同段中的项。 图10说明在根据另一个非限制性的说明的实施例的处理器中的寄存器重命名系 统1000。寄存器重命名系统1000包括具有多个非重叠段的PRMT,其中每个段被存储在相 应的寄存器块中。PRMT中的每个项与相应的物理寄存器相关联,并且记录相应的物理寄存 器所处于的状态,以及被重命名到相应的物理寄存器的架构寄存器的标识符,如果存在任 何被重命名到其的架构寄存器。 在一个实施例中,如图IO中所示出的,寄存器重命名系统IOOO可包括存储在第一 寄存器块1002a中的第一 PRMT段1005a和存储在第二寄存器块1002b中的第二 PRMT段 1005b。寄存器重命名系统1000还可包括耦合到寄存器块1002a、 1002b的搜索逻辑1010。 搜索逻辑1010可并行地搜索第一和第二寄存器块1002a、1002b,并在这些块中识别所存储 的相应的映射表项指示相应的物理寄存器处于第一状态(例如为空)的寄存器。尽管图10 中仅仅示出两个PRMT段1005a、 1005b,但是在其他实施例中可存在更大数量的PRMT段,例 如四个或八个,它们被存储在等量的寄存器块中并且可被同时搜索。 在一个实施例中,搜索逻辑IOIO可按第一方向以及同时按不同于该第一方向的 第二方向搜索第一寄存器块1002a,此时还按该第一方向以及同时按该第二方向搜索第二 寄存器块1002b,以识别具有指示相应的物理寄存器处于第一状态的相应项的寄存器。例 如,搜索逻辑IOIO可同时从块1002a的顶部朝着块1002a的底部以及从块1002a的底部朝 着块1002a的顶部搜索第一寄存器块1002a。搜索逻辑1010还可按相同的方式搜索第二寄 存器块1002b 。 在一个实施例中,寄存器重命名系统1000还可包括分配逻辑1020以接收多个架 构寄存器标识符并将其分组成第一和第二组架构寄存器标识符,其中每个架构寄存器标识 符均代表相应的架构寄存器。分配逻辑1020可按第一组和第二组架构寄存器标识符来提 供架构寄存器标识符以重命名分为两组的架构寄存器,其中所接收的每个架构寄存器标识 符或者在第一组中或者在第二组中。 在一个实施例中,寄存器重命名系统1000还可包括耦合到第一和第二寄存器块 1002a、1002b,搜索逻辑1010、以及分配逻辑1020的配置逻辑1030。配置逻辑1030可从分 配逻辑1020接收第一和第二组架构寄存器标识符,并选择性地将每个架构寄存器标识符关联到第一寄存器块1002a或第二寄存器块1002b中的相应的项。在一个实施例中,搜索 逻辑IOIO可提供多个标记信号给配置逻辑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)状态或写回状
23态)。 图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之 类的常规寄存器重命名系统实现而言,根据此处所公开的各种实施例的寄存器重命名系统 提供了若干优点。例如,通过并行地搜索物理寄存器映射表中的多个段以及按两个不同方 向来搜索每个段,可以减小在寻找空物理寄存器时的路径延迟。减小的路径延迟应当也有 利地导致降低的功耗。 上述对说明的实施例的描述,包括摘要中所描述的内容,不是旨在作为穷举或将 实施例限制到所公开的精确形式。此处尽管出于说明性的目的描述了具体实施例和例子, 但是本领域技术人员将认识到在不偏离本公开内容的精神和范围的条件下可以做出各种 等价的修改。此处所提供的各种实施例的教导可以应用到其他环境,而不必是上面一般描 述的寄存器重命名的示例性环境。本领域技术人员将理解,尽管上面所描述的并在附图中 所示出的实施例一般针对寄存器重命名的环境,但是与在处理器中使用物理寄存器相关的 应用也可从此处所描述的概念中受益。 根据上述的详细描述,可以对实施例做出各种改变。 一般而言,在以下权利要求书 中,所使用的术语不应当被解释成将权利要求限制到在说明书和权利要求书中所公开的具 体实施例,而是应当被解释成包括这些权利要求所保护的所有等同的全部范围内的所有可 能的实施例。因此,权利要求书不局限于本公开内容。
权利要求
一种将架构寄存器关联到物理寄存器的寄存器重命名系统,包括具有多个项的物理寄存器映射表,所述映射表中的每个项均指示相应的物理寄存器的状态,所述映射表具有多个非重叠段,其中每个段均具有相应的映射表项;以及重命名逻辑,所述重命名逻辑被耦合用以并行地搜索所述映射表的多个段,以识别每个均指示相应的物理寄存器处于第一状态的项,所述重命名逻辑还用以选择性地将多个架构寄存器中的每个关联到相应的被识别为处于所述第一状态的物理寄存器。
2. 根据权利要求1所述的寄存器重命名系统,还包括耦合到所述重命名逻辑的多个寄存器块,所述寄存器块用以储存所述物理寄存器映射 表的项,每个寄存器块储存所述映射表中的相应段并且每个块中的每个寄存器储存所述映 射表的相应段中的相应项。
3. 根据权利要求2所述的寄存器重命名系统,其中所述重命名逻辑包括搜索逻辑,所 述搜索逻辑用以搜索所述多个寄存器块以识别其中所储存的指示相应的物理寄存器处于 所述第一状态的项,所述搜索逻辑用以同时按第一方向和与所述第一方向不同的第二方向 搜索每个所述块。
4. 根据权利要求2所述的寄存器重命名系统,其中所述重命名逻辑包括映射逻辑,所 述映射逻辑用以接收多个架构寄存器标识符,其中每个架构寄存器标识符代表相应的一个 架构寄存器,以及用以选择性地将每个所述架构寄存器标识符关联到指示相应的物理寄存 器处于所述第一状态的相应的映射表项。
5. 根据权利要求4所述的寄存器重命名系统,其中所述映射逻辑选择性地将每个架构 寄存器标识符记录在指示相应的物理寄存器处于所述第一状态的相应的映射表项中。
6. 根据权利要求5所述的寄存器重命名系统,其中所述映射逻辑将记录相应的架构寄 存器标识符的映射表项的状态从所述第一状态改变成不同于所述第一状态的另一状态。
7. 根据权利要求4所述的寄存器重命名系统,其中所述映射逻辑对架构寄存器标识符 到所述映射表的每个段中的项的关联进行均衡。
8. 根据权利要求7所述的寄存器重命名系统,其中所述映射逻辑基于先前关联到所述 映射表的每个段中的项的架构寄存器标识符的相应数量,调整要关联到所述映射表的每个 段中的项的架构寄存器标识符的相应数量。
9. 根据权利要求4所述的寄存器重命名系统,其中所述搜索逻辑被耦合到映射逻辑以 提供多个标记信号,其中每个所述标记信号指示所述寄存器块中的相应的寄存器中是否储 存有指示相应的物理寄存器处于所述第一状态的相应项。
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所述的方法,还包括将架构寄存器之一的标识符存储在与被识别为空的物理寄存器之一相关联的相应项 中;以及设置将所述相应项的状态以指示相应的物理寄存器的状态为不同于空的状态。
全文摘要
本发明提供了使用多块物理寄存器映射表的寄存器重命名系统及其方法。提供了使用物理寄存器映射表的多块实现的处理器架构的多个实施例。将架构寄存器关联到物理寄存器的寄存器重命名系统包括物理寄存器映射表和重命名逻辑。物理寄存器映射表具有多个项,每个项指示相应的物理寄存器的状态。映射表具有多个非重叠段,其中每个段都具有映射表的相应的项。重命名逻辑被耦合用以并行地搜索映射表的多个段,以识别指示相应的物理寄存器具有第一状态的项。重命名逻辑选择性地将多个架构寄存器中的每个关联到相应的被识别为处于第一状态的物理寄存器。本发明还提供了使用物理寄存器映射表的多块实现的方法。
文档编号G06F9/38GK101794214SQ20091000488
公开日2010年8月4日 申请日期2009年2月4日 优先权日2009年2月4日
发明者吴永强, 孙红霞, 朱鹏飞 申请人:世意法(北京)半导体研发有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1