使用影子寄存器的高效硬件实现的设备及其方法

文档序号:6480308阅读:197来源:国知局
专利名称:使用影子寄存器的高效硬件实现的设备及其方法
技术领域
本公开一般涉及处理器架构的领域,并且更具体地,涉及使用处理器中影子寄存 器(shadow register)的寄存器重命名。
背景技术
通常,处理器是能够执行计算机程序以实施算法计算、数据置换(permutation) 等的设备。微处理器是一种类型的处理器,其将处理器的所有或大部分功能集成在单个集 成电路上。超标量微处理器是可以通过将多条指令同时调度到处理器中冗余的执行资源 (也称为功能单元),从而在一个时钟周期期间执行不止一条指令的微处理器。当执行指 令和微操作时,处理器通常从寄存器读取源操作数并且将结果或目的操作数存储在寄存器 中。寄存器是处理器内的临时存储单元,对其内容的访问可以比对其他位置的可用存储器 的访问更快,并且寄存器通常用于保存供处理器使用的运算和其他结果。给定的寄存器可 以包含多个比特,例如8比特、16比特或32比特,并且可以通过相应的寄存器标识符,例如 寄存器号,来寻址。 由处理器执行的程序通常将读取和写入指定到由指令集架构所规定的有限寄存 器集合,并且该有限的寄存器集合称为架构寄存器。例如,给定的指令集架构可以规定32 个均为64比特宽的整型寄存器以及32个均为64比特宽的浮点寄存器。在这种情况下,针 对运行该特定指令集架构的处理器写成的程序将读取和写入的操作指定到那64个架构寄 存器。 在超标量计算中,寄存器重命名逻辑通常用于将架构寄存器重命名或映射成相应 的物理寄存器,从而可以发布和执行更多相关的指令,同时避免例如故障数据相关性的问 题。物理寄存器的数目通常大于架构寄存器的数目。例如,在给定的处理器中,物理寄存器 可能是架构寄存器的两倍。架构寄存器映射表(ARMT)和物理寄存器映射表(PRMT)用于记 录架构寄存器和物理寄存器之间的映射关系。具体地,ARMT针对每个架构寄存器记录架构 寄存器被重命名或映射成的物理寄存器的物理寄存器标识符。PRMT为物理寄存器集合中的 每个物理寄存器记录状况、操作状态和映射关系。 影子寄存器是处理器中的物理寄存器,其通常在调试、异常和中断期间使用。它们 在发生例如异常或中断之类的改变常规的指令执行流的状态时提供临时数据存储。传统 地,影子寄存器通过使用两个寄存器集合或寄存器文件而实现在处理器中,其中处理器在 常规状态期间使用两个寄存器集合中的第一寄存器集合,并且在例如异常或中断的非常规 状态期间使用两个寄存器集合中的第二寄存器集合,例如影子寄存器。更具体地,当在非常 规状态时,存储在第一寄存器集合中的数据被复制到第二寄存器集合或影子寄存器,以便 处理器使用第二寄存器集合来执行指令。当处理器返回到常规状态时,存储在第二寄存器 集合中的数据被复制回第一寄存器集合以便处理器对其进行操作。例如,当处理器处于常 规状态时,第一寄存器集合可用于重命名多个架构寄存器。当处理器由于异常或中断而进 入到非常规状态时,处理器切换到使用第二寄存器集合来重命名那些架构寄存器。当处理
8器再次返回到常规状态时,其切换到使用第一寄存器集合来重命名架构寄存器。 然而,在影子寄存器的常规实现中,在两个寄存器集合之间来回切换是既耗时又
耗能的。特别地,当数据从一个寄存器集合复制到另一寄存器集合时,会花费时间。此外,
从源寄存器读取数据、传送数据并且将数据写入目的寄存器的操作都消耗功率。而且,尽管
在任意给定的时间仅一个寄存器集合被使用,但需要两个寄存器集合来实现影子寄存。因
此,影子寄存器的常规实现导致硬件的低效使用,因为在任意给定的时间,两个寄存器集合
中的一个寄存器集合并不被使用。

发明内容
在一个方面中,处理器中的寄存器系统包括一个存储数据的物理寄存器集合以及 连接到该物理寄存器集合的寄存器重命名逻辑。每个物理寄存器由相应的物理寄存器标识 符标识并且具有多种操作状态中的一种操作状态。当处理器处于第一处理器状态时,寄存 器重命名逻辑将数据存储在该物理寄存器集合中并且从该物理寄存器集合获取数据。响应 于处理器从第一处理器状态进入到第二处理器状态的指示,寄存器重命名逻辑将该物理寄 存器集合中的具有第一操作状态的物理寄存器标识为第一组寄存器,并且将该物理寄存器 集合中的剩余物理寄存器标识为第二组寄存器。当处理器处于第二处理器状态时,寄存器 重命名逻辑将数据存储到第二组寄存器而非第一组寄存器中,并且从第二组寄存器而非第 一组寄存器获取数据。 在一个方面中,处理器包括一个存储数据的物理寄存器集合;具有多个ARMT条 目的架构映射表(ARMT),每个ARMT条目对应于相应的架构寄存器;物理寄存器映射表 (PRMT)具有多个PRMT条目,每个PRMT条目对应于相应的一个物理寄存器,以及寄存器重命 名逻辑,被连接用以设置ARMT条目和PRMT条目并且将数据存储在物理寄存器中。每个物理 寄存器由相应的物理寄存器标识符来标识,并且具有多种操作状态中的一种操作状态。每 个ARMT条目记录相应的架构寄存器被重命名成的相应的一个物理寄存器的物理寄存器标 识符。每个PRMT条目具有状态字段以及AR字段,其中状态字段指示多种操作状态中的相 应物理寄存器所处于的一种操作状态,AR字段指示被重命名成相应的物理寄存器的相应架 构寄存器。在处理器从第一处理器状态进入到第二处理器状态之前,寄存器重命名逻辑将 处于第一操作状态中的第一组物理寄存器与处于除第一操作状态外的多种操作状态之一 的第二组物理寄存器进行区分。在处理器处于第二处理器状态时,寄存器重命名逻辑将第 二组物理寄存器用于架构寄存器重命名,同时保持存储在第一组物理寄存器中的数据和相 应的PRMT条目不变。 在一个方面中,基于处理器的系统包括输入设备、输出设备、数据存储设备以及连 接到输入设备、输出设备和数据存储设备的处理器。处理器包括一个存储数据的物理寄存 器集合和连接到该物理寄存器集合的寄存器重命名逻辑。每个物理寄存器由相应的物理寄 存器标识符来标识并且具有多种操作状态中的一种操作状态。当处理器处于第一处理器状 态时,寄存器重命名逻辑将数据存储在该物理寄存器集合中并且从该物理寄存器集合获取 数据。响应于处理器从第一处理器状态进入到第二处理器状态的指示,寄存器重命名逻辑 将该物理寄存器集合中的具有第一操作状态的物理寄存器标识为第一组寄存器,并且将该 物理寄存器集合中的其他物理寄存器标识为第二组寄存器。当处理器处于第二处理器状态时,寄存器重命名逻辑将数据存储在第二组寄存器中并且从第二组寄存器获取数据,同时 保持存储在第一组寄存器中的数据和相应的PRMT条目不变。 在一个方面中,一种方法在处理器中使用一个物理寄存器集合来进行寄存器重命 名,其中每个物理寄存器均用于存储数据。当处理器处于第一处理器状态时,所述方法改变 存储在来自该物理寄存器集合的第一物理寄存器中的数据以将第一架构寄存器重命名成 第一物理寄存器。该方法检测处理器从第一处理器状态进入到第二处理器状态。响应于检 测到处理器从第一处理器状态进入到第二处理器状态,确定该物理寄存器集合中的每个物 理寄存器的相应操作状态。响应于检测到处理器从第一处理器状态进入到第二处理器状 态,该物理寄存器集合中的具有第一操作状态的那些物理寄存器被标识为第一组寄存器, 而该物理寄存器集合中的具有除第一操作状态外的操作状态的那些物理寄存器被标识为 第二组寄存器。当处理器处于第二处理器状态时,所述方法改变存储在来自该物理寄存器 集合的第二物理寄存器中的数据,以将第二架构寄存器重命名成第二组物理寄存器中的第 二物理寄存器。当处理器处于第二处理器状态时,该方法保持存储在第一组物理寄存器中 的数据。 在另一方面中,一种方法在处理器中使用一个物理寄存器集合来进行寄存器重命 名。当处理器处于第一处理器状态时,该方法从该物理寄存器集合选择第一物理寄存器以 将第一架构寄存器重命名成第一物理寄存器。该方法在与第一物理寄存器关联的物理寄存 器映射表(PRMT)条目的第一字段中记录第一架构寄存器的标识符。该方法更新与第一物 理寄存器关联的PRMT条目的第二字段以指示多种操作状态中的第一物理寄存器所处于的 一种操作状态。该方法检测处理器进入到第二处理器状态,并且响应于检测到处理器进入 到第二处理器状态,更新与具有第一操作状态的每个所述物理寄存器关联的PRMT条目的 第三字段,以标记相应的物理寄存器。当处理器处于第二处理器状态时,该方法进一步从该 物理寄存器集合中选择除被标记的物理寄存器外的第二物理寄存器,以将第二架构寄存器 重命名成第二物理寄存器。


图1是处理器中的影子寄存器的常规实现的简化框图; 图2A是根据一个非限制性实施方式的处理器中的寄存器系统的简化框图; 图2B是根据一个非限制性实施方式的图2A的寄存器系统的映射表的示图; 图3是根据一个非限制性实施方式的影子寄存器的实现的简化示图; 图4是根据一个非限制性实施方式的处理器的简化框图; 图5是根据一个非限制性实施方式的基于处理器的系统的简化框图; 图6是根据一个非限制性实施方式的在处理器中使用一个物理寄存器集合以便
进行寄存器重命名的处理的流程图; 图7是根据另一个非限制性实施方式的在处理器中使用一个物理寄存器集合以 便进行寄存器重命名的处理的流程图。 在附图中,相同的附图标记标识类似的单元或动作。附图中单元的尺寸和相对位 置不必按比例绘制。此外,所绘制的单元的具体形状不旨在传达关于具体单元的实际形状 的任何信息,并且仅选择用于在附图中易于识别。
具体实施例方式
在下面的描述中,阐述某些特定的细节以便提供对各种公开实施方式的准确理 解。然而,相关领域的技术人员将认识到可以在没有这些具体细节中的一个或多个的情况 下,或利用其他的方法、部件、材料等来实践这些实施方式。在其他情况下,与寄存器重命名 系统、处理器和基于处理器的系统关联的公知结构并没有被详细示出或描述,以避免不必 要地混淆这些实施方式的描述。
图1示出处理器中的影子寄存器的常规实现10。 常规实现10使用第一寄存器系统,该第一寄存器系统包括第一物理寄存器集合 12、相应的物理寄存器映射表(PRMT) 14以及架构寄存器映射表(ARMT) 16。第一物理寄存器 集合12中的每个物理寄存器可以存储数据,例如操作数或指令。每个物理寄存器由相应的 物理寄存器标识符来标识。例如,第一物理寄存器集合12的16个物理寄存器均分配有相 应的号码,从而这些物理寄存器被标识为物理寄存器0、物理寄存器1等等。同样地,通过相 应的架构寄存器标识符来标识每个架构寄存器(未示出)。ARMT 16的每个条目对应于相 应的架构寄存器,并且记录各个架构寄存器最近被重命名成的物理寄存器的物理寄存器标 识符。 PRMT 14的每个条目对应于第一集合12的物理寄存器中的相应的一个,并且具有 有效性字段、架构寄存器(AR)字段以及状态字段。PRMT 14的每个条目记录有效性值、重 命名成第一集合12中的相应物理寄存器的架构寄存器的架构寄存器标识符,以及在多种 操作状态中的相应物理寄存器所处于的操作状态。有效性字段记录有效性值,该值指示相 应的物理寄存器是否是由所记录的架构寄存器标识符所标识的架构寄存器最近被重命名 成的物理寄存器。例如,PRMT条目的有效性字段中的二进制值1指示相应的物理寄存器是 由所记录的架构寄存器标识符所标识的架构寄存器最近被重命名成的物理寄存器,而二进 制值0则做出相反的指示。AR字段记录被重命名成对应于该特定PRMT条目的第一集合12 的物理寄存器的架构寄存器的架构寄存器标识符。状态字段指示相应的物理寄存器的操作 状态,其基于相应的物理寄存器当前处于哪个流水线级。因此,操作状态包括空(ET)、重命 名(RD)、写回(WT)和提交(CM)。 常规实现10也使用第二寄存器系统,其包括第二物理寄存器集合112、相应的 PRMT 114和ARMT 116,以分别复制第一物理寄存器集合12、PRMT 14和ARMT 16。 S卩,第二 物理寄存器集合112是针对第一物理寄存器集合12的影子寄存器集合。第二物理寄存器 集合112、PRMT 114和ARMT 116的每个的结构和功能均类似于它的对等方的结构和功能, 并且由于简洁起见而没有再次进行描述。 当处理器处于常规操作状态时,使用第一物理寄存器集合12的物理寄存器来执 行针对架构寄存器的寄存器重命名。因此,在常规状态中不使用第二集合112的物理寄存 器、以及关联的PRMT 114和ARMT 116。然而,在异常或中断期间,处理器进入非常规操作 状态并且切换到使用第二物理寄存器集合112的物理寄存器来重命名架构寄存器。更具体 地,当检测到发生异常或中断时,指示相应的物理寄存器不处于提交状态(CM)的PRMT 14 的每个条目的有效性字段被设置为0,并且那些条目中的每个条目的状态字段被设置以指 示空状态(ET)。当处理器处于非常规状态时,第一物理寄存器集合12和ARMT 16被保持不变。第二寄存器系统被初始化,并且架构寄存器被重命名成第二集合112中的相应物理 寄存器(例如,如果架构寄存器被重命名成第一集合12中的寄存器5,则现有被重命名成 第二集合112中的寄存器5)。对应于映射到架构寄存器的第二集合112中的物理寄存器的 ARMT 116的所有条目和PRMT 114的所有条目将以记录在ARMT 16和PRMT 14的相应条目 中的数据进行填充。PRTM 114中对应于第二集合112的未用物理寄存器的每个条目的状态 字段被设置成指示空状态(ET)。接着,处理器切换到使用第二寄存器系统以便在非常规状 态中进行寄存器重命名。 在非常规状态中,使用第二物理寄存器集合112、 PRMT 114和ARMT 116来执行寄
存器重命名。当在非常规状态中执行的指令需要寄存器重命名时,ARMT 116的所有条目需
要被重新填写。当处理器返回到常规状态时,其切换到使用第一寄存器系统来进行寄存器
重命名,并且第二寄存器系统将不被使用直到处理器下次进入到非常规状态。 正如可以看出的那样,尽管在任意给定的时间仅使用一个集合,但影子寄存器的
常规实现10需要两个硬件集合来实现两个物理寄存器集合和映射表。尽管第一寄存器系
统和第二寄存器系统之间的切换可以通过使用多路复用器在二者间进行选择,或通过将数
据从第一寄存器系统复制到第二寄存器系统来实现,但任意一种方式都不可避免地要消耗
时间和功率。 图2A示出根据一个实施方式的处理器中的寄存器系统20的简化框图。
在一个实施方式中,寄存器系统20可以包括物理寄存器集合22以及寄存器重命 名逻辑25。尽管在图2A中示出的物理寄存器集合22包括十六个物理寄存器,即物理寄存 器0到物理寄存器15,在其他实施方式中,其可以包括不同数目的物理寄存器。集合22中 的每个物理寄存器可以处于多种操作状态中的一种,这些操作状态例如包括空(ET)、重命 名(RD)、写回(WT)和提交(CM)。 寄存器重命名逻辑25连接到物理寄存器集合22。在一个实施方式中,当处理器处 于常规状态时,在将多个架构寄存器重命名成物理寄存器集合22中的多个物理寄存器时, 寄存器重命名逻辑25将数据存储到物理寄存器集合22中的任意或所有物理寄存器中,并 且从其获取数据。当检测到非常规状态开始时,寄存器重命名逻辑25将集合22中的那些 处于提交状态(CM)的物理寄存器标识为第一组物理寄存器,并且将集合22中的不处于提 交状态的其他物理寄存器标识为第二组物理寄存器。换言之,在检测到非常规状态开始时 处于提交状态的那些物理寄存器属于第一组,在检测到非常规状态开始时处于任意其他操 作状态的那些物理寄存器属于第二组。当处理器处于非常规状态时,在重命名多个架构寄 存器时,寄存器重命名逻辑25仅将数据存储在第二组而非第一组的物理寄存器中并且仅 从其获取数据。 因此,当处于常规状态时,整个物理寄存器集合22可以供寄存器重命名逻辑25用 于重命名架构寄存器。然而,当处于非常规状态时,寄存器重命名逻辑25使用物理寄存器 的子集来重命名架构寄存器,即在检测到非常规状态开始时集合22中的那些不处于提交 状态的物理寄存器。当处理器处于非常规状态时,存储在第一组中的物理寄存器(即,在检 测到非常规状态开始时那些处于提交状态的物理寄存器)中的数据被保持不变。通过当处 理器返回到常规状态时恢复使用第一组中的那些物理寄存器以及存储在其中的数据来进 行寄存器重命名,这允许处理器继续常规的指令执行流。在一个实施方式中,在这种影子寄存器的创造性实现中仅使用一个物理寄存器集合(物理寄存器集合22)。特别地,鉴于事实
上通常物理寄存器比架构寄存器多两倍或更多倍并且当处理器处于非常规状态时通常使
用较少的物理寄存器,寄存器重命名逻辑25在常规状态中使用集合22中的一些物理寄存
器,并且在非常规状态中使用集合22中的其他一些物理寄存器以便进行寄存器重命名。因
此,仅一个物理寄存器集合可以用于常规状态和非常规状态二者中,当处理器在状态之间
改变时,寄存器系统20的实施方式不需要在两个物理寄存器集合之间来回切换。 图2B示出根据一个实施方式的寄存器系统20的映射表、PRMT24和ARMT 26。 在一个实施方式中,PRMT 24的每个条目具有有效性字段、锁定字段、AR字段和状
态字段。有效性字段、AR字段和状态字段类似于PRMT 14中的那些并且由于简洁起见而不
再次进行描述。与ARMT 16的条目类似,ARMT 26的每个条目记录相应的物理寄存器的标
识符,例如物理寄存器号,相应的架构寄存器将重命名成该物理寄存器号。 图3示出根据一个实施方式的使用图2A和图2B的寄存器系统20的影子寄存器
的实现30。 图3示出当物理寄存器集合22、 PRMT 24和ARMT 26处于常规状态时和当处于非 常规状态时它们的快照。下面将参考图2A、图2B和图3来提供对寄存器系统20的进一步 描述。 由寄存器重命名逻辑25来设置PRMT 24的给定条目的锁定字段,以便标记相应的 物理寄存器,从而将相应的物理寄存器与集合22中的一个或多个其他物理寄存器区分开。 在一个实施方式中,寄存器重命名逻辑25将PRMT 24的每个条目的锁定字段设置成二进制 值0,以便当处理器处于常规状态时解锁集合22中的所有物理寄存器。当寄存器重命名逻 辑25从集合22选择物理寄存器以便将架构寄存器重命名成这些物理寄存器时,其仅选择 那些处于非锁定状态的物理寄存器。因此具有通过相应的锁定字段指示的非锁定状态的那 些物理寄存器可以用于选择。换言之,当处理器处于常规状态时,集合22中的所有物理寄 存器可用于寄存器重命名。 当检测到非常规状态开始时,寄存器重命名逻辑25标识集合22中处于提交状态 的那些物理寄存器,并且将这些标识的物理寄存器的每个的锁定字段设置成二进制值1以 "锁定"这些物理寄存器。因此,当检测到非常规状态开始时,处于提交状态设置的那些物理 寄存器被设置成锁定状态,而集合22中处于除提交状态以外的操作状态之一的剩余物理 寄存器保持在非锁定状态。在非常规状态期间,仅处于非锁定状态的那些物理寄存器可供 寄存器重命名逻辑25选择用于进行寄存器重命名。存储在那些物理寄存器中的数据被锁 定,并且对应于那些锁定的物理寄存器的PRMT 24的条目在非常规状态期间保持不变。当 检测到常规状态开始时,对于每个锁定的物理寄存器,寄存器重命名逻辑25将锁定字段重 新设置为二进制值0,因为当处于常规状态时,集合22中的所有物理寄存器可用于寄存器 重命名。 在一个实施方式中,除了当处理器在常规和非常规状态之间改变时更新锁定字 段,响应于处理器从一个状态改变到另一个状态,寄存器重命名逻辑25还更新PRMT 24条
目和ARMT 26条目的有效性字段和状态字段。在一个实施方式中,当检测到非常规状态开 始时,对于不处于提交状态的每个物理寄存器(即,非锁定物理寄存器),寄存器重命名逻 辑25将相应的有效性字段重新设置成值0。对于每个非锁定物理寄存器,寄存器重命名逻辑25还将相应的状态字段设置成指示空状态(ET)。寄存器重命名逻辑25附加地将ARMT26 的条目设置成空(NULL)值,或可替换地,将ARMT 26的条目设置成集合22中的可用物理寄 存器范围以外的物理寄存器标识符,以初始化这些条目。当在非常规状态中执行的指令需 要架构寄存器的重命名时,将以集合22中的那些非锁定物理寄存器的适当物理寄存器标 识符来重新填写ARMT 26的条目。当检测到处理器返回到常规状态时,针对每个非锁定物 理寄存器,寄存器重命名逻辑25将相应的有效性字段重新设置成值0,并且设置相应的状 态字段以指示空状态。这些动作连同将针对每个锁定的物理寄存器的锁定字段重新设置成 值O,将恢复PRMT 24以便在常规状态中操作。 在一个实施方式中,为了准备返回到常规状态,寄存器重命名逻辑25通过使用 记录在与那些锁定的物理寄存器关联的PRMT 24的条目中的互相关或重命名关系来恢复 ARMT 26。具体地,寄存器重命名逻辑25可以通过在ARMT 26的给定条目中记录PRMT 24 的条目的物理寄存器标识符来重新填充ARMT 26的给定条目,该PRMT 24的条目在其AR字 段中记录架构寄存器标识符。寄存器重命名逻辑25可以持续地这样做,直到ARMT 26的所 有条目被恢复到在处理器进入到非常规状态之前的内容。
图4示出根据一个实施方式的处理器40的简化框图; 在一个实施方式中,处理器40可以包括物理寄存器集合42、PRMT 44、ARMT 46,以 及连接到物理寄存器集合42、PRMT 44、ARMT 46的寄存器重命名逻辑45。物理寄存器集合 42可以类似于物理寄存器集合22。更具体地,集合42的每个物理寄存器通过相应的物理寄 存器标识符来标识,并且具有多种操作状态中的一种操作状态,所述多种操作状态包括空、 重命名、写回和提交。ARMT 46可以类似于ARMT 26,其中ARMT 46的每个条目记录相应的 架构寄存器被重命名成的物理寄存器集合42中的对应物理寄存器的物理寄存器标识符。
在一个实施方式中,PRMT 44具有多个条目,每个条目对应于物理寄存器集合42 中的相应一个物理寄存器。PRMT 44的每个条目具有指示相应的物理寄存器所处于的操作 状态之一的状态字段,以及指示被重命名成对应物理寄存器的相应架构寄存器的AR字段。 在一个实施方式中,PRMT 44的每个条目可以附加地具有有效性字段和锁定字段。有效性 字段可以被设置成第一有效性值,例如,二进制值1,从而指示相应的物理寄存器是在AR字 段中指示的架构寄存器最近被重命名成的物理寄存器。可替换地,有效性字段可以被设置 成第二有效性值,例如二进制值0,从而指示相应的物理寄存器不是在AR字段中指示的架 构寄存器最近被重命名成的物理寄存器。锁定字段可以被设置成指示相应的物理寄存器是 否被标识为第一组物理寄存器中的物理寄存器之一。在一个实施方式中,第一组中的物理 寄存器具有锁定状态,集合42中的剩余物理寄存器具有非锁定状态。 寄存器重命名逻辑45设置和更新PRMT 44和ARMT 46的条目。其还将数据存储 在物理寄存器集合42中并从其获取数据。在一个实施方式中,在处理器从第一处理器状态 (其一个例子是常规状态)进入到第二处理器状态(其一个例子是非常规状态)之前,寄 存器重命名逻辑45区分处于第一操作状态(例如提交状态)的第一组物理寄存器与处于 除第一操作状态以外的操作状态之一的第二组物理寄存器。当处理器处于第二处理器状态 时,寄存器重命名逻辑45仅使用第二组物理寄存器来进行架构寄存器重命名,同时将存储 在第一组物理寄存器中的数据以及PRMT 44中的相应条目保持不变。 在一个实施方式中,当寄存器重命名逻辑45接收到处理器正在从第一处理器状
14态进入到第二处理器状态的指示时,其针对第二组物理寄存器的每个物理寄存器,将有效 性字段设置成第二有效性值。响应于接收到关于处理器正在从第一处理器状态进入第二处 理器状态的指示,寄存器重命名逻辑45还设置第二组中的每个物理寄存器的PRMT 44的相 应条目的状态字段,以指示空状态。 在一个实施方式中,寄存器重命名逻辑45将PRMT 44的每个条目的锁定字段设置 成第一锁定值,例如二进制值0,以便当处理器处于第一处理器状态时解锁相应的PRMT条 目和相应的物理寄存器。寄存器重命名逻辑45还将第一组中的每个物理寄存器的PRMT 44 的相应条目的锁定字段设置成第二锁定值,例如二进制值1,以便响应于接收到关于处理器 正在从第一处理器状态进入到第二处理器状态的指示,锁定相应的PRMT条目。当处理器处 于第二处理器状态时,寄存器重命名逻辑45仅将数据存储到相应的PRMT条目指示对应的 物理寄存器的非锁定状态的那些物理寄存器中,并且从其获取数据。 在一个实施方式中,响应于接收到关于处理器正在从第二处理器状态进入第一处 理器状态的指示,在处理器从第二处理器状态进入第一处理器状态之前,寄存器重命名逻 辑45设置针对第二组中的每个物理寄存器的PRMT 44的相应条目的状态字段以指示空状 态。在处理器从第二处理器状态进入第一处理器状态之前,寄存器重命名逻辑45将针对第 二组中的每个物理寄存器的PRMT 44的相应条目的有效性字段设置成第二有效性值。响应 于接收到关于处理器正在从第二处理器状态进入第一处理器状态的指示,在处理器从第二 处理器状态进入到第一处理器状态之前,寄存器重命名逻辑45将第二组物理寄存器中的 每个物理寄存器的相应PRMT条目的锁定字段设置成第一锁定值,以解锁相应的PRMT条目。
在一个实施方式中,响应于接收到关于处理器正在从第一处理器状态进入第二处 理器状态,寄存器重命名逻辑45在处理器从第一处理器状态进入第二处理器状态之前重 新设置ARMT 46的每个条目。例如,寄存器重命名逻辑45将ARMT 46的条目设置成空值或 可替换地,将ARMT 46的条目设置成集合42中的可用物理寄存器范围以外的物理寄存器标 识符以初始化这些条目。响应于接收到关于处理器正在从第二处理器状态进入第一处理器 状态的指示,在处理器返回到第一处理器状态之前,寄存器重命名逻辑45基于对应于第一 组物理寄存器中的物理寄存器的PRMT 44的每个条目的AR字段,恢复记录在ARMT 46的每 个条目中的相应物理寄存器标识符。 图5示出根据一个实施方式的包括影子寄存器实现的基于处理器的系统50的简 化框图。 在一个实施方式中,基于处理器的系统50包括输入设备54、输出设备56、数据存 储设备58和连接到输入设备54、输出设备56和数据存储设备58的处理器52。在一个实 施方式中,处理器52可以包括图2A和图2B的寄存器系统20。具体地,处理器52可以包括 物理寄存器集合22、 PRMT 24、 ARMT 26以及连接到物理寄存器集合22、 PRMT 24、 ARMT 26 的寄存器重命名逻辑25。已经在上文描述了寄存器系统20的结构和操作。输入设备54、 输出设备56和数据存储设备58在现有技术中也是已知的,并且为了简明起见,将不提供对 这些部件的结构和操作的解释。 图6示出根据一个非限制性实施方式的在处理器中使用一个物理寄存器集合以 进行寄存器重命名的处理60。 在61,当处理器处于第一处理器状态时,处理60改变存储在来自该物理寄存器集
15合的第一物理寄存器中的数据,以将第一架构寄存器重命名成第一物理寄存器。在62,处理 60检测到处理器从第一处理器状态进入到第二处理器状态。在63,响应于检测到处理器从 第一处理器状态进入到第二处理器状态,处理60确定该物理寄存器集合中的每个物理寄 存器的相应的操作状态。在64,响应于检测到处理器从第一处理器状态进入到第二处理器 状态,处理60将该物理寄存器集合中的具有第一操作状态的那些物理寄存器标识为第一 组物理寄存器,并且将该物理寄存器集合中具有除第一操作状态以外的操作状态的那些物 理寄存器标识为第二组物理寄存器。在65,当处理器处于第二处理器状态时,处理60改变 存储在来自第二组物理寄存器的第二物理寄存器中的数据,以将第二架构寄存器重命名成 第二组物理寄存器中的第二物理寄存器。在66,当处理器处于第二处理器状态时,处理60 保持存储在第一组物理寄存器中的数据。 在一个实施方式中,响应于检测到处理器从第一处理器状态进入到第二处理器状 态,处理60将第二组物理寄存器中的每个物理寄存器的相应的操作状态设置成第二操作 状态。处理60可以进一步检测处理器从第二处理器状态返回到第一处理器状态,并且响应 于检测到处理器从第二处理器状态返回到第一处理器状态,将第二组物理寄存器中的每个 物理寄存器的相应的操作状态设置成第二操作状态。 在另一个实施方式中,在改变存储在来自该物理寄存器集合的第一物理寄存器中 的数据以便将第一架构寄存器重命名成第一物理寄存器时,处理60执行多个任务。例如, 处理60可以从该物理寄存器集合选择第一物理寄存器以将第一架构寄存器重命名成第一 物理寄存器。第一物理寄存器的标识符被记录在与第一架构寄存器关联的ARMT条目中,并 且第一架构寄存器的标识符被记录在与第一物理寄存器关联的PRMT条目中。处理60还可 以将与第一架构寄存器关联的数据存储在第一物理寄存器中,并且更新与第一物理寄存器 关联的PRMT条目的状态字段,以指示在多种操作状态中的第一物理寄存器所处于的操作 状态。 在另一个实施方式中,当处理器处于第一处理器状态时,处理60可以设置与该物 理寄存器集合中的每个物理寄存器关联的PRMT条目的锁定字段,以指示非锁定状态。在另 一个实施方式中,响应于检测到处理器从第一处理器状态进入到第二处理器状态,处理60 可以更新与被标识为具有第一操作状态的每个物理寄存器关联的PRMT条目的锁定字段, 以指示锁定状态。在另一实施方式中,当处理器处于第二处理器状态时,在改变存储在来自 第二组物理寄存器的第二物理寄存器的数据以便将第二架构寄存器重命名成第二组物理 寄存器中的第二物理寄存器时,处理60执行多个任务。例如,处理60可以从第二组物理寄 存器中选择第二物理寄存器以便将第二架构寄存器重命名成第二物理寄存器,在与第二架 构寄存器关联的ARMT条目中记录第二物理寄存器的标识符,并且在与第二物理寄存器关 联的PRMT条目中记录第二架构寄存器的标识符。处理60可以进一步将与第二架构寄存器 关联的数据存储在第二物理寄存器中,并且更新与第二物理寄存器关联的PRMT条目的状 态字段,以指示在多种操作状态中的第二物理寄存器所处于的操作状态。
图7示出根据另一非限制性实施方式的在处理器中使用一个物理寄存器集合以 进行寄存器重命名的处理70。 在71,当处理器处于第一处理器状态时,处理70从该物理寄存器集合选择第一物 理寄存器以将第一架构寄存器重命名成第一物理寄存器。在72,在与第一物理寄存器关联的PRMT条目的第一字段中记录第一架构寄存器的标识符。在73,与第一物理寄存器关联 的PRMT条目的第二字段被更新以指示在多种操作状态中的第一物理寄存器所处于的操作 状态。在74,处理70检测到处理器进入到第二处理器状态。在75,响应于检测到处理器进 入第二处理器状态,与具有第一操作状态的每个物理寄存器关联的PRMT条目的第三字段 被更新以标记相应的物理寄存器。在76,当处理器处于第二处理器状态时,选择来自该物理 寄存器集合的、除被标记的物理寄存器以外的第二物理寄存器,以将第二架构寄存器重命 名成第二物理寄存器。 在一个实施方式中,当处理器进入到第一处理器状态时,处理70可以将与每个物 理寄存器关联的PRMT条目的第三字段设置成第一值,并且响应于检测到处理器进入到第 二处理器状态,将与具有第一操作状态的每个物理寄存器关联的PRMT条目的第三字段更 新成不同于第一值的第二值,以标记相应的物理寄存器。处理70还可以检测处理器从第二 处理器状态返回到第一处理器状态,并且响应于检测到处理器从第二处理器状态返回到第 一处理器状态,将与每个被标记的物理寄存器关联的PRMT条目的第三字段设置成第一值。 此外,在处理器从第二处理器状态返回到第一处理器状态之后,处理70可以进一步从该物 理寄存器集合选择第三物理寄存器,以将第三架构寄存器重命名成第三物理寄存器,并且 在与第三物理寄存器关联的PRMT条目的第一字段中记录第三架构寄存器的标识符。
在另一个实施方式中,处理70可以在与第一架构寄存器关联的ARMT条目中记录 第一物理寄存器的标识符,以将第一架构寄存器重命名成第一物理寄存器,并且响应于检 测到处理器进入到第二处理器状态,重新设置与第一架构寄存器关联的ARMT条目。处理70 还可以检测处理器从第二处理器状态返回到第一处理器状态,并且响应于此,在处理器进 入到第二处理器状态之前,通过在与第一架构寄存器关联的ARMT条目中记录第一架构寄 存器被重命名成的物理寄存器的标识符,恢复与第一架构寄存器关联的ARMT条目。
在另一个实施方式中,响应于检测到处理器将进入到第二处理器状态,处理70可 以更新与在第三字段中具有第一值的每个物理寄存器关联的PRMT条目的第二字段。处理 70可以检测处理器从第二处理器状态返回到第一处理器状态。响应于检测到处理器从第二 处理器状态返回到第一处理器状态,处理70可以更新与在第三字段中具有第一值的每个 物理寄存器关联的PRMT条目的第二字段,以指示第二操作状态。 因此,已经公开了在处理器(例如超标量微处理器)中实现影子寄存器的本发明 方案的实施方式。根据这里公开的各种实施方式的实现方案提供优于影子寄存器的常规实 现(例如在图1中示出的实现IO)的多种优点。例如,在常规状态和非常规状态期间,仅一 个物理寄存器集合被用于寄存器重命名,其中该集合中的一些物理寄存器被用作影子寄存 器。这样不再需要复制的物理寄存器集合用作影子寄存器以及复制的相应PRMT和ARMT集 合。由于在两个寄存器集合间的切换并没有浪费时间,所以可以改进处理器性能。功耗相 应地也被减小。 上述对所示出的实施方式的描述(包括在摘要中所描述的内容)并不旨在穷举或 将这些实施方式限于这里公开的精确形式。尽管为了说明性的目的在这里描述了特定的实 施方式和例子,但正如相关技术领域的技术人员所认识到的那样,在不脱离本公开的精神 和范围下可以做出各种等同修改。此处各种实施方式所提供的教导可以被应用于其他的环 境,而不必是上面一般性描述的寄存器重命名的示例性环境。本领域技术人员将理解到,尽管上面描述和在附图中示出的实施方式一般是针对于寄存器重命名的环境,但涉及使用处 理器中的物理寄存器的应用也可以从这里所描述的概念获益。 根据上面的详细描述,可对实施方式做出各种修改。 一般而言,在下面的权利要求 书中,使用的术语不应该被解释为将权利要求限定于说明书和权利要求书中所公开的特定 实施方式,而是应该被理解为包括此类权利要求所享有的所有等同范围内的所有可能实施 方式。因此,权利要求不受本公开的限制。
权利要求
一种处理器中的寄存器系统,包括一个存储数据的物理寄存器集合,每个物理寄存器由相应的物理寄存器标识符标识并且具有多种操作状态中的一种操作状态;以及连接到所述物理寄存器集合的寄存器重命名逻辑,所述寄存器重命名逻辑可操作用于当所述处理器处于第一处理器状态时,将数据存储在所述物理寄存器集合中并且从所述物理寄存器集合获取数据;响应于所述处理器从所述第一处理器状态进入到第二处理器状态的指示,将所述物理寄存器集合中的具有第一状态的物理寄存器标识为第一组寄存器,并且将所述物理寄存器集合中的剩余物理寄存器标识为第二组寄存器;以及当所述处理器处于所述第二处理器状态时,将数据存储到所述第二组寄存器而非所述第一组寄存器中,并且从所述第二组寄存器而非所述第一组寄存器获取数据。
2. 根据权利要求1所述的寄存器系统,进一步包括具有多个架构映射表ARMT条目的架构映射表,每个ARMT条目对应于相应的架构寄存 器,每个ARMT条目记录相应的架构寄存器被重命名成的相应的一个物理寄存器的物理寄 存器标识符;以及具有多个物理寄存器映射表PMT条目的物理寄存器映射表,每个PRMT条目对应于相 应的一个物理寄存器,每个PRMT条目具有状态字段以及AR字段,其中所述状态字段指示多 种操作状态中的相应物理寄存器所处于的一种操作状态,所述AR字段指示被重命名成相 应的物理寄存器的相应架构寄存器。
3. 根据权利要求2所述的寄存器系统,其中每个PRMT条目进一步包括 有效性字段,其具有第一有效性值或第二有效性值,其中所述第一有效性值指示相应的物理寄存器是在所述AR字段中指示的架构寄存器最近被重命名成的物理寄存器,所述 第二有效性值指示相应的物理寄存器不是在所述AR字段中指示的架构寄存器最近被重命 名成的物理寄存器;以及锁定字段,指示相应的物理寄存器是否被标识为所述第一组物理寄存器中的物理寄存 器之一。
4. 根据权利要求3所述的寄存器系统,其中响应于接收到处理器正在从第一处理器状 态进入到第二处理器状态的指示,所述寄存器重命名逻辑将第二组寄存器中的每个物理寄 存器的PRMT条目的有效性字段设置成第二有效性值。
5. 根据权利要求4所述的寄存器系统,其中响应于接收到处理器正在从第一处理器状 态进入到第二处理器状态的指示,所述寄存器重命名逻辑将第二组寄存器中的每个物理寄 存器的相应PRMT条目的状态字段设置成指示空状态。
6. 根据权利要求3所述的寄存器系统,其中所述寄存器重命名逻辑将每个PRMT条目的 锁定字段设置成第一锁定值,以便当处理器处于第一处理器状态时解锁相应的PRMT条目, 其中响应于接收到关于处理器正在从第一处理器状态进入到第二处理器状态的指示,所述 寄存器重命名逻辑将第一组寄存器中的每个物理寄存器的相应PRMT条目的锁定字段设置 成第二锁定值,以锁定相应的PRMT条目,并且当处理器处于第二处理器状态时,所述寄存 器重命名逻辑仅将数据存储到相应的PRMT条目是非锁定的那些物理寄存器中,并且从其 获取数据。
7. 根据权利要求5所述的寄存器系统,其中响应于接收到关于处理器正在从第二处理器状态进入第一处理器状态的指示,在处理器从第二处理器状态进入第一处理器状态之 前,所述寄存器重命名逻辑将第二组寄存器中的每个物理寄存器的相应PRMT条目的状态 字段设置成指示空状态,并且将第二组寄存器中的每个物理寄存器的PRMT条目的有效性 字段设置成第二有效性值。
8. 根据权利要求6所述的寄存器系统,其中响应于接收到关于处理器正在从第二处理 器状态进入第一处理器状态的指示,在处理器将从第二处理器状态进入到第一处理器状态 之前,所述寄存器重命名逻辑将第二组寄存器中的每个物理寄存器的相应PRMT条目的锁 定字段设置成第一锁定值,以解锁相应的PRMT条目。
9. 根据权利要求2所述的寄存器系统,其中响应于接收到关于处理器正在从第一处 理器状态进入第二处理器状态的指示,在处理器从第一处理器状态进入第二处理器状态之 前,所述寄存器重命名逻辑重新设置每个ARMT条目,并且响应于接收到关于处理器正在从 第二处理器状态进入第一处理器状态的指示,在处理器从第二处理器状态进入到第一处理 器状态之前,所述寄存器重命名逻辑基于对应于第一组寄存器中的物理寄存器的PRMT条 目中的每个条目的AR字段,恢复记录在每个ARMT条目中的相应的物理寄存器标识符。
10. 根据权利要求1所述的寄存器系统,其中所述第一处理器状态包括常规处理器状 态,并且其中所述第二处理器状态包括中断和异常之一。
11. 一种处理器,包括一个存储数据的物理寄存器集合,每个物理寄存器由相应的物理寄存器标识符标识并 且具有多种操作状态中的一种操作状态;具有多个架构映射表ARMT条目的架构映射表,每个ARMT条目对应于相应的架构寄存 器,每个ARMT条目记录对应的架构寄存器被重命名成的相应的一个物理寄存器的物理寄 存器标识符;具有多个物理寄存器映射表PMT条目的物理寄存器映射表,每个PRMT条目对应于相 应的一个物理寄存器,每个PRMT条目具有状态字段以及AR字段,其中状态字段指示多种操 作状态中的相应物理寄存器所处于的一种操作状态,AR字段指示被重命名成相应的物理寄 存器的相应架构寄存器,寄存器重命名逻辑,其可操作用于设置ARMT条目和PRMT条目;将数据存储在物理寄 存器中;在处理器从第一处理器状态进入到第二处理器状态之前,区分处于第一操作状态 中的第一组物理寄存器与处于除第一操作状态之外的操作状态之一的第二组物理寄存器; 以及在处理器处于第二处理器状态时,将第二组物理寄存器用于架构寄存器重命名,同时 使存储在第一组物理寄存器中的数据和相应的PRMT条目保持不变。
12. 根据权利要求11所述的处理器,其中每个PRMT条目进一步包括 有效性字段,其具有第一有效性值或第二有效性值,其中第一有效性值指示相应的物理寄存器是在AR字段中指示的架构寄存器最近被重命名成的物理寄存器,第二有效性值 指示相应的物理寄存器不是在AR字段中指示的架构寄存器最近被重命名成的物理寄存 器;以及锁定字段,指示相应的物理寄存器是否被标识为第一组物理寄存器中的物理寄存器之
13. 根据权利要求12所述的处理器,其中响应于接收到处理器正在从第一处理器状态进入到第二处理器状态的指示,所述寄存器重命名逻辑将第二组物理寄存器中的每个物理 寄存器的PRMT条目的有效性字段设置成第二有效性值。
14. 根据权利要求13所述的处理器,其中响应于接收到处理器正在从第一处理器状态 进入到第二处理器状态的指示,所述寄存器重命名逻辑将第二组物理寄存器中的每个物理 寄存器的相应PRMT条目的状态字段设置成指示空状态。
15. 根据权利要求12所述的处理器,其中所述寄存器重命名逻辑将每个PRMT条目的锁 定字段设置成第一锁定值,以便当处理器处于第一处理器状态时解锁相应的PRMT条目,其 中响应于接收到关于处理器正在从第一处理器状态进入到第二处理器状态的指示,所述寄 存器重命名逻辑将第一组物理寄存器中的每个物理寄存器的相应PRMT条目的锁定字段设 置成第二锁定值,以锁定相应的PRMT条目,并且其中所述寄存器重命名逻辑仅将数据存储 到相应的PRMT条目指示相应的物理寄存器是非锁定状态的那些物理寄存器中,并且从其 获取数据。
16. 根据权利要求14所述的处理器,其中响应于接收到关于处理器正在从第二处理器 状态进入第一处理器状态的指示,在处理器从第二处理器状态进入第一处理器状态之前, 所述寄存器重命名逻辑将第二组物理寄存器中的每个物理寄存器的相应PRMT条目的状态 字段设置成指示空状态,并且将第二组物理寄存器中的每个物理寄存器的相应PRMT条目 的有效性字段设置成第二有效性值。
17. 根据权利要求15所述的处理器,其中响应于接收到关于处理器正在从第二处理 器状态进入第一处理器状态的指示,在处理器从第二处理器状态进入到第一处理器状态之 前,所述寄存器重命名逻辑将第二组物理寄存器中的每个物理寄存器的相应PRMT条目的 锁定字段设置成第一锁定值,以解锁相应的PRMT条目。
18. 根据权利要求11所述的处理器,其中响应于接收到关于处理器正在从第一处理器 状态进入第二处理器状态的指示,在处理器从第一处理器状态进入第二处理器状态之前, 所述寄存器重命名逻辑重新设置每个ARMT条目。
19. 根据权利要求18所述的处理器,其中响应于接收到关于处理器正在从第二处理 器状态进入第一处理器状态的指示,在处理器从第二处理器状态进入到第一处理器状态之 前,所述寄存器重命名逻辑基于对应于第一组物理寄存器中的物理寄存器的PRMT条目中 的每个条目的AR字段,恢复记录在每个ARMT条目中的相应的物理寄存器标识符。
20. 根据权利要求11所述的处理器,其中所述第一处理器状态包括常规处理器状态, 并且其中所述第二处理器状态包括中断和异常之一。
21. —种在处理器中使用一个物理寄存器集合来进行寄存器重命名的方法,所述方法 包括当处理器处于第一处理器状态时,改变存储在来自所述物理寄存器集合的第一物理寄 存器中的数据,以将第一架构寄存器重命名成第一物理寄存器; 检测处理器从第一处理器状态进入到第二处理器状态;响应于检测到处理器从第一处理器状态进入到第二处理器状态,确定所述物理寄存器 集合中的每个物理寄存器的相应操作状态;响应于检测到处理器从第一处理器状态进入到第二处理器状态,将所述物理寄存器集 合中的具有第一操作状态的那些物理寄存器标识为第一组寄存器,而将所述物理寄存器集合中的具有除第一操作状态之外的操作状态的那些物理寄存器标识为第二组寄存器;当处理器处于第二处理器状态时,改变存储在来自第二组物理寄存器的第二物理寄存器中的数据,以将第二架构寄存器重命名成第二组物理寄存器中的第二物理寄存器;以及 当处理器处于第二处理器状态时,保持存储在第一组物理寄存器中的数据。
22. 根据权利要求21所述的方法,进一步包括响应于检测到所述处理器从第一处理器状态进入到所述第二处理器状态,将第二组物 理寄存器中的每个物理寄存器的相应操作状态设置成第二操作状态。
23. 根据权利要求22所述的方法,进一步包括"检测处理器从所述第二处理器状态返回到所述第一处理器状态;以及 响应于检测到所述处理器从第二处理器状态返回到所述第一处理器状态,将所述第二 组物理寄存器中的每个物理寄存器的相应操作状态设置成第二操作状态。
24. 根据权利要求21所述的方法,其中改变存储在来自所述物理寄存器集合的第一物 理寄存器中的数据,以将第一架构寄存器重命名成第一物理寄存器包括从所述物理寄存器集合选择第一物理寄存器,以将第一架构寄存器重命名成第一物理 寄存器;在与第一架构寄存器关联的架构寄存器映射表ARMT条目中记录第一物理寄存器的标 识符;在与第一物理寄存器关联的物理寄存器映射表PRMT条目中记录第一架构寄存器的标 识符;在所述第一物理寄存器中存储与所述第一架构寄存器关联的数据;以及 更新与第一物理寄存器关联的PMT条目的状态字段,以指示多种操作状态中的第一 物理寄存器所处的一种操作状态。
25. 根据权利要求24所述的方法,进一步包括当所述处理器处于第一处理器状态时,设置与所述物理寄存器集合中的每个物理寄存 器关联的PRMT条目的锁定字段,以指示非锁定状态。
26. 根据权利要求25所述的方法,其中响应于检测到处理器从第一处理器状态进入到 第二处理器状态,将所述物理寄存器集合中的具有第一操作状态的那些物理寄存器标识为 第一组寄存器,而将所述物理寄存器集合中的具有除第一操作状态之外的操作状态的那些 物理寄存器标识为第二组寄存器包括响应于检测到处理器从第一处理器状态进入到第二处理器状态,更新与标识为具有第 一操作状态的每个物理寄存器关联的PRMT条目的锁定字段以指示锁定状态。
27. 根据权利要求26所述的方法,其中当所述处理器处于第二处理器状态时,改变存 储在来自第二组物理寄存器的第二物理寄存器中的数据,以将第二架构寄存器重命名成第 二组物理寄存器中的第二物理寄存器包括从第二组物理寄存器选择第二物理寄存器,以便将第二架构寄存器重命名成第二物理 寄存器;在与第二架构寄存器关联的ARMT条目中记录第二物理寄存器的标识符; 在与第二物理寄存器关联的PRMT条目中记录第二架构寄存器的标识符; 在第二物理寄存器中存储与第二架构寄存器关联的数据;以及更新与第二物理寄存器关联的PMT条目的状态字段,以指示多种操作状态中的第二 物理寄存器所处的一种操作状态。
28. —种在处理器中使用一个物理寄存器集合来进行寄存器重命名的方法,所述方法 包括当处理器处于第一处理器状态时,从所述物理寄存器集合选择第一物理寄存器,以将 第一架构寄存器重命名成第一物理寄存器;在与第一物理寄存器关联的物理寄存器映射表PRMT条目的第一字段中记录第一架构 寄存器的标识符;更新与所述第一物理寄存器关联的PRMT条目的第二字段,以指示多种操作状态中的 第一物理寄存器所处的一种操作状态; 检测处理器进入到第二处理器状态;响应于检测到处理器进入到第二处理器状态,更新与具有第一操作状态的每个物理寄 存器关联的PRMT条目的第三字段,以标记相应的物理寄存器;以及当处理器处于第二处理器状态时,从所述物理寄存器集合中选择除被标记的物理寄存 器之外的第二物理寄存器,以将第二架构寄存器重命名成第二物理寄存器。
29. 根据权利要求28所述的方法,其中响应于检测到处理器进入到第二处理器状态, 更新与具有第一操作状态的每个物理寄存器关联的PMT条目的第三字段,以标记相应的 物理寄存器包括当处理器进入所述第一处理器状态时,将与每个所述物理寄存器关联的PRMT条目的 第三字段设置成第一值;以及响应于检测到处理器进入到第二处理器状态,将与具有第一操作状态的每个物理寄存 器关联的PRMT条目的第三字段更新成不同于第一值的第二值,以标记相应的物理寄存器。
30. 根据权利要求29所述的方法,进一步包括 检测处理器从第二处理器状态返回到第一处理器状态;以及响应于检测到处理器从第二处理器状态返回到第一处理器状态,将与每个被标记的物 理寄存器关联的PRMT条目的第三字段重新设置成第一值。
31. 根据权利要求30所述的方法,进一步包括在所述处理器从所述第二处理器状态返回到第一处理器状态之后,从所述物理寄存器 集合选择第三物理寄存器,以将第三架构寄存器重命名成第三物理寄存器;以及在与第三物理寄存器关联的PRMT条目的第一字段中记录第三架构寄存器的标识符。
32. 根据权利要求28所述的方法,进一步包括在与第一架构寄存器关联的架构寄存器映射表ARMT条目中记录第一物理寄存器的标 识符,以将第一架构寄存器重命名成第一物理寄存器;以及响应于检测到处理器进入到第二处理器状态,重新设置与第一架构寄存器关联的ARMT 条目。
33. 根据权利要求32所述的方法,进一步包括 检测处理器从第二处理器状态返回到第一处理器状态;以及响应于检测到处理器从第二处理器状态返回到第一处理器状态,在处理器进入到第二 处理器状态之前,通过在与第一架构寄存器关联的ARMT条目中记录第一架构寄存器被重命名成的物理寄存器的标识符,恢复与第一架构寄存器关联的ARMT条目。
34. 根据权利要求29所述的方法,进一步包括响应于检测到处理器进入到第二处理器状态,更新与在第三字段中具有第一值的每个 物理寄存器关联的PRMT条目的第二字段,以指示第二操作状态。
35. 根据权利要求34所述的方法,进一步包括 检测处理器从第二处理器状态返回到第一处理器状态;以及响应于检测到处理器从第二处理器状态返回到第一处理器状态,更新与在第三字段中 具有第一值的每个物理寄存器关联的PRMT条目的第二字段,以指示第二操作状态。
全文摘要
本发明提供了使用影子寄存器的高效硬件实现设备及其方法。处理器中的寄存器系统包括一个存储数据的物理寄存器集合以及连接到其的寄存器重命名逻辑。每个物理寄存器由物理寄存器标识符标识并且具有操作状态。当处理器处于第一处理器状态时,寄存器重命名逻辑将数据存储在该物理寄存器集合中并且从其获取数据。响应于处理器从第一处理器状态进入到第二处理器状态的指示,寄存器重命名逻辑将该物理寄存器集合中的具有第一状态的物理寄存器标识为第一组寄存器并且将该物理寄存器集合中的剩余物理寄存器标识为第二组寄存器。当处理器处于第二处理器状态时,寄存器重命名逻辑将数据存储到第二组寄存器而非第一组寄存器中,并且从其获取数据。
文档编号G06F9/30GK101788901SQ20091000280
公开日2010年7月28日 申请日期2009年1月24日 优先权日2009年1月24日
发明者吴永强, 孙红霞, 朱鹏飞 申请人:世意法(北京)半导体研发有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1