【技术实现步骤摘要】
【国外来华专利技术】包括掩码上的数学操作的SIMD整数加法
本公开的实施例涉及数据处理的领域,特别是与单指令多数据(SIMD)整数加法相关联的方法、装置和制品。背景除非另外指明,本节中所描述的材料不是本申请中的权利要求书的现有技术且不因为被包括在本节中而被承认为现有技术。随着电子、集成电路、计算和网络技术的进步,诸如但不限于多媒体应用或科学计算之类的应用已经变得更加计算密集。SIMD计算通常提供标量计算上的更优执行性能。然而,两个任意长整数的加法的有效进位传送仍是一个挑战。附图简述通过附图所示的示例实施例而非限制,呈现了本公开的实施例,附图中相似的标记指示相似的元素,附图中:图1根据本公开的多个实施例示出了SIMD整数加法的概述;图2根据本公开的多个实施例更详尽地示出了SIMD整数加法的操作;图3根据本公开的多个实施例更详尽地示出了图2的元素级(element-wise)SIMD相加操作;图4根据本公开的多个实施例更详尽地示出了图2的更新操作的一个方面;图5根据本公开的实施例示出了适合用来实践SIMD整数加法的示例计算机系统;以及图6根据本公开的实施例示出了具有被配置为使装置实践SIMD整数加法的编程指令的制品。具体实施方式公开了用于两个整数的SIMD相加的方法和装置。在多个实施例中,方法可以包括在SIMD计算设备上将第一SIMD大小的整数(A)和第二SIMD大小的整数(B)的相应元素进行元素级SIMD相加以生成SIMD大小的整数结果(R)和进位位。A可以具有整数大小(SizeA),同时B可以具有整数大小(SizeB)。加法还包括,对于SizeA大于SizeB的情况,鉴于 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种数据处理方法,包括:由具有单指令多数据(SIMD)寄存器的SIMD计算设备所操作的SIMD整数加法器对第一SIMD大小的整数A和第二SIMD大小的整数B的相对应元素进行元素级SIMD相加,以生成SIMD大小的整数结果R和进位位,其中A具有整数大小且B具有整数大小;以及响应于A的整数大小大于B的整数大小,由SIMD整数加法器鉴于不具有相对应的B的元素或多个元素的A的一个或多个元素,更新R和进位位;其中元素级SIMD相加包括在第一一个或多个掩码上执行一个或多个整数操作,其中第一一个或多个掩码作为一个或多个整数操作的输入,并将一个或多个整数操作的一个或多个整数结果输出为第二一个或多个掩码,其中在第一一个或多个掩码上执行一个或多个整数操作包括在进位掩码和饱和度掩码上执行一个或多个整数操作,其中进位掩码指示在元素级SIMD相加的过程中每个SIMD元素中是否发生了溢出,且其中饱和度掩码指示R的哪个或哪几个元素有全1位,其中在进位掩码和饱和度掩码上执行一个或多个整数操作包括:将进位掩码左移1位以生成校正掩码的第一实例;对校正掩码的第一实例与进位输入执行按位布尔或操作以生成校正掩码的第二实例;将饱和度掩码整数相加到校正掩码的第二实例以生成校正掩码的第三实例;以及对校正掩码的第三实例与饱和度掩码执行按位布尔异或操作以生成校正掩码的第四实例。2.如权利要求1所述的方法,其中元素级SIMD相加包括利用包装操作对A和B的相对应元素进行元素级SIMD相加以生成结果R。3.如权利要求1所述的方法,其还包括在第一一个或多个掩码上执行一个或多个整数操作之前,将第一一个或多个掩码从SIMD计算设备的第一一个或多个掩码寄存器分别移到SIMD计算设备的一个或多个通用寄存器;并在一个或多个通用寄存器中的第一一个或多个掩码上执行一个或多个整数操作之后,将第二一个或多个掩码从一个或多个通用寄存器分别移到SIMD计算设备的第二一个或多个掩码寄存器。4.如权利要求1所述的方法,其中元素级SIMD相加还包括R对A的元素级SIMD无符号整数小于比较,以生成指示在元素级SIMD相加的过程中每个SIMD元素中是否发生了溢出的进位掩码。5.如权利要求1所述的方法,其中元素级SIMD相加还包括R对全1二进制常数的元素级SIMD无符号整数等于比较,以生成指示R的哪个或哪几个元素有全1位的饱和度掩码的第一实例。6.如权利要求1所述的方法,其中第二一个或多个掩码包括校正掩码,且元素级SIMD相加包括由校正掩码进行掩码将元素级SIMD相加的初始结果从全1二进制常数中进行元素级SIMD整数相减以生成R。7.如权利要求1所述的方法,其中第二一个或多个掩码包括校正掩码,且元素级SIMD相加包括将校正掩码向右移位有效标记宽度的位数以生成进位位。8.如权利要求1所述的方法,其中更新R和进位位包括当进位位不等于0且A的至少一个元素未被考虑时,鉴于不具有相对应的B的元素或多个元素的A的一个或多个元素,更新R和进位位。9.如权利要求8所述的方法,其中当进位位不等于0且A的至少一个元素未被考虑时鉴于不具有相对应的B的元素或多个元素的A的一个或多个元素更新R和进位位包括:当进位位不等于0时对不具有相对应的B的元素的A的元素,通过在元素级SIMD相加的当前结果与全1二进制常数之间执行元素级小于比较,生成饱和度掩码;将饱和度掩码整数相加到进位位的当前值,以生成校正掩码的第一实例;以及对校正掩码的第一实例与饱和度掩码执行按位布尔异或操作,以生成校正掩码的第二实例。10.如权利要求8所述的方法,其中当进位位不等于0且A的至少一个元素未被考虑时鉴于不具有相对应的B的元素或多个元素的A的一个或多个元素更新R和进位位还包括:当进位位不等于0时对不具有相对应的B的元素的A的元素,将校正掩码向右移位有效标记宽度的位数以更新进位位。11.如权利要求8所述的方法,其中更新R和进位位还包括:在确定进位位等于0之后且A的至少一个元素未被考虑时,鉴于不具有相对应的B的元素或多个元素的A的一个或多个元素,更新R。12.一种数据处理装置,包括:具有单指令多数据(SIMD)寄存器、通用寄存器和掩码寄存器的SIM...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。