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

用于向量整数乘加指令的功能单元制造技术

技术编号:8737293 阅读:201 留言:0更新日期:2013-05-26 12:43
描述了一种向量功能单元,其被实现在半导体芯片上以执行N维向量操作。向量功能单元包括N个功能单元。N个功能单元中的每一个包括逻辑电路,该逻辑电路用于执行:提供第一整数乘加运算的最高阶位而不提供最低阶位的第一整数乘加指令,以及提供第二整数乘加运算的最低阶位而不提供最高阶位的第二整数乘加指令。

【技术实现步骤摘要】
【国外来华专利技术】
本专利
一般地涉及计算机系统,并且尤其涉及用于执行向量乘加指令以及使用逻辑块的其它指令的处理器体系结构,其中该逻辑块用于计算向量乘加结果。
技术介绍
两种类型的处理器体系结构在计算机科学领域中被广泛认知:“标量”和“向量”。标量处理器被设计成执行对单个数据集进行操作的指令,然而向量处理器被设计成执行对多个数据集进行操作的指令。图1A和图1B示出比较示例,展示了标量处理器和向量处理器之间的基本差异。图1A示出标量AND (与)指令的示例,其中对单个操作数集(A和B)进行与操作(ANDed)以产生单个(或“标量”)结果C (即,AB=C)。相比之下,图1B示出向量AND指令的示例,其中两个操作数集A/B和D/E分别被并行地进行与操作以同时产生向量结果C和F(BP, A.AND.B=C 和 D.AND.E=F)。如本领域所公知的,通常输入操作数和输出结果两者均存储在专用寄存器中。例如,许多指令将具有两个输入操作数。因此,两个不同的输入寄存器将被用于临时存储相应输入操作数。此外,这些相同指令将产生输出值,该输出值将被临时存储在第三(结果)寄存器中。在图1A和图1B中观察到相应输入101a,b和102a,b以及结果寄存器103a,b。显著地,“标量”对比“向量”特征是容易区分的。S卩,观察到,图1A的标量设计的输入寄存器IOla和102a仅仅保存标量值(分别为A和B)。同样,还观察到,图1A的标量设计的结果寄存器103a仅保存标量值(C)。相比之下,观察到,图1B的向量系统的输入寄存器IOlb和102b保存向量(在寄存器IOlb中保存A、D,以及在寄存器102b中保存B、E)。同样,还观察到图1B的向量系统的结果寄存器103a保存向量值(C、F)。就术语而言,图1B的向量系统的寄存器101b、102b和103b中的每一个的内容可被整体地称为“向量”,并且向量内的各个标量值中的每一个可被称为“元素”。因此,例如,观察到,寄存器IOlb存储“向量” A、D,“向量” A、D由“元素” A和“元素” D组成。已知只有标量或SMD乘法操作已在半导体芯片处理器中被实际地实现为单个处理器指令。已知已在半导体芯片处理器中实现的标量或SMD乘法指令包括“乘”指令(MUL)和“乘高”指令(MULH),其中“乘”指令提供两个整数输入操作数的乘积的低阶位,而“乘高”指令提供标量整数乘法操作的高阶位。已知已在半导体处理器芯片中被实现为标量或SMD指令的其它指令包括“前导零计数” CLZ指令、“尾随零计数”指令CTZ、以及“计数”指令CNT。标量CLZ指令接收标量输入A并返回在A中最高阶I之前的A中O的数量(例如,如果A=1000,则CLZ的结果=0 ;如果A=0100,则CLZ的结果=1 ;如果A=0010,则CLZ的结果=2 ;等等)。标量CTZ指令接收标量输入A并返回在A中最低阶I之后的A中O的数量(例如,如果A=1000,则CTZ的结果=3 ;如果A=OlOO,则CTZ的结果=2 ;如果A=OOlO,则CTZ的结果=1 ;等等)。标量CNT指令接收标量输入A并返回A中的I的数量(例如,如果A=IOll,则CLZ的结果=3 ;如果A=IOOl,则CLZ的结果=2 ;如果A=OOlO,则CLZ的结果=1 ;等等)。附图说明本专利技术在附图中作为示例而非限制地示出,其中类似的附图标记指示相似的元件,附图中:图1a和图1b不出标量和向量逻辑操作;图2示出向量乘加功能单元;图3示出可用于图2的功能单元200j至200_N中的每一个的电子功能单元的实施例;图4a示出向量浮点乘加操作;图4b示出向量整数浮点操作;图5示出图3的功能单元的实施例,该功能单元具有用于执行前导零、尾随零、操作数I计数以及奇偶指令的扩展逻辑;图6a到图6d分别示出以下指令的执行:前导零确定、尾随零确定、操作数I计数以及操作数奇偶确定;图7示出半导体处理器的示图;图8示出计算系统的示图。具体实施例方式一些计算机系统可能需要“乘加”操作。乘加操作执行运算(A*B)+C,其中A、B和C中的每一个均为输入操作数。图2示出能够执行向量乘加指令(VMADD)的向量处理功能单元200的高级体系结构视图。如图2所示,功能单元包括N个标量逻辑单元200_1到200_N,每个逻辑单元对输入向量的相应元素进行标量乘加操作。在此,输入寄存器203保存输入向量A=A_1、A_2、...A_N;输入寄存器204保存输入向量B=B_1、B_2、...B_N ;以及输入寄存器205保存输入向量C=C_1、C_2、...C_N。标量逻辑单元200_1执行运算((A_l) * (B_l)) +C_l ;标量逻辑单元200_2执行运算((A_2) * (B_2)) +C_2 ;...;以及标量逻辑单元200_N执行运算((A_N)*(B_N))+C_N。在实施例中,每个标量逻辑单元支持32位操作数操作模式和64位操作数操作模式两者。由逻辑单元200_1到200_N产生的各个结果202_1到202_N对应于由向量功能单元200提供的输出向量的各个元素,该输出向量存储在输出寄存器中。图2还示出,为了实现与SMD操作相对的向量操作,可将掩模层并入到输出电路206中。向量操作可被视为在以下方面与SIMD操作不同:输入操作数的尺寸对于向量机是可变的但对于SIMD机是固定的。改变图2的向量机中的元素数量的能力借助可在输出206执行的掩模来表示。具体地,可以通过它自身的相应写逻辑电路(未示出)对每个输出元素进行写入。在实施例中,写逻辑电路可对任何输出元素位置进行。通过仅对与有效向量操作数元素相对应的那些元素启用写逻辑电路,可以处理长度可变的向量。其作用是基本上仅启用标量功能单元200_1到200_N中与有效向量元素相对应的那些用于操作。此外,掩模使得针对有效元素检测到的任何算术例外被呈现,同时抑制不活动元素的例外。如以下将要进一步详细描述的,除计算向量乘加指令之外,功能单元200还能够计算许多附加向量指令,诸如下列中的一个或多个:i)用于整数操作数的向量乘加高指令(VMADDH),其提供向量乘加运算的高阶位;ii)用于整数操作数的向量乘加(VMADDL),其提供向量乘加运算的低阶位;iii)向量前导零计数指令(VCLZ),其接收输入向量C并提供输出向量作为结果,该输出向量的元素分别对应于输入向量C的元素的前导零计数;iv)向量尾随零计数指令(VCTZ),其接收输入向量C并提供输出向量作为结果,该输出向量的元素分别对应于输入向量C的元素的尾随零计数;v)向量计数指令(VCNT),其接收输入向量C并提供输出向量作为结果,该输出向量的各个元素分别对应于输入向量C的各个元素内的I的计数;以及Vi)向量奇偶指令(VPAR),其接收输入向量C并提供输出向量作为结果,该输出向量的各个兀素分别对应于输入向量C的各个兀素的奇偶状态(奇或偶)。利用VMADD指令,以上列举的指令中的每一个由向量输入A、B和C的相应输入操作数元素的标量执行来完成。在进一步的实施例中,再一次如以下更详细描述的,由功能单元200执行的任何/全部指令对浮点以及整数操作数是可操作的。图3示出图2的标量逻辑单元之一的实施例。如当前所述,标量逻辑单元能本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:J·韦德梅耶S·萨姆德若拉R·高利弗
申请(专利权)人:英特尔公司
类型:
国别省市:

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

1