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

邻接数据元素成对交换处理器、方法、系统和指令技术方案

技术编号:18580334 阅读:25 留言:0更新日期:2018-08-01 14:44
一种处理器包括对邻接数据元素成对交换指令进行解码的解码单元。该指令要指示要包括邻接数据元素对的源打包数据,并且要指示目的地存储位置。运行单元与打包数据寄存器和解码单元耦合。运行单元响应于指令而要将结果打包数据存储在目的地存储位置中,结果打包数据要包括邻接数据元素对。结果打包数据的邻接数据元素的每个对对应于源打包数据的邻接数据元素的不同对。结果打包数据的每个对中的邻接数据元素已经在相对于源打包数据的每个对应对中的邻接数据元素的位置中交换。

Adjacency data elements exchange processors, methods, systems, and instructions in pairs.

A processor includes a decoding unit for decoding adjacent pairs of data elements in pairs. This directive directives to package data to include adjacent data element pairs, and to indicate destination storage location. The operation unit is coupled to the packaged data register and the decoding unit. In response to instructions, the running unit stores the result packaged data in the destination storage location, and the result packaged data includes adjacent data element pairs. As a result, each pair of adjacent data elements packaged data corresponds to different pairs of adjacent data elements of the source package data. As a result, the adjacent data elements of each pair of packaged data have been exchanged in the location of the adjacent data elements in each corresponding pair of packaged data relative to the source.

【技术实现步骤摘要】
【国外来华专利技术】邻接数据元素成对交换处理器、方法、系统和指令
本文所述的实施例一般涉及处理器。具体来说,本文所述的实施例一般涉及响应于指令而对打包数据进行操作的处理器。
技术介绍
许多处理器具有单指令多数据(SIMD)架构。在SIMD架构中,多个数据元素可作为打包数据或矢量数据来打包在一个寄存器或存储器位置内。在打包或矢量数据中,寄存器或存储器位置的比特可逻辑地分为数据元素序列。例如,128比特宽打包数据寄存器可具有两个64比特数据元素、四个32比特数据元素、八个16比特数据元素或十六个8比特数据元素。数据元素的每个可表示独立数据片(例如像素颜色分量、浮点数等),其可与其它数据片分开地操作和/或独立于其它数据片操作。在此类SIMD架构中,打包数据指令、矢量指令或SIMD指令可用来同时和/或并行地对此类打包数据或矢量操作数的多个数据元素或者两个此类打包数据或矢量操作数的多对数据元素进行操作。处理器可具有响应于同时和/或并行地对数据进行操作的指令的并行运行硬件。附图说明通过参考用来示出实施例的以下描述和附图,可以最好地了解本专利技术。在附图中:图1是可操作以执行邻接数据元素成对交换指令的实施例的处理器的实施例的框图。图2是执行邻接数据元素成对交换指令的实施例的方法的实施例的框流程图。图3是示出邻接数据元素成对交换操作的示例实施例的框图。图4是示出掩码邻接数据元素成对交换操作的第一示例实施例的框图。图5是示出掩码邻接数据元素成对交换操作的第二示例实施例的框图。图6是示出用来交换复数的实分量和虚分量的掩码邻接数据元素成对交换操作的更具体示例实施例的框图。图7是邻接数据元素成对交换指令的示例实施例的框图。图8是打包数据寄存器的适当集合的示例实施例的框图。图9是打包数据操作掩码寄存器的适当集合的示例实施例的框图。图10A-10C是示出根据本专利技术的实施例的通用矢量友好指令格式及其指令模板的框图。图11是寄存器架构的实施例的框图。图12A是示出有序流水线的实施例和寄存器重命名乱序发布/运行流水线的实施例的框图。图12B是包括耦合到运行引擎单元并且均耦合到存储器单元的前端单元的处理器核的实施例的框图。图13A是单个处理器核连同与它的到管芯上互连网络的连接以及连同它的等级2(L2)高速缓冲存储器的本地子集的实施例的框图。图13B是图13A的处理器核的部分的展开图的实施例的框图。图14是可具有多于一个核、可具有集成存储器控制器并且可具有集成图形的处理器的实施例的框图。图15是计算机架构的第一实施例的框图。图16是计算机架构的第二实施例的框图。图17是计算机架构的第三实施例的框图。图18是计算机架构的第四实施例的框图。图19是根据本专利技术的实施例的、使用软件指令转换器来将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。具体实施方式本文所公开的是邻接数据元素成对交换指令、运行指令的处理器、由处理器在处理或运行指令时执行的方法、结合一个或多个处理器以处理或运行指令的系统以及具有指令的程序或机器可读存储介质。在以下描述中,提出许多具体细节(例如具体指令操作、数据格式、数据类型、处理器配置、微架构细节、操作序列等)。然而,在没有这些具体细节的情况下也可实践实施例。在其它实例中,公知的电路、结构或技术尚未被详细地示出以避免使本描述的理解模糊。图1是可操作以执行邻接数据元素成对交换指令102的实施例的处理器100的实施例的框图。在一些实施例中,处理器可以是通用处理器(例如用在桌上型、膝上型或其它计算机中的类型的通用微处理器或中央处理单元(CPU))。备选地,处理器可以是专用处理器。适合的专用处理器的示例包括但不限于:网络处理器、通信处理器、加密处理器、图形处理器、协同处理器、嵌入式处理器、数字信号处理器(DSP)和控制器(例如微控制器)。处理器可具有以下架构中的任何,各种复杂指令集计算(CISC)架构、简化指令集计算(RISC)架构、超长指令字(VLIW)架构、混合架构、其它类型的架构,或具有不同架构的组合(例如,不同核可具有不同架构)。在操作期间,处理器100可接收邻接数据元素成对交换指令102。例如,指令可在互连上从存储器接收。指令可表示宏指令、汇编语言指令、机器代码指令或者处理器的指令集的其它指令或控制信号。在一些实施例中,邻接数据元素成对交换指令可显式指定(例如通过一个或多个字段或者比特的集合)或者以其它方式指示(例如隐式指示)要存储源打包数据112的源存储位置(例如源打包数据寄存器110),并且可指定或者以其它方式指示目的地存储位置114,其中要响应于指令而存储结果打包数据116。在一些实施例中,指令可以仅指定或指示单个源打包数据(例如仅指示单个源打包数据寄存器110),而不是具有两个或更多源打包数据。在所示示例中,第一打包数据寄存器110用于源打包数据操作数112,以及第二打包数据寄存器114用于结果打包数据操作数116,尽管这不被要求。在其它实施例中,存储器位置或其它存储位置改为可选地可用于这些操作数的一个或多个。指令可具有源和/或目的地操作数指定字段,以指定打包数据寄存器(例如寄存器110、114)或存储器位置或者用于此类操作数的其它存储位置。备选地,这些存储位置的一个或多个可选地可对指令是隐式的(例如对指令的操作码是隐式的),而不是显式指定的。此外,在一些实施例中,打包数据寄存器或者用于源打包数据的其它存储位置可选地可隐式再用作结果打包数据的目的地存储位置,并且仅指定一次。在一个方面,源/目的地打包数据寄存器可隐式或隐含地理解为用于源操作数和结果操作数两者。再次参考图1,处理器包括解码单元或解码器104。解码单元可对邻接数据元素成对交换指令进行接收和解码。解码单元可输出一个或多个相对较低级别指令或控制信号(例如一个或多个微指令、微操作、微代码入口点、解码指令或控制信号等),其反映、表示相对较高级别邻接数据元素成对交换指令和/或从其中得出。在一些实施例中,解码单元可包括接收邻接数据元素成对交换指令的一个或多个输入结构(例如端口、互连、接口)、与其耦合以对邻接数据元素成对交换指令进行识别和解码的指令识别和解码逻辑以及与其耦合以输出低级别指令或控制信号的一个或多个输出结构(例如端口、互连、接口)。解码单元可使用各种不同机制来实现,包括但不限于微代码只读存储器(ROM)、查找表、硬件实现、可编程逻辑阵列(PLA)以及适合实现解码单元的其它机制。在一些实施例中,解码单元可包括在处理器的管芯上。在一些实施例中,邻接数据元素成对交换指令不是直接被提供给解码单元,而是可选地可使用指令仿真器、翻译器、变形器、解释器或其它指令转换模块。各种类型的指令转换模块可采用软件、硬件、固件或其组合来实现。在一些实施例中,指令转换模块可位于处理器外部,诸如例如独立管芯上和/或存储器(例如作为静态、动态或运行时间仿真模块)中。通过示例方式,指令转换模块可接收可属于第一指令集的邻接数据元素成对交换指令,并且可对邻接数据元素成对交换指令进行仿真、翻译、变形、解释或者以其它方式将邻接数据元素成对交换指令转换为一个或多个对应中间指令或控制信号,其可属于第二不同指令集。第二指令集的一个或多个中间指令或控制信号可提供给解码单元(例如解码单元104),其可将本文档来自技高网...

【技术保护点】
1.一种处理器,包括:多个打包数据寄存器;解码单元,可操作以对邻接数据元素成对交换指令进行解码,所述邻接数据元素成对交换指令用来指示要包括多个邻接数据元素对的源打包数据,并且指示目的地存储位置;以及运行单元,与所述多个打包数据寄存器和所述解码单元耦合,所述运行单元响应于所述邻接数据元素成对交换指令而可操作以将结果打包数据存储在所述目的地存储位置中,所述结果打包数据包括多个邻接数据元素对,所述结果打包数据的邻接数据元素的每个对对应于所述源打包数据的邻接数据元素的不同对,所述结果打包数据的邻接数据元素的每个对中的所述邻接数据元素已经在相对于所述源打包数据的邻接数据元素的每个对应对中的所述邻接数据元素的位置中交换。

【技术特征摘要】
【国外来华专利技术】2015.12.22 US 14/9787361.一种处理器,包括:多个打包数据寄存器;解码单元,可操作以对邻接数据元素成对交换指令进行解码,所述邻接数据元素成对交换指令用来指示要包括多个邻接数据元素对的源打包数据,并且指示目的地存储位置;以及运行单元,与所述多个打包数据寄存器和所述解码单元耦合,所述运行单元响应于所述邻接数据元素成对交换指令而可操作以将结果打包数据存储在所述目的地存储位置中,所述结果打包数据包括多个邻接数据元素对,所述结果打包数据的邻接数据元素的每个对对应于所述源打包数据的邻接数据元素的不同对,所述结果打包数据的邻接数据元素的每个对中的所述邻接数据元素已经在相对于所述源打包数据的邻接数据元素的每个对应对中的所述邻接数据元素的位置中交换。2.如权利要求1所述的处理器,其中,所述解码单元要对不指示要控制数据元素的位置的交换的任何非操作码交换控制比特的所述指令进行解码。3.如权利要求1所述的处理器,其中,在相对于所述源打包数据的每个对应对中的所述邻接数据元素的位置中交换的所述结果打包数据的每个对中的所述邻接数据元素要对所述指令的操作码是隐式的。4.如权利要求1所述的处理器,其中,在相对于所述源打包数据的每个对应对中的所述邻接数据元素的位置中交换的所述结果打包数据的每个对中的所述邻接数据元素要对于所述指令的操作码是固定的。5.如权利要求1所述的处理器,其中,所述解码单元要对要仅指示要作为所述源打包数据的单个源操作数的所述指令进行解码。6.如权利要求1所述的处理器,其中,所述解码单元要对要指示要包括要作为多字节数据元素的所述邻接数据元素对的所述源打包数据的所述指令进行解码。7.如权利要求1所述的处理器,其中,所述解码单元要对要指示要包括要作为浮点数据元素的所述邻接数据元素对的所述源打包数据的所述指令进行解码。8.如权利要求1至7中的任一项所述的处理器,其中,所述解码单元要对要指示源打包数据操作掩码的所述指令进行解码。9.如权利要求8所述的处理器,其中,所述运行单元响应于所述指令而要存储要包括邻接数据元素的附加对的所述结果打包数据,所述邻接数据元素的附加对要对应于所述源打包数据的邻接数据元素的附加对,并且其要对应于所述源打包数据操作掩码的至少一个掩蔽出的掩码元素,并且其中所述结果打包数据的所述附加对中的所述邻接数据元素还没有在相对于邻接数据元素的所述对应附加对中的所述邻接数据元素的位置中交换。10.如权利要求9所述的处理器,其中,所述至少一个掩蔽出的掩码元素要包括单个掩蔽出的掩码元素,其要对应于所述结果打包数据的邻接数据元素的所述附加对的数据元素两者。11.如权利要求9所述的处理器,其中,所述至少一个掩蔽出的掩码元素要包括一对掩蔽出的掩码元素,其各自要对应于所述结果打包数据的邻接数据元素的所述附加对的所述数据元素的不同一个数据元素。12.如权利要求1至7中的任一项所述的处理器,其中,所述运行单元包括非控制交换逻辑,以在位置中相对于所述源打包数据的每个对应对中的所述邻接数据元素来交换所述结果打包数据的每个对中的所述邻接数据元素,而无需解释所述源打包数据的每个对的控制比特的一个或多个集合。13.如权利要求1至7中的任一项所述的处理器,其中,所述解码单元还要对混...

【专利技术属性】
技术研发人员:A贾
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1