用于共享处理器资源的方法和设备技术

技术编号:2847706 阅读:129 留言:0更新日期:2012-04-11 18:40
在第一方面,本发明专利技术提供了用于共享处理器资源的第一种方法。该第一种方法包括步骤:(1)将多个物理寄存器分组为至少一个阵列,其中该至少一个阵列的每一个阵列中的寄存器共享读端口和写端口,并且其中至少两种类型的执行单元连至该至少一个阵列的每一个阵列;以及(2)在不同时间在该至少一个阵列的至少一个寄存器中存储不同类型的数据,其中每种不同类型的数据都与至少一个不同的执行单元相关联。本发明专利技术还提供了很多的其他方面。

【技术实现步骤摘要】

本专利技术一般地涉及处理器,并且更具体地涉及用于共享处理器资源的方法和设备
技术介绍
在传统的处理器中,不同类型的执行单元可以具有专用寄存器并且可以独立地运行。例如,整数执行单元(FXU)通常连接到一组专用通用寄存器(GPR),浮点执行单元(FPU)通常连接到一组专用浮点寄存器(FPR),向量执行单元(VMX)通常连接到一组专用向量寄存器(VPR),等等。每组专用寄存器都包括各自的读端口和写端口。此外,通常限定每组专用寄存器的大小制作以使其适应最坏的情况。因此,在正常运行期间,根据处理器所执行的应用程序,每组专用寄存器中的许多寄存器可能一直都没有被用到。由于需要与每组专用寄存器对应的读端口和写端口,针对最坏的情况限定每组专用寄存器的大小以及/或者采用彼此独立的执行单元,传统的处理器在硅面积的利用和功耗方面的效率很差。
技术实现思路
在本专利技术的第一方面,提供了用于共享处理器资源的第一种方法。该第一种方法包括步骤(1)将多个物理寄存器分组为至少一个阵列,其中该至少一个阵列的每一个阵列中的寄存器共享读端口和写端口,并且其中至少两种类型的执行单元连至该至少一个阵列中的每一个阵列;以及(2)在不同的时间在至少一个阵列中的至少一个寄存器中存储不同类型的数据,其中每个不同类型的数据都与至少一个不同的执行单元相关联。在本专利技术的第二方面中,提供了用于共享处理器资源的第二种方法。该第二种方法包括步骤(1)将多个物理寄存器分组为第一阵列和第二阵列,其中第一阵列中的寄存器共享读端口和写端口,第二阵列中的寄存器共享读端口和写端口,并且第一阵列和第二阵列中的每一个阵列都连至不同类型执行单元的一个或多个部分;(2)允许第一阵列的寄存器在不同时间存储不同类型的数据;并且(3)允许第二阵列的寄存器在不同时间存储不同类型的数据。在本专利技术的第三方面中,提供了一种处理器。该处理器包括(1)多个物理寄存器,其分组为至少一个阵列,其中该至少一个阵列的每一个阵列中的寄存器共享读端口和写端口;以及(2)至少两种类型的执行单元,其连至该至少一个阵列的每一个阵列。该处理器适合于在不同时间在该至少一个阵列的至少一个寄存器中存储不同类型的数据,其中每种不同类型的数据都与至少一个不同的执行单元相关联。在本专利技术的第四方面中,提供了一种用于共享处理器资源的系统。该系统包括(1)存储器;(2)存储装置;以及(3)处理器,其连至存储器和存储装置。该处理器具有(a)多个物理寄存器,其分组为至少一个阵列,其中该至少一个阵列的每一个阵列中的寄存器共享读端口和写端口;以及(b)至少两种类型的执行单元,其连至该至少一个阵列的每一个阵列。该处理器适合于在不同时间在该至少一个阵列的至少一个寄存器中存储不同类型的数据,其中每种不同类型的数据都与至少一个不同的执行单元相关联。根据本专利技术的这些方面及其他方面,提供了很多其他的方面。根据下列详细说明、所附权利要求和附图,本专利技术的其他特征和方面将变得更加显而易见。附图说明图1是根据本专利技术实施例的包括第一示例性处理器的系统的框图。图2是根据本专利技术实施例的在不支持同时运行多个线程的模式下运行时处理器所用的可用寄存器队列的框图。图3是根据本专利技术实施例的在支持同时运行多个线程的模式下运行时处理器所用的可用寄存器队列的框图。图4是根据本专利技术实施例的第二示例性处理器的框图。图5示出了根据本专利技术实施例的一种共享处理器资源的方法。具体实施例方式本专利技术提供了一种方法和设备,用于共享诸如寄存器之类的处理器资源,以便减小处理器所需的硅面积和/或处理器所消耗的功率。更特别的是,本专利技术用统一的寄存器栈取代了传统处理器的专用寄存器,该寄存器栈可以包括共同分组为一个或多个阵列的多个寄存器(例如,GPR(通用寄存器,诸如整数寄存器),FPR(浮点寄存器),以及/或者VPR(向量处理器寄存器))。每个阵列都包括各自的读端口和写端口。与传统处理器相比,不同类型的执行单元可以连至统一的寄存器堆栈,从而共享寄存器和这些寄存器的读端口和/或写端口,这就减小了处理器所需的硅面积并进而减小了所消耗的功率。因此,统一的寄存器栈中的寄存器可以被指定为存储整数数据、浮点数据或向量数据。在一个实施例中,可以从统一的寄存器栈中构造一个或多个可用寄存器队列。当需要寄存器存储例如整数数据、浮点数据或向量数据时,处理器可以从一个队列的开始处分配寄存器来存储这些数据。处理器可以采用寄存器重命名(register renaming)来将这些寄存器的物理地址映射到架构的(architected)寄存器地址。一旦不再需要这些寄存器存储数据,就可以从寄存器中释放(unassigned)该架构的寄存器地址,并且可以将寄存器放在队列的末端。此后,可以采用该寄存器来存储任意类型的数据(例如,不同类型的数据)。通过允许统一的寄存器栈中的寄存器在不同的时间存储不同类型的数据,统一的寄存器栈中的所有寄存器都可用于存储整数数据、浮点数据或向量数据。因此,例如,如果整数执行单元和浮点执行单元同时发生最坏的情况(例如,需要统一的寄存器栈中的所有寄存器的运算)时,可以根据需要将先前有可能已经分配为存储向量的未使用的寄存器分配为存储整数数据和/或浮点数据。由于所有类型的执行单元不太可能同时发生最坏的情况,所以包括在统一寄存器栈中的寄存器的总数不必考虑所有类型的执行单元都发生最坏情况的情形。因此,与传统的处理器相比,处理器所需的寄存器总数可以减少。此外,由于不同的执行单元可以共享读端口和/或写端口,因此这些端口的总数也可以减少。以这种方式,减小了处理器所需的硅面积并进而减小了功耗。作为替代或作为选择,连至一个或多个寄存器阵列的执行单元也可以共享逻辑,进一步减小了处理器所需的硅面积以及处理器所消耗的功率。图1是根据本专利技术实施例的包括第一示例性处理器的系统的框图。参照图1,系统100可以是个人计算机、服务器或类似的装置,并且可以包括连至用于存储数据的存储器104的第一示例性处理器102和/或诸如硬盘驱动器或类似装置的存储装置106。第一示例性处理器102可以包括分组为一个或多个阵列110(仅示出了一个)的多个物理寄存器108(例如,GPR、FPR和/或VPR)。一个或多个阵列110中的每一个阵列中的寄存器108都共享读端口112和/或写端口114。多种类型的执行单元可以连至一个或多个阵列110中的每一个阵列。例如,两个或多个整数执行单元(FXU)116-118、浮点单元(FPU)120-122和/或向量执行单元(VMX)124-126,可以连至一个或多个阵列110中的每一个阵列的端口112、114。虽然处理器102包括了两个FXU116-118、两个FPU120-122和两个VMX124-126,但是还可以采用更多或更少的FXU、FPU和/或VMX。以这种方式,分组为一个或多个阵列110的多个物理寄存器108可以用作统一的寄存器栈。该统一的寄存器栈可以创建用于在GPR、FPR和/或VPR之间移动数据的自然通道(natural path)。此外,不需要特定的通道用于在移动执行单元之间移动数据,从而便于在不同执行单元之间移动数据。FXU116-118、FPU120-122和/或VMX124-126可以包括逻辑、寄存器、存储器或类似本文档来自技高网...

【技术保护点】
一种共享处理器资源的方法,包括:    将多个物理寄存器分组为至少一个阵列,其中所述至少一个阵列的每一个阵列中的寄存器共享读端口和写端口,并且其中至少两种类型的执行单元连至所述至少一个阵列的每一个阵列;以及    在不同时间在所述至少一个阵列的至少一个所述寄存器中存储不同类型的数据,其中每种不同类型的数据都与至少一个不同的执行单元相关联。

【技术特征摘要】
US 2005-5-19 11/132,6561.一种共享处理器资源的方法,包括将多个物理寄存器分组为至少一个阵列,其中所述至少一个阵列的每一个阵列中的寄存器共享读端口和写端口,并且其中至少两种类型的执行单元连至所述至少一个阵列的每一个阵列;以及在不同时间在所述至少一个阵列的至少一个所述寄存器中存储不同类型的数据,其中每种不同类型的数据都与至少一个不同的执行单元相关联。2.根据权利要求1所述的方法,其中在不同时间在所述至少一个阵列的至少一个寄存器中存储不同类型的数据包括从所述至少一个阵列中构造至少一个可用物理寄存器队列;以及在第一时间期间,从所述至少一个可用寄存器队列中的一个队列中分配第一物理寄存器来存储第一种类型的数据。3.根据权利要求2所述的方法,其中从所述至少一个可用寄存器队列中的一个队列中分配第一物理寄存器来存储第一种类型的数据包括将所述第一物理寄存器的地址映射到架构的寄存器地址;以及还包括在所述第一物理寄存器中存储所述第一种类型的数据。4.根据权利要求3所述的方法,还包括当不再需要存储所述第一物理寄存器中所存储的所述第一种类型的数据时,解除所述第一物理寄存器的地址到所述架构的寄存器地址的映射;将所述第一物理寄存器放置到所述至少一个可用寄存器队列中的一个队列中;以及在不同于所述第一时间的第二时间期间,分配所述第一物理寄存器来存储第二种类型的数据;其中分配所述第一物理寄存器来存储第二种类型的数据包括将所述第一物理寄存器的地址映射到架构的寄存器地址。5.根据权利要求2所述的方法,其中从所述至少一个阵列中构造至少一个可用物理寄存器队列包括从适合于存储对应于第一线程的数据的至少一个阵列中构造第一可用物理寄存器队列;以及从适合于存储对应于第二线程的数据的至少一个阵列中构造第二可用物理寄存器队列;以及从所述至少一个可用寄存器队列中的一个队列中分配第一物理寄存器来存储第一种类型的数据包括从所述第一可用物理寄存器队列中分配第一物理寄存器来存储数据;以及从所述第二可用物理寄存器队列中分配第一物理寄存器来存储相同的第一种类型的数据。6.根据权利要求1所述的方法,还包括在连至所述至少一个阵列中的一个阵列的所述不同类型执行单元之间共享逻辑。7.一种处理器,包括多个物理寄存器,其分组为至少一个阵列,其中所述至少一个阵列的每一个阵列中的寄存器共享读端口和写端口;以及至少两种类型的执行单元,其连至所述至少一个阵列的每一个阵列;所述处理器适合于在不同时间在所述至少一个阵列的至少一个所述寄存器中存储不同类型的数据,其中每种不同类型的数据都与至少一个不同的执行单元相关联。8.根据权利要求7所述的处理器,其中所述处理器还适合于从所述至少一个阵列中构造至少一个可用物理寄存器队列;以及在第一时间期间,从所述至少一个可用寄存器队列中的一个队列中分配第一物理寄存器来存储第一种类型的数据。9.根据权利要求8所述的处理器,其中所述处理器还适合于将所述第一物理寄存器的地址映射到架构的寄存器地址;以及在所述第一物理寄存器中存储所述第一种类型的数据。10.根据权利要求9所述的处理器,其中所述处理器还适合于当不再需要存储所述第一物理寄存器中所存储的所述第一种类型的数据时,解除所述第一物理寄存器的地址到所述架构的寄存器地址的映射;将所述第一物理寄存器放置到所述至少一个可用寄存器队列中的一个队列中;在不同于所述第一时间的第二时间期间,分配所述第一物理寄存器来存储第二种类型的数据;以及将所述第一物理寄存器的地址映射到架构的寄存器地址。11.根据权利要求8所述的处理器,其中所述处理器还适合于从适合于存储对应于第一线程的数据的至少一个阵列中构造第一可用物理寄存器队列;从适合于存储对应于第二线程的数据的至少一个阵列中构造第二可用物理寄存器队列;从所述第一可用物理寄存器队列中分配第一物理寄存器来存储第一种类型的数据;以及从所述第二可用物理寄存器队列中分配第一物理寄存器来存储相同的数据。12.根据权利要求7所述的处理器,其中所述处理器还适合于在连至所述至少一个阵列中的一个阵列的所述不同类型执行单元之间共享逻辑。13.一种系统,包括存储器;存储装置;以及处理器,其连至所述存储器和所述存储装置,所述处理器具有多个物理寄存器,其分组为至少一个阵列,其中所述至少一个阵列的每一个阵列中的寄存器共享读端口和写端口;以及至少两种类型的执行单元,其连至所述至少一个阵列的每一个阵列;所述处理器适合于在不同时间在所述至少一个阵列的至少一个所述寄存器中存储不同类型的数据,其中每种不同类型的数据都与至少一个不同的执行单元相关联。14.根据权利要求13所述的系统,其中所述处理器还适合于从所述至少一个阵列中构造至少一个可用物理寄存器队列;以及在第一时间期间,从所述至少一个可用寄存器队列中的一个队列中分配第一物理寄存器来存储第一种类型的数据。15.根据权利要求14所述的系统,其中所述处理器还适...

【专利技术属性】
技术研发人员:戈登T戴维斯杰弗里H德比
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1