管理处理器的寄存器的方法和系统的制作方法

文档序号:6574436阅读:255来源:国知局
专利名称:管理处理器的寄存器的方法和系统的制作方法
技术领域
本发明一般地涉及管理处理器中的寄存器,更具体地说,涉及面向单指令多数据(SIMD)的管理寄存器映射以便基于映射的间接访问寄存器文件的方法、系统和程序产品。
背景技术
处理器或执行单元使用寄存器来存储旨在用于进行操纵的各种数据。在许多方面,寄存器在数据操纵上要优于例如系统存储器。例如,通常可以在指令中由比需要寻址的系统存储器中的位置更少的位来指定寄存器。此外,寄存器比大多数系统存储器具有更高的带宽和更短的访问时间。另外,寄存器的设计和测试相对直接。因此,现代处理器架构倾向于具有相对多的寄存器。
尽管一般可以通过增加处理器内寄存器的数量来提高处理器/执行单元的性能,但是大量寄存器也会带来问题。其中一个问题是寄存器可寻址性。如果处理器包括大量可寻址的寄存器,则每个具有一个或多个寄存器指定的指令将要求单独为了寻址寄存器而分配许多位。例如,如果处理器具有32个寄存器,则需要总的20位来指定指令中的4个寄存器,因为需要5个位来寻址所有32个寄存器。因此,有效限制了处理器架构中可以直接访问的寄存器的最大数量。
间接寻址是一种已用于访问大型寄存器文件的技术。假如适合非常大的寄存器文件并满足以下目标的话,间接寻址机制对于扩展诸如由国际商业机器公司出售的PowerPCTM处理器之类的架构是有用的·兼容标准PowerPCTM指令格式;·支持现有代码,无需重新编译;
·足够灵活以支持循环展开、软件流水线操作,以及用于减轻长流水线等待时间的影响的相关软件技术;以及·足够灵活以支持用于适当地维护内部循环中的寄存器文件内的工作数据集的大型子集的软件技术。
用于访问大型寄存器文件的现有技术间接寻址机制无法满足一个或多个上述目标。这些现有技术间接寻址机制包括ItaniumTM-使用称为“旋转寄存器”的技术来提供对来自具有128个寄存器的寄存器文件中的较高的96个寄存器的相邻寄存器组的间接访问。ItaniumTM对于循环展开而非以更通用的方式利用大型寄存器文件来说是有用的。(“Intel ItaniumTMArchitecture Software Developer’sManual”,2002年10月。)“寄存器队列”-在某些方面类似于旋转寄存器,在定义和建立对相邻寄存器组的访问方面具有明显增加的灵活性。由于间接访问仍限于相邻寄存器组,所以灵活性不足。(Tyson等人,IEEE Trans.Computers,2001年8月。)“寄存器连接”-表现得更为通用,因此对于大型寄存器文件的间接访问来说,是一种比旋转寄存器和寄存器队列更灵活的机制。但是,其限制在于,如果与PowerPCTM架构一起使用,则因为用于将指令中编码的寄存器名称映射到寄存器文件中的实际物理寄存器的机制,任何特定循环中发出的指令只能访问32个寄存器。(Kiyohara等人,ISCA的会议记录,1993年。)因此,希望提供一种增加处理器寻址寄存器的能力的改进的装置。

发明内容
在以上结合的标题为“Apparatus for Increasing Addressability ofRegisters within a Processor(用于增加处理器中寄存器的可寻址性的装置)”的专利申请中,描述了一种满足以上列出的四个目标的新颖的间接寻址机制。该机制使用基本寄存器名称组和扩展寄存器名称组之间的映射。在PowerPCTM架构的情况下,基本名称组是在现有架构中的一组名称,即,0-31,而扩展名称组由可在扩展版本的架构中实际实现的寄存器数来确定。所述映射具有以下属性·映射包含在寄存器中。
·由软件管理映射,即,可以由是支持间接寻址机制的扩展架构一部分的指令写入和读取包含映射的寄存器。
·映射可以是任意的,根据软件如何选择对其进行管理。
·映射与机器指令中出现的寄存器操作数具有位置关联。
对于具有这些特性的基于映射的间接寻址机制,就如何管理映射而言应满足一组目标,包括1.映射管理机制应支持一定程度的如何使用映射的灵活性,适于满足以上列出的间接寻址机制的基本目标。
2.映射管理应是高效的,例如,就需要管理映射的内部循环中执行的指令数的部分而言。
3.与映射管理关联的流水线等待时间不应负面地影响其灵活性或效率。
在此提供了满足这些目标的面向SIMD的管理寄存器映射的方法、系统和程序产品。
根据本发明的一个方面,提供了一种管理处理器的寄存器的方法。所述方法包括提供包括一组映射的寄存器映射,所述映射组中的每个映射都包括多个映射寄存器;提供由所述处理器通过所述寄存器映射的所述映射组的映射表项来间接引用/访问的一组实际寄存器,其中所述实际寄存器组中的实际寄存器的数量大于所述映射组中的映射表项的数量,并且其中所述映射组的所述映射表项在任意给定时刻仅引用所述实际寄存器组的子集;以及通过响应于执行单个更新指令而更新所述映射组中的至少一个映射的多个映射表项来管理对所述寄存器映射的所述映射组的映射表项的更新。
在其他方面,所述管理映射表项更新与所述处理器使用所述映射组的至少一些其他映射表项来间接访问所述实际寄存器组以便处理数据同时发生。此外,所述管理映射更新可以与所述处理器使用至少一个通过所述单个更新指令更新多个映射表项的映射的至少一些其他映射表项同时发生,其中所述单个更新指令是单指令多数据指令(SIMD)指令。公开和要求保护了多种实现映射表项更新的方法。例如,所述单个更新指令可以包括“将数据从SIMD寄存器移动到映射寄存器”指令。备选地,可以采用使用关联递增寄存器的递增值的“递增映射寄存器”或采用与多个映射寄存器关联的预递增映射寄存器来更新映射表项。此外,可以使用“立即设置映射寄存器”指令来更新映射表项,其中所述指令本身中提供了开始所述多个映射表项的递增初始化的初始化值。
在其他方面,提供了一种用于管理处理器的寄存器的系统。所述系统包括包含一组映射的寄存器映射,其中所述映射组中的每个映射包括多个映射寄存器;以及由所述处理器通过所述寄存器映射的所述映射组的映射表项来间接访问的一组实际寄存器。所述实际寄存器组中的实际寄存器的数量大于所述映射组中的映射表项的数量,并且其中所述映射组的所述映射表项在任意给定时刻仅引用所述实际寄存器组的寄存器的子集。所述系统还包括用于通过响应于执行单个更新指令而更新所述映射组中的至少一个映射的多个映射表项来管理对所述寄存器映射的所述映射组的映射表项的更新的装置。
在其他方面,提供了至少一个计算机可读的、有形地包含至少一个指令程序的程序存储设备,所述指令可由所述计算机执行以执行管理处理器的寄存器的方法,其中所述寄存器包括一组实际寄存器。所述方法包括提供一组映射,所述映射组中的每个映射包括多个映射寄存器;允许所述处理器通过所述映射组的映射表项来间接访问所述多个实际寄存器,其中所述实际寄存器组中的实际寄存器的数量大于所述映射组中的映射表项的数量,并且其中所述映射组的所述映射表项在任意给定时刻仅引用所述实际寄存器组的子集;以及通过响应于执行单个更新指令而更新所述映射组中的至少一个映射的多个映射表项来管理对所述映射组的映射表项的更新。
此外,通过本发明的技术实现了其他功能和优点。在本文中详细说明了本发明的其他实施例和方面,并且它们被看作所要求保护的发明的一部分。


在说明书结尾处的权利要求书中特别指出并明确要求保护被认为是本发明的主题。从以下结合附图的详细说明中,本发明的上述和其他目标、特性和优点是显而易见的,这些附图是图1示出了根据本发明的一个方面的使用基于映射的间接寄存器文件访问的处理器的方块图;图2示出了根据本发明的一个方面的基于映射的间接寄存器文件访问以便增加图1的处理器中的寄存器可寻址性的机制的一个实施例;图3是根据本发明的一个方面的使用基于映射的间接寄存器文件访问的映射管理工具的处理器的另一个实施例的方块图;图4是根据本发明的各方面的表示寄存器映射单元的一个实施例、示出管理映射表项的各方面,以及间接访问目标单元中的实际寄存器组的方块图;图5是根据本发明的一个方面的由寄存器映射单元使用的一组映射的图示;图6A示出了与例如PowerPCTM处理器的VMX单元关联的常规128位VMX寄存器;图6B示出了根据本发明的一个方面的包括分成8个16位半字的128位并示出了映射寄存器和VMX寄存器的通常大小的映射寄存器的一个实施例;图7示出了根据本发明的一个方面的基于映射的间接寄存器文件访问的其他实例;
图8是根据本发明的一个方面的映射管理指令处理的总体流程图;图9是根据本发明的一个方面的“立即设置映射寄存器”指令处理的一个实施例的流程图;图10是根据本发明的一个方面的“从VMX移动到映射寄存器”指令处理的一个实施例的流程图;图11是根据本发明的一个方面的“从映射寄存器移动到VMX寄存器”指令处理的一个实施例的流程图;图12是根据本发明的一个方面的“递增映射寄存器”指令处理的一个实施例的流程图;图13是根据本发明的一个方面的“递增映射寄存器”指令处理的其他实施例的流程图;以及图14是根据本发明的一个方面的自动更新预递增映射寄存器的预递增映射表项的过程的一个实施例的流程图。
具体实施例方式
本发明可以在精简指令集计算(RISC)处理器或复杂指令集计算(CISC)处理器中实现。出于说明目的,如下所述的本发明的一个实施例在RISC处理器(例如,由纽约阿蒙克的国际商业机器公司制造的PowerPCTM系列处理器)中实现。
图1示出了根据本发明的一个方面的实现间接寄存器文件访问的处理器100的方块图。处理器100包括数据高速缓存111和指令高速缓存112,二者都连接到总线接口单元120。通过总线接口单元120将指令从存储器(未示出)检索到处理器100,并存储到指令高速缓存112。通过总线接口单元120检索的数据存储在数据高速缓存111中。由指令单元115从指令高速缓存112根据需要取回指令,指令单元115包括指令取回器、分支预测模块、指令排队和调度单元。
指令单元115将适当的指令分派到执行单元,如整数单元116、加载/存储单元117和/或浮点单元118。整数单元116对整数执行加、减、乘、除、移位或旋转运算,从通用寄存器113检索操作数并将结果存储到通用寄存器113。浮点单元118执行单精度和/或双精度乘/加运算,从浮点寄存器114检索操作数并将结果存储到浮点寄存器114。加载/存储单元117根据需要将指令操作数从数据高速缓存111加载到通用寄存器113或浮点寄存器114中,并将指令结果(当可从通用寄存器113或浮点寄存器114提供时)存储到数据高速缓存111中。
完成单元119(其包括多个重排序缓冲器)结合指令单元115操作以支持乱序指令处理。完成单元119还结合通用寄存器113和浮点寄存器114中的重命名缓冲器操作以避免特定寄存器中的指令结果的任何冲突。
根据本发明的一个方面,使用一组视在寄存器(apparent register)来增加处理器中实际寄存器组的可寻址性。在称为视在寄存器名称空间的空间中寻址视在寄存器,在称为实际寄存器名称空间的更大的空间中寻址实际寄存器。视在寄存器中的表项引用实际寄存器名称空间中的寄存器所名称。可由指令中使用的寄存器号直接寻址视在寄存器名称空间。另一方面,可以通过视在寄存器中存储的值直接(从一些指令)或间接寻址实际寄存器名称空间。
图2示出了根据本发明的一个方面的一组视在寄存器和一组实际寄存器。如图所示,视在寄存器221包括多个寄存器表项。视在寄存器221中的寄存器表项的总数可以等于2到保留用于寻址寄存器的指令223内视在寄存器字段中的位数的幂。例如,如果指令223中寄存器字段内的位数为3,则视在寄存器221中的寄存器表项数为8;如果指令223中视在寄存器字段内的位数为4,则视在寄存器221中的寄存器表项数为16。在图2的实施例中,指令223中视在寄存器字段(例如,vA字段、vB字段、vC字段和vD字段)中的位数为5,视在寄存器221中的寄存器表项数为32。在PowerPCTM处理器的上下文中,vA、vB、vC和vD字段为向量(或VMX或Altivec)寄存器的名称,并且本发明的一个实施例引用PowerPCTM向量寄存器。
实际寄存器222也包括多个寄存器表项。每个视在寄存器表项中的位数大到足以寻址提供的实际寄存器的数量,可能为该数字的未来增长留出空间。实际寄存器222中的寄存器总数至少等于2到视在寄存器221的寄存器表项中的位数的幂。例如,如果视在寄存器221的每个寄存器表项中的位数为5,则实际寄存器222中的寄存器总数为32;如果视在寄存器221的每个寄存器表项中的位数为6,则实际寄存器222中的寄存器总数为64。在图2的实施例中,视在寄存器221的每个寄存器表项中的位数为7,则实际寄存器222中的寄存器总数为128。
在运算过程中,由视在寄存器221的寄存器表项中的位来选择实际寄存器222中的寄存器,由指令(如指令223)的视在寄存器字段中的位来选择视在寄存器221。例如,如图2所示,由视在寄存器221的寄存器表项23中的位来选择实际寄存器222中的寄存器123,由指令223的视在寄存器字段vD中的位来选择视在寄存器221。同样,由视在寄存器221的寄存器表项19中的位来选择实际寄存器222中的寄存器125,由指令223的视在寄存器字段vA中的位来选择视在寄存器221。
指令可以包括两种不同类型的寄存器字段。如图2所示,指令224包括如上所述在视在寄存器221中索引的视在寄存器vD字段。指令224还包括标准寄存器字段,例如rA字段和rB字段,用于在一组通用寄存器225中进行索引。通用寄存器225中的寄存器总数远少于实际寄存器222中的寄存器总数。由于rA字段和rB字段中的位数都是5,所以通用寄存器组中的最大寄存器数限制在32。
可以以适合其中结合本发明的处理器架构的方式来设计对视在寄存器221的控制。在PowerPCTM架构中,例如,适合通过两个或更多个寄存器来控制映射,这在以下结合图3-14详细说明。
本发明的寄存器重新映射可以独立地应用于不同的寄存器组。例如,在PowerPCTM架构的上下文中,寄存器重新映射可以应用到向量寄存器和浮点寄存器,而非通用寄存器。因此,本发明提供了一种用于增加处理器中的寄存器的可寻址性的灵活装置,并可以以兼容的方式在现有处理器架构中实现。
在上述教导的基础上,在此还提出了面向单指令多数据(SIMD)管理映射表项以便基于映射间接引用实际寄存器文件的方法、系统和程序产品。许多现有的处理器架构都结合了单指令多数据(SIMD)扩展;例如,PowerPCTM具有VMX,Intel IA-32结合了SSE3等。因此,在此公开了一种利用特定处理器的SIMD功能以灵活高效的方式提供映射表项更新的映射管理工具。
图3示出了根据本发明的一个方面的使用面向SIMD管理寄存器映射以便基于映射进行间接寄存器文件访问的处理器的一个实施例。处理器仍包括数据高速缓存111、指令高速缓存112、通用寄存器113、浮点寄存器114、指令单元115、整数单元116、加载/存储单元117、浮点单元118和完成单元119,它们连同图1的处理器分别如上所述地工作。图3的处理器还包括VMX单元300和关联的VMX寄存器(VMXR)310。众所周知,VMX单元和关联的寄存器提供采用SIMD处理的计算能力并例如对多个数据元素并行执行公共运算。在一种实施方式中,数据元素可以是半字,每个VMX寄存器可以包括解释为8个16位半字的128位(参见图6A和6B)。因此,作为一个实例,在VMX中执行单个SIMD指令会导致一次执行8个运算。
在图3的处理器中还提供了寄存器映射单元320,其示为连接到VMX寄存器310和浮点寄存器114。此实例假设包含要间接引用的实际寄存器组的大型寄存器文件是由浮点单元使用的浮点寄存器文件114。注意,如以下描述的,寄存器映射单元320和VMXR 310之间的右侧箭头代表将VMX寄存器的内容移动到映射寄存器的能力,并且反之亦然。
通过实例的方式,典型的浮点寄存器可以包括32个寄存器,而本发明的一个方面所设想的大型寄存器文件可以包括1024个寄存器。在浮点寄存器中定位大型寄存器文件只是一个实例。备选地或附加地,要间接访问的大型寄存器文件可以是VMX寄存器文件310。但是作为一种考虑,大型寄存器文件优选地与处理器中的执行单元关联,在所述处理器中,流水线等待时间是一个问题,其中大型寄存器文件的使用通过例如循环展开和软件流水线操作之类的技术减轻了流水线等待时间的影响。
图4更详细地示出了根据本发明的一个方面的寄存器映射单元320的一个实施例。所述寄存器映射单元包括一组映射,该映射组中的每个映射都包括多个映射寄存器,所有这些映射寄存器都总的表示为映射寄存器(MR)400。在一个实例中,所述映射寄存器包含以与SIMD执行单元的寄存器(即,图3和4的实例中的VMX寄存器310)相同的格式构造的映射表项。例如,参考图6A,假定VMX寄存器为128位宽,每个位拥有16个单字节数据元素,8个半字数据元素,或4个全字数据元素。包含映射表项的寄存器也被选为128位宽。还假定根据扩展寄存器组的大小,编码映射表项所需的位数大于8并小于17。然后,每个128位的映射寄存器都包含8个映射表项,每个映射表项占据寄存器的一个半字,如图6B所示。在该讨论中,包含这些映射表项的寄存器被称为映射寄存器400。
因此,要指出的一点是,映射寄存器的物理结构与SIMD寄存器(例如,VMX寄存器)的物理结构完全相同,即,每个映射寄存器都如图6A所示为128位宽。第二个相关点是,映射寄存器的逻辑结构与SIMD寄存器(例如,VMX寄存器)的逻辑结构完全相同,且内容解释为16位半字(在图6B中示出了每个映射寄存器的逻辑结构)。映射寄存器中的每个半字都是映射表项。每个映射寄存器中包含8个映射表项。由于每个映射具有32个表项,所以每个映射有4个映射寄存器。由于有4个映射,所以总共有16个映射寄存器。维护映射寄存器与SIMD寄存器之间的物理和逻辑结构的对应的一个显著好处是,可以使用SIMD执行单元对SIMD寄存器的内容进行算术和逻辑运算以及将SIMD寄存器的内容从存储器往返移动的现有能力,以有效地构建与基本上任意的表项的映射。在SIMD寄存器中可以构建具有8个映射表项的组,然后将SIMD寄存器的内容移动到映射寄存器,而无需作为移动操作一部分的任何数据变换。因此,从硬件的角度,寄存器映射单元(RMU)可以相对简单。可以使用RMU中的基本硬件执行映射表项的简单设置(例如,在映射寄存器中设置8个连续值,或将映射寄存器中的所有8个表项递增相同的常数)。可以使用SIMD执行单元在SIMD寄存器中设置更为复杂的映射表项组并将其移动到映射寄存器中。
图4中示出了寄存器映射单元(RMU)中的两个其他寄存器组。这些寄存器组包括递增寄存器(IR)420和预递增映射寄存器(PIMR)430,如下所述,两者都可以用于管理映射表项。
图4中的目标单元410是通过基于映射的间接寻址来间接访问其寄存器文件的单元;即,图3的实例中的浮点寄存器114。标为“T”、“A”、“B”和“C”的箭头指示寄存器操作数的索引映射表项可从映射寄存器400提供给目标单元410。RMU 320和VMXR 310之间的箭头指示将VMX寄存器的内容移动到映射寄存器(反之亦然)的能力,如以下进一步描述的。
如上所述,在一个实施例中,寄存器映射单元中有4组映射,每组映射有32个表项。这些映射在图5中示出,并与在目标单元中执行的指令的指令格式中出现的寄存器操作数关联,它们是·T映射T映射与目标操作数关联。
·A映射A映射与指令格式中指定为“A”操作数的输入寄存器操作数关联。
·B映射B映射与指令格式中指定为“B”操作数的输入寄存器操作数关联。
·C映射C映射与指令格式中指定为“C”操作数的输入寄存器操作数关联。
此外,这些映射之一(例如C映射)可以与加载和存储指令中指示目标单元的寄存器文件中的源或目标寄存器的寄存器操作数关联。
在图5的实例中,仍有四组映射,每组映射有32个映射表项。因为每个映射寄存器有8个半字(HW),即8个映射表项,所以有16个映射寄存器,标为m0-m15。这16个映射寄存器中的每个寄存器都是128位寄存器(如图6A和6B所示)。另外,映射寄存器中的8个空位中的每个空位都是半字并包含一个映射表项。
将映射与寄存器操作数关联表示可以将为操作数编码的值(在0到31的范围内)用作映射的索引;即,如此引用的映射表项中包含的值是要访问的大型寄存器文件中的寄存器的索引。例如,考虑目标单元是浮点单元且浮点寄存器文件是使用间接寻址访问的大型寄存器文件(如图3所示),并考虑图7中示出的指令‘fadd fT,fA,fB’。在现有的PowerPCTM架构中,这执行将浮点寄存器fA中的数据元素与浮点寄存器fB中的数据元素进行浮点相加并将结果置于浮点寄存器fT中。如果将指令编码为‘fadd 1,2,3’,即,“1”编码为用于fT操作数,“2”编码为用于fA操作数,以及“3”编码为用于fB操作数,则根据现有架构,从浮点寄存器文件的寄存器2和3获得输入值,并将结果写入浮点寄存器文件中的寄存器1。使用间接寻址,编码的值“1”、“2”和“3”分别用作T映射、A映射和B映射的索引。例如,假定A映射中的表项“2”包含值“17”,B映射中的表项“3”包含值“95”,T映射中的表项“1”包含值“1”,则编码为‘fadd 1,2,3’的指令从寄存器17和95获得输入操作数并将结果置于大型寄存器文件的寄存器6中。图7中形象化地示出了此过程。
关于图7应注意以下方面·在所述实例中,大型寄存器文件(例如,布置在浮点寄存器或VMX寄存器中)具有1024个寄存器。因此,扩展的寄存器名称组至少包含0到1023,并且最少需要10个位来编码每个映射表项。
·因为所述实例中的指令只有3个寄存器操作数,所以未使用C映射。
·映射表项是可以使用其配置映射的任意性的实例。在T映射中,大多数表项指向同一物理寄存器(可能不是现实情况)。在A映射中,表项没有模式。B映射具有8个连续的实际寄存器索引(名称)的组。
C映射为恒等映射。
鉴于以上所述,根据本发明的一个方面,映射管理工具的某些特性包括1.包含映射表项的寄存器的结构优选地与SIMD执行单元中的寄存器(例如,VMX寄存器)具有相同的格式。例如,假定SIMD单元的寄存器为128位宽,每个寄存器包括16个单字节数据元素,8个半字数据元素,或4个全字数据元素。包含映射表项的寄存器也是128位宽。根据扩展寄存器组的大小,假定编码映射表项所需的位数大于8并且小于17。然后,每个128位的“映射寄存器”包含8个映射表项,每个映射表项占据寄存器中的一个半字。
2.设置、修改或读取映射表项的操作以类似SIMD的方式进行,因为单个指令引用单个映射寄存器的内容,例如128位寄存器的寄存器中的所有8个映射表项,每个映射表项占据半字。
3.可以使用简单的硬件对映射寄存器的内容执行简单的操作,包括(a)将映射表项设置为连续值(例如,将映射寄存器中的8个映射表项设置为8个以某个指定的初始化值开始的连续值);以及(b)将寄存器中的所有映射表项递增相同的常数值。将布置所述硬件以便以最小的等待时间来执行这些操作。
4.假定映射寄存器的格式匹配SIMD寄存器(例如,VMX寄存器)的格式,则可以直接将数据从SIMD单元寄存器移动到映射寄存器中,并且反之亦然。通过这种方式,可以使用已在SIMD执行单元(例如,VMX单元)中可用的算术和逻辑功能来构建映射表项的任意组并将其移动到寄存器映射单元内的映射寄存器。备选地,可以将映射表项组从存储器加载到SIMD单元寄存器(即,VMX寄存器)中,然后将其移动到映射寄存器。因此,专门为映射管理提供的硬件可以相对简单。
5.通过使用“恒等映射”,可以提供对现有代码的支持而无需重新编译,其中映射内的每个表项包含其在映射中的索引(例如,恒等映射中的表项k包含值k)。可以提供将每个映射设置为恒等映射的指令,以便作为应用二进制接口(ABI)的一部分,高效且与现有代码兼容地初始化映射。
图8-14示出了根据本发明的各方面的映射管理指令处理的各种实例。映射管理指令使用处理器的通用指令格式。这种格式通常包括操作码字段,该字段标识将由指令执行的功能(如浮点相加、从存储单元加载等),还包括n个标识源数据或源数据位置的操作数,以及目标位置。在PowerPCTM的情况下,所有指令都占据32位。操作码至少有6位,多数情况多于6位。操作数字段的数量和每个字段的大小取决于指令。
图8示出了通过从映射管理指令的适当指令字段解码值810来处理一般映射管理指令800。一旦获取了操作数值,就可以使用解码的操作数值执行指令(即,操作码)820。如果必要,还自动递增图4的预递增映射寄存器(PIMR)组中的预递增映射表项。如上所述,映射管理指令中的指令字段定义了指令的功能并为上述的间接寄存器文件访问提供了映射表项引用。通常,处理器的指令单元理解(根据功能)处理器中的哪些执行单元将执行所需的功能,并且将指令传递到该指令单元。因此,就映射表项管理而言,将映射管理指令传递到映射寄存器单元以便执行。
在一个实例中,只要出现映射寄存器更改或关联的递增寄存器值的更改,就可以更新预递增存储器寄存器。通过预先计算映射表项值,递增的映射表项将可用于未来的映射管理递增指令。注意,在此说明的预递增映射寄存器仅为一个映射表项管理选项。在一个实例中,在映射寄存器与预递增映射寄存器之间存在一对一的对应关系,使得根据所接收的映射管理指令,可以简单地将预递增映射表项的值换入映射寄存器。以下参考图13和14更详细地说明了该过程。
图9示出了“立即设置映射寄存器”指令的处理实例900。初始解析指令以从指令的适当指令字段获取映射寄存器ID 900,并且将变量k设置为该映射寄存器ID。通过“立即设置映射寄存器”指令,在指令本身中提供了映射表项更新的初始化值。因此,处理接着从适当的指令字段获取立即初始化值920,并将变量i设置为此初始化值。假定指令将标识的映射寄存器(例如,参见图6B)的8个半字初始化为8个连续的值。因此,将第一个半字(j=0,其中j=0到7)设置为来自指令的立即初始化值,而将每个后续半字依次增加值1,如等式HWj[Mk]=i+j所示。再次地,本领域中的技术人员将理解,此设置映射寄存器立即指令仅代表更新映射表项的一种方法。
图10中描述了另一种方法,并且该方法基于上述的映射寄存器与VMX寄存器之间的物理和逻辑格式的相似性。此指令标为“从VMX寄存器移动到映射寄存器”指令1000,其被初始地处理以从指令获取映射寄存器ID 1010。将变量k再次设置为该映射寄存器ID。接下来,从所述指令的适当指令字段获取VMX寄存器ID,并将该VMX寄存器ID设置为变量i 1020。然后,对于映射寄存器的每个连续半字,将该映射表项的值(HWj[Mk])设置为VMX寄存器i(HWj[Vi])中的对应半字1030。备选地,所述处理可以只是实现将标识的VMX寄存器的全部内容块复制到标识的映射寄存器中。
图11示出了与图10相反的指令,其中将映射表项内容从映射寄存器移动到标识的VMX寄存器。处理该“从映射寄存器移动到VMX寄存器”指令1100始于从指令的适当指令字段获取映射寄存器ID 1110,并将该映射寄存器ID设置为变量k。接下来,从指令的适当指令字段获取VMX寄存器ID 1120,并将该值设置为变量i。然后,对于映射寄存器的每个半字(HWj[Mk]),将对应VMX寄存器半字(HWj[Vi])的内容设置为映射表项的内容。
图12和13示出了简单的“递增映射寄存器”指令的备选实施例。始于图12,初始地解析“递增映射寄存器”指令1200以从指令的适当指令字段获取映射寄存器ID 1210,将其设置为变量k。此外,从关联递增寄存器(IR)获取映射寄存器k的递增值1220,并且将该递增值设置为变量i。然后处理将标识的映射寄存器的每个连续半字(HWj[Mk])增加递增值i1230。
在图13的备选实施方式中,再次解析“递增映射寄存器”指令1300以从指令的适当指令字段获取映射寄存器ID 1310。将该映射寄存器ID设置为变量k。然后,使用对应的预递增映射寄存器k(PIMk),并只是将相应的半字映射表项从预递增映射寄存器(HWj[PIMk])复制到标识的映射寄存器的对应半字(HWj[Mk])1320。
图14示出了用于自动更新预递增映射表项的过程的一个实施例。此更新预递增映射表项(如果必要)过程1400始于查询是否出现了映射寄存器的指令更新1410。如果“是”,则假定映射寄存器k已更新1420,并且变量i设置为等于映射寄存器k的当前递增值1430。如果“否”,则过程查询是否出现了递增寄存器的指令更新1460。如果“是”,则假定映射寄存器k的递增已更新1470,并且变量i设置为等于映射寄存器k的当前递增值1430。仍如图4所示,映射寄存器k的当前递增值保存在递增寄存器(IR)420中。然后,对于每个半字j=0到7,将映射寄存器k的当前表项(HWj[Mk])递增值i(HWj[Mk]+i),并且将结果置于预递增映射寄存器k的半字j中1440。注意此处(及上文)中,HWj[PIMk]指预递增映射寄存器k中的第j个半字。一旦更新了预递增映射寄存器,或如果对两个查询的回答都是“否”,则过程结束1450。
假定刚执行的指令未更新寄存器1410,则过程判定之前执行的指令是否更新了递增寄存器1460。如果“否”,过程结束1450。否则,过程确定更新的递增寄存器是针对映射寄存器k 1470,并继续如上所述地更新对应的预递增映射表项。
从上述讨论中,本领域的技术人员将认识到,在此提供了一种用于管理映射寄存器的映射表项以便进行基于映射的间接寄存器引用的灵活工具。该映射表项管理工具和本文所述的寄存器映射单元支持(在一个实施例中)以下映射管理功能·使用“设置映射寄存器”指令将映射寄存器初始化为一系列连续的值。由于如上所示每个映射寄存器具有8个映射表项,所以该操作可以将这8个映射表项初始化为一系列的8个连续值。在一个实施例中,可以在“立即设置映射寄存器”指令的立即字段中提供起始值,以便将指令的等待时间保持在一个周期(即,初始化的映射寄存器可用于紧接其中发出“立即设置映射寄存器”指令的周期之后的周期中发出的指令)。
·使用“递增映射寄存器”指令将映射寄存器中的表项递增一个常数。从与映射寄存器关联的对应递增寄存器(IR)获取递增,且将映射寄存器中的每个表项递增相同的递增值。注意,每个映射寄存器有一个递增寄存器。还注意的是,在一个实施例中,与操作关联的等待时间可以保持在一个周期(即,递增的映射寄存器可用于紧接其中发出“递增映射寄存器”指令的周期之后的周期中发出的指令)。为此,将预递增映射寄存器(PIMR)包括在寄存器映射单元中,每个映射寄存器有一个预递增映射寄存器。预递增映射寄存器中的每个表项的值等于对应映射寄存器中的对应表项的当前值,所述每个表项的值递增对应递增寄存器中的当前值。执行“递增映射寄存器”指令导致从对应的预递增映射寄存器加载目标映射寄存器(即,在图4中的RMU底部处的箭头);同时,它导致将目标映射寄存器中的新值递增对应递增寄存器中的当前值,并将其加载到对应的预递增映射寄存器(即,在图4中的RMU顶部处的箭头)。任何对映射寄存器内容的更改(例如,通过“立即设置映射寄存器”指令或“移动到映射寄存器”指令)都会导致将来自新映射寄存器内容的递增值放置到对应的预递增映射寄存器中。
·使用“往返移动到映射寄存器”指令(通过例如图4中的寄存器之间的“移动”路线)将VMX寄存器的内容移动到映射寄存器或反之亦然。可以使用具有C映射的间接寻址来访问是指令的源或目标的VMX寄存器。就如何间接访问目标单元中的寄存器而言,“移动到映射寄存器”操作提供了完全的灵活性。可以使用VMX单元的算术、逻辑和变换功能在VMX寄存器中创建映射,或者可以从存储器将它们加载到VMX寄存器;并且可以根据需要将它们移动到映射寄存器。由于寄存器文件到寄存器文件的移动对这些指令来说是必要的,所以希望其等待时间大于一个周期。对这些指令来说,大概4个周期的等待时间被看作是可接受的。
此外,在一种实施方式中,在立即字段中编码的掩码可用于防止映射管理指令更改由所述掩码确定的映射寄存器中的一个或多个表项。还可以容易地提供设置递增寄存器中的值的指令。
从上述说明中,本领域的技术人员将注意到,在此提供了一种用于管理寄存器映射以便进行大型寄存器文件的基于映射的间接寄存器文件访问的面向SIMD的管理工具。
所述管理工具包括具有一组映射的寄存器映射单元,所述映射组的每个映射都包括多个映射寄存器。此外,提供了由处理器通过寄存器映射单元的映射组的映射表项间接访问的一组实际寄存器。实际寄存器组中的实际寄存器的数量大于映射组中的映射表项的数量,并且映射组中的映射表项在任意给定时刻仅引用实际寄存器的子集。所述工具通过响应于执行单个更新指令而更新映射组中的至少一个映射的多个映射表项来管理对寄存器映射单元的映射组的映射表项的更新。此管理可以与处理器使用映射组的至少一些其他映射表项来间接访问实际寄存器组以便处理数据同时发生。根据本发明的各方面,无需停止处理器或执行单元以便实现映射表项更新。此外,本发明无需强制修改给定映射中的所有表项,但仍允许从执行单个更新指令来修改多个映射表项。所述单个更新指令可以包括单指令多数据(SIMD)指令。执行SIMD指令会导致更新多个映射表项,但是少于映射组的至少一个映射的所有映射表项。
说明了各种用于指示寄存器映射单元更新映射表项的技术。例如,可以使用基于SIMD的执行单元和关联的SIMD寄存器(例如,VMX执行单元和VMX寄存器)来在至少一个SIMD寄存器中建立多个映射表项,使用“移动”指令来将至少一个SIMD寄存器的内容传送到至少一个映射寄存器。同样,可以将至少一个映射寄存器的内容传送到至少一个SIMD寄存器,因为映射寄存器和SIMD寄存器优选地具有通用的物理和逻辑格式。将映射表项从映射寄存器传送到SIMD寄存器在捕获处理器状态或上下文切换期间可以是有利的。其他用于更新映射表项的技术包括使用简单的“递增映射寄存器”指令,该指令导致将多个连续的映射表项递增更新期望的值,所述值例如存储在与要更新的映射寄存器关联的递增寄存器中。作为一种扩展,可以使用预递增映射寄存器来自动预先计算对现有映射寄存器值的递增更新,并且可以使用单个更新指令来将预递增映射表项换入对应的映射寄存器。此外,可以使用“立即设置映射寄存器”指令以使用在指令本身的字段内提供的值对一系列映射表项进行初始化更新。通过提供多种方法来更新寄存器映射单元的映射组中的映射表项,本发明的管理工具是一种非常灵活的映射管理机制并且例如就管理映射所需的内部循环中执行的指令数的部分而言,该工具是高效的。此外,与映射管理关联的流水线等待时间对其灵活性或效率没有负面影响。
根据在计算机或计算机网络上执行的程序过程讨论了以上提供的详细说明。本领域的技术人员使用这些过程说明来将其工作的实质最有效地传达给本领域的其他技术人员。它们可以在硬件或软件或两者的组合中实现。
过程在此通常被认为是导致期望结果的一系列步骤。这些步骤是需要对物理量进行物理操纵的步骤。通常,尽管并非一定如此,这些量采取能够被存储、传输、组合、比较以及以其他方式操纵的电或磁信号的形式。有时,主要是出于经常使用的原因,将这些信号称为位、值、元素、符号、字符、术语、数字、对象、属性等是方便的。但是应指出,所有这些术语和类似术语都与适当的物理量关联,并只是应用于这些物理量的方便的标记。
此外,执行的操纵通常涉及术语(例如加或比较),这些术语一般与人工操作员进行的智力运算关联。在形成本发明一部分的在此描述的任何操作中,这种人工操作员的能力是不必要的,或在多数情况下不需要;这些操作为机器运算。执行本发明的运算的有用的机器包括通用数字计算机或类似设备。
所述方法的每个步骤可以在任何通用计算机(例如大型机、个人计算机等)上执行,并与从任何编程语言(例如,C++、Java、Fortran等)生成的一个或多个程序模块或对象或其一部分相一致。此外,每个步骤,或实现每个步骤的文件或对象等,可以由专用硬件或专用电路模块来执行。
本发明优选地以高级过程或面向对象的编程语言实现以便与计算机通信。但是,如果需要,可以以汇编或机器语言来实现本发明。在任何情况下,语言可以是编译的或解释的语言。
本发明可以实现为包括记录介质的机构或计算机程序产品。此类机构或计算机程序产品可以包括,但不限于,CD-ROM、软盘、磁带、硬盘驱动器、计算机RAM或ROM和/或电、磁、光、生物或程序的其他类似体现。实际上,所述机构或计算机程序产品可以包括任何固体或液体传输介质、磁或光等,用于存储或传送可由机器读取的信号,以便根据本发明的方法控制通用或专用可编程计算机的操作和/或根据本发明的系统构造其组件。
本发明也可以以系统实现。系统可以包括计算机,所述计算机包括处理器和存储器设备并可选地包括存储设备、诸如视频显示的输出设备和/或诸如键盘或计算机鼠标的输入设备。此外,系统可以包括计算机的互联网络。计算机可以是独立的形式(例如传统的台式个人计算机)或集成到其他装置(例如,电子测试装置)。可以出于所需目的特别构建所述系统以执行例如本发明的方法步骤,或所述系统可以包括一个或多个通用计算机,由根据存储在计算机(多个)中的此处教导的计算机程序有选择地激活或重新配置所述通用计算机。此处提出的过程并不内在地与特定计算机系统或其他装置相关。从给出的说明可以产生这些系统中的多种系统所需的结构。
再次地,本发明的一个或多个方面的功能可以在软件、固件、硬件或它们的某些组合中实现。
本发明的一个或多个方面可以包括在一件制品(例如,一个或多个计算机程序产品)中,所述制品具有例如计算机可用介质。所述介质其中具有例如计算机可读程序代码装置或逻辑(例如,指令、代码、命令等)来提供和促进本发明的功能。所述制品可以包括为计算机系统的一部分或单独出售。
此外,可以提供至少一个机器可读的程序存储设备,所述程序存储设备包含至少一个可由机器执行的指令程序以便执行本发明的功能。
本文描述的流程图只是实例。在不偏离本发明的精神的情况下,其中说明的这些程序或步骤(或操作)存在许多变型。例如,可以以不同的顺序执行这些步骤,或添加、删除或修改步骤。所有这些变型都被看作要求保护的发明的一部分。
尽管在此详细示出和说明了优选实施例,但是对本领域的技术人员显而易见的是,在不偏离本发明的精神的情况下,可以做出各种修改、添加、替换等,因此,这些被认为是在如以下权利要求限定的本发明的范围之内。
权利要求
1.一种管理处理器的寄存器的方法,所述方法包括提供包括一组映射的寄存器映射,所述映射组中的每个映射都包括多个映射寄存器;提供由所述处理器通过所述寄存器映射的所述映射组的映射表项来间接访问的一组实际寄存器,其中所述实际寄存器组中的实际寄存器的数量大于所述映射组中的映射表项的数量,并且其中所述映射组的所述映射表项在任意给定时刻仅引用所述实际寄存器组的子集;以及通过响应于执行单个更新指令而更新所述映射组中的至少一个映射的多个映射表项来管理对所述寄存器映射的所述映射组的映射表项的更新。
2.如权利要求1中所述的方法,其中所述管理与所述处理器使用所述映射组的至少一些其他映射表项来间接访问所述实际寄存器组以便处理数据同时发生。
3.如权利要求2中所述的方法,其中所述管理还与所述处理器使用至少一个通过所述单个更新指令更新多个映射表项的映射的至少一些其他映射表项同时发生,并且其中所述单个更新指令包括单指令多数据指令。
4.如权利要求1中所述的方法,其中通过所述单个更新指令更新的所述多个映射表项少于所述映射组的所述至少一个映射的所有映射表项。
5.如权利要求1中所述的方法,其中所述处理器还包括基于单指令多数据的执行单元和关联的单指令多数据寄存器,并且其中所述管理还包括使用所述处理器的所述基于单指令多数据的执行单元和关联的单指令多数据寄存器来在至少一个单指令多数据寄存器中建立多个映射表项更新,并且其中所述管理还包括使用所述单个更新指令来将所述多个映射表项更新从所述至少一个单指令多数据寄存器移动到所述至少一个映射的至少一个映射寄存器,其中所述多个映射寄存器与所述单指令多数据寄存器具有相同的位大小和逻辑结构,并且所述单个更新指令是“将数据从单指令多数据寄存器移动到映射寄存器”指令。
6.如权利要求5中所述的方法,其中将所述多个映射表项更新从所述至少一个单指令多数据寄存器移动到所述至少一个映射寄存器是从所述至少一个单指令多数据寄存器到所述寄存器映射的所述至少一个映射寄存器直接发生,而不使用所述处理器的加载/存储单元。
7.如权利要求5中所述的方法,其中所述管理还包括响应于单独的单个移动指令,将所述寄存器映射的所述映射组的至少一个映射的多个映射表项移动到与所述单指令多数据执行单元关联的单指令多数据寄存器中的至少一个单指令多数据寄存器,其中所述单独的单个移动指令是“将数据从映射寄存器移动到单指令多数据寄存器”指令。
8.如权利要求1中所述的方法,其中提供所述寄存器映射还包括为所述寄存器映射提供多个递增寄存器,每个递增寄存器与所述多个映射寄存器中的相应映射寄存器关联,并且其中所述管理包括响应于所述单个更新指令,使用所述多个递增寄存器中的至少一个递增寄存器来更新所述映射组的所述至少一个映射的多个映射表项,其中所述单个更新指令包括“递增映射寄存器”指令。
9.如权利要求8中所述的方法,其中提供所述寄存器映射还包括为所述寄存器映射提供多个预递增映射寄存器,每个预递增映射寄存器与所述多个映射寄存器中的相应映射寄存器关联,并且其中所述管理还包括使用所述单个更新指令,将预递增映射表项从至少一个预递增映射寄存器移动到所述至少一个映射的至少一个映射寄存器。
10.如权利要求9中所述的方法,还包括响应于更新所述多个映射寄存器的关联映射寄存器或所述多个递增寄存器的关联递增寄存器的映射表项,自动地确定所述多个预递增映射寄存器中的预递增映射寄存器的映射表项。
11.如权利要求1中所述的方法,其中所述单个更新指令包括“立即设置映射寄存器”指令,并且其中所述管理还包括从所述“立即设置映射寄存器”指令的字段获取初始化值并使用从所述“立即设置映射寄存器”指令获取的所述初始化值来对所述多个映射表项进行初始化递增更新。
12.如权利要求11中所述的方法,其中被更新的所述多个映射表项在至少一个映射寄存器中,所述至少一个映射寄存器包括多个半字,并且其中所述管理还包括使用从所述“立即设置映射寄存器”指令获取的所述初始化值来初始化所述至少一个映射寄存器的第一半字,并分别通过将所述至少一个映射寄存器的至少一个关联的递增寄存器递增1或递增值i来更新所述映射寄存器的每个连续的半字。
13.如权利要求1中所述的方法,其中所述映射组包括目标映射和三个源映射,并且其中所述目标映射和所述三个源映射中的每个映射都包括四个映射寄存器,每个映射寄存器包括八个半字表项,且所述映射组的每个映射具有三十二个映射表项,并且其中所述单个更新指令包括四个操作数,一个操作数是目标映射标识符,并且其余三个操作数中的至少两个操作数是源映射标识符。
14.一种用于管理处理器的寄存器的系统,所述系统包括包含一组映射的寄存器映射,所述映射组中的每个映射包括多个映射寄存器;由所述处理器通过所述寄存器映射的所述映射组的映射表项来间接访问的一组实际寄存器,其中所述实际寄存器组中的实际寄存器的数量大于所述映射组中的映射表项的数量,并且其中所述映射组的所述映射表项在任意给定时刻仅引用所述实际寄存器组的子集;以及用于通过响应于执行单个更新指令而更新所述映射组中的至少一个映射的多个映射表项来管理对所述寄存器映射的所述映射组的映射表项的更新的装置。
15.如权利要求14中所述的系统,其中所述用于管理的装置的操作与所述处理器使用所述映射组的至少一些其他映射表项来间接访问所述实际寄存器组以便处理数据同时进行。
16.如权利要求15中所述的系统,其中所述用于管理的装置的操作还与所述处理器使用至少一个通过所述单个更新指令更新多个映射表项的映射的至少一些其他映射表项同时进行,并且其中所述单个更新指令包括单指令多数据指令。
17.如权利要求14中所述的系统,其中通过所述单个更新指令更新的所述多个映射表项少于所述映射组的所述至少一个映射的所有映射表项。
18.如权利要求14中所述的系统,其中所述处理器还包括基于单指令多数据的执行单元和关联的单指令多数据寄存器,并且其中所述用于管理的装置还包括用于使用所述处理器的所述基于单指令多数据的执行单元和关联的单指令多数据寄存器来在至少一个单指令多数据寄存器中建立多个映射表项更新的装置,并且其中所述用于管理的装置还包括用于使用所述单个更新指令来将所述多个映射表项更新从所述至少一个单指令多数据寄存器移动到所述至少一个映射的至少一个映射寄存器的装置,其中所述多个映射寄存器与所述单指令多数据寄存器具有相同的位大小和逻辑结构,并且所述单个更新指令是“将数据从单指令多数据寄存器移动到映射寄存器”指令。
19.如权利要求18中所述的系统,其中使用所述寄存器映射来直接执行所述用于将所述多个映射表项更新从所述至少一个单指令多数据寄存器移动到所述至少一个映射寄存器的装置,而不使用所述处理器的加载/存储单元。
20.如权利要求18中所述的系统,其中所述用于管理的装置还包括用于响应于单独的单个移动指令,将所述寄存器映射的所述映射组的至少一个映射的多个映射表项移动到与所述单指令多数据执行单元关联的单指令多数据寄存器中的至少一个单指令多数据寄存器的装置,其中所述单独的单个移动指令是“将数据从映射寄存器移动到单指令多数据寄存器”指令。
21.如权利要求14中所述的系统,其中所述寄存器映射还包括多个递增寄存器,每个递增寄存器与所述多个映射寄存器中的相应映射寄存器关联,并且其中所述用于管理的装置包括用于响应于所述单个更新指令,使用所述多个递增寄存器中的至少一个递增寄存器来更新所述映射组的所述至少一个映射的多个映射表项的装置,其中所述单个更新指令包括“递增映射寄存器”指令。
22.如权利要求21中所述的系统,其中所述寄存器映射还包括多个预递增映射寄存器,每个预递增映射寄存器与所述多个映射寄存器中的相应映射寄存器关联,并且其中所述用于管理的装置还包括用于使用所述单个更新指令,将预递增映射表项从至少一个预递增映射寄存器移动到所述至少一个映射的至少一个映射寄存器的装置。
23.如权利要求22中所述的系统,还包括用于响应于更新所述多个映射寄存器的关联映射寄存器或所述多个递增寄存器的关联递增寄存器的映射表项,自动地确定所述多个预递增映射寄存器中的预递增映射寄存器的映射表项的装置。
24.如权利要求14中所述的系统,其中所述单个更新指令包括“立即设置映射寄存器”指令,并且其中所述用于管理的装置还包括用于从所述“立即设置映射寄存器”指令的字段获取初始化值并使用从所述“立即设置映射寄存器”指令获取的所述初始化值来对所述多个映射表项进行初始化递增更新的装置。
25.如权利要求24中所述的系统,其中被更新的所述多个映射表项在至少一个映射寄存器中,所述至少一个映射寄存器包括多个半字,并且其中所述用于管理的装置还包括用于使用从所述“立即设置映射寄存器”指令获取的所述初始化值来初始化所述至少一个映射寄存器的第一半字,并分别通过将所述至少一个映射寄存器的至少一个关联的递增寄存器递增1或递增值i来更新所述映射寄存器的每个连续的半字的装置。
26.如权利要求14中所述的系统,其中所述映射组包括目标映射和三个源映射,并且其中所述目标映射和所述三个源映射中的每个映射都包括四个映射寄存器,每个映射寄存器包括八个半字表项,且所述映射组的每个映射具有三十二个映射表项,并且其中所述单个更新指令包括四个操作数,一个操作数是目标映射标识符,并且其余三个操作数中的至少两个操作数是源映射标识符。
27.至少一个计算机可读的、有形地包含至少一个指令程序的程序存储设备,所述指令可由所述计算机执行以执行如权利要求1-13中的任一权利要求所述的方法。
全文摘要
本发明提供了一种用于管理处理器中基于映射的间接寄存器文件访问的寄存器映射的工具。所述管理工具包括包含一组映射的寄存器映射,所述映射组中的每个映射都具有多个映射寄存器。所述处理器通过所述映射组的映射表项来间接访问一组实际寄存器。所述实际寄存器组中的实际寄存器的数量大于所述映射组中的映射表项的数量,并且所述映射组的所述映射表项在任意给定时刻仅引用所述实际寄存器组的子集。所述工具包括通过响应于执行单个更新指令而更新所述映射组中的至少一个映射的多个映射表项来管理对所述寄存器映射的所述映射组的映射表项的更新。
文档编号G06F15/78GK101030192SQ20071008612
公开日2007年9月5日 申请日期2007年3月1日 优先权日2006年3月2日
发明者J·H·德比, P·G·卡佩克, R·K·蒙托耶 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1