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的设计(每个存储器单元具有极少的写入/读取端口)可以是可缩放的以用于各种类型的电路和技术。然而,由于每个存储器单元的有限数目的写入/读取端口,操作数冲突可引起其中多个值是同时从同一存储器单元中读取或写入到同一存储器单元的。换句话说,在指令的执行可引起从存储器单元中同时(例如,并行)读取与存储器单元的读取端口可以输出的值相比更多的值时产生操作数冲突。根据在本专利技术中所描述的技术,如果多个值是将同时从同一存储器单元中读取的,那么在指令的执行之前控制器可将存储在存储器单元中的值中的至少一个 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。