The method executed by the processor includes receiving instructions. The instruction indicates the source operand, indicates the span, indicates at least one set of span data element positions from all sets of span data element positions for the indicated span, and indicates at least one destination packaged data register. The method also includes storing the corresponding result packaged data operands in the processor's corresponding destination packaged data registers in response to each of at least one set indicated by the instruction for the location of the spanning data elements. Each result wrapped data operand comprises a plurality of data elements from a set of corresponding indications of the location of spanning data elements of the source operand. The locations of the span data elements of the collection are separated from the indicated span by an integer multiple. Other methods, processors, systems and machine readable media are also disclosed.
【技术实现步骤摘要】
去交织跨距数据元素处理器、方法、系统和指令
本文描述的实施例一般涉及处理器。具体地,本文描述的实施例一般涉及可操作以处理具有跨距布局或布置的数据的处理器。
技术介绍
结构阵列(AoS)是广泛使用的数据结构或布置。如它的名字所意指的,AoS典型地包括结构的阵列或序列,所述结构各自包括多个数据元素。每个结构的数据元素一般表示不同类型的数量、值或事物。作为一个说明性示例,每个结构的数据元素可表示对应像素的不同类型的颜色分量(例如红(R)、绿(G)和蓝(B)颜色分量)。典型地,每个结构具有相同数量的数据元素,并且表示不同类型的数量、值或事物的数据元素以相同顺序布置在每个结构中。这促使AoS具有“跨距”数据布置或模式,其中表示不同类型的数量、值或事物的数据元素驻留在相等间距或“跨距”数据元素位置处。这样的AoS通常存储在存储器中。为了处理数据元素,处理器可将数据元素从AoS加载到它的内部寄存器中。可被用于将AoS的数据元素从存储器加载到内部处理器寄存器中的一种类型的指令是矢量加载指令。当被执行时,矢量加载指令可加载AoS的连续数据元素的矢量的价值,并且将它们存储在矢量或打包数据寄存器中,而无需重新布置或重新排序数据元素。可用于将AoS的数据元素从存储器加载到内部处理器寄存器中的另一种类型的指令是收集指令。通常,收集指令可指示为将要收集的每个数据元素存储收集索引或偏移的打包数据寄存器。每个收集索引可表示存储器地址信息,以及各自可指示将要收集的对应数据元素的潜在性非连续位置。当被执行时,收集指令可促进处理器执行单独的收集或加载操作,以从对应的位置收集每个数据元素,所述对 ...
【技术保护点】
1.一种处理器,包括:多个打包数据寄存器;解码单元,用于解码指令,所述指令用于指示源操作数、用于指示跨距、用于指示出自于对于所指示的跨距的跨距数据元素位置的所有集合中的跨距数据元素位置的至少一个集合、以及用于指示所述多个打包数据寄存器的至少一个目的地打包数据寄存器;以及运行单元,与所述多个打包数据寄存器耦合,并且与所述解码单元耦合,所述运行单元响应于所述指令针对跨距数据元素位置的所指示的至少一个集合中的每个来将对应的结果打包数据操作数存储在所述多个打包数据寄存器的对应的目的地打包数据寄存器中,每个结果打包数据操作数用于包括多个数据元素,所述多个数据元素将会来自所述源操作数的跨距数据元素位置的对应的所指示的集合,其中所述集合的跨距数据元素位置将会彼此分开整数倍的所指示的跨距。
【技术特征摘要】
2017.02.28 US 15/4455771.一种处理器,包括:多个打包数据寄存器;解码单元,用于解码指令,所述指令用于指示源操作数、用于指示跨距、用于指示出自于对于所指示的跨距的跨距数据元素位置的所有集合中的跨距数据元素位置的至少一个集合、以及用于指示所述多个打包数据寄存器的至少一个目的地打包数据寄存器;以及运行单元,与所述多个打包数据寄存器耦合,并且与所述解码单元耦合,所述运行单元响应于所述指令针对跨距数据元素位置的所指示的至少一个集合中的每个来将对应的结果打包数据操作数存储在所述多个打包数据寄存器的对应的目的地打包数据寄存器中,每个结果打包数据操作数用于包括多个数据元素,所述多个数据元素将会来自所述源操作数的跨距数据元素位置的对应的所指示的集合,其中所述集合的跨距数据元素位置将会彼此分开整数倍的所指示的跨距。2.如权利要求1所述的处理器,其中,所述解码单元要解码所述指令,所述指令能够仅指示跨距数据元素位置的所述所有集合的子集。3.如权利要求1所述的处理器,其中,所述解码单元要解码所述指令,所述指令能够指示跨距数据元素位置的所述所有集合的不同子集。4.如权利要求1所述的处理器,其中,所述运行单元响应于所述指令要存储比跨距数据元素位置的所述所有集合更少的结果打包数据操作数。5.如权利要求1所述的处理器,其中,所述解码单元要解码所述指令,所述指令要指示对于跨距数据元素位置的所指示的至少一个集合中的每个的对应值,以及其中,每个值将会指示跨距数据元素位置的对应集合。6.如权利要求1所述的处理器,其中,所述解码单元要解码所述指令,所述指令要指示对应值,所述对应值是对于跨距数据元素位置的所指示的至少一个集合中的每个的偏移和索引中的一个。7.如权利要求1所述的处理器,其中,所述解码单元要解码所述指令,所述指令要指示掩码,所述掩码要具有对于跨距数据元素位置的所述所有集合中的每个的不同对应部分,以及其中,所述掩码的每个不同部分要具有第一值和第二值中的一个,所述第一值用于将跨距数据元素位置的所述对应集合包括在跨距数据元素位置的所述至少一个集合中,以及所述第二值用于不将跨距数据元素位置的所述对应集合包括在跨距数据元素位置的所述至少一个集合中。8.如权利要求1所述的处理器,其中,所述解码单元要解码所述指令,所述指令要指示位掩码,所述位掩码要指示跨距数据元素位置的所述至少一个集合。9.如权利要求1到8中任一项所述的处理器,其中,所述解码单元要解码所述指令,所述指令要指示所述跨距,所述跨距能够包含至少五个数据元素位置。10.如权利要求1到8中任一项所述的处理器,其中,所述解码单元要解码所述指令,所述指令能够指示不同跨距以及所述指令要通过以下之一来指示所述跨距:所述指令的立即数的值;以及要被存储在要由所述指令指示的寄存器中的值。11.如权利要求1到8中任一项所述的处理器,其中,所述解码单元要解码所述指令,所述指令要指示至少一个打包数据操作掩码。12.如权利要求11所述的处理器,其中,所述运行单元要响应于所述指令针对跨距数据元素位置的所指示的至少一个集合中的每个来存储所述对应的结果打包数据操作数,其中每个结果打包数据操作数要包括所述多个数据元素,所述多个数据元素将会来自所述源操作数的跨距数据元素位置的所述对应的所指示的集合的未掩蔽数据元素位置,所述未掩蔽数据元素位置将会对应于所述至少一个打包数据操作掩码的未掩蔽的掩码元素。13.如权利要求1到8中任一项所述的处理器,其中,所述解码单元要解码所述指令,所述指令要指示对于所述结果打包数据操作数中的每个的不同对应打包数据操作掩码。14.如权利...
【专利技术属性】
技术研发人员:M普洛特尼科夫,E奥尔德阿梅德瓦尔,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。