算术逻辑单元寄存器排序制造技术

技术编号:34424114 阅读:17 留言:0更新日期:2022-08-06 15:52
一种图形处理单元(GPU)[100]对操作数向一组操作数寄存器[106]的提供进行排序,由此允许所述GPU在处理之间共享所述操作数寄存器中的至少一者。所述GPU包括多个算术逻辑单元(ALU)[108],其中所述ALU中的至少一者[116]被配置成执行双精度运算。所述GPU还包括一组操作数寄存器,所述操作数寄存器被配置成存储单精度操作数。针对请求双精度运算的多个执行线程,所述GPU将对应的操作数存储在所述操作数寄存器处。在多个执行循环内,所述GPU对将操作数从一组操作数寄存器传送到指定的双精度操作数寄存器进行排序。在每一执行循环期间,双精度ALU使用存储在所述双精度操作数寄存器处的操作数来执行双精度运算。的操作数来执行双精度运算。的操作数来执行双精度运算。

【技术实现步骤摘要】
【国外来华专利技术】算术逻辑单元寄存器排序

技术介绍

[0001]处理器采用被专门设计和配置成代表所述处理器执行指定运算的一个或多个处理单元。举例来说,一些处理器采用图形处理单元(GPU)来执行图形和矢量处理运算。处理器的中央处理单元(CPU)将命令提供到GPU,并且GPU的命令处理器(CP)将所述命令解码成一个或多个运算。GPU的执行单元(诸如,一个或多个算术逻辑单元(ALU))执行所述运算以执行图形和矢量处理运算。所述ALU采用操作数寄存器来存储用于处理的操作数。确切来说,当线程在GPU处执行时,所述线程将操作数存储在操作数寄存器处并将操作码或其他控制信息提供到ALU以控制ALU使用所述操作数执行的数学运算。使用大数目个操作数寄存器允许GPU支持同时执行相对大数目个线程。然而,这种大数目个操作数寄存器占用包括电力和电路面积在内的大量处理资源。
附图说明
[0002]可通过参考附图更好地理解本公开并且使本领域技术人员明白本公开的诸多特征和优点。在不同的图式中使用相同的参考符号来指示类似或相同的项目。
[0003]图1是根据一些实施方案的被配置成对操作数从一组操作数寄存器到另一组操作数寄存器的提供进行排序的图形处理单元(GPU)的框图。
[0004]图2是示出根据一些实施方案的将操作数提供到图1的GPU的寄存器的框图。
[0005]图3是示出根据一些实施方案的图1的GPU的操作数寄存器和对应ALU的配置的框图。
[0006]图4是示出根据一些实施方案的将操作数提供在图3的操作数寄存器处的示例排序的一部分的框图。r/>[0007]图5是示出根据一些实施方案的图4的示例排序的另一部分的框图。
[0008]图6是示出根据一些实施方案的图4的示例排序的又一部分的框图。
[0009]图7是示出根据一些实施方案的图5的示例排序的又一部分的框图。
具体实施方式
[0010]图1到图7示出其中图形处理单元(GPU)对向一组操作数寄存器的操作数提供进行排序由此允许GPU在处理之间共享操作数寄存器中的至少一者的技术。GPU包括多个算术逻辑单元(ALU),其中所述ALU中的至少一者被配置成执行双精度运算。GPU还包括一组操作数寄存器,所述操作数寄存器被配置成存储单精度操作数。针对请求双精度运算的多个执行线程,GPU将对应的操作数存储在操作数寄存器处。在多个执行循环内,GPU对将操作数从一组操作数寄存器传送到指定的双精度操作数寄存器进行排序。在每一执行循环期间,双精度ALU使用存储在双精度操作数寄存器处的操作数来执行双精度运算。通过以此方式对在寄存器之间的操作数提供进行排序,GPU允许多个处理块(例如,多个矢量着色器处理器)共享双精度操作数寄存器,从而减小电路面积和由操作数寄存器所消耗的电力。
[0011]图1示出根据一些实施方案的支持对用于双精度数学运算的操作数的提供进行排
序的GPU 100。出于描述目的,假定GPU 100是执行指令集(例如,计算机程序)以代表电子装置实行任务的处理器的一部分。因此,在不同的实施方案中,GPU 100是诸如台式计算机、笔记本计算机、服务器、平板计算机、智能电话、游戏控制台等电子装置的一部分。此外,假定包括GPU 100的处理器包括执行指令集的中央处理单元(CPU)。
[0012]GPU 100被设计和制造成代表CPU实行指定的运算。确切来说,GPU 100代表CPU执行图形和矢量处理运算。举例来说,在一些实施方案中,在执行指令的过程中,CPU生成与图形和矢量处理运算相关联的命令。CPU将所述命令提供到GPU 100,GPU 100采用命令处理器(未示出)来将所述命令解码成指令集以供在GPU 100处执行。
[0013]为了便于执行指令,GPU 100包括多个计算单元,诸如一个或多个单指令多数据(SIMD)块,其中每一SIMD块被配置成执行运算的对应线程。在一些实施方案中,GPU的命令处理器对从CPU接收到的命令进行解码,并且基于所述命令生成并调度将在SIMD块处执行的多组线程。每一SIMD块包括多个矢量着色器处理器(VSP)(例如VSP102、103、104)。在一些实施方案中,每一SIMD块包括四个不同的VSP,由此支持同时执行四个不同的线程。因此,假定每一计算单元包括四个SIMD块,其中每一SIMD块包括四个VSP,每一计算单元支持同时执行16个线程。
[0014]在执行期间,线程生成数学运算以通过对应的操作数来执行。为了支持数学运算的执行,GPU 100包括一组操作数寄存器106(例如,操作数寄存器111、112)和一组ALU 108(例如ALU 114、116)。操作数寄存器106存储用于数学运算的操作数并且ALU 108使用存储的操作数来执行数学运算。确切来说,为了执行数学运算,线程将对应的操作数存储在操作数寄存器106中的一者处(如下文进一步描述),并将控制信息(未示出)提供到ALU 108中的一者。基于所述控制信息,ALU使用存储的操作数执行数学运算并将结果存储在结果寄存器(未示出)处以供线程检索。
[0015]将了解,为了清晰地进行说明,本文中将操作数寄存器106中的每一者示出为单个块。然而,在一些实施方案中,操作数寄存器106中的每一者存储多个操作数。图2处示出一个示例,图2描绘存储用于ALU 114的操作数的操作数寄存器111。在所描绘的实施方案中,操作数寄存器111存储用于对应线程的三个操作数,所述三个操作数分别被指定为“A”、“B”和“C”。
[0016]返回图1,将了解,所述图示出在VSP 102

104之间共享操作数寄存器106和ALU 108。然而,在其他实施方案中,操作数寄存器106中的一者或多者或ALU 108中的一者或多者专用于个别VSP。因此,举例来说,在一些实施方案中,将操作数寄存器106的子集分配给VSP 102且将操作数寄存器的不同子集分配给VSP 103,以使得每一VSP不能使用已分配给另一VSP的操作数寄存器。类似地,在一些实施方案中,将ALU 108的子集分配给VSP 102且将ALU 108的不同子集分配给VSP 103,以使得每一VSP不能将数学运算分配给已分配给不同VSP的ALU。
[0017]在一些实施方案中,由执行线程生成的不同数学运算中的至少一些数学运算与不同精度相关联,从而指示对应操作数的精度水平。举例来说,在一些实施方案中,执行线程生成单精度数学运算和双精度数学运算,其中双精度操作数(即,用于双精度运算的操作数)是单精度操作数的两倍大。操作数寄存器106的子集中的每一者的大小被定为存储单精度操作数,而操作数寄存器106的另一子集中的每一者的大小被定为存储双精度操作数。在
一些实施方案中且如下文更详细地描述,在双精度操作数等待108中的一者或多者的处理时,操作数寄存器106中的单精度操作数寄存器存储这些操作数的一些部分。
[0018]ALU 108的子集中的每一者包括以对应的精度使用所述精度的操作数来执行数学运算的电路系统。因此,举本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,所述方法包括:针对在处理单元处执行的多个线程,接收多个操作数以供在算术逻辑单元(ALU)处进行处理;将所述多个操作数存储在多个寄存器处;以及在多个执行循环内对将所述多个操作数从所述多个寄存器提供到第一操作数寄存器以供在所述ALU处进行处理来进行排序。2.如权利要求1所述的方法,其中所述排序包括:在第一执行循环期间,将所述多个操作数中的第一操作数的第一部分存储在所述第一操作数寄存器处;以及在第二执行循环期间,将所述多个操作数中的第二操作数的第一部分从所述多个寄存器中的第一寄存器传送到所述第一操作数寄存器。3.如权利要求2所述的方法,其中所述排序还包括:在所述第一执行循环期间,将所述第一操作数的第二部分存储在所述多个寄存器中的第二寄存器处;以及在所述第二执行循环期间,将所述第一操作数的所述第二部分传送到第二操作数寄存器以供在所述ALU处进行处理。4.如权利要求3所述的方法,所述方法还包括:在所述第二执行循环期间,在所述ALU处从所述第一操作数寄存器和所述第二操作数寄存器读取所述第一操作数。5.如权利要求4所述的方法,其中所述第一操作数是双精度操作数,并且其中所述多个寄存器中的每一者被配置成存储单精度操作数。6.如权利要求2所述的方法,其中所述排序还包括:在所述第二执行循环期间,将第三操作数的第一部分从所述多个寄存器中的第二寄存器传送到所述多个寄存器中的所述第一寄存器。7.如权利要求6所述的方法,其中所述排序还包括:在第三执行循环期间,将所述第三操作数的所述第一部分从所述多个寄存器中的所述第一寄存器传送到所述第一操作数寄存器。8.如权利要求6所述的方法,其中所述排序还包括:在所述第二执行循环期间,将第四操作数的第一部分从所述多个寄存器中的第三寄存器传送到所述多个寄存器中的所述第二寄存器。9.一种处理器,所述处理器包括:处理单元,所述处理单元包括算术逻辑单元(ALU),所述处理单元用于执行对应的多个线程,所述多个线程执行以生成多个操作数以供在所述ALU处进行处理;多个寄存器,所述多个寄存器被配置成存储所述多个操作数;以及顺序控制模块,所述顺序控制模块被配置成在多个执行循环内对将所述多个操作数从所述多个寄存器提供到第一操作数寄存器以供在所述ALU处进行处理来进行排序。10.如权利要求9所述的处理器,其中所述排序包括:在第一执行循环期间,将所述多个操作数中的第一操作数的第一部分存储在所述第一操作数寄存器处;以及
在第二执行循环期间,将所述多个操作数中的第二操作数的第一部分从所述多个寄存器中的第一...

【专利技术属性】
技术研发人员:何斌陈佳升黄健
申请(专利权)人:超威半导体公司
类型:发明
国别省市:

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

1