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

使用三个标量项的超级乘加(超级MADD)指令制造技术

技术编号:10362131 阅读:143 留言:0更新日期:2014-08-27 18:13
本发明专利技术描述了具有执行单元逻辑电路的处理核,所述执行单元逻辑电路使第一寄存器存储第一向量输入操作数,使第二寄存器存储第二向量输入操作数,以及第三寄存器存储包含标量输入操作数a、b、c的打包数据结构。所述执行单元逻辑电路还包括用于执行操作(a*(第一向量输入操作数))+(b*(第二向量操作数))+c的乘法器。

【技术实现步骤摘要】
【国外来华专利技术】使用三个标量项的超级乘加(超级MADD)指令
本专利技术的领域一般涉及计算系统,且尤其涉及使用三个标量项的超级多次加法指令。
技术介绍
图1示出了用0来实现的处理核100的高级示图。半导体芯片上的逻辑电路。该处理核包括流水线101。该流水线由各自被设计成在完全执行程序代码指令所需的多步骤过程中执行特定步骤的多个级组成。这些通常至少包括:1)指令取出和解码;2)数据取出;3)执行;4)写回。执行级对由相同指令标识出并在另一上述先前级(例如,步骤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的“大小”为五(因为它具有五个元素)。图1还示出与通用寄存器空间102不同的向量寄存器空间107的存在。具体而言,通用寄存器空间102名义上用于存储标量值。由此,当执行单元中的任一个执行标量操作时,它们名义上执行从通用寄存器存储空间102中调用的操作数(并且将结果写回到通用寄存器存储空间102)。相比之下,当执行单元中的任一个执行向量操作时,它们名义上执行从向量寄存器空间107调用的操作数(并且将结果写回向量寄存器空间107)。存储器的不同区域可类似地被分配以供存储标量值和向量值。还注意到,在到功能单元103_1至103_N的相应输入以及来自功能单元103_1至103_N的相应输出处,存在掩码逻辑104_1至104_N以及105_1至105_N。在各种实现中,对于向量操作,这些层中只有一层实际上被实现——尽管这并不是严格的要求(尽管图1中未描绘,但可以想到,仅执行标量操作而非向量操作的执行单元不需要具有任何掩码层)。对于采用掩码的任何向量指令,输入掩码逻辑104_1至104_N和/或输出掩码逻辑105_1至105_N可用于控制针对该向量指令对哪些元素进行有效地操作。这里,掩码向量是从掩码寄存器空间106中被读取(例如,连同从向量寄存器存储空间107中被读取的输入操作数向量一起)并且被呈现给掩码逻辑104、105层中的至少一者。在执行向量程序代码的过程中,每一个向量指令无需要求全数据字。例如,用于某些指令的输入向量可以仅是8个元素,用于其他指令的输入向量可以是16个元素,用于其他指令的输入向量可以是32个元素等等。因此,掩码层104/105被用于标识全向量数据字的一元素集合,该元素集合应用于特定指令以便实现跨指令的不同向量大小。通常,对于每一个向量指令,掩码寄存器空间106中所保持的特定掩码图案被该指令调出,从掩码寄存器空间中被取出,并且被提供给掩码层104/105中的任一者或两者,以“启用”针对该特定向量操作的正确的元素集合。附图简述本专利技术是作为示例说明的,而不仅限制于各个附图的图形,在附图中,类似的参考编号表示类似的元件,其中:图1示出处理器流水线;图2A和2B比较标量和向量操作;图3示出了在可执行VPLANE指令的执行单元之内的逻辑电路的实施例;图4示出了用于VPLANE指令的操作的方法;图5示出了在控制字段中包括标量操作数数据的指令格式;图6A是示出根据本专利技术的实施例的通用向量友好指令格式及其A类指令模板的方框图。图6B是示出根据本专利技术的实施例的通用向量友好指令格式及其B类指令模板的方框图。图7A-C是示出根据本专利技术的实施例的示例性专用向量友好指令格式的方框图。图8是根据本专利技术的一个实施例的寄存器架构的方框图。图9A是根据本专利技术的实施例的连接到管芯上(on-die)互联网络且具有第二级(L2)高速缓存的本地子集的单CPU核的框图。图9B是根据本专利技术的各实施例的图9A中的CPU核的一部分的展开图。图10是示出根据本专利技术的实施例的示例性无序架构的框图。图11示出根据本专利技术一个实施例的系统的框图。图12示出根据本专利技术的实施例的第二系统的框图。图13是根据本专利技术的实施例的第三系统的框图。图14是根据本专利技术的实施例的SoC的框图。图15是根据本专利技术的实施例的单核处理器和多核处理器的框图,具有集成的存储器控制器和图形器件。图16是根据本专利技术的实施例的对比使用软件指令变换器将源指令集中的二进制指令变换成目标指令集中的二进制指令的框图。详细描述图3和4示出了用于执行“超级”MADD指令VPLANE的方法和对应的逻辑电路,该指令执行如下操作:V1[]=(a*V2[])+(b*V3[])+c,其中,V1[]是结果向量,V2[]和V3[]是输入向量,并且a、b以及c是标量401。如图3中所观察到的那样,执行该操作的执行单元可采用一种以VPLANER1;R2;R3;R4/M为形式的指令格式技术。在这样做的过程中,指令格式单独地是指:i)用于存储结果V1[]的目的地寄存器的地址R1;ii)两个分开的输入操作数寄存器地址R2和R3,分别用于存储输入操作数V2[]、V3[];以及iii)第三输入操作数地址R3或M,用于定义在其中找到标量a、b以及c中的每一个的寄存器或存储器存储位置。或者,该指令格式可以采取VPLANER1;R2;R3/M的形式,其中R1保持源操作数之一和目的地。VPLANE指令的更正式的格式可包括写掩码(例如,VPLANER1;k;R2;R3;R4/M,其中k对应于掩码向量)。在又一个实施例中,仅仅写入掩码(图1的层105)被用作该架构的一部分。为了简单,本说明书的其余部分将主要参照这种VPLANER1;R2;R3;R4/M格式。在一实施例中,标号R1、R2、R3和R4中的每一个对应于图1的向量寄存器空间107中的位置。相似的是,M对应于在存储器中存储了向量值的位置。在一实施例中,标量值a、b以及c是从名义上被用于存储向量的存储空间R4/M中调用的。即,该VPLANE指令具有五个输入操作数(V2[],V3[],a,b以及c),但是仅仅消耗三个输入数据源(例如,三个寄存器或两个寄存器和一存储器位置)。为了实现输入信息的压缩,正如图3中所本文档来自技高网...
使用三个标量项的超级乘加(超级MADD)指令

【技术保护点】
一种处理核,包括:执行单元逻辑电路,具有:a)第一寄存器,用于存储第一向量输入操作数V2[];b)第二寄存器,用于存储第二向量输入操作数V3[];c)第三寄存器,用于存储打包数据结构,所述打包数据结构包含标量输入操作数a、b、cd)乘法器,用于执行操作(a*V2[])+(b*V3[])+c。

【技术特征摘要】
【国外来华专利技术】1.一种处理核,包括:a)第一寄存器,用于存储第一向量输入操作数V2[];b)第二寄存器,用于存储第二向量输入操作数V3[];c)第三寄存器,用于存储打包数据结构,所述打包数据结构包含标量输入操作数a、b、c;和d)具有乘法器的执行逻辑电路,所述乘法器耦合至所述第一寄存器、所述第二寄存器和所述第三寄存器,并且被配置为用于执行操作(a*V2[])+(b*V3[])+c,其中,执行所述操作的指令的指令格式包括标识要在所述第三寄存器中的何处找出输入操作数a、b以及c的字段。2.如权利要求1所述的处理核,其特征在于,所述乘法器具有用于接收V2[]的第一输入、用于接收a的第二输入、用于接收V3[]的第三输入以及用于接收b的第四输入,使得(a*V2[])和(b*V3[])是基本上同时被计算的。3.如权利要求1所述的处理核,其特征在于,所述执行逻辑电路包括用于循环通过所述乘法器两次的微代码,第一次循环计算(a*V2[])而第二次循环计算(b*V3[])。4.如权利要求1所述的处理核,其特征在于,所述乘法器包括四个单独的加法器结构,它们被配置为用于按单精度模式计算((a*V2L[])+(b*V3L[])+c)+((d*V2R[])+(e*V3R[])+f)。5.如权利要求4所述的处理核,其特征在于,d、e、f与a、b、c一起被打包在所述打包数据结构中。6.如权利要求1所述的处理核,其特征在于,所述字段驻留在所述指令的立即操作数中。7.一种用于处理指令的方法,包括:在流水线中执行单个指令,所述单个指令的执行包括:加载第一向量操作数V2[];加载第二向量操作数V3[];加载打包数据结构,所述打包数据结构包含标量值a、b、c;以及计算V1[]=(a*V2[])+(b*V3[])+c其中所述单个指令的指令格式包括标识要在所述打包数据结构中的何处找出输入操作数a、b以及c的字段。8.如权利要求7所述的方法,其特征在于,还包括基本上同时计算(a*V2[])+(b*V3[])。9.如权利要求7所述的...

【专利技术属性】
技术研发人员:J·考博尔圣阿德里安A·T·福塞斯T·D·弗莱切L·K·吴E·斯普林格
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1