【技术实现步骤摘要】
【国外来华专利技术】用于多精度算术的SIMD整数乘法累加指令
本专利技术的实施例一般涉及计算机处理器架构,更具体而言,涉及当被执行时导致特定结果的指令。相关技术的描述许多处理器具有单指令多数据(SIMD)架构。该SIMD架构通常有助于显著提高处理速度。在SIMD架构中,与仅在一个数据元素或一对数据元素上操作的标量指令不同,向量指令(也称为打包数据指令或SIMD指令)可在多个数据元素、或多对数据元素上同时和/或并行地操作。处理器可具有并行执行硬件,该并行执行硬件响应于向量指令来同时或并行地执行多个操作。在SIMD架构中,可将多个数据元素打包在一个寄存器或存储器位置内作为打包数据或向量数据。在向量数据中,寄存器或其他存储位置的位可被逻辑地划分成多个固定大小的数据元素的序列。数据元素中的每一个可表示个体数据片,该个体数据片连同通常具有相同大小的其他数据元素一起被存储在寄存器或存储位置中。例如,256位宽寄存器可具有四个64位宽向量元素,八个32位宽向量元素,十六个16位宽向量元素,或三十二个8位宽向量元素。每一个向量元素可表示独立的个体数据片段,可与其它数据片断分开地或独立地在该数据片段上操作。代表性地,向量加法指令可以指定在来自两个源向量操作数的所有相应数据元素对上执行单个向量操作(例如,加法)以生成目的或结果向量。这些源向量操作数是相同大小,可包含相同宽度的数据元素,如此,可各自包含相同数量的数据元素。两个源向量操作数中的相同的位位置中的源数据元素可以表示相应的数据元素对。可以分开地或独立地对这些相应的源数据元素对中的每一个执行向量操作,以便生成匹配数量的结果数据元素,且因 ...
【技术保护点】
一种方法,包括:接收用于无符号整数操作的乘法和累加(MAC)指令,所述MAC指令指示第一向量寄存器作为第一操作数、第二向量寄存器作为第二操作数和第三向量寄存器作为目的地,所述第一向量寄存器存储第一因数且所述第二向量寄存器存储所述MAC指令的部分和;执行MAC指令以将第一因数与隐含的第二因数相乘以生成乘积,并且将部分和与乘积相加以生成结果,其中所述第一因数、所述隐含的第二因数以及部分和具有相同的数据宽度,且所述乘积具有两倍的数据宽度;将所述结果的最高有效半部分存储在第三向量寄存器中;以及将结果的最低有效半部分存储在第二向量寄存器中。
【技术特征摘要】
【国外来华专利技术】1.一种用于指令处理的方法,包括:接收用于无符号整数操作的乘法和累加MAC指令,所述乘法和累加MAC指令指示第一向量寄存器作为第一操作数、第二向量寄存器作为第二操作数和第三向量寄存器作为目的地,所述第一向量寄存器存储第一因数且所述第二向量寄存器存储所述乘法和累加MAC指令的部分和;执行乘法和累加MAC指令以将第一因数与隐含的第二因数相乘以生成乘积,并且将部分和与乘积相加以生成结果,其中所述第一因数、所述隐含的第二因数以及部分和具有相同的数据宽度,且所述乘积具有两倍的数据宽度;将所述结果的最高有效半部分存储在第三向量寄存器中;以及将结果的最低有效半部分存储在第二向量寄存器中。2.如权利要求1所述的方法,其特征在于,所述第一向量寄存器存储多个乘法的多个第一因数,所述第二向量寄存器存储多个乘法的多个部分和,且其中执行所述乘法和累加MAC指令还包括:执行所述乘法和累加MAC指令以并行地执行多个乘法。3.如权利要求1所述的方法,其特征在于,所述第一因数、所述隐含的第二因数、所述部分和、所述乘积的最高有效半部分和所述乘积的最低有效半部分中的每一个具有相同的数据宽度dw,且其中所述第一、第二和第三向量寄存器属于一组向量寄存器,所述组中的每个向量寄存器具有向量宽度VW且包括通道数量VW/dw,且每个通道由一个独立的乘法来使用。4.如权利要求1所述的方法,其特征在于,进一步包括:将隐含的第二因数加载到向量寄存器;以及执行乘法和累加MAC指令序列以将隐含的第二因数与第一因数序列相乘。5.如权利要求4所述的方法,其特征在于,所述乘法和累加MAC指令是用于将两个无符号整数相乘的乘法和累加MAC指令序列之一,且其中所述第一因数和隐含的第二因数分别是两个无符号的整数的分数部分,且其中所述乘法和累加MAC指令的输入独立于序列中先前乘法和累加的MAC指令的输出。6.如权利要求1所述的方法,其特征在于,在执行乘法和累加MAC指令之后,所述方法还包括:执行加法指令,以将所述结果的最低有效半部分与先前的乘法和累加MAC指令生成的先前结果的最高有效半部分相加。7.如权利要求6所述的方法,其特征在于,所述加法指令从掩码寄存器接收进位输入并将进位输出存储到掩码寄存器中。8.一种指令处理装置,包括:解码逻辑单元,用于接收和解码用于无符号整数操作的乘法和累加MAC指令,所述乘法和累加MAC指令指示第一向量寄存器作为第一操作数、第二向量寄存器作为第二操作数和第三向量寄存器作为目的地,所述第一向量寄存器存储第一因数且所述第二向量寄存器存储所述乘法和累加MAC指令的部分和;执行逻辑单元,耦合到所述解码逻辑单元,所述执行逻辑单元用于将第一因数与隐含的第二因数相乘以生成乘积,并且将部分和与乘积相加以生成结果,其中所述第一因数、所述隐含的第二因数和部分和具有相同的数据宽度,且所述乘积具有两倍的数据宽度;以及一组向量寄存器,耦合到所述执行逻辑单元,其中所述一组向量寄存器包括用于存储所述结果的最高有效半部分的第三向量寄存器和用于存储所述结果的最低有效半部分的第二向量寄存器。9.如权利要求8所述的装置,其特征在于,所述第一向量寄存器存储多个乘法的多个第一因数,所述第二向量寄存器存储多个乘法的多个部分和,且其中所述执行逻辑单元用于执行所述乘法和累加MAC指令以并行地执行多个乘法。10.如权利要求8所述的装置,其特征在于,所述第一因数、所述隐含的第二因数、所述部分和、所述乘积的最高有效半部分和所述乘积的最低有效半部分中的每一个具有相同的数据宽度dw,且其中所述第一、第二和第三向量寄存器属于一组向量寄存器,且其中所述...
【专利技术属性】
技术研发人员:V·戈帕尔,G·M·沃尔里齐,E·奥兹图科,J·D·吉尔福德,K·S·雅普,S·M·格尔雷,W·K·费格哈利,M·G·迪克森,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。