配置成使用数字信号处理指令对可变长度向量进行操作的向量处理器制造技术

技术编号:16672823 阅读:39 留言:0更新日期:2017-11-30 17:17
公开了计算机处理器。计算机处理器包括向量单元,向量单元包括向量寄存器文件,其包括一个或多个寄存器以保存变化数量的元素。该计算机处理器还包括处理逻辑,其配置成使用一个或多个数字信号处理指令来对向量寄存器文件中的变化数量的元素进行操作。该计算机处理器可被实现为单片集成电路。

【技术实现步骤摘要】
【国外来华专利技术】配置成使用数字信号处理指令对可变长度向量进行操作的向量处理器相关申请的交叉引用本申请要求2015年2月2日提交的美国临时专利申请62/110840和2015年5月19日提交的申请号为14/716285的美国技术专利的权益,这两个申请的公开内容通过引用被全部包含于本文中。
本公开的实施方式涉及向量处理器,且特别地涉及包括使用数字信号处理指令对可变长度向量操作的一个或多个指令的向量处理器的架构和实现。
技术介绍
向量指令是使用一个指令对一组值进行执行的指令。例如,在x86架构的流式SIMD扩展(SSE)指令ADDPS$xmm0,$xmm1(对封装的单精度浮点值求和)中,两个xmm寄存器每个保存4个单精度浮点值,它们被加到一起并存储在第一寄存器中的。这个行为等效于伪码序列:for(i=0;i<4;i++)$xmm0[i]=$xmm0[i]+$xmm1[i]该组值可来自寄存器、存储器或这两者的组合。保存通常预期由向量指令使用的几组值的寄存器被称为向量寄存器。在一组中的值的数量被称为向量长度。在一些例子中,向量长度也用于描述由向量指令执行的操作的数量。通常,在向量寄存器中的值的数量和在调用向量寄存器的相应向量指令中的操作的数量是相同的,但它们在某些情况中可以是不同的。包括向量指令的指令集架构被称为向量ISA或向量架构。实现向量ISA的处理器被称为向量处理器。向量ISA——其中所有向量指令从存储器读取它们的向量输入并写到存储器而不使用任何向量寄存器——被称为存储器到存储器向量或存储器-向量架构。向量ISA——其中所有向量指令除了加载或存储以外只使用向量寄存器而不访问存储器——被称为寄存器-向量架构。向量指令(例如上面的ADDPS)可隐含地指定固定数量的操作(在ADDPS指令的情况下是四个)。这些被称为固定长度向量指令。固定长度寄存器-向量指令的另一术语是SIMD(单指令多数据)指令。使用定制技术将先前时代的向量处理器实现在多个板上以提高性能。它们中的大部分以常常需要超级计算机的高性能计算机应用(例如天气预报)为目标。然而,技术发展使得单芯片微处理器能够在性能上超过这些多板实现,导致这些向量处理器逐步被淘汰。替代地,超级计算机变成将这些高性能微处理器中的多个组合在一起的多处理器。这些处理器的共同特性是,它们通常不与来自同一公司的较早的型号兼容,因为指令集根据型号不同而改变。这种情况由这些处理器以问题领域为目标的事实所激发,其中在问题领域提取尽可能多的性能是关键的,并且人们愿意重写应用以这么做。但是,这种情况可能导致机器的实现细节在指令集中被暴露,且当机器实现细节根据型号不同而改变时,指令集可能改变。例如,可被指定的最大向量长度由向量寄存器在每个实现中可保存的元素的最大数量确定。当晶体管的密度继续上升时,向量处理器的第二潮流出现。到20世纪90年代后期时,通用微处理器已经达到通过增加它们可支持的标量功能单元的数量的收益递减点,尽管仍然有可用于支持更多的标量功能单元的芯片区域。同时,存在在这些微处理器上直接支持视频编码和解码的愿望。这两个趋势的汇合导致将各种固定长度向量扩展引入到现有通用架构——例如Intelx86的MMX、IBMPowerPC的Altivec/VMX和DECAlpha的MVI。这些SIMD型架构使用具有固定字节长度(在MMX的情况下的8字节、对Altivec是16字节)的寄存器。寄存器一般被设计成保存可同时被操作的多个较小长度的元素。因此,MMX架构可保存2个4字节整数或4个2字节整数或8个1字节整数。指令PADDD/PADDW/PADDB可将两个寄存器的内容加在一起,将它们视为分别保存2个4字节/4个2字节/8个1字节值。随着技术进步,使向量寄存器保存额外的值变得可能。x86架构的MMX扩展后面是16字节SSE、32字节AVX2和64字节AVX3。在每个点处,额外的指令被引入以执行实质上相同的操作。在通用架构的实现的情况下,由于商业原因,不同的型号能够运行为较老的型号写的代码。因此,x86架构的较新实现可支持多个不同的向量寄存器宽度和对所有这些指令寄存器宽度操作的指令。
技术实现思路
通过提供计算机处理器来解决上述问题并在本领域中实现技术解决方案。该计算机处理器包括向量单元,该向量单元包括向量寄存器文件,其包括一个或多个寄存器以保存变化数量的元素。计算机处理器还可包括处理逻辑,其被配置成使用一个或多个数字信号处理指令来对向量寄存器文件中的变化数量的元素进行操作。该计算机处理器可被实现为单片集成电路。在一个例子中,该计算机处理器还可包括向量长度寄存器文件,其包括一个或多个向量长度寄存器。该一个或多个向量长度寄存器可以被用于指定信号处理逻辑所操作的元素的数量。在一个例子中,该一个或多个数字信号处理指令可以是多个向量的重复的点积。所述多个向量中每个向量可包括具有在元素的较长向量内的各种位置的短向量。该多个向量可以被保存在所述向量寄存器文件中的一个或多个寄存器内,以及点积的长度和点积的数量可以是部分地根据所述一个或多个向量长度寄存器的内容来确定的。在一个例子中,该一个或多个数字信号处理指令可以是在元素的较长向量内具有各种位置的短向量的重复的点积。在一个例子中,该一个或多个数字信号处理指令可以是快速傅里叶变换。向量寄存器文件的一个或多个寄存器可包括第一向量寄存器和第二向量寄存器,所述第一向量寄存器包含向量寄存器文件中正在被变换的一组元素,所述第二向量寄存器保存相应的一组旋转因子。该快速傅里叶变换可以小于所述第一向量寄存器中元素的数量并且所述快速傅里叶变换可以被重复地应用于所述第一向量寄存器中的所有元素。在一个例子中,第一对向量寄存器可包含正在被变换的一组元素,且第三向量寄存器可包含相应的一组旋转因子。所述快速傅里叶变换可以小于第一对向量寄存器中元素的数量并且所述快速傅里叶变换可以被重复地应用于第一对向量寄存器中的所有元素。在一个例子中,所述一个或多个数字信号处理指令可以是radix-2快速傅里叶变换。第一向量寄存器可包含正在被变换的一组元素,并且第二向量寄存器可包含相应的一组旋转因子。正在被变换的元素的数量可以是部分地根据至少一个向量长度寄存器的内容来确定的。所述radix-2快速傅里叶变换可以小于第一向量寄存器中元素的数量并且所述radix-2快速傅里叶变换可被重复地应用于第一向量寄存器的所有元素。在一个例子中,第一向量寄存器可包含正在被变换的一组元素,并且第二向量寄存器可包含相应的一组旋转因子。radix-2快速傅里叶变换的长度可以是部分地根据所述一个或多个向量长度寄存器的内容来确定的。该radix-2快速傅里叶变换可以小于第一向量寄存器中元素的数量并且该radix-2快速傅里叶变换可以被重复地应用于第一向量寄存器的所有元素。在一个例子中,第一对向量寄存器可包含正在被变换的一组元素,且第三向量寄存器可包含相应的一组旋转因子。正在被变换的元素的数量可以是部分地根据所述一个或多个向量长度寄存器的内容来确定的。radix-2快速傅里叶变换可以小于第一对向量寄存器中元素的数量并且该radix-2快速傅里叶变换可以被重复地应用于第一对向量寄存器的所有元素。在一个例子中,第一对向量寄存器可包含正在本文档来自技高网
...
配置成使用数字信号处理指令对可变长度向量进行操作的向量处理器

【技术保护点】
一种计算机处理器,包括:向量单元,其包括:向量寄存器文件,其包括一个或多个寄存器以保存变化数量的元素;以及处理逻辑,其被配置成使用一个或多个数字信号处理指令来对所述向量寄存器文件中的变化数量的元素进行操作。

【技术特征摘要】
【国外来华专利技术】2015.02.02 US 62/110840;2015.05.19 US 14/7162851.一种计算机处理器,包括:向量单元,其包括:向量寄存器文件,其包括一个或多个寄存器以保存变化数量的元素;以及处理逻辑,其被配置成使用一个或多个数字信号处理指令来对所述向量寄存器文件中的变化数量的元素进行操作。2.如权利要求1所述的计算机处理器,其中所述计算机处理器被实现为单片集成电路。3.如权利要求1或2所述的计算机处理器,还包括向量长度寄存器文件,其包括一个或多个向量长度寄存器,其中所述一个或多个向量长度寄存器被用于指定所述信号处理逻辑操作的元素的数量。4.如权利要求3所述的计算机处理器,其中所述一个或多个数字信号处理指令是多个向量的重复的点积,其中所述多个向量中每个向量包括具有在元素的较长向量内的各种位置的短向量,其中所述多个向量被保存在所述向量寄存器文件中的一个或多个寄存器内,以及点积的长度和点积的数量是部分地根据所述一个或多个向量长度寄存器的内容来确定的。5.如权利要求1或4所述的计算机处理器,其中所述一个或多个数字信号处理指令是在元素的较长向量内具有各种位置的短向量的重复的点积。6.如权利要求1或4至5中任一项所述的计算机处理器,其中所述一个或多个数字信号处理指令是快速傅里叶变换。7.如权利要求6所述的计算机处理器,其中所述向量寄存器文件的一个或多个寄存器包括第一向量寄存器和第二向量寄存器,所述第一向量寄存器包含所述向量寄存器文件中正在被变换的一组元素,所述第二向量寄存器保存相应的一组旋转因子。8.如权利要求7所述的计算机处理器,其中所述快速傅里叶变换小于所述第一向量寄存器中元素的数量并且所述快速傅里叶变换被重复地应用于所述第一向量寄存器中的所有元素。9.如权利要求6或8所述的计算机处理器,其中第一对向量寄存器包含正在被变换的一组元素,且第三向量寄存器包含相应的一组旋转因子。10.如权利要求9所述的计算机处理器,其中所述快速傅里叶变换小于所述第一对向量寄存器中元素的数量并且所述快速傅里叶变换被重复地应用于所述第一对向量寄存器中的所有元素。11.如权利要求3或10所述的计算机处理器,其中所述一个或多个数字信号处理指令是radix-2快速傅里叶变换。12.如权利要求11所述的计算机处理器,其中第一向量寄存器包含正在被变换的一组元素,并且第二向量寄存器包含相应的一组旋转因子,其中正在被变换的元素的数量是部分地根据至少一个向量长度寄存器的内容来确定的。13.如权利要求12所述的计算机处理器,其中所述radix-2快速傅里叶变换小于所述第一向量寄存器中元素的数量并且所述radix-2快速傅里叶变换被重复地应用于所述第一向量寄存器的所有元素。14.如...

【专利技术属性】
技术研发人员:M·慕德吉尔G·J·纳赛尔C·J·格洛斯内尔A·J·赫内P·赫特利M·森蒂尔威兰P·鲍拉佐拉V·卡拉什尼科夫S·阿格拉沃尔
申请(专利权)人:优创半导体科技有限公司
类型:发明
国别省市:美国,US

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

1