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

掩码置换指令的装置和方法制造方法及图纸

技术编号:16326808 阅读:39 留言:0更新日期:2017-09-29 18:51
本申请公开了掩码置换指令的装置和方法。描述了具有指令执行逻辑电路的装置。该指令执行逻辑电路具有输入向量元素路由电路,其用于针对三个不同指令中的每个指令执行以下操作:对于多个输出向量元素位置中的每一者,将来自可用于作为输出向量元素的源的多个输入向量元素位置之一的输入向量元素路由至输出向量元素位置。输出向量元素和每个输入向量元素位置为用于这三个不同指令的三个可用位宽之一。该装置还包括掩码层电路,其耦合至输入向量元素路由电路以对由输入向量路由元素电路所创建的数据结构进行掩码操作。掩码层电路被设计成以对应于这三个可用位宽的三个不同粒度级别进行掩码操作。

【技术实现步骤摘要】
掩码置换指令的装置和方法本申请是PCT国际申请号为PCT/US2011/067090、国际申请日为2011年12月23日、中国国家申请号为201180075800.4、题为“掩码置换指令的装置和方法”的申请的分案申请。
本专利技术一般涉及计算科学,且更具体地涉及改进置换指令的装置和方法。
技术介绍
图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还示出向量寄存器空间104的存在,该向量寄存器空间104不同于通用寄存器空间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、105层中的至少一层。在执行向量程序代码的过程中,每一向量指令无需要求全数据字。例如,一些指令的输入向量可能仅仅是8个元素,其他指令的输入向量可能是16个元素,其他指令的输入向量可能是32个元素,等等。因此,掩码层104/105用于标识完整向量数据字中的应用于特定指令的一组元素,以在多个指令之间实现不同的向量尺寸。通常,对于每一向量指令,掩码寄存器空间106中所保持的特定掩码模式被该指令调出,从掩码寄存器空间中被取出并且被提供给掩码层104/105中的任一者或两者,以“启用”针对该特定向量操作的正确元素集合。图3a、3b和3c示出现有技术的VPERMUTE指令的逻辑操作。具体地,图3a、3b和3c示出三个不同的VPERMUTE指令(VPERMILPS、VPERMILPD、VPERM2F128)的相应逻辑操作。图3a示出了VPERMILPS指令的逻辑操作。如图3a中观察到的,VPERMILPS指令接受对应于256位输入向量的输入操作数301_C,该输入向量具有8个32位(单精度)浮点值。结果也是256位向量,该256位向量具有8个32位单精度浮点值作为其元素302_C。第二输入向量(未示出)针对结果的下半部中的4个元素中的每个元素唯一性地指定输入向量301_C的下半部中的4个元素301_C_1至301_C_4中的哪个元素将向输出元素提供其内容。图3a仅针对输出元素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的上半部中的输出元素的源。尽管未在图3a中明确地示出,但经由第二输入向量中包含的信息,将输出元素302_C_2至302_C_4中每一者的内容唯一性地指定为输入元素301_C_1至301_C_4中的任一者。类似地,如图3c中观察到的,输出元素302_C_5的内容用输入元素301_C_5至301_C_8中任一者的内容“填充”。同样,也在(未示出的)第二输入向量中清楚表明输入元素301_C_5至301_C_8中的哪一个被选择以填充输出元素302_C_5。经由(未示出的)第二输入向量,将输出元素302_C_6至302_C_8中每一者的内容唯一性地指定为输入元素301_C_5至301_C_8中的任一者。VPERMILPS指令的另一版本使用立即操作数而非第二输入向量来选取输入向量301_C的选择模式。此处,用于目的地的下半部的输入元素选择模式匹配用于目的地的上半部的输入元素选择模式。图3b示出VPERMILPD指令的逻辑操作。如图3b中观察到的,VPERMILPD指令接受对应于256位输入向量的输入操作数301_D,该输入向量具有4个64位(双精度)浮点值。结果也是256位向量302_D,该256位向量具有4个64位双精度浮点值作为其元素。第二输入向量(未示出)针对结果的下半部中的2个元素中的每个元素唯一性地指定输入向量301_D的下半部中的2个元素301_D_1至301_D_2中的哪个元素将向输出元素提供其内容。如图3b中观察到的,可用输入元素301_D_1或301_D_2中的任一者来唯一性地“填充”输出元素302_D_1和302_D_2中的每一者。同样,可用输入元素301_D_3或301_C_4中的任一者来唯本文档来自技高网...
掩码置换指令的装置和方法

【技术保护点】
一种装置,包括:解码器,用于将指令解码成经解码指令;以及执行单元,用于执行所述经解码指令以:对于输出掩码向量的多个输出向量元素位置中的每一个,将来自输入掩码向量中能用于作为输出向量元素的源的多个输入向量元素位置之一的输入向量元素路由至输出向量元素位置中,所述输出向量元素以及每个所述输入向量元素为所述指令的三个可用位宽中的一个,所述多个输入向量元素位置对应于所述输入掩码向量连续分块,所述输入掩码向量连续分块小于所述输入掩码向量,以三个不同粒度级别中对应于所述三个可用位宽中的所述一个的一个粒度级别对所述输出掩码向量进行掩码操作,以创建结果,以及将所述结果存储在掩码寄存器中。

【技术特征摘要】
1.一种装置,包括:解码器,用于将指令解码成经解码指令;以及执行单元,用于执行所述经解码指令以:对于输出掩码向量的多个输出向量元素位置中的每一个,将来自输入掩码向量中能用于作为输出向量元素的源的多个输入向量元素位置之一的输入向量元素路由至输出向量元素位置中,所述输出向量元素以及每个所述输入向量元素为所述指令的三个可用位宽中的一个,所述多个输入向量元素位置对应于所述输入掩码向量连续分块,所述输入掩码向量连续分块小于所述输入掩码向量,以三个不同粒度级别中对应于所述三个可用位宽中的所述一个的一个粒度级别对所述输出掩码向量进行掩码操作,以创建结果,以及将所述结果存储在掩码寄存器中。2.如权利要求1所述的装置,其中,所述执行单元用于执行所述经解码指令以便对所述三个可用位宽中的每一个:路由来自所述输入掩码向量的所有输入向量位置的所述输入向量元素。3.如权利要求l所述的装置,其中,所述输入掩码向量包括多个输入掩码向量。4.如权利要求1所述的装置,其中,所述三个可用位宽中的一个由所述指令的立即操作数来指定。5.如权利要求1所述的装置,其中,用于所述三个可用位宽中的一个的连续分块与用于所述三个可用位宽中的另一个的连续分块为相同尺寸。6.如权利要求5所述的装置,其中,所述相同尺寸为用于所述指令的最大结果向量尺寸的四分之一。7.如权利要求1所述的装置,其中,所述执行单元用于执行所述经解码指令以将相同输入向量元素路由至多个输出向量位置。8.如权利要求1至7中任一项所述的装置,其中,所述指令进一步包括索引向量,所述索引向量为所述输出掩码向量中的每个位位置清楚表明哪个具体的输入向量元素将被用来填充所述输出掩码向量中的对应元素。9.一种方法,包括:通过处理器的解码器来将指令解码成经解码指令;以及通过所述处理器的执行单元来执行所述经解码指令以:对于输出掩码向量的多个输出向量元素位置中的每一个,将来自输入掩码向量中能用于作为输出向量元素的源的多个输入向量元素位置之一的输入向量元素路由至输出向量元素位置中,所述输出向量元素以及每个所述输入向量元素为用于所述指令的第一、第二和第三向量元素尺寸中的一个,并且所述多个输入向量元素位置对应于所述输入掩码向量连续分块,所述输入掩码向量连续分块小于所述输入掩码向量,以三个不同粒度级别中对应于所第一、第二和第三向量元素尺寸中的所述一个的一个粒度级别对所述输出掩码向量进行掩码操作,以创建结果;以及将所述结果存储在掩码寄存器中。10.如权利要求9所述的方法,其中,所述输入向量元素位置对应于所述输入掩码向量的所有输入向量位置。11.如权利要求9所述的方法,其中,所述输入掩码向量包括多个输入掩码向量。12.如权利要求9所述的方法,其中,所述第一、第二和第三向量元素尺寸中的所述一个由所述指令的立即操作数来指定。13.如权利要求9所述的方法,其中,所述第一和第二向量元素尺寸分别为32和64位。14.如权利要求9所述的方法,其中,所述第一、第二和第三向量元素尺寸分别为16、32和64位。15.如权利要求9所述的方法,其中,执行所述经解码指令以将相同输入向量元素路由至多个输出向量位置。16.如权利要求9至15中任一项所述的方法,其中,所述指令进一步包括索引向量,所述索引向量为所述输出掩码向量中的每个位位置清楚表明哪个具体的输入向量元素将被用来填充所述输出掩码向量中的对应元素。17.一种包括代码的机器可...

【专利技术属性】
技术研发人员:E·乌尔德阿迈德瓦尔R·凡伦天J·考博尔圣阿德里安S·赛尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1