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

用于独立数据上递归计算的向量化的读和写掩码更新指令制造技术

技术编号:11410269 阅读:76 留言:0更新日期:2015-05-06 09:28
处理器执行掩码更新指令以执行对第一掩码寄存器和第二掩码寄存器的更新。处理器内的寄存器组包括第一掩码寄存器和第二掩码寄存器。处理器包括用于执行掩码更新指令的执行电路。响应于掩码更新指令,执行电路用于反转第一掩码寄存器中给定数量的掩码位,并且还用于反转第二掩码寄存器中给定数量的掩码位。

【技术实现步骤摘要】
【国外来华专利技术】用于独立数据上递归计算的向量化的读和写掩码更新指令
本公开涉及处理逻辑、微处理器以及相关联的指令集架构的领域,该指令集架构在被处理器或其他处理逻辑所执行时运行逻辑、数学或其他功能性操作。
技术介绍
指令集或指令集架构(ISA)是计算机架构中与编程有关的部分,并且可包括原生数据类型、指令、寄存器架构、寻址模式、存储器架构、中断和异常处理、以及外部输入和输出(I/O)。术语指令在本申请中一般表示宏指令——宏指令是被提供给处理器(或指令转换器,该指令转换器(例如利用静态二进制转换、包括动态编译的动态二进制转换)转换、变形、仿真或以其他方式将指令转换成将由处理器处理的一个或多个其他指令)以供执行的指令——作为对比,微指令或微操作(微ops)是处理器的解码器解码宏指令的结果。ISA与微架构不同,微架构是实现该指令集的处理器的内部设计。具有不同微架构的处理器可共享共同的指令集。例如,酷睿(CoreTM)处理器、以及来自加利福尼亚州桑尼威尔(Sunnyvale)的超微半导体有限公司(AdvancedMicroDevices,Inc.)的诸多处理器执行几乎相同版本的x86指令集(在更新的版本中加入了一些扩展),但具有不同的内部设计。例如,可利用公知技术(包括专用物理寄存器、利用寄存器重命名机制的一个或多个动态分配的物理寄存器)在不同微架构中以不同方式实现该ISA的同一寄存器架构。许多现代ISA支持单指令多数据(SIMD)操作。取代仅对一个或两个数据元素进行操作的标量指令,向量指令(也称为紧缩数据指令或SIMD指令)可同时或并行地对多个数据元素或多对数据元素进行操作。处理器可具有并行的执行硬件,以响应于该向量指令同时或并行地执行多个操作。SIMD操作在一个操作中对紧缩在一个向量寄存器或存储器位置之内的多个数据元素进行操作。这些数据元素被称为紧缩数据或向量数据。向量元素中的每一个可表示独立的单条数据(例如像素的颜色,等等),可单独或与其它数据无关地操作该单条数据。在一些情况下,SIMD操作可以以递归方式对独立向量数据元素进行操作,其中对于不同数据元素,迭代的数量不同。因此,一些数据元素的计算可能完成,而一些其它数据元素仍需要更多迭代。递归计算的一个示例是WHILE循环操作。在本示例中,在条件(X[i])为真(满足)时,对N元素的数组X[i](i=0,...,N-l)进行递归计算。当条件(X[i])变为假时,X[i]的计算停止。该条件的示例可以是X[i]>0。for(i=0;i<N;i++){while(条件(X[i])){X[i]=计算(X[i]);}}如果对于X[i]的不同数据元素,WHILE循环迭代的数量不同,则以上计算无法被轻易向量化。一种可能的方法是用处理器在不满足条件的那些元素上执行计算,然后丢弃从这些元素导出的结果。然而,该方法具有低效率,因为处理器不仅在这些元素上执行不必要的计算,而且还无法利用由这些元素占据的向量寄存器槽口。附图说明在附图中的诸个图中通过示例而非限制地示出各个实施例:图1是根据一个实施例的包括向量寄存器和掩码寄存器的指令处理装置的框图。图2是根据一个实施例的寄存器架构的框图。图3示出根据一个实施例的向量操作序列的示例。图4A示出根据一个实施例的使处理器在向量寄存器和掩码寄存器上执行操作的指令的伪代码示例。图4B示出根据一个实施例的使用图4A的指令的代码段示例。图5A是根据一个实施例的示出响应于使用掩码更新指令和向量移动指令的代码段而执行的操作的流程图。图5B是示出根据一个实施例的响应于掩码更新指令而执行的操作的流程图。图5C是示出根据一个实施例的响应于向量移动指令而执行的操作的流程图。图6是示出根据一个实施例的使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。图7A是根据一个实施例的有序和无序流水线的框图。图7B是根据一个实施例的有序和无序核的框图。图8A-B是根据一个实施例的更具体的示例性有序核架构的框图。图9是根据一个实施例的处理器的框图。图10是根据一个实施例的系统的框图。图11是根据一个实施例的第二系统的框图。图12是根据本专利技术的实施例的第三系统的框图。图13是根据一个实施例的芯片上系统(SoC)的框图。具体实施方式在以下描述中,陈述了多个具体细节。然而,应当理解的是,可不通过这些具体细节来实施本专利技术的实施例。在其它实例中,未详细示出公知的电路、结构以及技术,以免模糊对本描述的理解。本文所述的实施例提供用于提高独立数据元素上的递归向量计算的效率的指令。这些指令利用一对向量寄存器和一对掩码寄存器来执行递归向量计算,其中第一向量寄存器充当用于累加向量计算结果的累加器,并且第二向量寄存器提供新的数据元素以填充第一向量寄存器的未利用槽口(未使用或已完成的数据元素位置)。掩码寄存器用于指示相应向量寄存器中的哪些数据元素需要进一步的计算。在一个实施例中,第一向量寄存器(即累加器)累加输入数据元素,直到寄存器被完整向量填满。然后,处理器使用非掩码(即,密集)向量操作在这些数据元素上执行计算。在计算之后,累加器中的一些元素(对于这些元素,完成了计算)可以被发送回储存器或其它存储位置,而其它元素(对于这些元素,未完成计算)可以被保持在累加器中用于附加数量的迭代。累加器中已完成计算的数据元素位置可以由还需要相同递归计算的新数据元素所利用。本文描述两个指令RWMASKUPDATE和SPARSEMOV。这些指令在许多情况下提高向量化的效率。例如,在一种情况下,输入数据元素可能来自一个或多个稀疏向量数据集,每个稀疏向量数据集不具有足以填满整个累加器(即,第一向量寄存器)的元素。此外,来自不同数据集的输入数据元素在计算中可能需要不同数量的迭代。因此,由于无需更多计算的那些数据元素,在累加器中剩余未利用的槽口。本文所述的指令允许这些未利用的槽口被有用的元素填充,从而实现在完整向量上的递归计算。如在以下进一步细节中所述的,SPARSEMOV指令是将有用的数据元素(即需要计算的数据元素)从第二向量寄存器移动到累加器中的向量移动指令。RWMASKUPDATE指令更新读掩码寄存器(与第二向量寄存器相关联)和写掩码寄存器(与累加器相关联)以标识在这两个向量寄存器中的有用数据元素的位置。与SPARSEMOV相结合地使用RWMASKUPDATE可以降低递归计算中所需指令的总数,并且简化上溢和下溢情形,在上溢和下溢情形中第二向量寄存器中有用数据元素(即,源数据元素)的数量不与第一向量寄存器中未利用槽口(即,目标位置)的数量相匹配。经更新的读和写掩码用于控制两个向量寄存器之间的数据移动;具体而言,写掩码位0用于标识累加器中的目标位置;并且读掩码位1用于标识第二向量寄存器中的源数据元素。使用反转的写掩码位来标识目标位置简化稀疏和递归计算的向量化中的数据累加。图1是指令处理装置115的实施例的框图,该指令处理装置具有执行单元140,该执行单元包括可操作用于执行指令(包括RWMASKUPDATE和SPARSEMOV指令)的电路。在一些实施例中,指令处理装置115可以是处理器、多核处理器的处理器核、或者电子系统中的处理元件。解码器130接收高级机器指令或宏指令形本文档来自技高网...

【技术保护点】
一种装置,包括:寄存器组,包括第一掩码寄存器和第二掩码寄存器;以及执行电路,与所述寄存器组耦合,用于执行掩码更新指令,其中响应于所述掩码更新指令,所述执行电路用于反转所述第一掩码寄存器中给定数量的掩码位并且用于反转所述第二掩码寄存器中所述给定数量的掩码位。

【技术特征摘要】
【国外来华专利技术】2012.09.28 US 13/630,2471.一种用于指令处理的装置,包括:寄存器组,包括第一掩码寄存器和第二掩码寄存器、以及与所述第一掩码寄存器相关联的第一向量寄存器和与所述第二掩码寄存器相关联的第二向量寄存器;以及执行电路,与所述寄存器组耦合,用于执行掩码更新指令,其中响应于所述掩码更新指令,所述执行电路用于反转所述第一掩码寄存器中给定数量的掩码位并且用于反转所述第二掩码寄存器中所述给定数量的掩码位。2.如权利要求1所述的装置,其中所述给定数量是所述第一掩码寄存器中具有第一位值的掩码位的数量和所述第二掩码寄存器中具有第二位值的掩码位的数量中较小的一个。3.如权利要求2所述的装置,其中所述第一位值与所述第二位值相同。4.如权利要求2所述的装置,其中所述第一位值是所述第二位值的反转。5.如权利要求1所述的装置,其中所述第一掩码寄存器中所述给定数量的掩码位是所述第一掩码寄存器中的低阶掩码位或高阶掩码位。6.如权利要求1所述的装置,其中所述第二掩码寄存器中所述给定数量的掩码位是所述第二掩码寄存器中的低阶掩码位或高阶掩码位。7.如权利要求1所述的装置,其特征在于:所述第一掩码寄存器的每个掩码位指示用于所述第一向量寄存器中相应数据元素的条件是否被满足;以及所述第二掩码寄存器的每个掩码位指示用于所述第二向量寄存器中相应数据元素的条件是否被满足。8.如权利要求7所述的装置,其中当用于给定数据元素的条件被满足时,对于所述给定数据元素,需要进一步计算。9.一种用于指令处理的方法,包括:由处理器接收指定第一掩码寄存器和第二掩码寄存器的掩码更新指令,其中所述第一掩码寄存器与第一向量寄存器相关联,所述第二掩码寄存器与第二向量寄存器相关联;以及响应于所述掩码更新指令,执行操作,包括:反转所述第一掩码寄存器中给定数量的掩码位,以及反转所述第二掩码寄存器中所述给定数量的掩码位。10.如权利要求9所述的方法,其中所述给定数量是所述第一掩码寄存器中具有第一位值的掩码位的数量和所述第二掩码寄存器中具有第二位值的掩码位的数量中较小的一个。11.如权利要求10所述的方法,其中所述第一位值与所述第二位值相同。12.如权利要求10所述的方法,其中所述第一位值是所述第二位值的反转。13.如权利要求9所述的方法,其中所述第一掩码寄存器中所述给定数量的掩码位是所述第一掩码寄存器中的低阶掩码位或高阶掩码位。14.如...

【专利技术属性】
技术研发人员:M·普罗特尼科夫A·纳赖金C·休斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1