对多个通道中的紧缩数据解压缩的制作方法

文档序号:6349801阅读:225来源:国知局
专利名称:对多个通道中的紧缩数据解压缩的制作方法
技术领域
实施例涉及处理器、由处理器执行的方法、合并了处理器的系统或者由处理器处理的指令。具体地,实施例涉及对多个通道中的紧缩数据解压缩的处理器、方法、系统或指令。
背景技术
提高计算机和其他处理系统的性能通常趋向于增加可被处理的数据量和/或提供更好的用户体验。随着计算机和其他处理系统处理越来越大的数据量,加速这种数据处理的技术趋向于变得更加重要。单指令多数据(SIMD)架构是加速数据处理的一种方式。在SIMD架构中,不同于一条指令仅对一个数据元操作,指令可以对多个数据元同时地或并行地操作。代表性地,在 SIMD架构中,多个数据元可以紧缩在一个寄存器或者存储器位置内。响应指令的并行执行硬件可以同时地或并行地执行多个操作。这种SIMD架构趋向于显著提高系统性能。一种已知类型的SIMD指令是解压缩指令。一些已知的处理器包括多种不同的解压缩指令。例如,除了来自英特尔公司(Intel Corporation)的其他处理器之外,htel Core 2 Duo处理器包括各种解压缩指令,诸如在英特尔架构软件开发人员手册第二卷 指令集参考,1999年(订单号M3191)中详细描述的指令。然而,在一些条件下并且对于一些应用,额外的解压缩指令和操作可能是有用的。


通过参照用于图示本发明的实施例的下面的描述和附图,将最佳地理解本发明的实施例。在附图中
图1图示了处理器的一个示例实施例。图2是接收指令并且存储由指令指定的结果的方法的实施例的流程框图。图3示出了由很多htel 高级矢量扩展(Intel AVX)指令利用的YMM寄存器的实施例。图4示出了适用于本发明的一个或多个实施例的紧缩数据格式的代表性示例。图5是跨通道解压缩方法的示例实施例的流程框图。图6图示了根据指定针对低通道的解压缩低操作和针对高通道的解压缩高操作的第一单个跨通道解压缩指令对具有两个通道的256位操作数中的32位双字紧缩数据元进行解压缩。图7图示了根据指定针对低通道的解压缩高操作和针对高通道的解压缩低操作的第二单个跨通道解压缩指令对具有两个通道的256位操作数中的32位双字紧缩数据元进行解压缩。图8图示了根据指定针对低通道的解压缩低操作和针对高通道的解压缩高操作的第三单个跨通道解压缩指令对具有两个通道的256位操作数中的16位字紧缩数据元进行解压缩。图9图示了根据指定针对低通道的解压缩高操作和针对高通道的解压缩低操作的第四单个跨通道解压缩指令对具有两个通道的256位操作数中的16位字紧缩数据元进行解压缩。图10是具有指定对于每个通道将执行什么类型的解压缩操作的控制字段的跨通道解压缩指令的实施例的简化框图。图11是适用于实现本发明的一个或多个实施例的计算机系统的示例实施例的框图。
具体实施例方式在下面的描述中,阐述了诸如处理器类型、数据类型、数据格式、寄存器类型、寄存器布置、系统配置等的许多特定细节。然而,应当理解,本发明的实施例可以在没有这些特定细节的情况下实践。在其他实例中,未详细示出公知的电路、结构和技术以便不致使这里的描述的理解模糊。图1图示了处理器100的一个示例实施例。该处理器能够或者在操作中执行如本文中别处讨论的跨通道解压缩指令102。该处理器可以是能够执行指令的各种不同类型的处理器中的任何处理器。例如, 处理器可以是通用处理器,诸如 PENTIUM 4、PENTIUM Dual-Core, Core 2 Duo 禾口 Quad、 Xeon 、Itanium 、XScale ">或StrongARM 微处理器,它们可从美国加利福尼亚州圣巴巴拉的英特尔公司获得。替换的,该处理器可以来自其它公司。该处理器可以是精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、超长指令字(VLIW)处理器或者混合的或替换的处理器类型。作为另一种选择,该处理器可以是专用处理器,诸如例如,网络或通信处理器、协处理器、嵌入式处理器、压缩引擎、图形处理器等。该处理器可以在一个或多个芯片上实现。在使用期间,处理器在操作中接收跨通道解压缩指令102。解压缩指令可以表示控制信号,该控制信号在操作中使处理器执行如下文进一步讨论的解压缩操作。解压缩指令可以由例如软件序列或算法提供。图示的处理器的实施例包括指令解码器104。解码器可以接收跨通道解压缩指令。 解码器可以对解压缩指令进行解码,并且作为输出生成一个或多个微操作、微代码入口点、 微指令、其他指令或者其他控制信号,它们解码自原始解压缩指令或者以其他形式反映原始解压缩指令或者得自原始解压缩指令。解码器可以使用各种不同的机制来得以实现。适用的机制的示例包括,但不限于,查找表、硬件实现方案、可编程逻辑阵列(PLA)、微代码随机访问存储器(ROM)等。在一些情况下,解码器可以被替换为指令翻译器、指令模拟器或者其他指令转换器。指令转换器可以将指令从源指令集转换到目标指令集。例如,指令转换器可以将如这里描述的解压缩指令翻译、变形、模拟或者以其他形式转换为将由执行单元处理的一个或多个其他指令。指令转换器可以通过软件、硬件、固件或者它们的组合实现。指令转换器可以位于处理器上、位于处理器外或者部分位于处理器上并且部分位于处理器外。因此,解码器不是处理器的必需部件。
处理器包括至少一个执行单元106。执行单元与解码器或指令翻译器或者如上文讨论的其他指令转换器耦合或者以其他形式通信。执行单元可以包括在操作中或者能够执行解压缩指令的电路或执行逻辑其。例如,执行单元可以执行一个或多个微操作、微指令或者其他指令或控制信号,它们解码自原始解压缩指令,从原始解压缩指令翻译而得,从原始解压缩指令模拟而得,或以其他形式反映原始解压缩指令,或者得自原始解压缩指令。在一个或多个实施例中,执行单元可以具有用于处理机器指令或者得自这些机器指令的微操作或指令的专用逻辑。就是说,执行单元可以作为跨通道解压缩指令的结果或者响应跨通道解压缩指令而执行操作。在一个或多个实施例中,执行单元和/或处理器可以作为大部分或所有英特尔架构指令的结果或者响应大部分或所有英特尔架构指令而执行操作,英特尔架构指令诸如例如在 PENTIUM 4、PENTIUM Dual-Core、Core 2 Duo 和 Quad、Xeon 、 Itanium 、XScale “或StrongARM 微处理器中使用的指令。一些实施例可以仅包括单个执行单元或者能够执行某些操作的单个执行单元。其他实施例可以包括若干个专用于特定功能或者功能集合的执行单元。此外,处理器的一个或多个实施例可以具有多个核心,每个核心具有至少一个执行单元。处理器还包括与解码器和执行单元耦合的寄存器文件108。此处使用的术语“寄存器”指代通常板上的处理器存储位置,该存储位置通常由宏指令使用以识别操作数。通常, 从处理器外部或者从编程人员的角度,这些寄存器是可见的。这些寄存器不限于任何已知的特定类型的电路。各种不同类型的寄存器是适用的,只要它们能够如这里所述存储和提供数据。适用的寄存器的示例包括,但不限于,专用物理寄存器、使用寄存器重命名的动态分配的物理寄存器、专用物理寄存器和动态分配的物理寄存器的组合等。寄存器文件可以具有各种不同类型的寄存器。适用类型的寄存器的示例包括,但不限于,整数寄存器、浮点寄存器、矢量寄存器、状态寄存器、指令指针寄存器等。为了简单起见示出了单个寄存器集合109。该寄存器集合包括一组或若干个寄存器。例如,该寄存器集合包括寄存器RO至RN,其中N是整数。在一个特定实施例中,N是 15。这些寄存器可以被重命名或者不被重命名。该寄存器集合可以适于存储紧缩数据。紧缩数据包括紧缩在一起的多个数据元。 数据元可以指代与常常具有相同位长度的其他数据元一起存储在寄存器中或其他存储位置的各个数据。寄存器集合可以允许彼此分离地访问一个或各种紧缩数据元。在不同时间, 寄存器集合中的特定寄存器可以保存不同尺寸的紧缩数据元,并且所有不同的各个尺寸的紧缩数据元均可以或者不可以被单独地访问。寄存器集合具有多个通道。在图示的实施例中,寄存器集合一包括该寄存器集合的每个寄存器一具有第一下通道110和第二上通道111。下通道具有最低位,而上通道具有最高位。每个通道具有多个位。例如,寄存器可以分别具有256位,而每个通道可以具有 128位。在其他实施例中,处理器和/或寄存器可以具有三个、四个或更多个通道,并且寄存器和通道可以具有不同的尺寸。图示的处理器的实施例还包括与解码器耦合的缓存112。根据架构,处理器可以具有单个内部缓存,诸如例如,一级(Li)内部缓存,或者多级内部缓存。在一些实施例中,系统可以包括内部缓存和处理器外部的外部缓存的组合。可替换地,所有缓存可以在处理器外部。
8
为了避免使描述模糊,以简化形式示出了处理器。本领域的技术人员将认识到, 处理器可以包括其他常规的部件、电路或逻辑。例如,处理器可以包括前端逻辑、寄存器重命名逻辑、调度逻辑、后端逻辑、退移逻辑、重排序缓冲器等。此外,这仅是处理器的一个说明性示例实施例。其他通用处理器、专用处理器、网络或通信处理器、协处理器、嵌入式处理器、压缩引擎、图形处理器等,也可以受益于这里公开的解压缩指令和操作。图2是接收指令并且存储由所述指令指定的结果的方法214的实施例的流程框图。在一个或多个实施例中,作为本文其他位置公开的解压缩指令的结果,该方法可以由处理器执行。在框215中,可以接收指令。该指令可以表示处理器的指令集中的机器指令。作为示例,可以在处理器处、或者在解码器处,或者在处理器的其他部分接收该指令。有代表性地,可以从诸如例如缓存112的缓存或者总线或其他互连接收该指令。在框216中,可以对所述指令解码。所述指令可以被解码为一个或多个微操作、微代码入口点、微指令、其他指令或者其他控制信号,它们解码自原始解压缩指令或者以其他形式反映原始解压缩指令或者得自原始解压缩指令。可替换地,如前面提到的,所述指令可以被翻译、模拟或者以其他形式进行转换。在框217中,处理器的解码器或者另一部分可以访问和/或接收由指令指示的一个或多个操作数。可以从寄存器(例如,寄存器集合109)、存储器位置或者它们的组合访问和/或接收所述操作数。所述指令可以指定寄存器的地址或者操作数的存储器位置。例如, 所述指令可以指定第一源操作数(SRCl)的地址和第二源操作数(SRC2)的地址。在框218中,可以通过所述指令指定的(一个或多个)操作来启用执行单元。执行单元可以对所述操作数的数据执行所述指定的(一个或多个)操作来生成结果操作数。在框219中,可以将所述结果操作数存储在由所述指令指定的寄存器的目标地址或者存储器位置。在一个或多个实施例中,除了 SRCl和SRC2之外,所述指令还可以指定所述结果操作数的地址(DEST)。可替换地,在一个或多个实施例中,SRCl和SRC2中的任一个也可以用作DEST。例如,SRCl或SRC2处的数据可以被所述结果操作数覆写。在这种情况下,所述指令不会明确地指定分离的DEST,尽管指令被理解为将所述结果操作数的目标指定为SRCl和SRC2之一。英特尔公司近来引入了 htel 高级矢量扩展(Intel AVX)指令。htel AVX向 Intel架构提供了新的256位SIMD浮点矢量扩展。这将htel SSE4中的1 位XMM寄存器文件的最大SIMD矢量长度扩宽或者加倍到256位。htel AVX引入了 256位寄存器并且许多htel AVX指令对这些256位寄存器进行操作,这些256位寄存器在汇编中由名称 YMMO至YMM15引用。如果期望,在可以从英特尔公司获得的,并且在本申请提交时在web地址 http://software, intel. com/en-us/avx/ 处可获得的 2009 年 1 月出版的文档 Intel Advanced Vector Extension Programming Reference (Intel 高级矢量扩展编禾呈参考),, (Ref. #319433-005)中,可以获得关于htel AVX的进一步的细节。图3示出了由许多htel AVX指令利用的YMM寄存器320的实施例。YMM寄存器包括寄存器YMMO至YMM15。每个YMM寄存器具有256位。如所示出的,在一个或多个实施例中,YMM寄存器的低1 位还被称为各自的1 位XMM寄存器,尽管这不是必需的。寄存器YMMO至YMM15由两个1 位通道构造。低1 位通道310 (位0至127)与XMM寄存器对应。上1 位通道311 (位1 至255)与YMM寄存器对应。图4示出了适用于本发明的一个或多个实施例的紧缩数据格式的代表性示例。图示了两个示例紧缩数据格式,即紧缩字430和紧缩双字432。为了更好地图示某些概念,针对诸如例如YMM寄存器的256位存储位置示出了这些紧缩数据格式,尽管本发明的实施例的范围不限于此。紧缩字格式430长为256位并且包括十六个数据元。每个数据元长16位或一个字。这些16位数据元被称为“字”。在图示中,数据元从低位到高位被标为“字0”至“字 15”。字0至字7与低通道(右侧;位0至127)对应。字8至字15与高通道(左侧;位128 至255)对应。紧缩双字(dword)格式432长256位并且包括8个数据元。每个数据元长32位或一个双字(dword)。这些32位数据元被称为“双字(dword)”。32位数据元通常用于单精度浮点计算。在图示中,数据元从低位到高位被标为“双字0”至“双字15”。双字0至双字 3与低通道对应。双字4至双字7与高通道对应。这些仅是两个说明性示例。其他紧缩数据格式也是适用的。例如,其中每个数据元具有8位的紧缩字节格式以及其中每个数据元具有64位的紧缩四字格式也是适用的。64 位数据元通常用于双精度浮点计算。超过64位数据元的更大的尺寸也是适用的。此外,可以使用大于或小于256位的寄存器。通常,紧缩数据格式包括多个数据元。通常,各数据元具有相同的尺寸。在这种情况下,寄存器的尺寸除以数据元的尺寸等于数据元的数目。Intel AVX利用具有多个多位通道的寄存器。某些htel AVX指令被称为“通道内”指令。这些“通道内”指令使得对一个或多个YMM寄存器的两个1 位对分寄存器或者通道执行相同的操作。例如,Intel AVX的UNPCKLPS (VEX. 256编码版本)指令使得对YMM 寄存器的两个1 位对分寄存器或者通道执行相同的解压缩低操作。同时,不存在已知的 “跨通道”解压缩指令,其中对不同的通道执行不同的解压缩操作(例如,解压缩低对解压缩高)。因此,在一些应用中或者在一些条件下,可能需要诸如提取、投放(cast)等额外的操作来重新布置这些“通道内”解压缩指令的结果,这可能需要额外的计算和/或复杂的编程。 可替换地,使用较旧的SSE解压缩指令不能全面利用较新的256位YMM寄存器。因此,额外的解压缩指令和操作在一些条件下或者对于一些应用是有用的。例如,对于阵列结构(SoA) 到结构阵列(AoS)算法更为有用的解压缩指令将是有利的。本发明的实施例涉及处理器、由处理器执行的方法、合并了处理器的系统、或者由处理器执行或处理以对多个通道中的紧缩数据解压缩的指令,其中对至少一个通道执行的解压缩操作的类型不同于对至少一个其他通道执行的解压缩操作。本发明的实施例涉及 “跨通道”解压缩指令,这些解压缩指令指定针对至少一个通道的解压缩低操作以及针对至少一个其他通道的解压缩高操作,或者涉及处理跨通道解压缩指令的处理器、作为处理跨通道解压缩指令的结果由处理器执行的方法、或者合并了这种处理器的计算机系统或其他系统。图5是跨通道解压缩方法534的示例实施例的流程框图。在框535中,可以接收跨通道解压缩指令。跨通道解压缩指令可以指定针对至少一个通道的解压缩低操作和针对至少一个其他通道的解压缩高操作。在框536中,可以对跨通道解压缩指令解码。可替换地,可以翻译、模拟或者以其他形式转换指令。在框537中,可以访问由跨通道解压缩指令指定或指示的第一和第二源操作数。 可以从寄存器或存储器位置访问这些操作数。跨通道解压缩指令可以具有第一和第二字段以指示操作数。在框538中,可以通过针对至少一个通道的解压缩低操作和针对至少一个其他通道的解压缩高操作来启用执行单元。在框539中,可以将跨通道解压缩指令所指定的结果存储在寄存器或存储器位置中。该结果可以表示针对至少一个通道执行的解压缩低操作和针对至少一个其他通道执行的解压缩高操作。图6至9图示了根据指定针对至少一个通道的解压缩低操作和针对至少一个其他通道的解压缩高操作的单个跨通道解压缩指令对来自具有多个通道的第一和第二操作数的紧缩数据进行解压缩的各种示例实施例。图6图示了根据指定针对低通道(位0至127)的解压缩低操作和针对高通道(位 128至255)的解压缩高操作的第一单个跨通道解压缩指令对具有两个通道的256位操作数中的32位双字(dword)紧缩数据元进行解压缩。第一源操作数650具有256位并且存储八个紧缩32位或双字数据元。第一源操作数可以存储在寄存器(例如,YMM寄存器)、存储器或另一存储位置中。这些数据元从低位到高位被标为XO至X7。更详细地,第一源操作数包括由位0至31表示的第一数据元(X0)、由位32至63表示的第二数据元(XI)、由位64至95表示的第三数据元(X2)、由位96至127 表示的第四数据元(X3)、由位1 至159表示的第五数据元(X4)、由位160至191表示的第六数据元(X5)、由位192至223表示的第七数据元(X6)、以及由位2 至255表示的第八数据元(X7)。数据元XO至X3表示与低通道对应的数据元的低通道子集。数据元X4至X7 表示与高通道对应的数据元的高通道子集。相似地,第二源操作数652具有256位并且存储八个紧缩32位或双字数据元。第一源操作数可以存储在寄存器(例如,YMM寄存器)、存储器或另一存储位置中。这些数据元从低位到高位被标为YO至Y7。更详细地,第二源操作数包括由位0至31表示的第九数据元(Y0)、由位32至63表示的第十数据元(Y1)、由位64至95表示的第十一数据元(Y2)、由位96至127表示的第十二数据元(Y3)、由位1 至159表示的第十三数据元(Y4)、由位160 至191表示的第十四数据元(Y5)、由位192至223表示的第十五数据元(Y6)、以及由位224 至255表示的第十六数据元(Y7)。数据元YO至TO表示与低通道对应的数据元的低通道子集。数据元W至¥7表示与高通道对应的数据元的高通道子集。结果操作数6M存储结果。基于执行由第一跨通道解压缩指令指定的解压缩操作来生成该结果。该结果可以作为跨通道解压缩指令的结果(例如,作为执行单元执行从该指令解码、翻译或以其他形式得到的一个或多个微指令或者其他指令的结果)由处理器的执行单元、功能单元或另一部分存储。结果操作数具有256位并且存储八个紧缩32位或双字数据元。结果操作数中的八个数据元表示根据由第一跨通道解压缩指令指定的解压缩操作从第一和第二源操作数选择的解压缩和交织数据元的子集、一部分或一半。该特定的第一跨通道解压缩指令指定针对低通道(位0至127)的解压缩低操作以及针对高通道(位1 至255)的解压缩高操作。针对低通道的解压缩低操作可以包括来自第一和第二源操作数的低通道中的低位四字(64位)的仅低位32位或双字数据元的交织解压缩。针对高通道的解压缩高操作可以包括来自第一和第二源操作数的高通道中的高位四字(64位)的仅高位32位或双字数据元的交织解压缩。如所示出的,所存储的结果可以包括(1)在低通道中,来自第一操作数的低通道子集的仅最低位数据元与对应的来自第二操作数的低通道子集的最低位数据元的交织;以及(2)在高通道中,来自第一操作数的高通道子集的仅最高位数据元与对应的来自第二操作数的高通道子集的最高位数据元的交织。更详细地,结果操作数可以包括存储到目标寄存器的位0至31的第一数据元 (X0)、存储到目标寄存器的位32至63的第九数据元(Y0)、存储到目标寄存器的位64至95 的第二数据元(XI)、存储到目标寄存器的位96至127的第十数据元(Y1)、存储到目标寄存器的位1 至159的第七数据元(X6)、存储到目标寄存器的位160至191的第十五数据元 (Y6)、存储到目标寄存器的位192至223的第八数据元(X7)、以及存储到目标寄存器的位 224至255的第十六数据元(Y7)。结果操作数仅具有来自第一和第二操作数的数据元的子集(尤其是一半)。结果操作数的低通道仅具有来自第一和第二操作数的低通道的数据元的子集(尤其是一半)。同样地,结果操作数的高通道仅具有来自第一和第二操作数的高通道的数据元的子集(尤其是一半)。再者,低位数据元XO和Xl以及还有低位数据元YO和Yl按照与这些数据元分别呈现在第一和第二操作数的低通道中的顺序相同的相对顺序(即,XO位于比Xl低的位序处; 并且YO位于比Yl低的位序处)存储在结果操作数的低通道中。同样地,高位数据元)(6和 X7以及还有高位数据元Y6和Y7按照与这些数据元分别呈现在第一和第二操作数的高通道中的顺序相同的相对顺序存储在结果操作数的高通道中。图7图示了根据指定针对低通道(位0至127)的解压缩高操作和针对高通道(位 128至255)的解压缩低操作的第二单个跨通道解压缩指令对具有两个通道的256位操作数中的32位双字(dword)紧缩数据元进行解压缩。第一源操作数750具有256位并且存储八个紧缩32位或双字数据元。第一源操作数可以存储在寄存器(例如,YMM寄存器)、存储器或另一存储位置中。这些数据元从低位到高位被标为XO至X7。更详细地,第一源操作数包括由位0至31表示的第一数据元(X0)、由位32至63表示的第二数据元(XI)、由位64至95表示的第三数据元(X2)、由位96至127 表示的第四数据元(X3)、由位1 至159表示的第五数据元(X4)、由位160至191表示的第六数据元(X5)、由位192至223表示的第七数据元(X6)、以及由位2 至255表示的第八数据元(X7)。数据元XO至X3与低通道对应。数据元X4至X7与高通道对应。相似地,第二源操作数752具有256位并且存储八个紧缩32位或双字数据元。第一源操作数可以存储在寄存器(例如,YMM寄存器)、存储器或另一存储位置中。这些数据元从低位到高位被标为YO至Y7。更详细地,第二源操作数包括由位0至31表示的第九数据元(Y0)、由位32至63表示的第十数据元(Y1)、由位64至95表示的第十一数据元(Y2)、由位96至127表示的第十二数据元(Y3)、由位1 至159表示的第十三数据元(Y4)、由位160 至191表示的第十四数据元(Y5)、由位192至223表示的第十五数据元(Y6)、以及由位224至255表示的第十六数据元(Y7)。数据元YO至TO与低通道对应。数据元料至¥7与高通道对应。结果操作数7Μ存储结果。基于执行由第二跨通道解压缩指令指定的解压缩操作来生成该结果。该结果可以作为跨通道解压缩指令的结果(例如,作为执行单元执行从所述指令解码、翻译或以其他形式得到的一个或多个微指令或者其他指令的结果)由处理器的执行单元、功能单元或另一部分存储。结果操作数具有256位并且存储八个紧缩32位或双字数据元。结果操作数中的八个数据元表示根据由第二跨通道解压缩指令指定的解压缩操作从第一和第二源操作数选择的解压缩和交织数据元的子集、一部分或者在该情况下是一半。该特定的第二跨通道解压缩指令指定针对低通道(位0至127)的解压缩高操作以及针对高通道(位1 至255)的解压缩低操作。针对低通道的解压缩高操作可以包括来自第一和第二源操作数的低通道中的高位四字(64位)的高位32位或双字数据元的交织解压缩。针对高通道的解压缩低操作可以包括来自第一和第二源操作数的高通道中的低位四字 (64位)的低位32位或双字数据元的交织解压缩。如所示出的,结果操作数可以包括存储到目标寄存器的位0至31的第三数据元 (X2)、存储到目标寄存器的位32至63的第十一数据元(Y2)、存储到目标寄存器的位64至 95的第四数据元(X3)、存储到目标寄存器的位96至127的第十二数据元(Y3)、存储到目标寄存器的位1 至159的第五数据元(X4)、存储到目标寄存器的位160至191的第十三数据元(Y4)、存储到目标寄存器的位192至223的第六数据元(X5)、以及存储到目标寄存器的位2M至255的第十四数据元(Y5)。图8图示了根据指定针对低通道(位0至127)的解压缩低操作和针对高通道(位 128至255)的解压缩高操作的第三单个跨通道解压缩指令对具有两个通道的256位操作数中的16位字紧缩数据元进行解压缩。第一源操作数850具有256位并且存储十六个紧缩16位或字数据元。第一源操作数可以存储在寄存器(例如,YMM寄存器)、存储器或另一存储位置中。这些数据元从低位到高位被标为XO至X15。数据元XO至X7与低通道对应。数据元X8至X15与高通道对应。相似地,第二源操作数852具有256位并且存储十六个紧缩16位或字数据元。第一源操作数可以存储在寄存器(例如,YMM寄存器)、存储器或另一存储位置中。这些数据元从低位到高位被标为YO至Y15。数据元YO至Y7与低通道对应。数据元Y8至Y15与高通道对应。结果操作数邪4存储结果。基于执行由第三跨通道解压缩指令指定的解压缩操作来生成该结果。该结果可以作为跨通道解压缩指令的结果(例如,作为执行单元执行从指令解码、翻译或以其他形式得到的一个或多个微指令或者其他指令的结果)由处理器的执行单元、功能单元或另一部分存储。结果操作数具有256位并且存储十六个紧缩16位或字数据元。结果操作数中的十六个数据元表示根据由第三跨通道解压缩指令指定的解压缩操作从第一和第二源操作数选择的解压缩和交织数据元的子集、一部分或者一半。该特定的第三跨通道解压缩指令指定针对低通道(位0至127)的解压缩低操作以及针对高通道(位1 至255)的解压缩高操作。针对低通道的解压缩低操作可以包括来自第一和第二源操作数的低通道中的低位四字(64位)的低位16位或字数据元的交织解压缩。针对高通道的解压缩高操作可以包括来自第一和第二源操作数的高通道中的高位四字 (64位)的高位16位或字数据元的交织解压缩。如所示出的,结果操作数包括,从低位到高位,低通道中的排序数据元X0、Y0、XI、 Y1、X2、Y2、X3、Y3。结果操作数包括,从低位到高位,高通道中的排序数据元Χ12、Υ12、Χ13、 Υ13、Χ14、Υ14、Χ15、Υ15。图9图示了根据指定针对低通道(位0至127)的解压缩高操作和针对高通道(位 128至255)的解压缩低操作的第四单个跨通道解压缩指令对具有两个通道的256位操作数中的16位字紧缩数据元进行解压缩。第一源操作数950具有256位并且存储十六个紧缩16位或字数据元。第一源操作数可以存储在寄存器(例如,YMM寄存器)、存储器或另一存储位置中。这些数据元从低位到高位被标为XO至Χ15。数据元XO至Χ7与低通道对应。数据元Χ8至Χ15与高通道对应。相似地,第二源操作数952具有256位并且存储十六个紧缩16位或字数据元。第一源操作数可以存储在寄存器(例如,YMM寄存器)、存储器或另一存储位置中。这些数据元从低位到高位被标为YO至Υ15。数据元YO至Υ7与低通道对应。数据元Υ8至Υ15与高通道对应。结果操作数%4存储结果。基于执行由第四跨通道解压缩指令指定的解压缩操作来生成该结果。该结果可以作为跨通道解压缩指令的结果(例如,作为执行单元执行从指令解码、翻译或以其他形式得到的一个或多个微指令或者其他指令的结果)由处理器的执行单元、功能单元或另一部分存储。结果操作数具有256位并且存储十六个紧缩16位或字数据元。结果操作数中的十六个数据元表示根据由第四跨通道解压缩指令指定的解压缩操作从第一和第二源操作数选择的解压缩和交织数据元的子集、一部分或者一半。该特定的第四跨通道解压缩指令指定针对低通道(位0至127)的解压缩高操作以及针对高通道(位1 至255)的解压缩低操作。针对低通道的解压缩高操作可以包括来自第一和第二源操作数的低通道中的高位四字(64位)的高位16位或字数据元的交织解压缩。针对高通道的解压缩低操作可以包括来自第一和第二源操作数的高通道中的低位四字 (64位)的低位16位或字数据元的交织解压缩。如所示出的,结果操作数包括,从低位到高位,低通道中的排序数据元X4、Y4、X5, TO、X6、Y6、X7、Y7。结果操作数包括,从低位到高位,高通道中的排序数据元X8、Y8、X9、Y9、 ΧΙΟ, Υ10, XlU Yll0如图6至9中的每个所示,结果操作数仅具有来自第一和第二操作数的数据元的子集(尤其是一半)。结果操作数的低通道仅具有来自第一和第二操作数的低通道的数据元的子集(尤其是一半)。同样地,结果操作数的高通道仅具有来自第一和第二操作数的高通道的数据元的子集(尤其是一半)。再者,来自第一和第二操作数的数据元按照与这些数据元分别呈现在第一和第二操作数中的顺序相同的顺序存储在结果操作数中。对于结果操作数整体以及在每个通道内,情况均是如此。在图6-9中,已讨论了具有两个1 位通道的256位操作数,尽管本发明的实施例的范围不限于此。操作数可以具有更少或更多的位。同样地,通道可以具有更少或更多的位。作为一个说明性示例,操作数可以是1 位并且通道可以是64位。作为另一说明性示例,操作数可以具有512位并且通道可以具有64位或1 位。为了进一步说明某些概念,考虑示例跨通道解压缩指令的一个示例使用。在某些算法中,诸如例如阵列结构(SoA)到结构阵列(AoS)算法,期望交织来自两个操作数的数据元而同时维持与这些数据元呈现在操作数中的顺序相同的顺序。下文列出的是具有在低通道和高通道中复制的四个数据元(0,2,4,6)的第一源操作数。同样地,第二源操作数具有在低通道和高通道中复制的另外四个数据元(1,3,5,7)。作为示例,这些数据元可以通过 Intel AVX广播指令复制。如下文所示,指定针对低通道的解压缩低操作和针对高通道的解压缩高操作的跨通道解压缩指令可以实现这样的结果操作数,即在该结果操作数中来自第一和第二操作数的所有数据元被交织并且按照与这些数据元呈现在源操作数中的顺序相同的顺序进行排序并且结果是连续的。第一源操作数64 2 O I 6 4 2 0 第二源操作数7 5 3 1 I 7 5 3 1 结果操作数7 6 5 4 I 3 2 1 O
这仅是一个图示了跨通道解压缩指令的一种特定使用的说明性示例。跨通道解压缩指令的其他使用和优点对于受益于本公开的本领域技术人员将是明显的。图10是具有指定将执行什么类型的解压缩操作的控制字段1060的跨通道解压缩指令1002的实施例的简化框图。该控制字段具有多个位。在图示中,第一位(bi、)对应于第一通道,第二位(Mt1)对应于第二通道,并且第N位(bitN)对应于第N通道,其中N是范围常常为2至5的整数。在一个或多个实施例中,每个位可以具有第一预定值(例如,0),用于指示针对相应的通道的第一类型的解压缩操作(例如,解压缩低操作),以及具有第二预定值(例如,1),用于指示针对相应的通道的第二类型的解压缩操作(例如,解压缩高操作)。 可替换地,两个、三个或更多个位可以可选地用于指定针对每个通道的解压缩操作。可替换地,不同于具有用于指定执行什么操作的控制字段的指令,指令可以执行解压缩操作的单个预定组合,并且如果期望,可以包括多个指令以提供解压缩操作的多个不同组合。图11是适用于实现本发明的一个或多个实施例的计算机系统1170的示例实施例的框图。计算机系统表示诸如基于PENTIUM 4、PENTIUM Dual-Core、Core 2 Duo和 Quad、Xeon 、Itanium 、XScale / 或 StrongARM 处理器的处理系统。然而,这仅是适用的计算机系统的一个特定示例。多处理器系统、服务器以及具有其他设计或部件的其他计算机系统也是适用的。在一个实施例中,计算机系统可以执行获得自美国华盛顿州Redmond的微软公司的WINDOWS 操作系统的版本。可替换地,可以使用诸如例如UNIX、Linux或嵌入式系统的其他操作系统。本发明的实施例不限于硬件电路系统和软件的任何已知的特定组合。计算机系统包括处理器1100。该处理器包括至少一个执行单元1106。所述执行单元和/或所述处理器可以能够执行或以其他形式处理如前面描述的至少一个跨通道解压缩指令1102。所述处理器还包括寄存器文件1108。在一个或多个实施例中,寄存器文件包括具有多个通道的寄存器。就是说,所述处理器可以提供具有多个通道的SIMD架构。 图示的处理器以简化格式示出以避免使描述模糊。将认识到,所述处理器可以包括其他部件,诸如例如缓存、指令预取器、指令解码器或翻译器、跟踪缓存、微代码(ucode)只读存储器(ROM)、乱序引擎等。处理器耦合到处理器总线或其他互连1172。所述处理器总线可以用于在系统中的所述处理器和其他部件之间传送数据信号。计算机系统还包括存储器1174。所述存储器可以包括动态随机访问存储器 (DRAM)、静态随机访问存储器(SRAM)、闪速存储器、其他已知类型的存储器、或者它们的组合。DRAM是在一些但非所有计算机系统中使用的一种类型的存储器的示例。该存储器可用于储存指令1173和数据1174,指令1173诸如包括一个或多个跨通道解压缩指令的软件。计算机系统是集线器(hub )类型架构的示例。该集线器类型架构包括存储器控制器集线器(MCH) 1176。MCH是系统逻辑芯片。MCH耦合到处理器总线1172和存储器1174。 处理器可以通过处理器总线与MCH通信。MCH可以在计算机系统中的处理器、存储器和其他部件之间引导数据。MCH还可以在处理器总线、存储器和集线器接口总线或其他互连之间桥接信号。MCH向可用于存储和取回指令和数据的存储器提供高带宽存储器路径。在一些实施例中,系统可以可选地包括图形设备(例如,图形/视频卡)1186。MCH 可以提供图形端口和互连(例如,加速图形端口(AGP)互连)以耦合图形设备。系统还包括I/O控制器集线器(ICH) 1178。ICH通过集线器接口总线或者可能包括一个或多个总线的其他互连1177耦合到MCH。ICH可以通过本地I/O总线或其他互连提供至一些I/O设备的直接连接。本地I/O总线或其他互连可以表示高速I/O总线或者将外围设备连接到存储器、芯片组和处理器的其他互连。外围设备的若干代表性示例被示出为包括音频控制器1179、闪速BIOS 1180、无线收发器1181、数据存储器1182(例如,硬盘驱动器、软盘驱动器、⑶-ROM设备、闪速存储器设备等)、用于提供用户输入接口(例如,键盘)的传统(legacy) I/O控制器1183、诸如通用串行总线(USB)的串行扩展端口 1184以及网络控制器1185。这些特定的外围设备是可选的而不是必需的。将认识到,这仅是适用的计算机系统的一个说明性示例。本发明的实施例的范围不限于任何特定的计算机系统设计。相反,广泛的各种其他计算机系统设计是适用的。这样的设计除其他之外还包括膝上型计算机、桌面型计算机、工程工作站、以及服务器、手持PC、 个人数字助理等。此外,实施例可以应用于具有一个或多个处理器或执行单元的其他设备。例如, 可以包括在操作中处理这里公开的跨通道解压缩指令之一的处理器和/或执行单元的其他设备包括,但不限于,便携式媒体播放器、蜂窝电话、手持设备、互联网协议设备、机顶盒、 网络设备、网络集线器、广域网(WAN)交换机、视频游戏设备、图形设备、数字信号处理器 (DSP)、微控制器、嵌入式处理器和其他逻辑电路。利用或者可以受益于SIMD或紧缩数据的任何电子设备或系统可以潜在地包括用于处理如这里公开的跨通道解压缩指令的逻辑。在说明书和权利要求中,可以使用术语“耦合”和“连接”以及它们的衍生物。应当理解,这些术语并非旨在彼此同义。相反,在特定的实施例中,“连接”可用于指示两个或更多个元件彼此直接物理接触或电接触。“耦合”可以意味着两个或更多个元件直接物理接触或电接触。然而,“耦合”也可以意味着两个或更多个元件并非彼此直接接触,但是仍彼此协作或交互。
在上文的描述中,为了解释的目的,阐述了许多特定细节以便提供本发明的实施例的透彻理解。然而对于本领域技术人员将明显的,一个或多个实施例可以在没有这些特定细节中的一些特定细节的情况下实践。所描述的特定实施例并非被提供用于限制本发明而是为了说明本发明的实施例。本发明的范围并非由上文提供的特定示例确定,而是仅由所附权利要求确定。在其他情形下,公知的电路、结构、设备和操作已通过框图形式示出或者在没有细节的情况下示出,以便避免使对描述的理解模糊。在适当考虑的情况下,附图标记或者附图标记的末端部分在各图中重复,以指示可以可选地具有相似特性的对应的或类似的元件。已描述了各种操作和方法。一些方法已按基本形式描述,但是可以可选地将操作添加到方法和/或从方法移除操作。方法的操作常常还可以可选地以不同的顺序执行。许多修改和调整可以针对方法进行并且在考虑范围内。某些操作可以由硬件部件执行,或者可以实施为机器可执行指令,其可用于使得, 或者至少导致,利用这些指令编程的电路或硬件执行这些操作。该电路可以例如包括通用或专用处理器、或者逻辑电路。这些操作也可以可选地由硬件和软件的组合执行。处理器可以包括响应于机器指令或者从该机器指令得到的一个或多个控制信号的特定逻辑。本发明的一个或多个实施例可以被提供为程序产品或其他制品,其可以包括有形的机器可访问和/或可读介质,其具有存储在其上的一个或多个指令(例如,解压缩指令) 和/或数据结构。有形介质可以包括一种或多种材料。该介质可以提供指令,如果机器执行这些指令以及当机器执行这些指令时,其可以导致和/或使得机器执行这里公开的一个或多个操作或方法。适用的机器例如包括,但不限于,计算机系统、网络设备、个人数字助理 (PDA)、调制解调器、蜂窝电话、其他无线设备以及具有一个或多个处理器的广泛的各种其他电子设备。该介质可以包括以机器可访问的形式提供(例如存储)信息的机制。例如,该机制可以可选地包括可记录介质,诸如例如,软盘、光存储介质、光盘、⑶-ROM、磁盘、磁-光盘、 只读存储器(ROM)、可编程ROM (PROM)、可擦除和可编程ROM (EPR0M)、电可擦除和可编程 ROM (EEPROM)、随机访问存储器(RAM)、静态RAM (SRAM)、动态RAM (DRAM)、闪速存储器以及它们的组合。应认识到,在本说明书各处提到的例如“一个实施例”、“实施例”或者“一个或多个实施例”意味着在本发明的实施例的实践中可以包括特定的特征。相似地,应认识到,在说明书中出于使公开流畅并且帮助理解各种发明方面的目的,有时在单个实施例、附图或者其描述中将各种特征编组在一起。然而,该公开方法不应被解释为反映本发明需要比每项权利要求中明确记载的特征更多的特征的意图。相反,如所附权利要求所反映的,本发明的方面在于比单个公开实施例的所有特征少的特征。因此,所附权利要求在这里被明确地并入说明书,每项权利要求自身作为本发明的单独的实施例。
权利要求
1.一种方法,包括接收指令,所述指令指示第一操作数和第二操作数,所述第一操作数和第二操作数中的每个具有对应在各自位置中的多个紧缩数据元,所述第一操作数的紧缩数据元的第一子集和所述第二操作数的紧缩数据元的第一子集均与第一通道对应,并且所述第一操作数的紧缩数据元的第二子集和所述第二操作数的紧缩数据元的第二子集均与第二通道对应;以及响应于所述指令存储结果,所述结果包括(1)在所述第一通道中,来自所述第一操作数的第一子集的仅最低位数据元与对应的来自所述第二操作数的第一子集的最低位数据元的交织;以及(2)在所述第二通道中,来自所述第一操作数的第二子集的仅最高位数据元与对应的来自所述第二操作数的第二子集的最高位数据元的交织。
2.根据权利要求1所述的方法,其中所述第一通道包括低通道,并且所述第二通道包括高通道。
3.根据权利要求1所述的方法,其中所述第一通道包括高通道,并且所述第二通道包括低通道。
4.根据权利要求1所述的方法,其中所述指令包括控制字段,其中所述控制字段的一个或多个位与所述第一通道对应并且指示针对所述第一通道将执行解压缩低操作,以及其中所述控制字段的一个或多个位与所述第二通道对应并且指示针对所述第二通道将执行解压缩高操作。
5.根据权利要求1所述的方法,其中所述第一通道和第二通道中的每个具有1 位。
6.根据权利要求1所述的方法,其中存储所述结果包括在所述第一通道中,仅存储来自所述第一子集的数据元的一半包括将来自所述第一操作数的第一子集的最低位数据元按照与这些最低位数据元呈现在所述第一操作数的第一子集中的顺序相同的顺序进行存储;以及在所述第二通道中,仅存储来自所述第二子集的数据元的一半。
7.根据权利要求1所述的方法,进一步包括将所述指令解码为一个或多个指令以及将所述指令翻译为一个或多个指令中的至少一种。
8.一种装置,包括执行单元,其在操作中作为指令的结果而存储结果,其中所述指令具有指示第一操作数的第一字段和指示第二操作数的第二字段,所述第一操作数和第二操作数中的每个具有将对应在各自位置中的多个紧缩数据元,其中所述第一操作数的紧缩数据元的第一子集和所述第二操作数的紧缩数据元的第一子集均与第一通道对应,并且其中所述第一操作数的紧缩数据元的第二子集和所述第二操作数的紧缩数据元的第二子集均与第二通道对应,其中将存储的所述结果包括(1)在所述第一通道中,来自所述第一操作数的第一子集的仅最低位数据元与对应的来自所述第二操作数的第一子集的最低位数据元的交织;以及(2)在所述第二通道中,来自所述第一操作数的第二子集的仅最高位数据元与对应的来自所述第二操作数的第二子集的最高位数据元的交织。
9.根据权利要求8所述的装置,其中所述第一通道包括低通道,并且所述第二通道包括高通道。
10.根据权利要求8所述的装置,其中所述第一通道包括高通道,并且所述第二通道包括低通道。
11.根据权利要求8所述的装置,其中所述指令包括控制字段,其中所述控制字段的一个或多个位与所述第一通道对应并且指示将对所述第一操作数和第二操作数的最低位数据元进行解压缩,以及其中所述控制字段的一个或多个位与所述第二通道对应并且指示将对所述第一操作数和第二操作数的最高位数据元进行解压缩。
12.根据权利要求8所述的装置,其中所述指令具有与所述第一字段和第二字段不同的第三字段,以指示其中将存储所述结果的目标,并且其中存储所述结果包括将所述结果存储在所述目标处。
13.根据权利要求8所述的装置,其中所述指令包括跨通道解压缩指令。
14.根据权利要求8所述的装置,其中所述第一通道和第二通道中的每个具有1 位。
15.根据权利要求8所述的装置,其中所述执行单元将存储结果,该结果包括(1)在所述第一通道中,仅来自所述第一子集的数据元的一半;以及(2)在所述第二通道中,仅来自所述第二子集的数据元的一半。
16.根据权利要求8所述的装置,其中所述执行单元将存储结果,该结果在所述第一通道中包括来自所述第一操作数的第一子集的最低位数据元,这些最低位数据元按照与所述最低位数据元呈现在所述第一操作数的第一子集中的顺序相同的顺序排列。
17.根据权利要求8所述的装置,其中所述执行单元将存储结果,该结果包括至少四个均来自所述第一操作数和第二操作数之一的数据元。
18.根据权利要求8所述的装置,进一步包括解码器和指令翻译器中的至少一个,所述解码器将所述指令解码为将由所述执行单元执行以使得所述执行单元存储所述结果的一个或多个指令;所述指令翻译器将所述指令翻译为将由所述执行单元执行以使得所述执行单元存储所述结果的一个或多个指令。
19.根据权利要求8所述的装置,其中所述执行单元包括电路,以及其中所述指令包括机器指令,以及其中所述执行单元包括在操作中存储因所述机器指令引起的结果的特定的逻辑。
20.一种装置,包括第一 256位寄存器,其存储第一源操作数,所述第一源操作数包括由位0至31表示的第一数据元、由位32至63表示的第二数据元、由位64至95表示的第三数据元、由位96至 127表示的第四数据元、由位1 至159表示的第五数据元、由位160至191表示的第六数据元、由位192至223表示的第七数据元、以及由位224至255表示的第八数据元;第二 256位寄存器,其存储第二源操作数,所述第二源操作数包括由位0至31表示的第九数据元、由位32至63表示的第十数据元、由位64至95表示的第十一数据元、由位96 至127表示的第十二数据元、由位1 至159表示的第十三数据元、由位160至191表示的第十四数据元、由位192至223表示的第十五数据元、以及由位2M至255表示的第十六数据元;执行单元,其作为指令的结果而存储结果,将被存储的所述结果包括存储到目标寄存器的位0至31的第一数据元、存储到目标寄存器的位32至63的第九数据元、存储到目标寄存器的位64至95的第二数据元、存储到目标寄存器的位96至127的第十数据元、存储到目标寄存器的位1 至159的第七数据元、存储到目标寄存器的位160至191的第十五数据元、存储到目标寄存器的位192至223的第八数据元、以及存储到目标寄存器的位224 至255的第十六数据元。
21.根据权利要求20所述的装置,进一步包括解码器和指令翻译器中的至少一个,所述解码器将所述指令解码为将由所述执行单元执行以使得所述执行单元存储所述结果的一个或多个指令;所述指令翻译器将所述指令翻译为将由所述执行单元执行以使得所述执行单元存储所述结果的一个或多个指令。
22.一种装置,包括第一 256位寄存器,其存储第一源操作数,所述第一源操作数包括由位0至31表示的第一数据元、由位32至63表示的第二数据元、由位64至95表示的第三数据元、由位96至 127表示的第四数据元、由位1 至159表示的第五数据元、由位160至191表示的第六数据元、由位192至223表示的第七数据元、以及由位2M至255表示的第八数据元;第二 256位寄存器,其存储第二源操作数,所述第二源操作数包括由位0至31表示的第九数据元、由位32至63表示的第十数据元、由位64至95表示的第十一数据元、由位96 至127表示的第十二数据元、由位1 至159表示的第十三数据元、由位160至191表示的第十四数据元、由位192至223表示的第十五数据元、以及由位2M至255表示的第十六数据元;执行单元,其作为指令的结果而存储结果,将被存储的所述结果包括存储到目标寄存器的位0至31的第三数据元、存储到目标寄存器的位32至63的第十一数据元、存储到目标寄存器的位64至95的第四数据元、存储到目标寄存器的位96至127的第十二数据元、 存储到目标寄存器的位1 至159的第五数据元、存储到目标寄存器的位160至191的第十三数据元、存储到目标寄存器的位192至223的第六数据元、以及存储到目标寄存器的位 2M至255的第十四数据元。
23.根据权利要求22所述的装置,进一步包括解码器和指令翻译器中的至少一个,所述解码器将所述指令解码为将由所述执行单元执行以使得所述执行单元存储所述结果的一个或多个指令;所述指令翻译器将所述指令翻译为将由所述执行单元执行以使得所述执行单元存储所述结果的一个或多个指令。
24.一种系统,包括互连;与所述互连耦合的处理器,所述处理器包括指令解码器、指令翻译器和指令模拟器中的至少一个,所述至少一个以硬件、软件、固件或者它们的组合实现,用于接收指令,所述指令具有指示第一操作数的第一字段和指示第二操作数的第二字段,所述第一操作数和第二操作数中的每个具有将对应在各自位置中的多个紧缩数据元,其中所述第一操作数的紧缩数据元的第一子集和所述第二操作数的紧缩数据元的第一子集均与第一通道对应,并且其中所述第一操作数的紧缩数据元的第二子集和所述第二操作数的紧缩数据元的第二子集均与第二通道对应;以及响应于所述至少一个而接收所述指令以存储结果的电路,所述结果包括(1)在所述第一通道中,来自所述第一操作数的第一子集的仅最低位数据元与对应的来自所述第二操作数的第一子集的最低位数据元的交织;以及(2)在所述第二通道中,来自所述第一操作数的第二子集的仅最高位数据元与对应的来自所述第二操作数的第二子集的最高位数据元的交织;以及与所述互连耦合的动态随机访问存储器(DRAM)。
25.根据权利要求M所述的系统,其中所述电路将存储结果,该结果包括(1)在所述第一通道中,仅来自所述第一子集的数据元的一半;以及(2)在所述第二通道中,仅来自所述第二子集的数据元的一半。
26.一种制品,包括机器可读介质,用于提供指令,所述指令包括指示第一操作数的第一字段和指示第二操作数的第二字段,所述第一操作数和第二操作数中的每个具有将对应在各自位置中的多个紧缩数据元,所述第一操作数的紧缩数据元的第一子集和所述第二操作数的紧缩数据元的第一子集均与第一通道对应, 并且所述第一操作数的紧缩数据元的第二子集和所述第二操作数的紧缩数据元的第二子集均与第二通道对应,以及所述指令在由机器处理的情况下使得所述机器执行包括存储结果的操作,所述结果包括(1)在所述第一通道中,来自所述第一操作数的第一子集的仅最低位数据元与对应的来自所述第二操作数的第一子集的最低位数据元的交织;以及(2)在所述第二通道中,来自所述第一操作数的第二子集的仅最高位数据元与对应的来自所述第二操作数的第二子集的最高位数据元的交织。
27.根据权利要求沈所述的方法,其中所述指令包括机器指令,并且所述机器包括在操作中存储因所述机器指令引起的结果的特定的逻辑。
全文摘要
接收指示第一和第二操作数的指令。每个操作数具有在各自位置中对应的紧缩数据元。第一操作数的数据元的第一子集和第二操作数的数据元的第一子集均与第一通道对应。第一操作数的数据元的第二子集和第二操作数的紧缩数据元的第二子集均与第二通道对应。响应于指令存储结果,包括(1)在第一通道中,来自第一操作数的第一子集的仅最低位数据元与对应的来自第二操作数的第一子集的最低位数据元的交织;以及(2)在第二通道中,来自第一操作数的第二子集的仅最高位数据元与对应的来自第二操作数的第二子集的最高位数据元交织。
文档编号G06F9/30GK102473093SQ201080029694
公开日2012年5月23日 申请日期2010年6月29日 优先权日2009年6月30日
发明者哈吉尔 A., 奥伦斯坦 D. 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1