管理处理器的寄存器的方法和系统技术方案

技术编号:2838928 阅读:213 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种用于管理处理器中基于映射的间接寄存器文件访问的寄存器映射的工具。所述管理工具包括包含一组映射的寄存器映射,所述映射组中的每个映射都具有多个映射寄存器。所述处理器通过所述映射组的映射表项来间接访问一组实际寄存器。所述实际寄存器组中的实际寄存器的数量大于所述映射组中的映射表项的数量,并且所述映射组的所述映射表项在任意给定时刻仅引用所述实际寄存器组的子集。所述工具包括通过响应于执行单个更新指令而更新所述映射组中的至少一个映射的多个映射表项来管理对所述寄存器映射的所述映射组的映射表项的更新。

【技术实现步骤摘要】

本专利技术一般地涉及管理处理器中的寄存器,更具体地说,涉及面向单指令多数据(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寄存器移动到映射寄存器”指令。备选地,可以采用使用关联递增寄存器的递增值的“递增映射寄存器”或采用与多个映射寄存器关联的预递增映射寄存器来更新映射表项。此外,可以使用“立即设置映射寄存器”指令来更新映射表项,其中所述指令本身中提供了开始所述多个映射表项的递增初始化的初始化值。在其他方面,提供了一种用于管理处理器的寄存器的系统。所述系统包括包含一组映射的寄存器映射,其中所述映射组中的每个映射包括多个映射寄存器;以及由所述处理器通过所述寄存器映射的所述映射组的映射表项来间接访问的一组实际寄存器。所述实际寄存器组中的实际寄存器的数量大于所述映射组中的映射表项的数量,并且其中所述映射组的所述映射表项在任意给定时刻仅引用所述实际寄存器组的寄存器的子集。所述系统还包括用于通过响应于执行单个更新指令而更新所述映射组中的至少一个映射的多个映射表项来管理对所述寄存器映射的所述映射组的映射表项的更新的装置。在其他方面,提供了至少一个计算机可读的、有形地包含至少一个指令程序的程序存储设备,所述指令可由所述计算机执行以执行管理处理器的寄存器的方法,其中所述寄存器包括一组实际寄存器。所述方法包括提供一组映射,所述映射组中的每个映射包括多个映射寄存器;允许所述处理器通过所述映射组的映射表项来间接访问所述多个实际寄存器,其中所述实际寄存器组中的实际寄存器的数量大于所述映射组中的映射表项的数量,并且其中所述映射组的所述映射表项在任意给定时刻仅引用所述实际寄存器组的子集;以及通过响应于执行单个更新指令而更新所述映射组中的至少一个映射的多个映射表项来管理对所述映射组的映射表项的更新。此外,通过本专利技术的技术实现了其他功能和优点。在本文中详细说明了本专利技术的其他实施例和方面,并且它们被看作所要求保护的专利技术的一部分。附图说明在说明书结尾处的权利要求书本文档来自技高网
...

【技术保护点】
一种管理处理器的寄存器的方法,所述方法包括:提供包括一组映射的寄存器映射,所述映射组中的每个映射都包括多个映射寄存器;提供由所述处理器通过所述寄存器映射的所述映射组的映射表项来间接访问的一组实际寄存器,其中所述实际寄存器组中的实际寄存器的数量大于所述映射组中的映射表项的数量,并且其中所述映射组的所述映射表项在任意给定时刻仅引用所述实际寄存器组的子集;以及通过响应于执行单个更新指令而更新所述映射组中的至少一个映射的多个映射表项来管理对所述寄存器映射的所述映射组的映射表项的更新。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:JH德比PG卡佩克RK蒙托耶
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1