当前位置: 首页 > 专利查询>英特尔公司专利>正文

经改进的插入指令的装置和方法制造方法及图纸

技术编号:26064961 阅读:20 留言:0更新日期:2020-10-28 16:37
本申请公开了经改进的插入指令的装置和方法。一种处理器包括:多个向量寄存器,其包括原向量寄存器和目的地向量寄存器;指令解码电路,用于对指令进行解码;以及执行单元,用于执行由指令指定的操作,其中,响应于指令解码电路对插入指令进行解码,执行单元用于将来自源向量寄存器的64位的数据元素复制到目的地向量寄存器中的64位的数据元素位置,其中,目的地向量寄存器中的64位的数据元素位置基于与插入指令的立即数相关联的第一值。

【技术实现步骤摘要】
经改进的插入指令的装置和方法本申请是针对分案申请201710399789.6再次提出的分案申请。分案申请201710399789.6是PCT国际申请号为PCT/US2011/067097、国际申请日为2011年12月23日、进入中国国家阶段的申请号为201180076302.1,题为“经改进的插入指令的装置和方法”的专利技术专利申请的分案申请。
本专利技术一般涉及计算科学,且更具体地涉及经改进的插入指令的装置和方法。
技术介绍
图1示出了在半导体芯片上用逻辑电路实现的处理核100的高级图。该处理核包括流水线101。该流水线由各自被设计成在完全执行程序代码指令所需的多步骤过程中执行特定步骤的多个级组成。这些级通常至少包括:1)指令取出和解码;2)数据取出;3)执行;4)写回。执行级对由在先前级(例如在上述步骤1))中所取出和解码的指令所标识并在另一先前级(例如在上述步骤2))中被取出的数据执行由在先前级(例如在上述步骤1))中取出和解码的指令所标识的特定操作。被操作的数据通常是从(通用)寄存器存储空间102中取出的。在该操作完成时所创建的新数据通常也被“写回”寄存器存储空间(例如在上述级4))。与执行级相关联的逻辑电路通常由多个“执行单元”或“功能单元”103_1至103_N构成,这些单元各自被设计成执行其自身的唯一操作子集(例如,第一功能单元执行整数数学操作,第二功能单元执行浮点指令,第三功能单元执行从高速缓存/存储器的加载操作和/或到高速缓存/存储器的存储操作等等)。由所有这些功能单元执行的所有操作的集合与处理核100所支持的“指令集”相对应。计算机科学领域中广泛认可两种类型的处理器架构:“标量”和“向量”。标量处理器被设计成执行对单个数据集进行操作的指令,而向量处理器被设计成执行对多个数据集进行操作的指令。图2A和2B呈现了展示标量处理器与向量处理器之间的基本差异的比较示例。图2A示出标量AND(与)指令的示例,其中单个操作数集A和B一起进行“与”运算以产生奇异(或“标量”)结果C(即,AB=C)。相反,图2B示出向量AND指令的示例,其中两个操作数集A/B和D/E并行地分别一起进行“与”运算以同时产生向量结果C和F(即,A.AND.B=C以及D.AND.E=F)。根据术语学,“向量”是具有多个“元素”的数据元素。例如,向量V=Q,R,S,T,U具有五个不同的元素:Q、R、S、T和U。示例性向量V的“尺寸”是5(因为它具有5个元素)。图1还示出向量寄存器空间107的存在,该向量寄存器空间107不同于通用寄存器空间102。具体而言,通用寄存器空间102标准地用于存储标量值。这样,当各执行单元中的任一个执行标量操作时,它们标准地使用从通用寄存器存储空间102调用的操作数(并将结果写回通用寄存器存储空间102)。相反,当各执行单元中的任一个执行向量操作时,它们标准地使用从向量寄存器空间107调用的操作数(并将结果写回向量寄存器空间107)。可类似地分配存储器的不同区域以存储标量值和向量值。还应注意,存在位于功能单元103_1到103_N的相应输入处的掩码逻辑104_1到104_N,以及位于功能单元103_1到103_N的相应输出处的掩码逻辑105_1到105_N。在各种实现中,实际上仅实现这些层中的一个层——不过这并非严格要求。对于采用掩码的任何指令,输入掩码逻辑104_1到104_N和/或输出掩码逻辑105_1到105_N可用于控制哪些元素被该向量指令有效地操作。在此,从掩码向量寄存器空间106读取掩码向量(例如与从向量寄存器存储空间107读取的输入数据向量一起),并将该掩码向量呈现给掩码逻辑104_1到104_N、105_1到105_N的层中的至少一层。在执行向量程序代码的过程中,每一向量指令无需要求全数据字。例如,一些指令的输入向量可能仅仅是8个元素,其他指令的输入向量可能是16个元素,其他指令的输入向量可能是32个元素,等等。因此,掩码逻辑104_1到104_N、105_1到105_N的层用于标识完整向量数据字中的应用于特定指令的一组元素,以在多个指令之间实现不同的向量尺寸。通常,对于每一向量指令,掩码向量寄存器空间106中所保持的特定掩码模式被该指令调出,从掩码寄存器空间中被取出并且被提供给掩码逻辑104_1到104_N、105_1到105_N的层中的任一者或两者,以“启用”针对该特定向量操作的正确元素集合。图3A至3E示出了现有技术VINSERT、VEXTRACT和VPERMUTE指令的逻辑操作。注意,相比于其实际名称,这些指令的名称已被缩略或以其它方式简化。图3A示出了现有技术VINSERT指令的逻辑操作。如图3A中观察到的,第一输入操作数对应于128位的信息301_A,而第二输入操作数对应于256位向量302_A。第三立即输入操作数(未示出)指定256位向量302_A的哪一半(下半部或右半部)将被第一输入操作数301_A的128位信息取代。所得的结构被存储在具有256位尺寸的目的地/结果向量中。128位信息301_A、输入向量302_A和结果是浮点值,其尺寸可为32位或64位。图3B示出了现有技术VEXTRACT指令的逻辑操作。如图3B中观察到的,第一输入操作数对应于256位向量301_B。第二立即输入操作数(未示出)指定256位输入向量301_B的哪一半(下半部或右半部)将覆写在目的地寄存器302_B中所存储的256位向量的最低阶128位上。输入向量301_B向量被结构化为浮点值,其尺寸为32位或64位。该指令格式可替换地指定存储器中的128位作为目的地,而非目的地寄存器302_B。图3C至3E示出了三个不同VPERMUTE指令(VPERMILPS、VPERMILPD、VPERM2F128)的相应逻辑操作。图3C示出了VPERMILPS指令的逻辑操作。如图3C中观察到的,VPERMILPS指令接受对应于256位输入向量的输入操作数301_C,该输入向量具有8个32位(单精度)浮点值。结果也是256位向量,该256位向量具有8个32位单精度浮点值作为其元素302_C。第二输入向量(未示出)针对结果的下半部中的4个元素中的每个元素唯一性地指定输入向量301_C的下半部中的4个元素301_C_1至301_C_4中的哪个元素将向输出元素提供其内容。图3C仅针对输出元素302_C_1和302_C_5示出了该操作。此处,输出元素302_C_1的内容可用输入元素301_C_1至301_C_4中任一者的内容填充。在(未示出的)第二输入向量中清楚表明输入元素301_C_1至301_C_4中的哪一个被选择来填充输出元素302_C_1。此处,第二输入向量包含针对输出向量中的8个元素中的每个元素的单独的2位控制字段。必须从输入向量301_C的下半部中选取结果302_C的下半部中的输出元素的源。同样,必须从输入向量301_C的上半部中选取结果302_C的上半部中的输出元素的源。尽管未在图3C中明确地示出,但输出元素302_C_2至302_C_4中每一者本文档来自技高网...

【技术保护点】
1.一种处理器,包括:/n多个向量寄存器,所述多个向量寄存器包括至少一个源向量寄存器和至少一个目的地寄存器,所述至少一个源向量寄存器用于存储多个紧缩数据元素;以及/n指令解码电路,用于对指令进行解码;/n执行电路,用于执行由所述指令指定的操作,其中,响应于所述指令解码电路对提取指令解码,所述执行电路用于:分别从第一源寄存器位置和第二源寄存器位置提取至少第一紧缩数据元素和第二紧缩数据元素;以及将所述第一紧缩数据元素和所述第二紧缩数据元素写入目的地寄存器中的第一数据元素位置和第二数据元素位置;/n所述执行电路用于:基于被包括在所述提取指令中的立即数来标识要被提取的所述第一紧缩数据元素和所述第二紧缩数据元素。/n

【技术特征摘要】
1.一种处理器,包括:
多个向量寄存器,所述多个向量寄存器包括至少一个源向量寄存器和至少一个目的地寄存器,所述至少一个源向量寄存器用于存储多个紧缩数据元素;以及
指令解码电路,用于对指令进行解码;
执行电路,用于执行由所述指令指定的操作,其中,响应于所述指令解码电路对提取指令解码,所述执行电路用于:分别从第一源寄存器位置和第二源寄存器位置提取至少第一紧缩数据元素和第二紧缩数据元素;以及将所述第一紧缩数据元素和所述第二紧缩数据元素写入目的地寄存器中的第一数据元素位置和第二数据元素位置;
所述执行电路用于:基于被包括在所述提取指令中的立即数来标识要被提取的所述第一紧缩数据元素和所述第二紧缩数据元素。


2.如权利要求1所述的处理器,进一步包括:
指令取出电路,用于从存储器取出所述指令。


3.如权利要求1所述的处理器,进一步包括:
多个核,所述执行电路集成于所述多个核中的第一核,并且第二执行电路集成于所述多个核中的第二核。


4.如权利要求3所述的处理器,进一步包括:
集成于核中的一个或多个核的第一级数据高速缓存和第一级指令高速缓存。


5.如权利要求4所述的处理器,进一步包括:
高速缓存一致性电路,用于维持不同核的L1数据高速缓存之间的一致性。


6.如权利要求1所述的处理器,进一步包括:
转换后备缓冲器,用于存储能由所述执行电路用于将虚拟地址转换为物理地址的虚拟至物理地址转换。


7.如权利要求1所述的处理器,进一步包括:
重排序缓冲器,用于存储源自所述指令的乱序执行的数据。


8.如权利要求1所述的处理器,进一步包括:
寄存器重命名电路,用于标识物理寄存器堆中的源向量寄存器和目的地向量寄存器。


9.一种方法,包括:
由处理器的指令解码电路对指令解码;以及
由所述处理器的执行电路执行由所述指令指定的操作,其中,所述执行包括:响应于所述指令解码电路对提取指令解码,
由所述执行电路分别从第一源寄存器位置和第二源寄存器位置提取至少第一紧缩数据元素和第二紧缩数据元素;以及
由所述执行电路将所述第一紧缩数据元素和所述第二紧缩数据元素写入目的地寄存器中的第一数据元素位置和第二数据元素位置,
其中,要被提取的所述第一紧缩所数据元素和所述第二紧缩数据元素基于被包括在所述提取指令中的立即数来标识。


10.如权利要求9所述的方法,进一步包括:
从存储器取出所述指令。


11.如权利要求9所述的方法,其中,所述处理器进一步包括:
多个核,所述执行电路集成于所述多个核中的第一核,并且第二执行电路集成于所述多个核中的第二核。


12.如权利要求11所述的方法,其中,所述处理器进一步包括:
集成于核中的一个或多个核的第一级数据高速缓存和第一级指令高速缓存。


13.如权利要求12所述的方法,进一步包括:
维持不同核的L1数据高速缓存之间的一致性。


14.如权利要求9所述的方法,进一步包括:
存储能由所述执行电路用于将虚拟地址转换为物理地址的虚拟至物理地址转换。


15.如权利要求9所述的方法,进一步包括:
存储源自所述指令的乱序执行的数据。


16.如权利要求9所述的方法,进一步包括:
标识物理寄存器堆中的所述源向量寄存器和所述目的地向量寄存器。


17.一种非瞬态机器可读存储介质,包括存储在其上的指令,所述指令当由处理器执行时使所述处理器:
利用所述处理器的指令解码电路对指令解码;以及
利用所述处理器的执行电路执行由所述指令指定的操作,其中,所述执行包括:响应于所述指令解码电路对提取指令解码,
利用所述执行电路分别从第一源寄存器位置和第二源寄存器位置提取至少第一紧缩数据元素和第二紧缩数据元素;以及
利用所述执行电路将所述第一紧缩数据元素和所述第二紧缩数据元素写入目的地寄存器中的第一数据元素位置和第二数据元素位置,
其中,要被提取的所述第一紧缩所数据元素和所述第二紧缩数据元素基于被包括在所述提取指令中的立即数来标识。


18.如权利要求17所述的非瞬态机器可读存储介质,其中,所述指令当由处理器执行时进一步使所述处理器:
从存储器取出所述指令。


19.如权利要求17所述的非瞬态机器可读存储介质,其中,所述处理器进一步包括:
多个核,所述执行电路集成于所述多个核中的第一核,并且第二执行电路集成于所述多个核中的第二核。


20.如权利要求19所述的非瞬态机器可读存储介质,其中,所述处理器进一步包括:
集成于核中的一个或多个核的第一级数据高速缓存和第一级指令高速缓存。


21.如权利要求20所述的非瞬态机器可读存储介质,其中,所述指令当由处理器执行时进一步使所述处理器:
维持不同核的L1数据高速缓存之间的一致性。


22.如权利要求17所述的非瞬态机器可读存储介质,其中,所述指令当由处理器执行时进一步使所述处理器:
存储能由所述执行电路用于将虚拟地址转换为物理地址的虚拟至物理地址转换。


23.如权利要求17所述的非瞬态机器可读存储介质,其中,所述指令当由处理器执行时进一步使所述处理器:
存储源自所述指令的乱序执行的数据。


24.如权利要求17所述的非瞬态机器可读存储介质,其中,所述指令当由处理器执行时进一步使所述处理器:
标识物理寄存器堆中的所述源向量寄存器和所述目的地向量寄存器。


25.一种处理器,包括:
多个向量寄存器,所述多个向量寄存器包括源向量寄存器和目的地向量寄存器;
指令解码电路,用于对指令进行解码;以及
执行单元,用于执行由所述指令指定的操作,其中,响应于所述指令解码电路对插入指令进行解码,所述执行单元用于将来自所述源向量寄存器的64位的数据元素复制到所述目的地向量寄存器中的64位的数据元素位置,
其中,所述目的地向量寄存器中的所述64位的数据元素位置基于与所述插入指令的立即数相关联的第一值。


26.如权利要求25所述的处理器,进一步包括:
指令取出电路,用于从存储器取出所述指令。


27.如权利要求25所述的处理器,进一步包括:
多个核,所述执行单元集成于所述多个核中的第一核,并且第二执行单元集成于所述多个核中的第二核。


28.如权利要求27所述的处理器,进一步包括:
集成于核中的一个或多个核的第一级数据高速缓存和第一级指令高速缓存。


29.如权利要求28所述的处理器,进一步包括:
高速缓存一致性电路,用于维持不同核的L1数据高速缓存之间的一致性。


30.如权利要求25所述的处理器,进一步包括:
转换后备缓冲器,用于存储能由所述执行单元用于将虚拟地址转换为物理地址的虚拟至物理地址转换。


31.如权利要求25所述的处理器,进一步包括:
重排序缓冲器,用于存储源自所述指令的乱序执行的数据。


32.如权利要求25所述的处理器,进一步包括:
寄存器重命名电路,用于标识物理寄存器堆中的所述源向量寄存器和所述目的地向量寄存器。


33.一种方法,包括:
由处理器的指令解码电路将至少一条指令解码为经解码的至少一条指令;以及
响应于所述至少一条指令是插入指令,由所述处理器的执行单元执行所述经解码的至少一条指令,以将来自源向量寄存器的64位的数据元素复制到目的地向量寄存器中的64位的数据元素位置,
其中,所述目的地向量寄存器中的所述64位的数据元素位置基于与所述插入指令的立即数相关联的第一值。


34.如权利要求33所述的方法,进一步包括:
使用指令取出电路从存储器取出所述至少一条指令。


35.如权利要求33所述的方法,其中,所述处理器进一步包括:
多个核,所述执行单元集成于所述多个核中的第一核,并且第二执行单元集成于所述多个核中的第二核。


36.如权利要求35所述的方法,其中,所述处理器进一步包括:
集成于核中的一个或多个核的第一级数据高速缓存和第一级指令高速缓存。


37.如权利要求36所述的方法,进一步包括:
使用高速缓存一致性电路来维持多个核的L1数据高速缓存之间的一致性。


38.如权利要求33所述的方法,进一步包括:
将虚拟至物理地址转换存储在转换后备缓冲器中,所述虚拟至物理地址转换能由所述处理器用于将虚拟地址转换为物理地址。


39.如权利要求33所述的方法,进一步包括:
将源自所述至少一条指令的乱序执行的数据存储在重排序缓冲器中。


40.如权利要求33所述的方法,进一步包括:
使用寄存器重命名电路来标识物理寄存器堆中的所述源向量寄存器和所述目的地向量寄存器。


41.一种非瞬态机器可读存储介质,包括存储在其上的指令,所述指令当由处理器执行时使所述处理器:
利用所述处理器的指令解码电路将至少一条指令解码为经解码的至少一条指令;以及
响应于所述至少一条指令是插入指令,利用所述处理器的执行单元执行所述经解码的至少一条指令,以将来自源向量寄存器的64位的数据元素复制到目的地向量寄存器中的64位的数据元素位置,
其中,所述目的地向量寄存器中的所述64位的数据元素位置基于与所述插入指令的立即数相关联的第一值。


42.如权利要求41所述的非瞬态机器可读存储介质,其中,所述指令当由处理器执行时进一步使所述处理器:
使用指令取出电路从存储器取出所述至少一条指令。


43.如权利要求41所述的非瞬态机器可读存储介质,其中,所述处理器进一步包括:
多个核,所述执行单元集成于所述多个核中的第一核,并且第二执行单元集成于所述多个核中的第二核。


44.如权利要求43所述的非瞬态机器可读存储介质,其中,所述处理器进一步包括:
集成于核中的一个或多个核的第一级数据高速缓存和第一级指令高速缓存。


45.如权利要求44所述的非瞬态机器可读存储介质,其中,所述指令当由处理器执行时进一步使所述处理器:
使用高速缓存一致性电路来维持多个核的L1数据高速缓存之间的一致性。


46.如权利要求41所述的非瞬态机器可读存储介质,其中,所述指令当由处理器执行时进一步使所述处理器:
将虚拟至物理地址转换存储在转换后备缓冲器中,所述虚拟至物理地址转换能由所述处理器用于将虚拟地址转换为物理地址。


47.如权利要求41所述的非瞬态机器可读存储介质,其中,所述指令当由处理器执行时进一步使所述处理器:
将源自所述至少一条指令的乱序执行的数据存储在重排序缓冲器中。


48.如权利要求41所述的非瞬态机器可读存储介质,其中,所述...

【专利技术属性】
技术研发人员:E·乌尔德阿迈德瓦尔R·凡伦天J·考博尔B·L·托尔M·J·查尼Z·斯波伯A·格雷德斯廷
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1