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

超级乘加(超级MADD)指令制造技术

技术编号:10356441 阅读:140 留言:0更新日期:2014-08-27 12:42
描述了一种处理指令的方法,该方法包括取出并解码该指令。该指令具有分开的目的地地址、第一操作数源地址和第二操作数源地址分量。第一操作数源地址标识第一掩码图案在掩码寄存器空间中的位置。第二操作数源地址标识第二掩码图案在掩码寄存器空间中的位置。该方法还包括:从掩码寄存器空间中取出第一掩码图案;从掩码寄存器空间中取出第二掩码图案;将第一和第二掩码图案合并成一合并掩码图案;以及将该合并掩码图案存储到该目的地址所标识的存储位置处。

【技术实现步骤摘要】
【国外来华专利技术】超级乘加(超级MADD)指令
本专利技术的领域一般涉及计算系统,且尤其涉及超级多次加法指令。
技术介绍
图1示出了在半导体芯片上用逻辑电路实现的处理核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中所保持的特定掩码图案(maskpattern)被该指令调出,从掩码寄存器空间中被取出,并且被提供给掩码层104/105中的任一者或两者,以“启用”针对该特定向量操作的正确的元素集合。附图简述本专利技术是作为示例说明的,而不仅限制于各个附图的图形,在附图中,类似的参考编号表示类似的元件,其中:图1示出处理器流水线;图2A和2B比较标量和向量操作;图3A示出了在可执行VSMADD指令的执行单元之内的逻辑电路的实施例;图3B示出了用于VSMADD指令的操作的方法;图4示出了一种指令格式,包括在立即操作数字段中的标量操作数编码数据以及符号控制数据;图5A示出了在可执行VFMMADD指令的执行单元之内的逻辑电路的实施例;图5B示出了用于VFMMADD指令的操作的方法;图6A-6B是示出了根据本专利技术的实施例的通用向量友好指令格式及其指令模板的框图;图7是示出了根据本专利技术的实施例的示例性专用向量友好指令格式的框图;图8是根据本专利技术的一个实施例的寄存器架构的框图;图9A是示出了根据本专利技术的实施例的示例性有序流水线以及示例性寄存器重命名的无序发布/执行流水线这两者的框图;图9B是示出了根据本专利技术的各实施例的要被包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核这两者的框图;图10A-10B示出了更具体的示例性有序核架构的框图,该核将是芯片中的若干逻辑块之一(包括相同类型和/或不同类型的其他核);图11是根据本专利技术的实施例的可具有一个以上的核、可具有集成存储器控制器、并且可具有集成图形的处理器的方框图;图12是根据本专利技术的一个实施例的系统的框图;图13是根据本专利技术的实施例的更具体的第一示例性系统的框图;图14是根据本专利技术的实施例的更具体的第二示例性系统的框图;图15是根据本专利技术的实施例的SoC的框图;以及图16是根据本专利技术的实施例的对比使用软件指令变换器将源指令集中的二进制指令变换成目标指令集中的二进制指令的框图。详细描述图3A和3B示出了“超级”MADD指令VSMADD的描绘,该指令执行如下操作:V1[]=((a*V2[])+(b*V3[])+V1[]),其中,V1[]是输入向量和结果向量,V2[]和V3[]是输入向量,并且a和b是标量。如图3A中所观察到的那样,执行该操作的执行单元采用了一种以VSMADDR1;R2;R3;R4/M为形式的指令格式技术。在这样做的过程中,指令格式单独地是指:i)寄存器的地址R1,输入操作数V1[]是从该地址提供的,并且该操作的结果被存储到该地址(该结果对应于具有更新的值的V1[]);ii)两个单独的输入操作数寄存器地址R2和R3,用于分别存储输入操作数V2[]和V3[];以及iii)第四输入操作数地址R4或M,用于定义存在标量a和b的寄存器或存储器存储位置。用于VSMADD指令的正式的格式可以是VSMADDR1;k;z;R2;R3;R4/M,其中,k对应于掩码向量,z对应于位选择以确定归零掩码操作或合并掩码操作是否适用。如果掩码位是零,则归零掩码操作将零写到该目的地,而合并掩码操作使该目的地保持不变。在又一个实施例中,仅仅写入掩码(图1的层105)被用作该架构的一部分。为了简单,本说明书的其余部分将主要参照这种VSMADDR1;R2;R3;R4/M格式。在一实施例中,标号R1、R2、R3和R4中的每一个对应于图1的向量寄存器空间104中的位置。相似的是,M对应于本文档来自技高网...
超级乘加(超级MADD)指令

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

【技术特征摘要】
【国外来华专利技术】1.一种处理核,包括:a)第一寄存器,用于存储第一向量输入操作数V1[];b)第二寄存器,用于存储第二向量输入操作数V2[];c)第三寄存器,用于存储第三向量输入操作数V3[];d)第四寄存器,用于存储一打包数据结构,所述打包数据结构包含标量输入操作数a和b;和e)执行单元,包括乘法器,所述执行单元耦合至所述第一寄存器、所述第二寄存器、所述第三寄存器和所述第四寄存器,所述执行单元用于执行指令以执行操作(a*V2[])+(b*V3[])+V1[]。2.如权利要求1所述的处理核,其特征在于,所述乘法器具有用于接收V2[]的第一输入、用于接收a的第二输入、用于接收V3[]的第三输入以及用于接收b的第四输入,使得基本上同时计算(a*V2[])和(b*V3[])。3.如权利要求1所述的处理核,其特征在于,所述执行单元包括用于循环通过所述乘法器两次的微代码,第一次循环计算(a*V2[]),而第二次循环计算(b*V3[])。4.如权利要求1所述的处理核,其特征在于,所述指令单独地标识由所述乘法器所产生的(a*V2[])、(b*V3[])和V1[]项中的每一项的符号。5.如权利要求4所述的处理核,其特征在于,单独地标识的符号被提供在立即操作数中。6.如权利要求1所述的处理核,其特征在于,在所述打包数据结构之内a和b的各自的位置能从所述指令的立即操作数中所放置的信息被确定。7.一种用于处理指令的方法,包括:在流水线中执行指令,所述指令的执行包括:加载第一向量操作数V1[];加载第二向量操作数V2[];加载第三向量操作数V3[];加载一打包数据结构,所述打包数据结构包含标量值a和b;以及计算V1[]=(a*V2[])+(b*V3[])+V1[]。8.如权利要求7所述的方法,其特征在于,还包括:基本上同时计算(a*V2[])+(b*V3[])。9.如权利要求7所述的方法,其特征在于,还包括:在第一微代码循环中计...

【专利技术属性】
技术研发人员:J·考博尔A·T·福塞斯R·艾斯帕萨M·费尔南德斯T·D·弗莱切
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1