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

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

技术编号:10489198 阅读:126 留言:0更新日期:2014-10-03 17:27
描述了一种装置,该装置具有指令执行逻辑电路,该指令执行逻辑电路用于执行第一、第二、第三和第四指令。第一指令和第二指令二者将第一组输入向量元素插入相应的第一和第二结果向量的多个第一不重叠部分中的一个部分中。第一组具有第一位宽。多个第一不重叠部分中的每个部分具有与第一组相同的位宽。第三指令和第四指令二者将第二组输入向量元素插入相应的第三和第四结果向量的多个第二不重叠部分中的一个部分中。第二组具有比所述第一位宽大的第二位宽。多个第二不重叠部分中的每个部分具有与第二组相同的位宽。该装置还包括掩码层电路,该掩码层电路用于在第一结果向量粒度下对第一和第三指令进行掩码操作,并在第二结果向量粒度下对第二和第四指令进行掩码操作。

【技术实现步骤摘要】
【国外来华专利技术】经改进的插入指令的装置和方法背景
本专利技术一般涉及计算科学,且更具体地涉及经改进的插入指令的装置和方法。
技术介绍
图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、105层中的至少一层。在执行向量程序代码的过程中,每一向量指令无需要求全数据字。例如,一些指令的输入向量可能仅仅是8个元素,其他指令的输入向量可能是16个元素,其他指令的输入向量可能是32个元素,等等。因此,掩码层104/105用于标识完整向量数据字中的应用于特定指令的一组元素,以在多个指令之间实现不同的向量尺寸。通常,对于每一向量指令,掩码向量寄存器空间106中所保持的特定掩码模式被该指令调出,从掩码寄存器空间中被取出并且被提供给掩码层104/105中的任一者或两者,以“启用”针对该特定向量操作的正确元素集合。图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中每一者的内容藉由第二输入向量中包含的信息被唯一性地指定为输入元素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指令的另一版本使用立即操作数而非第二输入向量来选取输入向量3本文档来自技高网...
经改进的插入指令的装置和方法

【技术保护点】
一种装置,包括:指令执行逻辑电路,用于执行:a)第一指令和第二指令,其中所述第一指令和所述第二指令两者将第一组输入向量元素插入相应的第一和第二结果向量的多个第一不重叠部分中的一个部分中,所述第一组具有第一位宽,所述多个第一不重叠部分中的每个部分具有与所述第一组相同的位宽;b)第三指令和第四指令,其中所述第三指令和所述第四指令两者将第二组输入向量元素插入相应的第三和第四结果向量的多个第二不重叠部分中的一个部分中,所述第二组具有比所述第一位宽大的第二位宽,所述多个第二不重叠部分中的每个部分具有与所述第二组相同的位宽;掩码层电路,用于在第一结果向量粒度下对第一和第三指令进行掩码操作,并在第二结果向量粒度下对第二和第四指令进行掩码操作。

【技术特征摘要】
【国外来华专利技术】1.一种指令处理装置,包括:解码器,用于将具有第一立即操作数的第一指令解码成经解码的第一指令、将具有第二立即操作数的第二指令解码成经解码的第二指令、将具有第三立即操作数的第三指令解码成经解码的第三指令、以及将具有第四立即操作数的第四指令解码成经解码的第四指令;指令执行逻辑电路,用于执行:a)所述经解码的第一指令和所述经解码的第二指令,其中所述经解码的第一指令的执行用于将第一组输入向量元素插入第一结果向量的多个第一不重叠部分中的一个部分中,所述经解码的第二指令的执行用于将第一组输入向量元素插入第二结果向量的多个第一不重叠部分中的一个部分中,所述第一组输入向量元素具有第一位宽,所述多个第一不重叠部分中的每个部分具有与所述第一组输入向量元素相同的位宽;b)所述经解码的第三指令和所述经解码的第四指令,其中所述经解码的第三指令的执行用于将第二组输入向量元素插入第三结果向量的多个第二不重叠部分中的一个部分中,所述经解码的第四指令的执行用于将第二组输入向量元素插入第四结果向量的多个第二不重叠部分中的一个部分中,所述第二组输入向量元素具有比所述第一位宽大的第二位宽,所述多个第二不重叠部分中的每个部分具有与所述第二组输入向量元素相同的位宽;掩码层电路,用于在由所述第一立即操作数和所述第三立即操作数指定的第一结果向量粒度下对所述第一结果向量和所述第三结果向量进行掩码操作,并在由所述第二立即操作数和所述第四立即操作数指定的第二结果向量粒度下对所述第二结果向量和所述第四结果向量进行掩码操作。2.如权利要求1所述的装置,其特征在于,所述第二组输入向量元素的所述第二位宽是所述第一组输入向量元素的所述第一位宽的两倍大。3.如权利要求2所述的装置,其特征在于,所述第一组输入向量元素是128位,且所述第二组输入向量元素是256位。4.如权利要求1所述的装置,其特征在于,所述第一结果向量粒度是32位,且所述第二结果向量粒度是64位。5.如权利要求1所述的装置,其特征在于,所述第一、第二、第三和第四结果向量是512位。6.如权利要求1所述的装置,其特征在于,所述向量元素是浮点数据值。7.如权利要求1所述的装置,其特征在于,如果目的地向量中的元素的位置被掩码,则所述掩码层电路允许保留所述元素。8.一种用于处理指令的方法,包括:将具有第一立即操作数的第一指令解码成经解码的第一指令、将具有第二立即操作数的第二指令解码成经解码的第二指令、将具有第三立即操作数的第三指令解码成经解码的第三指令、以及将具有第四立即操作数的第四指令解码成经解码的第四指令;执行所述经解码的第一指令,包括:将第一组输入向量元素插入到第一结果向量的多个第一不重叠部分中的一个部分中,所述第一组输入向量元素具有第一位宽,所述多个第一不重叠部分中的每个部分具有与所述第一组输入向量元素相同的位宽;以及在由所述第一指令的第一立即操作数指定的第一粒度下对所述第一组输入向量元素进行掩码操作;执行所述经解码的第二指令,包括:将第二组输入向量元素插入到第二结果向量的多个第二不重叠部分中的一个部分中,所述第二组输入向量元素具有第二位宽,所述多个第二不重叠部分中的每个部分具有与所述第二组输入向量元素相同的位宽;以及在由所述第二指令的第二立即操作数指定的第二粒度下对所述第二组输入向量元素进行掩码操作,所述第一粒度比所述第二粒度精细;执行所述经解码的第三指令,包括:将第三组输入向量元素插入到第三结果向量的多个第三不重叠部分中的一个部分中,所述第三组输入向量元素具有所述第一位宽,所述多个第三不重叠部分中的每个部分具有与所述第一组输入向量元素相同的位宽;以及在由所述第...

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

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

1