配置成利用无序执行对可变长度向量进行操作的向量处理器制造技术

技术编号:16672704 阅读:49 留言:0更新日期:2017-11-30 17:16
公开了计算机处理器。计算机处理器包括向量单元,向量单元包括向量寄存器文件,其包括保存变化数量的元素的至少一个向量寄存器。计算机处理器还包括无序发出逻辑,其保存向量指令池,从池中选择向量指令,并发送向量指令用于执行。向量指令对至少一个向量寄存器的变化数量的元素进行操作。

【技术实现步骤摘要】
【国外来华专利技术】配置成利用无序执行对可变长度向量进行操作的向量处理器相关申请的交叉引用本申请要求2015年2月2日提交的美国临时专利申请62/110,840和2015年5月21日提交的美国技术专利申请号14/718,740的权益,这两个申请的公开内容通过引用被全部并入本文。
本公开的实施方式涉及向量处理器,且特别地涉及包括利用无序执行对可变长度向量进行操作的一个或多个指令的向量处理器的架构和实现。
技术介绍
向量指令是使用一个指令对一组值进行执行的指令。例如,在x86架构的流式SIMD扩展(SSE)指令ADDPS$xmm0,$xmm1(对封装的单精度浮点值求和)中,两个xmm寄存器每个保存4个单精度浮点值,它们被加到一起并存储在第一寄存器中的。这个行为等效于伪码序列:for(i=0;i<4;i++)$xmm0[i]=$xmm0[i]+$xmm1[i]该组值可来自寄存器、存储器或这两者的组合。保存通常预期由向量指令使用的几组值的寄存器被称为向量寄存器。在一组中的值的数量被称为向量长度。在一些例子中,向量长度也用于描述由向量指令执行的操作的数量。通常,在向量寄存器中的值的数量和在调用向量寄存器的相本文档来自技高网...
配置成利用无序执行对可变长度向量进行操作的向量处理器

【技术保护点】
一种计算机处理器,包括:向量单元,其包括:向量寄存器文件,其包括用于保存变化数量的元素的至少一个向量寄存器;以及无序发出逻辑,其保存向量指令池,从所述池中选择向量指令,并发送所述向量指令用于执行,其中,所述向量指令对所述至少一个向量寄存器的所述变化数量的元素进行操作。

【技术特征摘要】
【国外来华专利技术】2015.02.02 US 62/110840;2015.05.21 US 14/7187401.一种计算机处理器,包括:向量单元,其包括:向量寄存器文件,其包括用于保存变化数量的元素的至少一个向量寄存器;以及无序发出逻辑,其保存向量指令池,从所述池中选择向量指令,并发送所述向量指令用于执行,其中,所述向量指令对所述至少一个向量寄存器的所述变化数量的元素进行操作。2.如权利要求1所述的计算机处理器,其中,当第一向量指令不能被发出,但随后的向量指令能够被发出时,所述无序发出逻辑配置成从所述池中选择所述随后的向量指令用于在所述第一向量指令之前执行。3.如权利要求1或2所述的计算机处理器,还包括长度寄存器文件,其包括至少一个寄存器以指定要对在所述向量寄存器文件的至少一个向量寄存器中的变化数量的元素执行的向量指令的操作的数量。4.如权利要求1至3中的任一项所述的计算机处理器,其中所述向量指令包括显式长度字段,其指定要对所述变化数量的元素执行的操作的数量。5.如权利要求3所述的计算机处理器,其中要对所述变化数量的元素执行的操作的数量基于保存在所述长度寄存器文件中的至少一个寄存器中的向量长度值。6.如权利要求3或5所述的计算机处理器,其中,基于所述操作的数量和能够用于执行所述操作的功能单元的数量,所述向量指令在一个或多个周期上发出。7.如权利要求1或6所述的计算机处理器,其中,所述无序逻辑包括发出逻辑和发出结构。8.如权利要求7所述的计算机处理器,其中,所述无序逻辑配置成使得所述向量指令从所述向量寄存器文件读取一个或多个输入值并使得所述向量指令和所述一个或多个输入值进入所述发出结构,其中所述发出结构是用于保存所述向量指令的状态的一部分,而所述发出逻辑是用于从存储在所述发出结构中的用于发送以执行的向量指令中选择的逻辑电路。9.如权利要求8所述的计算机处理器,其中,所述发出逻辑配置成检查在所述发出结构中的向量指令池,并从所有它们的输入值可用并且能够被执行的向量指令中,所述发出逻辑配置成选取用于执行的一个或多个向量指令。10.如权利要求9所述的计算机处理器,其中,当指令执行完成时,所述发出逻辑配置成将执行结果写回到所述向量寄存器文件。11.如权利要求10所述的计算机处理器,其中,所述发出逻辑还配置成将所述执行结果发送至所述发出结构,其中,等待所述发出结果的任何指令复制所述发出结果以用于进一步发出。12.如权利要求8或11所述的计算机处理器,其中,所述无序逻辑配置成使得所述向量指令检查来自所述向量寄存器文件的一个或多个输入值的可用性以及所述输入值的每一个是否可用于进入所述发出结构的指示。13.如权利要求12所述的计算机处理器,其中,所述发出逻辑还配置成检查在所述发出结构中的向量指令池,并从所有它们的输入值可用并且能够被执行的向量指令中,所述发出逻辑还配置成选取用于执行的一个或多个向量指令。14.如权利要求13所述的计算机处理器,其中,在指令被选取用于执行之后,所述发出逻辑还配置成读取来自所述向量寄存器文件的输入。15.如权利要求14所述的计算机处理器,其中,当指令执行完成时,所述发出逻辑还配置成将执行结果写回到所述向量寄存器文件。16.如权利要求14或15所述的计算机处理器,其中,所述发出逻辑还配置成发送所述向量寄存器是可用的指示,其中,等待所述发出结果的任何指令设置针对所述指令的可用性指示符。17.如权利要求13或16所述的计算机处理器,其中,所述执行的结果被绕过,并且能够由指令使用而不需要读取来自向量寄存器文件的值。18.如权利要求17所述的计算机处理器,其中,所述发出逻辑还配置成在输入经由执行旁路变得可用时的时刻设置所述可用性指示符。19.如权利要求1或18所述的计算机处理器,其中,所述无序发出逻辑配置成对存储在所述向量寄存器文件的至少一个向量寄存器中的子向量发出向量指令。20.如权利要求19所述的计算机处理器,其中,所述无序发出逻辑配置成允许对所述子向量的向量指令的相对于彼此无序地执行。21.如权利要求20所述的计算机处理器,其中,所述无序发出逻辑还配置成对属于单个向量指令的不同子向量进行重新排序。22.如权利要求21所述的计算机处理器,其中,所述无序逻辑包括发出逻辑和发出结构,其中所述无序逻辑配置成使得所述向量指令从所述向量寄存器文件读取一个或多个输入值并使得所述向量指令和所述一个或多个输入值进入所述发出结构,其中所述发出结构是用于保存所述向量指令的状态的一部分,而所述发出逻辑是用于从存储在所述发出结构中的用于发送以执行的向量指令中选择的逻辑电路。23.如权利要求22所述的计算机处理器,其中,所述发出逻辑还配置成检查在所述发出结构中的向量指令池,并从所有子向量的输入值可用于计算至少一个子向量并且能够被执行的向量指令中,所述发出逻辑还配置成选取用于执行的一个或多个向量指令。24.如权利要求23所述的计算机处理器,其中,当指令执行完成时,所述发出逻辑还配置成将执行的子向量结果写回到所述向量寄存器文件。25.如权利要求24所述的计算机处理器,其中,所述发出逻辑还配置成将所述执行结果发送至所述发出结构,其中,等待所述发出结果的任何指令将子向量结果复制到所述发出结构以用于进一步发出。26.如权利要求22或25所述的计算机处理器,其中,所述无序逻辑包括发出逻辑和发出结构,其中所述无序逻辑配置成使得所述向量指令检查来自所述向量寄存器文件的一个或多个输入值的可用性,并使得所述向量指令和所述输入值的子向量的每一个是否可用的指示进入所述发出结构,其中所述发出结构是用于保存所述向量指令的状态的一部分,而所述发出逻辑是用于从存储在所述发出结构中的用于发送以执行的向量指令中选择的逻辑电路。27.如权利要求26所述的计算机处理器,其中,针对每个输入的子向量可用性指示符是位掩模,其中一个位对应于所述输入的每个子向量。28.如权利要求26或27所述的计算机处理器,其中,所述发出逻辑还配置成检查在所述发出结构中的向量指令池,并从所有输入值的子向量可用于计算至少一个子向量并且能够被执行的向量指令中,所述发出逻辑配置成选取用于执行的一个或多个向量指令。29.如权利要求28所述的计算机处理器,其中,在指令被选取用于执行之后,所述发出逻辑还配置成从所述向量寄存器文件读取必要的输入子向量。30.如权利要求28或29所述的计算机处理器,其中,当指令执行完成时,所述发出逻辑还配置成将执行子向量结果写回到所述向量寄存器文件。31.如权利要求28至30中的任一项所述的计算机处理器,其中,所述发出逻辑还配置成发送向量寄存器的子向量是可用的指示,其中,等待所述发出结果的任何指令设置针对所述指令的子向量可用性指示符。32.如权利要求28至31中的任一项所述的计算机处理器,其中,所述执行的结果被...

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

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

1