当前位置: 首页 > 专利查询>英特尔公司专利>正文

包括掩码上的数学操作的SIMD整数加法制造技术

技术编号:9467501 阅读:89 留言:0更新日期:2013-12-19 03:47
本发明专利技术公开了与将两个整数SIMD相加相关联的方法、装置和制品。在实施例中,方法可以包括对第一SIMD大小的整数(A)和第二SIMD大小的整数(B)的相对应元素进行元素级SIMD相加以生成SIMD大小的整数结果(R)和进位位。A具有整数大小(SizeA),同时B具有整数大小(SizeB)。响应于SizeA大于SizeB,加法还可以包括鉴于不具有相对应的B的元素或多个元素的A的一个或多个元素更新R和进位位。而且,元素级SIMD相加可以包括在第一一个或多个掩码上执行一个或多个数学操作,其中第一一个或多个掩码被解释为整数,并将一个或多个数学操作的一个或多个整数结果解释为第二一个或多个掩码。

【技术实现步骤摘要】
【国外来华专利技术】包括掩码上的数学操作的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的情况,鉴于不具有相对应的B的元素或多个元素的A的一个或多个元素,更新R和进位位。而且,元素级SIMD相加可以包括在第一一个或多个掩码上执行一个或多个数学操作,其中第一一个或多个掩码被解释为整数,并将一个或多个数学操作的一个或多个整数结果解释为第二一个或多个掩码。在多个实施例中,该方法还可以包括在第一一个或多个掩码上执行一个或多个数学操作之前,将第一一个或多个掩码从SIMD计算设备的第一一个或多个掩码寄存器分别移到SIMD计算设备的一个或多个通用寄存器;并在一个或多个通用寄存器中的第一一个或多个掩码上执行一个或多个数学操作之后,将第二一个或多个掩码从一个或多个通用寄存器分别移到SIMD计算设备的第二一个或多个掩码寄存器。在多个实施例中,元素级SIMD相加还可以包括执行R对A的元素级无符号整数小于比较以生成指示在元素级SIMD相加的过程中每个SIMD元素中是否发生了溢出的进位掩码,和/或执行R对全1二进制常数的元素级无符号整数等于比较以生成指示R中的哪个或哪几个元素具有全1位的饱和度掩码。对这些实施例,在第一一个或多个掩码上执行一个或多个数学操作可以包括在进位掩码和饱和度掩码上执行一个或多个数学操作。在多个实施例中,在进位掩码和饱和度掩码上执行一个或多个数学操作可以包括将进位掩码向左移位1位以生成校正掩码的第一实例、对校正掩码的第一实例与进位输入执行按位布尔或(bitwiseBooleanOR)操作以生成校正掩码的第二实例、将饱和度掩码整数相加到校正掩码的第二实例以生成校正掩码的第三实例、和/或对校正掩码的第三实例与饱和度掩码执行按位布尔异或(bitwiseBooleanXOR)操作以生成校正掩码的第四实例。在多个实施例中,第二一个或多个掩码包括校正掩码,且元素级SIMD相加可以包括由校正掩码进行掩码从元素级SIMD相加的初始结果元素级整数减去全1二进制常数以生成R、和/或将校正掩码向右移位有效标记宽度的位数以生成进位位。在多个实施例中,更新R和进位位可以包括当进位位不等于0且A的至少一个元素未被考虑时鉴于不具有相对应的B的元素或多个元素的A的一个或多个元素更新R和进位位,以及在已确定进位位等于0之后且A的至少一个元素未被考虑时鉴于不具有相对应的B的元素或多个元素的A的一个或多个元素更新R。在多个实施例中,当进位位不等于0且A的至少一个元素未被考虑时鉴于不具有相对应的B的元素或多个元素的A的一个或多个元素更新R和进位位可以包括,当进位位不等于0时对于不具有相对应的B的元素的A的元素,通过在元素级SIMD相加的当前结果与全1二进制常数之间执行元素级小于比较生成饱和度掩码,将饱和度掩码整数相加到(来自先前迭代的)进位输入以生成校正掩码的第一实例,和/或对校正掩码的第一实例与饱和度掩码执行按位布尔异或操作以生成校正掩码的第二实例。而且,操作可以包括当进位位不等于0时对于不具有相对应的B的元素的A的元素,将校正掩码向右移位有效标记宽度的位数以更新进位位。在多个实施例中,可以赋予装置硬件和/或软件,该硬件和/或软件被配置为实践本公开的方法的上述实施例的一个或多个方面。在多个实施例中,向具有有形、非瞬态计算机可读存储介质的制品提供被配置为响应于编程指令由装置执行而使装置实践本公开的方法的上述实施例的一个或多个方面的编程指令。现在将使用由本领域技术人员为将其工作的实质传达给本领域其他技术人员而普遍采用的术语进一步描述说明性实施例的多个方面。然而对于那些本领域技术人员显而易见的是,可以利用所述方面中的一些来实践替代实施例。为了解释的目的,叙述了具体数字、材料和配置以提供对说明性实施例的全面理解。然而对于本领域技术人员显而易见的是,没有这些具体细节也可实践各替代实施例。在其它实例中,省略或简化了公知的特征以便不混淆说明性实施例。还以最有助于理解说明性实施例的方式将各种操作进而描述为多个离散操作;然而描述的顺序不应被解释为暗示这些操作必然是依赖于顺序的。特别是,这些操作不必以呈现的顺序被执行。以括号的格式描述的特征指示所述特征为可选特征,例如,“应用服务的(分区的)实例”指示所述应用服务可为/可不为“分区的”。重复使用了短语“在一实施例中”。此短语通常不指同一实施例;但也可以如此。除非上下文另外指明,术语“包含”、“具有”和“包括”是同义的。短语“A/B”意味着“A或B”。短语“A和/或B”意味着“(A)、(B)或(A和B)”。短语“A、B和C中的至少一个”意味着“(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)”。短语“(A)B”意味着“(B)或(AB)”,即A是可选的。图1根据本公开的多个实施例示出了SIMD整数加法的概述。如所示的,SIMD整数加法器102可以被配置为在具有SIMD单元(未示出)的SIMD计算设备上将整数A112和整数B122SIMD相加以生成结果R132以及某些情况下的进位位134。特别是,SIMD整数加法器102可以被配置具有用于作为SIMD加法的一部分在第一一个或多个掩码上执行一个或多个数学操作(将这些掩码解释为整数)的逻辑104,和用于随后将数学操作的整数结果的一个或多个解释为第二一个或多个掩码的逻辑106,下面将更全面描述。整数A和B可以分别以任意长度的大小SizeA和SizeB,116和126,为SIMD大小。SizeA和SizeB可以以SIMD寄存器单元的数目表示。整数A和B还可以具有相关联的指针PointerA和PointerB,114和124,分别指向整数A和B的起始存储位置,例如SIMD计算设备的系本文档来自技高网...
包括掩码上的数学操作的SIMD整数加法

【技术保护点】

【技术特征摘要】
【国外来华专利技术】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...

【专利技术属性】
技术研发人员:S·S·利亚林
申请(专利权)人:英特尔公司
类型:
国别省市:

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

1