当前位置: 首页 > 专利查询>ARM有限公司专利>正文

复数乘法指令制造技术

技术编号:19561632 阅读:22 留言:0更新日期:2018-11-25 00:25
提供了第一形式复数乘法指令和第二形式复数乘法指令以在包含多个数据元素的第一操作数向量和第二操作数向量上运算,这些多个数据元素包括表示复数的实部的至少一个实数据元素和表示该复数的虚部的至少一个虚元素。第一形式指令和第二形式指令中的一者指向目的地向量的至少一个实元素而另一者指向至少一个虚元素。通过执行每个指令的一个,形式(a+ib)*(c+id)的复数乘法可使用相对少指令来计算,并利用仅两个向量寄存器读取端口,实现DSP算法,诸如更有效地使用相对低功率硬件实施方式来计算FFT。

Complex multiplicative instruction

The first form of complex multiplication instruction and the second form of complex multiplication instruction are provided to operate on the first and second operand vectors containing multiple data elements, which include at least one real data element representing the real part of a complex number and at least one virtual element representing the imaginary part of the complex number. One of the first form instructions and the second form instructions points to at least one real element of the destination vector and the other to at least one virtual element. By executing one of each instruction, the complex multiplication of form (a+ib)*(c+id) can be calculated with relatively few instructions, and only two vector registers are used to read ports to implement DSP algorithms, such as calculating FFT using relatively low power hardware implementations more effectively.

【技术实现步骤摘要】
【国外来华专利技术】复数乘法指令
本专利技术技术系关于数据处理的

技术介绍
一些数据处理应用涉及处理具有实部及虚部的复数,即,形式a+ib的数,其中i表示-1的平方根(有时-1的平方根还可表示为“j”,但本文中将使用“i”)。复数算术可尤其有用于数字信号处理(digitalsignalprocessing;DSP)应用,例如用于计算快速傅里叶变换(FastFourierTransforms;FFT)。一些DSP算法可需要形式r=(a+ib)*(c+id)的多次乘法,所以处理器处理复数乘法的方式可为影响效能的因素。
技术实现思路
至少一些示例提供一种数据处理装置,其包含:处理电路系统,用以执行数据处理;以及指令解码器,用以解码控制处理电路系统来执行数据处理的指令;其中,指令解码器被配置为解码复数乘法指令以控制处理电路系统以在第一操作数向量和第二操作数向量上执行部分复数乘法运算以将目的地向量的至少一个目标元素设置为取决于增加或减去第一乘积和第二乘积的结果的值,该第一操作数向量和第二操作数向量和该目的地向量每一者包含多个数据元素,该多个数据元素包括表示复数的实部的至少一个实元素和表示复数的虚部的至少一个虚元素;响应于复数乘法指令的第一形式,该指令解码器被配置为控制该处理电路系统以使用包含该第一操作数向量的实元素与该第二操作数向量的对应实元素的乘积的第一乘积,及包含该第一操作数向量的虚元素与该第二操作数向量的对应虚元素的乘积的第二乘积,执行该部分复数乘法运算;响应于该复数乘法指令的第二形式,该指令解码器被配置为控制该处理电路系统以使用包含该第一操作数向量的实元素与该第二操作数向量的虚元素的乘积的该第一乘积,及包含该第一操作数向量的虚元素与该第二操作数向量的实元素的乘积的该第二乘积,执行该部分复数乘法运算;响应于该复数乘法指令的第一形式和第二形式中的一者,该指令解码器被配置为控制该处理电路系统以使用包含该目的地向量的至少一个实元素的该至少一个目标元素执行该部分复数乘法运算;响应于该复数乘法指令的第一形式和第二形式中的另一者,该指令解码器被配置为控制该处理电路系统以使用包含该目的地向量的至少一个虚元素的该至少一个目标元素执行该部分复数乘法运算;以及响应于该复数乘法指令的第一形式和第二形式中的至少一者,该指令解码器被配置为控制该处理电路系统以抑制该目的地向量的至少一个元素而非该至少一个目标元素的更新。至少一些示例提供一种数据处理装置,包含:用于执行数据处理的器件;以及用于解码指令的器件,以控制该用于执行数据处理的器件以执行该数据处理;其中,该用于解码的器件被配置为解码复数乘法指令以控制该用于执行数据处理的器件以在第一操作数向量和第二操作数向量上执行部分复数乘法运算,以将目的地向量的至少一个目标元素设置为取决于增加或减去第一乘积和第二乘积的结果的值,该第一操作数向量和第二操作数向量和该目的地向量每一者包含多个数据元素,该多个数据元素包括表示复数的实部的至少一个实元素和表示复数的虚部的至少一个虚元素;响应于该复数乘法指令的第一形式,该用于解码的器件被配置为控制该用于执行数据处理的器件以使用包含该第一操作数向量的实元素与该第二操作数向量的对应实元素的乘积的该第一乘积,及包含该第一操作数向量的虚元素与该第二操作数向量的对应虚元素的乘积的该第二乘积,执行该部分复数乘法运算;响应于该复数乘法指令的第二形式,该用于解码的器件被配置为控制该用于执行数据处理的器件以使用包含该第一操作数向量的实元素与该第二操作数向量的虚元素的乘积的第一乘积,及包含该第一操作数向量的虚元素与该第二操作数向量的实元素的乘积的第二乘积,执行该部分复数乘法运算;响应于该复数乘法指令的该第一形式和第二形式中的一者,该用于解码的器件被配置为控制该用于执行数据处理的器件以使用包含目的地向量的至少一个实元素的该至少一个目标元素执行该部分复数乘法运算;响应于该复数乘法指令的第一形式和第二形式中的另一者,该用于解码的器件被配置为控制该用于执行数据处理的器件以使用包含目的地向量的至少一个虚元素的至少一个目标元素执行该部分复数乘法运算;以及响应于该复数乘法指令的第一形式和第二形式中的至少一者,该用于解码的器件被配置为控制该用于执行数据处理的器件以抑制该目的地向量的至少一个元素而非该至少一个目标元素的更新。至少一些示例提供一种数据处理方法,其包含以下步骤:解码复数乘法指令以控制处理电路系统以在第一操作数向量和第二操作数向量上执行部分复数乘法运算以将目的地向量的至少一个目标元素设置为取决于增加或减去第一乘积和第二乘积的结果的值,该第一操作数向量和第二操作数向量和该目的地向量每一者包含多个数据元素,该多个数据元素包括表示复数的实部的至少一个实元素和表示复数的虚部的至少一个虚元素;其中,响应于该复数乘法指令的第一形式,使用包含该第一操作数向量的实元素与该第二操作数向量的对应实元素的乘积的第一乘积,及包含该第一操作数向量的虚元素与该第二操作数向量的对应虚元素的乘积的第二乘积,执行该部分复数乘法运算;响应于该复数乘法指令的第二形式,使用包含该第一操作数向量的实元素与该第二操作数向量的虚元素的乘积的第一乘积,及包含该第一操作数向量的虚元素与该第二操作数向量的实元素的乘积的第二乘积,执行该部分复数乘法运算;响应于该复数乘法指令的第一形式和第二形式中的一者,使用包含该目的地向量的至少一个实元素的该至少一个目标元素执行该部分复数乘法运算;响应于该复数乘法指令的第一形式和第二形式中的另一者,使用包含该目的地向量的至少一个虚元素的该至少一个目标元素执行该部分复数乘法运算;以及响应于该复数乘法指令的第一形式和第二形式中的至少一者,抑制该目的地向量的至少一个元素而非该至少一个目标元素的更新。至少一些示例提供包含程序指令的虚拟机计算机程序,这些程序指令控制主数据处理装置以提供对应于上述论述的装置的指令执行环境。还可提供存储虚拟机计算机程序的计算机可读存储介质。存储介质可为非暂态存储介质。附图说明本技术的更多方面、特征和优势将从将结合附图阅读的示例的以下描述中显而易见,其中:图1示意性地阐明了支持执行向量指令的数据处理装置的示例;图2为示出用于使用向量指令使两个复数相乘的替换方法的对比示例;图3示出了使用第一形式复数乘法指令和第二形式复数乘法指令使两个复数相乘的示例;图4示出了使用第一形式指令和第二形式指令计算复共轭乘法的示例;图5示意性地示出了第一形式复数乘法指令和第二形式复数乘法指令的第二版本;图6阐明了分配表示复数的实部或虚部的向量的实元素和虚元素的不同示例;图7和图8示出了执行截断以产生目的地向量的目标元素的不同方式;图9示出了复数乘法指令的元素加宽变体;图10和图11示出了响应于指令的元素加宽变体执行截断的两个替换方式;图12示意性地阐明了通过在向量指令之前加上向量述语指令来控制向量指令的预测的示例;图13示意性地阐明了在处理向量化循环期间控制预测的示例;图14至图16示出了重迭向量指令的各个执行差拍的示例;图17为阐明了处理复数乘法指令的方法的流程图;以及图18阐明了可使用的虚拟机实施方式。具体实施方式一些特殊的示例将如下所述。将理解,本技术不限于这些确切的示例。数据处理装置具有指令解码器,该指令本文档来自技高网...

【技术保护点】
1.一种数据处理装置,包含:处理电路系统,用以执行数据处理;以及指令解码器,用以解码控制所述处理电路系统来执行所述数据处理的指令;其中,所述指令解码器被配置为解码复数乘法指令以控制所述处理电路系统在第一操作数向量和第二操作数向量上执行部分复数乘法运算以将目的地向量的至少一个目标元素设置为一值,该值取决于增加或减去第一乘积和第二乘积的结果,所述第一操作数向量和第二操作数向量和所述目的地向量每一者包含多个数据元素,该多个数据元素包括表示复数的实部的至少一个实元素和表示复数的虚部的至少一个虚元素;响应于所述复数乘法指令的第一形式,所述指令解码器被配置为控制所述处理电路系统以使用包含所述第一操作数向量的实元素与所述第二操作数向量的对应实元素的乘积的所述第一乘积,及包含所述第一操作数向量的虚元素与所述第二操作数向量的对应虚元素的乘积的所述第二乘积,执行所述部分复数乘法运算;响应于所述复数乘法指令的第二形式,所述指令解码器被配置为控制所述处理电路系统以使用包含所述第一操作数向量的实元素与所述第二操作数向量的虚元素的乘积的所述第一乘积,及包含所述第一操作数向量的虚元素与所述第二操作数向量的实元素的乘积的所述第二乘积,执行所述部分复数乘法运算;响应于所述复数乘法指令的所述第一形式和第二形式中的一者,所述指令解码器被配置为控制所述处理电路系统以使用包含所述目的地向量的至少一个实元素的所述至少一个目标元素执行所述部分复数乘法运算;响应于所述复数乘法指令的所述第一形式和第二形式中的另一者,所述指令解码器被配置为控制所述处理电路系统以使用包含所述目的地向量的至少一个虚元素的所述至少一个目标元素执行所述部分复数乘法运算;以及响应于所述复数乘法指令的所述第一形式和第二形式中的至少一者,所述指令解码器被配置为控制所述处理电路系统以抑制所述目的地向量的至少一个元素而非所述至少一个目标元素的更新。...

【技术特征摘要】
【国外来华专利技术】2016.04.01 GB 1605557.61.一种数据处理装置,包含:处理电路系统,用以执行数据处理;以及指令解码器,用以解码控制所述处理电路系统来执行所述数据处理的指令;其中,所述指令解码器被配置为解码复数乘法指令以控制所述处理电路系统在第一操作数向量和第二操作数向量上执行部分复数乘法运算以将目的地向量的至少一个目标元素设置为一值,该值取决于增加或减去第一乘积和第二乘积的结果,所述第一操作数向量和第二操作数向量和所述目的地向量每一者包含多个数据元素,该多个数据元素包括表示复数的实部的至少一个实元素和表示复数的虚部的至少一个虚元素;响应于所述复数乘法指令的第一形式,所述指令解码器被配置为控制所述处理电路系统以使用包含所述第一操作数向量的实元素与所述第二操作数向量的对应实元素的乘积的所述第一乘积,及包含所述第一操作数向量的虚元素与所述第二操作数向量的对应虚元素的乘积的所述第二乘积,执行所述部分复数乘法运算;响应于所述复数乘法指令的第二形式,所述指令解码器被配置为控制所述处理电路系统以使用包含所述第一操作数向量的实元素与所述第二操作数向量的虚元素的乘积的所述第一乘积,及包含所述第一操作数向量的虚元素与所述第二操作数向量的实元素的乘积的所述第二乘积,执行所述部分复数乘法运算;响应于所述复数乘法指令的所述第一形式和第二形式中的一者,所述指令解码器被配置为控制所述处理电路系统以使用包含所述目的地向量的至少一个实元素的所述至少一个目标元素执行所述部分复数乘法运算;响应于所述复数乘法指令的所述第一形式和第二形式中的另一者,所述指令解码器被配置为控制所述处理电路系统以使用包含所述目的地向量的至少一个虚元素的所述至少一个目标元素执行所述部分复数乘法运算;以及响应于所述复数乘法指令的所述第一形式和第二形式中的至少一者,所述指令解码器被配置为控制所述处理电路系统以抑制所述目的地向量的至少一个元素而非所述至少一个目标元素的更新。2.如权利要求1所述的数据处理装置,其中,响应于包含多于两个数据元素的所述第一操作数向量和第二操作数向量的复数乘法指令,所述指令解码器被配置为控制所述处理电路系统以处理所述第一操作数向量和第二操作数向量,所述第一操作数向量和第二操作数向量每一者包含与多个虚元素交错的多个实元素。3.如权利要求2所述的数据处理装置,其中,所述处理电路系统被配置为响应于与所述复数乘法指令关联的参数来确定所述第一操作数向量和第二操作数向量中的所述实元素和虚元素的数目,且所述参数为以下各项的一者:立即值,指示所述实元素和所述虚元素的所述数目;立即值,指示所述实元素和所述虚元素的宽度;值,指示含有指示所述实元素和所述虚元素的所述数目的值的寄存器;以及值,指示含有指示所述实元素和所述虚元素的所述宽度的值的寄存器。4.如前述权利要求中任一项所述的数据处理装置,其中,所述处理电路系统被配置为响应于识别所述给定部分为待屏蔽的一部分的预测指示来屏蔽与所述目的地向量的给定部分关联的操作。5.如权利要求4所述的数据处理装置,其中,响应于所述复数乘法指令的所述第一形式和所述第二形式中的所述至少一者,所述指令解码器被配置为控制所述处理电路系统以抑制所述目的地向量的所述至少一个元素而非所述至少一个目标元素的更新,不论所述预测指示是否识别所述目的地向量的对应于所述至少一个元素的一部分为待屏蔽的一部分。6.如前述权利要求中任一项所述的数据处理装置,其中,响应于所述复数乘法指令的加变体,所述指令解码器被配置为控制所述处理电路系统以将所述至少一个目标元素设置为一值,该值取决于增加所述第一乘积和所述第二乘积的结果;以及响应于所述复数乘法指令的减变体,所述指令解码器被配置为控制所述处理电路系统以将所述至少一个目标元素设置为一值,该值取决于减去所述第一乘积和所述第二乘积的结果。7.如前述权利要求中任一项所述的数据处理装置,其中,响应于所述复数乘法指令的第一版本,所述指令解码器被配置为控制所述处理电路系统以使用所述至少一个目标元素执行所述部分复数乘法运算,所述至少一个目标元素包含:当所述复数乘法指令具有所述第一形式时,所述目的地向量的至少一个实元素;以及当所述复数乘法指令具有所述第二形式时,所述目的地向量的至少一个虚元素。8.如前述权利要求中任一项所述的数据处理装置,其中,响应于所述复数乘法指令的第二版本,所述指令解码器被配置为控制所述处理电路系统以使用所述至少一个目标元素执行所述部分复数乘法运算,所述至少一个目标元素包含:当所述复数乘法指令具有所述第一形式时,所述目的地向量的至少一个虚元素;以及当所述复数乘法指令具有所述第二形式时,所述目的地向量的至少一个实元素。9.如前述权利要求中任一项所述的数据处理装置,其中,响应于所述复数乘法指令的元素加宽变体,所述指令解码器被配置为控制所述处理电路系统以在包含J位数据元素的所述第一操作数向量和第二操作数向量上执行所述部分乘法运算,以产生包含K位数据元素的所述目的地向量,其中,K>J。10.如权利要求9所述的数据处理装置,其中,K=2J,并响应于所述复数乘法指令的所述元素加宽变体,所述指令解码器被配置为将所述目的地向量的所述至少一个目标元素的每一者设置为以下各项中的一者:对应于增加或减去所述第一乘积和所述第二乘积的结果的K+1位值的最高有效K个位;以及所述K+1位值的最低有效K个位。11.如前述权利要求中任一项所述的数据处理装置,其中,响应于所述复数乘法指令的元素大小保持变体,所述指令解码器被配置为控制所述处理电路系统以在包含J位数据元素的所述第一操作数向量和第二操作数向量上执行所述部分...

【专利技术属性】
技术研发人员:托马斯·克里斯多夫·格鲁卡特
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

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

1