对端口减少的通用寄存器的操作数冲突解决的方法和装置制造方法及图纸

技术编号:18293510 阅读:49 留言:0更新日期:2018-06-28 07:21
本发明专利技术描述了用于确定指令的执行是否将需要从通用寄存器GPR的存储器单元中读取与所述存储器单元的读取端口将允许的值相比更多的值的技术。在此情况下,所述技术在所述指令的执行之前可以将来自所述存储器单元中的一或多个值存储在单独的冲突队列中。在执行所述指令以实施由所述指令限定的运算期间,将从所述存储器单元中读取作为所述运算的操作数的一个值并且将从所述冲突队列中读取作为所述其它运算的操作数的另一个值。

Method and device for resolving operational conflicts of universal registers with reduced ports

The present invention describes a technique for determining whether the execution of an instruction will need to read more values than the value allowed by the read port of the memory unit from the memory unit of the general register GPR. In this case, one or more values from the memory unit may be stored in a separate conflict queue before the execution of the instruction. During the execution of the described instruction to implement the operation defined by the instructions, one value of the operand that is used as the operation will be read from the memory unit and another value of the operand from the conflict queue as the operand of the other operations will be read.

【技术实现步骤摘要】
【国外来华专利技术】对端口减少的通用寄存器的操作数冲突解决的方法和装置
本专利技术涉及数据存储,且更确切地说涉及寄存器中的数据存储技术。
技术介绍
例如图形处理单元(GPU)的处理单元包括处理元件和通用寄存器(GPR),所述通用寄存器存储用于执行指令的数据。在一些实例中,处理元件执行用于处理一项数据的指令,并且相应的处理元件在GPR中存储这项数据或者来自处理的所述项的所得数据。一项数据可以是发生处理的基础单位。举例来说,在图形处理中,图元的顶点是项目的一个实例,并且像素是项目的另一实例。存在与每个顶点和像素相关联的图形数据(例如,坐标、色彩值等)。处理元件的处理器核心内可存在多个处理元件,从而允许指令的并行执行(例如,多个处理元件在同一时间执行相同指令)。
技术实现思路
一般而言,本专利技术描述了用于在执行之前解决操作数冲突的技术,其中此类操作数冲突可出现在通用寄存器(GPR)中,所述通用寄存器包括具有极少写入/读取端口(例如,一个写入端口和一个读取端口)的多个存储器单元。包括多个存储器单元的GPR的设计(每个存储器单元具有极少的写入/读取端口)可以是可缩放的以用于各种类型的电路和技术。然而,由于每个存储器单元的有限数目的写入/读取端口,操作数冲突可引起其中多个值是同时从同一存储器单元中读取或写入到同一存储器单元的。换句话说,在指令的执行可引起从存储器单元中同时(例如,并行)读取与存储器单元的读取端口可以输出的值相比更多的值时产生操作数冲突。根据在本专利技术中所描述的技术,如果多个值是将同时从同一存储器单元中读取的,那么在指令的执行之前控制器可将存储在存储器单元中的值中的至少一个存储在冲突队列中以避免从存储器单元中同时读取与第一存储器单元的读取端口可以支持的值相比更多的值。举例来说,如果存储器单元仅包括一个读取端口并且如果指令的执行将引起从读取端口中同时读取一个以上的值,那么在指令的执行之前控制器可以将来自存储器单元的值存储在冲突队列中,使得在指令的执行期间仅从存储器单元中读取一个值并且从冲突队列中读取其它值,进而避免了操作数冲突。在一个实例中,本专利技术描述了一种处理值的方法,所述方法包括:确定指令的执行是否将引起从通用寄存器(GPR)的多个存储器单元的第一存储器单元中同时读取与第一存储器单元的读取端口可以输出的值相比更多的值,其中在指令的执行之前存储在第一存储器单元中的值无法通过GPR的其它存储器单元中的任一者存取;基于确定指令的执行将引起从第一存储器单元中同时读取与第一存储器单元的读取端口可以输出的值相比更多的值而将存储在第一存储器单元中的一或多个值存储在与GPR分离的冲突队列中;并且执行指令以实施由指令限定的运算,所述指令使用来自第一存储器单元的至少一个值和来自冲突队列的至少一个值作为操作数。在一个实例中,本专利技术描述了一种用于处理值的装置,所述装置包括:通用寄存器(GPR),所述通用寄存器包括多个存储器单元,所述多个存储器单元包括具有读取端口的第一存储器单元,其中存储在所述第一存储器单元中的值无法通过GPR的其它存储器单元中的任一者存取;以及图形处理单元(GPU)。GPU经配置以确定指令的执行是否将引起从第一存储器单元中同时读取与第一存储器单元的读取端口可以输出的值相比更多的值,在指令的执行之前基于确定指令的执行将引起从第一存储器单元中同时读取与第一存储器单元的读取端口可以输出的值相比更多的值而将存储在第一存储器单元中的一或多个值存储在与GPR分离的冲突队列中,并且执行所述指令以实施由所述指令限定的运算,所述指令使用来自第一存储器单元的至少一个值和来自冲突队列的至少一个值作为操作数。在一个实例中,本专利技术描述了一种计算机可读存储媒体,所述计算机可读存储媒体具有存储在其上的指令,在由一或多个处理器执行所述指令时使得一或多个处理器确定指令的执行将是否引起从通用寄存器(GPR)的多个存储器单元的第一存储器单元中同时读取与第一存储器单元的读取端口可以输出的值相比更多的值,其中存储在第一存储器单元中的值无法通过GPR的其它存储器单元中的任一者存取,在指令的执行之前基于确定指令的执行将引起从第一存储器单元中同时读取与第一存储器单元的读取端口可以输出的值相比更多的值而将存储在第一存储器单元中的一或多个值存储在与GPR分离的冲突队列中,并且执行所述指令以实施由所述指令限定的运算,所述指令使用来自第一存储器单元的至少一个值和来自冲突队列的至少一个值作为操作数。在一个实例中,本专利技术描述了一种用于处理值的装置,所述装置包括:通用寄存器(GPR),所述通用寄存器包括多个存储器单元,所述多个存储器单元包括具有读取端口的第一存储器单元,其中存储在所述第一存储器单元中的值无法通过GPR的其它存储器单元中的任一者存取;以及图形处理单元(GPU)。所述GPU包括:用于确定指令的执行是否将引起从第一存储器单元中同时读取与第一存储器单元的读取端口可以输出的值相比更多的值的装置;用于在指令的执行之前基于确定指令的执行将引起从第一存储器单元中同时读取与第一存储器单元的读取端口可以输出的值相比更多的值而将存储在第一存储器单元中的一或多个值存储在与GPR分离的冲突队列中的装置,以及用于执行所述指令以实施由指令限定的运算的装置,所述指令使用来自第一存储器单元的至少一个值和来自冲突队列的至少一个值作为操作数。在附图及以下描述中阐述一或多个实例的细节。其它特征、目标和优点将从所述描述、图式以及权利要求书显而易见。附图说明图1是说明根据本专利技术中所描述的一或多个实例技术的用于处理数据的实例装置的框图。图2A是说明具有单个多端口存储器单元的通用寄存器(GPR)的实例的框图。图2B是说明存储在图2A的GPR的单个多端口存储器单元中的操作数值的概念图。图3A是说明具有多个单个写入、单个读取存储器单元的通用寄存器(GPR)的实例的框图。图3B是说明存储在图3A的GPR的多个单个写入、单个读取存储器单元中的操作数值的概念图。图4是说明图形处理单元(GPU)的着色器核心的一个实例的框图。图5是说明根据本专利技术中所描述的一或多个实例的操作的实例方法的流程图。具体实施方式例如经配置以并行执行许多操作(例如,在同一时间)的图形处理单元(GPU)的并行处理单元包括一或多个处理器核心(例如,用于GPU的着色器核心),所述处理器核心执行一或多个程序的指令。为易于描述,相对于GPU或通用GPU(GPGPU)描述本专利技术中所描述的技术。然而,本专利技术中描述的技术可以扩展到未必是GPU或GPGPU的并行处理单元,以及非并行处理单元(例如,未专门配置成用于并行处理的非并行处理单元)。GPU包括用于值存储的一或多个通用寄存器(GPR),所述值例如用于在GPU上执行指令的输入值(被称作操作数或操作数值)或通过指令的执行而产生的输出值。在一些情况下,从一个指令中产生的输出值变为到随后指令的输入值(例如,操作数值)。实施多线程系统的GPU倾向于包括多个读取/写入端口GPR。作为实例,GPR可以包括四个以上端口,例如,四个写入端口和四个读取端口(4W4R),以用于总共八个端口。举例来说,为了提供并行处理能力,GPU可经配置以并行执行相同程序(被称作着色器)的多个实例。程序的一个实例的一个指令被称作线程。具有多端口GPR可以本文档来自技高网...
对端口减少的通用寄存器的操作数冲突解决的方法和装置

【技术保护点】
1.一种处理值的方法,所述方法包括:确定指令的执行是否将引起从通用寄存器GPR的多个存储器单元的第一存储器单元中同时读取与所述第一存储器单元的读取端口可以输出的值相比更多的值,其中存储在所述第一存储器单元中的值无法通过所述GPR的其它存储器单元中的任一者存取;在所述指令的执行之前,基于确定所述指令的执行将引起从所述第一存储器单元中同时读取与所述第一存储器单元的所述读取端口可以输出的值相比更多的值而将存储在所述第一存储器单元中的一或多个值存储在与所述GPR分离的冲突队列中;通过将子指令包含在所述指令中来修改所述指令以从所述GPR的第二存储器单元中读取至少一个值,其中所述第二存储器单元与所述第一存储器单元不同,且其中来自所述GPR的所述第二存储器单元的所述至少一个值是用于随后指令的操作数;执行所述经修改的指令以实施运算,所述指令使用来自所述第一存储器单元的至少一个值和来自所述冲突队列的至少一个值作为操作数,其中执行所述经修改的指令包括执行从所述GPR的所述第二存储器单元中读取所述至少一个值的所述子指令;将来自所述GPR的所述第二存储器单元的所述至少一个值存储在处理元件的预提取队列中;以及基于存储在所述处理元件的所述预提取队列中的所述至少一个值执行所述随后指令。...

【技术特征摘要】
【国外来华专利技术】2014.10.03 US 14/505,8541.一种处理值的方法,所述方法包括:确定指令的执行是否将引起从通用寄存器GPR的多个存储器单元的第一存储器单元中同时读取与所述第一存储器单元的读取端口可以输出的值相比更多的值,其中存储在所述第一存储器单元中的值无法通过所述GPR的其它存储器单元中的任一者存取;在所述指令的执行之前,基于确定所述指令的执行将引起从所述第一存储器单元中同时读取与所述第一存储器单元的所述读取端口可以输出的值相比更多的值而将存储在所述第一存储器单元中的一或多个值存储在与所述GPR分离的冲突队列中;通过将子指令包含在所述指令中来修改所述指令以从所述GPR的第二存储器单元中读取至少一个值,其中所述第二存储器单元与所述第一存储器单元不同,且其中来自所述GPR的所述第二存储器单元的所述至少一个值是用于随后指令的操作数;执行所述经修改的指令以实施运算,所述指令使用来自所述第一存储器单元的至少一个值和来自所述冲突队列的至少一个值作为操作数,其中执行所述经修改的指令包括执行从所述GPR的所述第二存储器单元中读取所述至少一个值的所述子指令;将来自所述GPR的所述第二存储器单元的所述至少一个值存储在处理元件的预提取队列中;以及基于存储在所述处理元件的所述预提取队列中的所述至少一个值执行所述随后指令。2.根据权利要求1所述的方法,其进一步包括:在所述经修改的指令的执行期间从所述第一存储器单元中读取所述至少一个值并且从所述冲突队列中读取所述至少一个值。3.根据权利要求1所述的方法,其进一步包括:当执行所述随后指令时从所述预提取队列中读取以实施由所述随后指令限定的运算。4.根据权利要求1所述的方法,其中修改所述指令包括修改所述子指令以从所述GPR的所述第二存储器单元中读取所述至少一个值,前提是并未使用所述GPR的全部端口以及并未使用所述第二存储器单元的读取端口。5.根据权利要求1所述的方法,其中将存储在所述第一存储器单元中的所述一或多个值存储在所述冲突队列中包括:确定当所述GPR的全部读取端口并未使用时以及当一或多个值并非从所述第一存储器单元中读取时的情形;以及在所述所确定的情形期间将存储在所述第一存储器单元中的所述一或多个值存储在所述冲突队列中。6.根据权利要求1所述的方法,其中所述GPR中的所述存储器单元中的每一个包括仅一个读取端口和仅一个写入端口。7.根据权利要求1所述的方法,其中存储所述一或多个值包括基于确定所述指令的执行将引起从所述第一存储器单元中同时读取与所述第一存储器单元的所述读取端口可以输出的值相比更多的值而将存储在所述第一存储器单元中的所述一或多个值存储在处理元件的所述冲突队列中。8.一种用于处理值的装置,所述装置包括:通用寄存器GPR,所述通用寄存器包括多个存储器单元,所述多个存储器单元包括具有读取端口的第一存储器单元,其中存储在所述第一存储器单元中的值无法通过所述GPR的其它存储器单元中的任一者存取;以及图形处理单元GPU,其经配置以进行以下操作:确定指令的执行是否将引起从所述第一存储器单元中同时读取与所述第一存储器单元的所述读取端口可以输出的值相比更多的值;在所述指令的执行之前,基于确定所述指令的执行将引起从所述第一存储器单元中同时读取与所述第一存储器单元的所述读取端口可以输出的值相比更多的值而将存储在所述第一存储器单元中的一或多个值存储在与所述GPR分离的冲突队列中;通过将子指令包含在所述指令中来修改所述指令以从所述GPR的第二存储器单元中读取至少一个值,其中所述第二存储器单元与所述第一存储器单元不同,且其中来自所述GPR的所述第二存储器单元的所述至少一个值是用于随后指令的操作数;执行所述经修改的指令以实施运算,所述指令使用来自所述第一存储器单元的至少一个值和来自所述冲突队列的至少一个值作为操作数,其中为了执行所述经修改的指令,所述GPU经配置以执行从所述GPR的所述第二存储器单元中读取所述至少一个值的所述子指令;将来自所述GPR的所述第二存储器单元的所述至少一个值存储在处理元件的预提取队列中;以及基于存储在所述处理元件的所述预提取队列中的所述至少一个值执行所述随后指令。9.根据权利要求8所述的装置,其中所述GPU包括所述GPR,并且其中所述GPU包括处理元件,所述处理元件包括所述冲突队列。10.根据权利要求8所述的装置,其中所述GPU经配置以在所述经修改的指令的执行期间从所述第一存储器单元中读取所述至少一个值并且从所述冲突队列中读取所述至少一个值。11.根据权利要求8所述的装置,其中所述GPU经配置以从所述预提取队列中读取以在执行所述随后指令时实施由所述随后指令限定的运算。12.根据权利要求8所述的装置,其中为了修改所述指令,所述GPU经配置以修改所述子指令以从所述GPR的所述第二存储器单元中读取所述至少一个...

【专利技术属性】
技术研发人员:杜云尚洪江朱海坤
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国,US

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

1