配置成使用改变元素宽度的指令对可变长度向量进行操作的向量处理器制造技术

技术编号:16707931 阅读:35 留言:0更新日期:2017-12-02 23:09
公开了计算机处理器。计算机处理器可包括向量单元,向量单元包括向量寄存器文件,其包括保存变化数量的元素的至少一个寄存器。计算机处理器还可包括处理逻辑,其配置成使用产生具有与输入元素的宽度不同的宽度的元素的结果的一个或多个指令来对向量寄存器文件中的变化数量的元素进行操作。计算机处理器可被实现为单片集成电路。

A vector processor configured to operate variable length vectors using instructions that change the width of the element

The computer processor is disclosed. A computer processor can include a vector unit, a vector unit including a vector register file, which includes at least one register to save the changing number of elements. A computer processor can also include processing logic, which is configured to operate on one or more instructions in the vector register file by generating one or more instructions with different widths of the input elements. The computer processor can be realized as a monolithic integrated circuit.

【技术实现步骤摘要】
【国外来华专利技术】配置成使用改变元素宽度的指令对可变长度向量进行操作的向量处理器相关申请的交叉引用本申请要求2015年2月2日提交的美国临时专利申请62/110,840和2015年6月1日提交的美国技术专利申请号14/727,051的权益,这两个申请的公开内容通过引用被全部并入本文。
本公开的实施方式涉及向量处理器,且特别地涉及包括使用改变元素宽度的指令对可变长度向量操作的一个或多个指令的向量处理器的架构和实现。
技术介绍
向量指令是使用一个指令对一组值进行执行的指令。例如,在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架构的较新实现可支持多个不同的向量寄存器宽度和对所有这些指令寄存器宽度操作的指令。
技术实现思路
通过提供计算机处理器来解决上述问题并在本领域中实现技术解决方案。该计算机处理器包括向量单元,向量单元包括向量寄存器文件,其包括可保存变化数量的元素的至少一个向量寄存器。计算机处理器还可包括配置成使用产生具有与输入元素的宽度不同的宽度的元素的结果的一个或多个指令来对向量寄存器文件中的变化数量的元素进行操作的处理逻辑。计算机处理器可被实现为单片集成电路。在一个例子中,计算机处理器还可包括向量长度寄存器文件,其包括至少一个寄存器,其中向量长度寄存器文件的至少一个寄存器用于指定处理逻辑操作的元素的数量。在一个例子中,处理逻辑还可配置成:从向量寄存器文件读取两个向量寄存器;将两个向量寄存器的内容作为位大小的输入整数元素的两个输入向量;使第一向量寄存器的元素与第二寄存器的相应元素按元素相乘以产生输出整数元素的输出向量,每个输出整数元素的大小具有两倍于相应的输入整数元素的位的数量的大小;以及将整数元素的输出向量存储到向量寄存器文件中的向量寄存器。在一个例子中,每个输入整数元素的大小可以是一个字节,且每个输出整数元素的大小可以是两个字节。在一个例子中,每个输入整数元素的大小可以是两个字节,且每个输出整数元素的大小可以是四个字节。在一个例子中,每个输入整数元素的大小可以是四个字节,且每个输出整数元素的大小可以是八个字节。在一个例子中,处理逻辑还可配置成:从向量寄存器文件读取向量寄存器;将向量寄存器的内容作为较小位大小的输入整数元素的输入向量;将输入整数元素的输入向量转换成较大位大小的输出整数元素的输出向量;以及将输出整数元素的输出向量存储到向量寄存器文件中的向量寄存器。在一个例子中,计算机处理器从较小位大小转换成较大位大小可包括计算机处理器将零附加到每个输入整数元素的较高位。在一个例子中,计算机处理器从较小位大小转换成较大位大小可包括计算机处理器将零附加到每个输入整数元素的较低位。在一个例子中,计算机处理器从较小位大小转换成较大位大小可包括计算机处理器将输入元素的最高位的副本附加到每个输入整数元素的整数元素的高位。在一个例子中,每个输入整数元素的大小可以是一个字节,且每个输出整数元素的大小可以是两个字节。在一个例子中,每个输入整数元素的大小可以是两个字节,且每个输出整数元素的大小可以是四个字节。在一个例子中,每个输入整数元素的大小可以是四个字节,且每个输出整数元素的大小可以是八个字节。在一个例子中,处理逻辑还可配置成:从向量寄存器文件读取向量寄存器;将向量寄存器的内容作为较大位大小的输入整数元素的输入向量;将向量寄存器的内容转换成较小位大小的输出整数元素;以及将较小位大小的输出整数元素的所产生的输出向量存储到向量寄存器文件中的向量寄存器。在一个例子中,计算机处理器从较大位大小的输入整数元素转换成较小位大小的相应输出整数元素可包括计算机处理器丢弃每个输入整数元素的高位。在一个例子中,计算机处理器从较大位大小的输入整数元素转换成较小位大小的相应输出整数元素可包括计算机处理器丢弃每个输入整数元素的低位。在一个例子中,计算机处本文档来自技高网
...
配置成使用改变元素宽度的指令对可变长度向量进行操作的向量处理器

【技术保护点】
一种计算机处理器,包括:向量单元,其包括:向量寄存器文件,其包括用于保存变化数量的元素的至少一个寄存器;以及处理逻辑,其配置成使用产生具有与输入元素的宽度不同的宽度的元素的结果的一个或多个指令来对所述向量寄存器文件中的变化数量的元素进行操作。

【技术特征摘要】
【国外来华专利技术】2015.02.02 US 62/110,840;2015.06.01 US 14/727,0511.一种计算机处理器,包括:向量单元,其包括:向量寄存器文件,其包括用于保存变化数量的元素的至少一个寄存器;以及处理逻辑,其配置成使用产生具有与输入元素的宽度不同的宽度的元素的结果的一个或多个指令来对所述向量寄存器文件中的变化数量的元素进行操作。2.如权利要求1所述的计算机处理器,其中所述计算机处理器被实现为单片集成电路。3.如权利要求1或2所述的计算机处理器,还包括向量长度寄存器文件,其包括至少一个寄存器,其中所述向量长度寄存器文件的所述至少一个寄存器用于指定所述处理逻辑操作的元素的数量。4.如权利要求1到3中的任一项所述的计算机处理器,其中所述处理逻辑还配置成:从所述向量寄存器文件读取两个向量寄存器;将所述两个向量寄存器的内容作为位大小的输入整数元素的两个输入向量;使第一向量寄存器的元素与第二寄存器的相应元素按元素相乘以产生输出整数元素的输出向量,每个输出整数元素的大小具有两倍于相应的输入整数元素的位的数量的大小;以及将整数元素的输出向量存储到所述向量寄存器文件中的向量寄存器。5.如权利要求4所述的计算机处理器,其中每个所述输入整数元素的大小是一个字节,且每个所述输出整数元素的大小是两个字节。6.如权利要求4或5所述的计算机处理器,其中每个所述输入整数元素的大小是两个字节,且每个所述输出整数元素的大小是四个字节。7.如权利要求4到6中的任一项所述的计算机处理器,其中每个所述输入整数元素的大小是四个字节,且每个所述输出整数元素的大小是八个字节。8.如权利要求1所述的计算机处理器,其中所述处理逻辑还配置成:从所述向量寄存器文件读取向量寄存器;将所述向量寄存器的内容作为较小位大小的输入整数元素的输入向量;将输入整数元素的所述输入向量转换成较大位大小的输出整数元素的输出向量;以及将输出整数元素的所述输出向量存储到所述向量寄存器文件中的向量寄存器。9.如权利要求8所述的计算机处理器,其中从较小位大小转换成较大位大小包括将零附加到每个所述输入整数元素的较高位。10.如权利要求8或9所述的计算机处理器,其中从较小位大小转换成较大位大小包括将零附加到每个所述输入整数元素的较低位。11.如权利要求8到10中的任一项所述的计算机处理器,其中从较小位大小转换成较大位大小包括将所述输入元素的最高位的副本附加到每个所述输入整数元素的整数元素的较高位。12.如权利要求8到11中的任一项所述的计算机处理器,其中每个所述输入整数元素的大小是一个字节,且每个所述输出整数元素的大小是两个字节。13.如权利要求8到12中的任一项所述的计算机处理器,其中每个所述输入整数元素的大小是两个字节,且每个所述输出整数元素的大小是四个字节。14.如权利要求8到13中的任一项所述的计算机处理器,其中每个所述输入整数元素的大小是四个字节,且每个所述输出整数元素的大小是八个字节。15.如权利要求1所述的计算机处理器,其中所述处理逻辑还配置成:从所述向量寄存器文件读取向量寄存器;将所述向量寄存器的内容作为较大位大小的输入整数元素的输入向量;将所述向量寄存器的内容转换成较小位大小的输出整数元素;以及将较小位大小的输出整数元素的所产生的输出向量存储到所述向量寄存器文件中的向量寄存器。16.如权利要求15所述的计算机处理器,其中从较大位大小的输入整数元素转换成较小位大小的相应输出整数元素包括丢弃每个所述输入整数元素的高位。17.如权利要求15到16中的任一项所述的计算机处理器,其中从较大位大小的输入整数元素转换成较小位大小的相应输出整数元素包括丢弃每个所述输入整数元素的低位。18.如权利要求15到17中的任一项所述的计算机处理器,其中从较大位大小的输入整数元素转换成较小位大小的相应输出整数元素包括:表示在所述较小位大小中的整数值;如果原始整数值大于在所述较小位大小处可表示的最大数字,则将所述整数值转换成该可表示的最大数字;或者如果所述原始整数值小于可表示的最小数字,则将所述整数值转换成该可表示的最小数字。19.如权利要求15到18中的任一项所述的计算机处理器,其中每个所述输入整数元素的位大小是两个字节,且每个所述输出整数元素的位大小是一个字节。20.如权利要求15到19中的任一项所述的计算机处理器,其中每个所述输入整数元素的位大小是四个字节,且每个所述输出整数元素的位大小是两个字节。21.如权利要求15到20中的任一项所述的计算机处理器,其中每个所述输入整数元素的位大小是八个字节,且每个所述输出整数元素的位大小是四个字节。22.如权利要求1所述的计算机处理器,其中所述处理逻辑还配置成:从所述向量寄存器文件读取向量寄存器;将所述向量寄存器的内容作为较小位大小的输入浮点元素的输入向量;将所述向量寄存器的输入浮点元素转换成较大位大小的输出浮点数的输出向量;以及将较大位大小的输出浮点元素的所产生的输出向量存储到所述向量寄存器文件中的向量寄存器。23.如权利要求22所述的计算机处理器,其中每个所述输入浮点元素的大小是两个字节,且每个所述输出浮点元素的大小是四个字节。24.如权利要求22或23所述的计算机处理器,其中每个所述输入浮点元素的大小是四个字节,且每个所述输出浮点元素的大小是八个字节。25.如权利要求1所述的计算机处理器,其中所述处理逻辑还配置成:从所述向量寄存器文件读取向量寄存器;将所述向量寄存器的内容作为较大位大小的输入浮点元素的输入向量;将所述向量寄存器的内容转换成较小位大小的浮点元素;以及将较小位大小的输出浮点元素的所产生的输出向量存储到所述向量寄存器文件中的向量寄存器。26.如权利要求25所述的计算机处理器,其中每个所述输入浮点元素的位大小是四个字节,且每个所述输出浮点元素的位大小是两个字节。27.如权利要求25或26所述的计算机处理器,其中每个所述输入浮点元素的位大小是八个字节,且每个所述输出浮点元素的位大小是四个字节。28.如权利要求25到27中的任一项所述的计算机处理器,还包括控制舍入和饱和模式。29.如权利要求...

【专利技术属性】
技术研发人员:M·慕德吉尔A·J·赫内P·赫特利
申请(专利权)人:优创半导体科技有限公司
类型:发明
国别省市:美国,US

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

1