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——其中所有向量指令除了加载或存储以外只使用向量寄存器而不访 ...
【技术保护点】
一种计算机处理器,包括:向量单元,其包括:向量寄存器文件,其包括用于保存变化数量的元素的至少一个寄存器;以及处理逻辑,其配置成使用产生具有与输入元素的宽度不同的宽度的元素的结果的一个或多个指令来对所述向量寄存器文件中的变化数量的元素进行操作。
【技术特征摘要】
【国外来华专利技术】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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。