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

用于从通用寄存器向向量寄存器进行广播的装置和方法制造方法及图纸

技术编号:18913303 阅读:29 留言:0更新日期:2018-09-12 02:53
描述了用于从通用源寄存器向向量寄存器进行广播的装置和方法。例如,根据一个实施例的处理器包括:解码电路,用于解码指令,所述指令具有用于标识源操作数的第一字段以及用于标识目的地操作数的第二字段;执行电路,耦合到所述解码电路,其中所述执行电路用于执行经解码的指令以:标识所标识源操作数内要存储在所标识目的地操作数中的数据元素位置;将存储在所标识的数据元素位置中的数据广播到所标识目的地操作数的至少一个数据元素位置。

Device and method for broadcasting from general register to vector register

An apparatus and method for broadcasting from a general source register to a vector register are described. For example, a processor according to one embodiment includes: a decoding circuit for decoding instructions having a first field for identifying a source operand and a second field for identifying a destination operand; an execution circuit coupled to the decoding circuit, wherein the execution circuit is used for executing a decoded instruction To: identify the location of the data element to be stored in the identified destination operand within the identified source operand; broadcast the data stored in the identified data element location to at least one data element location of the identified destination operand.

【技术实现步骤摘要】
用于从通用寄存器向向量寄存器进行广播的装置和方法本申请是国际申请日为2011年12月23日、中国国家阶段申请号为201180076414.7、题为“用于从通用寄存器向向量寄存器进行广播的装置和方法”的专利技术专利申请的分案申请。
本专利技术的实施例一般涉及计算机系统的领域。更具体地,本专利技术的实施例涉及用于从通用寄存器向向量寄存器广播的装置和方法。
技术介绍
一般背景指令集、或指令集架构(ISA)是涉及编程的计算机架构的一部分,并且可包括原生数据类型、指令、寄存器架构、寻址模式、存储器架构、中断和异常处理、以及外部输入和输出(I/O)。术语指令在本申请中一般表示宏指令,宏指令是被提供给处理器(或指令转换器,该指令转换器(利用静态二进制转换、包括动态编译的动态二进制转换)转换、变形、仿真或以其他方式将指令转换成将由处理器处理的一个或多个其他指令)以供执行的指令——作为对比,微指令或微操作(微操作)是处理器的解码器解码宏指令的结果。ISA与微架构不同,微架构是实现该指令集的处理器的内部设计。具有不同微架构的处理器可共享共同的指令集。例如,奔腾四(Pentium4)处理器、酷睿(CoreTM)处理器、以及来自加利福尼亚州桑尼威尔(Sunnyvale)的超微半导体有限公司(AdvancedMicroDevices,Inc.)的诸多处理器执行几乎相同版本的x86指令集(在更新的版本中加入了一些扩展),但具有不同的内部设计。例如,ISA的相同寄存器架构可以在不同的微架构中使用公知的技术以不同方法来实现,公知的技术包括专用物理寄存器、使用寄存器重命名机制(例如,使用寄存器别名表(RAT)、重排序缓冲器(ROB)、以及引退寄存器组;使用多个寄存器映射和寄存器池)的一个或多个动态分配物理寄存器,等等。除非另行指出,术语寄存器架构、寄存器组和寄存器在本文中用于指代对软件/编程者可见的寄存器以及指令指定寄存器的方式。在需要特殊性的场合,将使用定语逻辑的、架构的或软件可见的来指示寄存器架构中的寄存器/寄存器组,同时不同的定语将用于指示给定微架构中的寄存器(例如物理寄存器、重排序缓冲器、引退寄存器、寄存器池)。指令集包括一个或多个指令格式。给定指令格式定义多个字段(位的数量、位的位置等)以指定将要被执行的操作(操作码)以及该操作将要执行的操作数等等。通过定义指令模板(或子格式),一些指令格式被进一步分解。例如,可将给定指令格式的指令模板定义成具有该指令格式的字段的不同子集(所包括的字段通常是相同顺序,但至少一些由于包括更少的字段而具有不同的位位置)和/或定义成对给定字段的解释不同。因此,利用给定指令格式(而且如果定义,则按照该指令格式的指令模板中的给定一个模板)来表达ISA的每个指令,并且ISA的每个指令包括用于指定其操作和操作数的字段。例如,示例性的ADD(加法)指令具有特定的操作码和指令格式,该指令格式包括用于指定该操作码的操作码字段和用于选择操作数(源1/目的地和源2)的操作数字段;并且该ADD指令在指令流中的出现将具有在操作数字段中的特定内容,该特定内容选择特定操作数。科学应用、金融应用、自动向量化通用应用、RMS(识别、挖掘和合成)应用以及视觉和多媒体应用(诸如,2D/3D图形、图像处理、视频压缩/解压缩、语音识别算法和音频处理)通常需要对大量数据项执行相同的操作(称为“数据并行性”)。单指令多数据(SIMD)指的是使得处理器对多个数据项执行一操作的一种类型的指令。SIMD技术尤其适用于将寄存器中的多个位逻辑地划分成多个固定大小的数据元素的处理器,其中每个数据元素表示单独的值。例如,可将256位寄存器中的位指定为要进行操作的源操作数,作为4个单独的64位打包数据元素(四字(Q)尺寸数据元素)、8个单独的32位打包数据元素(双字(D)尺寸数据元素)、16个单独的16位打包数据元素(字(W)尺寸数据元素)、或32个单独的8位数据元素(字节(B)尺寸数据元素)。该数据类型可被称为打包数据类型或向量数据类型,并且该数据类型的操作数被称为打包数据操作数或向量操作数。换句话说,打包数据项或向量指的是打包数据元素的序列,而打包数据操作数或向量操作数是SIMD指令(或称为打包数据指令或向量指令)的源操作数或目的地操作数。作为示例,一种类型的SIMD指令指定了将要以纵向方式对两个源向量操作数执行的单个向量操作,用于生成具有相同尺寸的、具有相同数量的数据元素并且按照相同数据元素次序的目的地向量操作数(也被称为结果向量操作数)。源向量操作数中的数据元素被称为源数据元素,而目的地向量操作数中的数据元素被称为目的地或结果数据元素。这些源向量操作数具有相同尺寸并且包含相同宽度的数据元素,因此它们包含相同数量的数据元素。两个源向量操作数中的相同位位置中的源数据元素形成数据元素对(也称为对应的数据元素;即,每个源操作数的数据元素位置0中的数据元素相对应,每个源操作数中的数据元素位置1中的数据元素相对应,以此类推)。对这些源数据元素对中的每一个分别执行该SIMD指令指定的操作,以产生匹配数量的结果数据元素,并且因此每一对源数据元素具有相应的结果数据元素。由于该操作是纵向的,且由于结果向量操作数是相同尺寸、具有相同数量的数据元素并且结果数据元素按照与源向量操作数相同的数据元素顺序被存储,所以结果数据元素处于结果向量操作数中与它们在源向量操作数中的相应源数据元素对相同的位位置中。除了这种示例性类型的SIMD指令之外,存在各种各样其他类型的SIMD指令(例如仅具有一个源向量操作数或具有超过两个源向量操作数、以横向方式操作、产生不同尺寸的结果向量操作数、具有不同尺寸的数据元素和/或具有不同的数据元素次序的SIMD指令)。应当理解,术语目的地向量操作数(或目的地操作数)被定义为执行由指令指定的操作的直接结果,包括将该目的地操作数存储在一位置处(可以是由该指令指定的寄存器或存储器地址处),使得它可作为源操作数由另一指令访问(通过该另一指令指定同一位置)。诸如具有包括x86、MMXTM、流式SIMD扩展(SSE)、SSE2、SSE3、SSE4.1以及SSE4.2指令的指令集的CoreTM处理器所采用的SIMD技术之类的SIMD技术已经实现了应用性能的重大改进。已经推出和/或发布了被称为高级向量扩展(AVX)(AVX1和AVX2)和利用向量扩展(VEX)编码方案的附加的SIMD扩展集(参见例如2011年10月的64和IA-32架构软件开发者手册;以及参见2011年6月的高级向量扩展编程参考)。与本专利技术的实施例有关的背景广播来自存储器或向量寄存器的值已被引入多种现有指令集架构中。然而,在某些情形中,期望能够广播在诸如图8所示的通用寄存器850中存储的值815。在当前处理器架构中,这只能通过使用至少两个指令来完成:用于首先将值815写入到存储器809的第一指令(INST1)以及用于向其它处理器组件860(例如其它寄存器、缓冲器等)广播值815的第二指令(INST2)。以这种方式需要两个指令是低效的,尤其是在这些指令之一是系统存储器访问的情况下。附图说明图1A是示出根据本专利技术的实施例的示例性有序流水线以及示例性寄存器重命名的无序发布/执行流水线两者的框图;图1B是本文档来自技高网...

【技术保护点】
1.一种处理器,包括:解码电路,用于解码指令,所述指令具有用于标识源操作数的第一字段以及用于标识目的地操作数的第二字段;执行电路,耦合到所述解码电路,其中所述执行电路用于执行经解码的指令以:标识所标识源操作数内要存储在所标识目的地操作数中的数据元素位置;将存储在所标识的数据元素位置中的数据广播到所标识目的地操作数的至少一个数据元素位置。

【技术特征摘要】
1.一种处理器,包括:解码电路,用于解码指令,所述指令具有用于标识源操作数的第一字段以及用于标识目的地操作数的第二字段;执行电路,耦合到所述解码电路,其中所述执行电路用于执行经解码的指令以:标识所标识源操作数内要存储在所标识目的地操作数中的数据元素位置;将存储在所标识的数据元素位置中的数据广播到所标识目的地操作数的至少一个数据元素位置。2.如权利要求1所述的处理器,其中所标识的数据元素位置是寄存器的最低有效8位。3.如权利要求1所述的处理器,其中所选择的数据元素位置是存储器位置的8位。4.如权利要求1所述的处理器,其中所标识的数据元素位置是寄存器的最低有效16位。5.如权利要求1所述的处理器,其中所选择的数据元素位置是存储器位置的16位。6.如权利要求1所述的处理器,其中所标识的数据元素位置是寄存器的最低有效32位。7.如权利要求1所述的处理器,其中所选择的数据元素位置是存储器位置的32位。8.如权利要求1所述的处理器,其中所述指令进一步包括用于标识写掩码寄存器的字段,并且所述执行电路用于当所标识写掩码寄存器中与所标识目的地操作数的数据元素位置对应的掩码指示被置位时,向所标识目的地操作数内的所述数据元素位置复制零或者维持存储在所标识目的地操作数的所述数据元素位置内的现有值。9.一种方法,包括:解码指令,所述指令具有用于标识源操作数的第一字段以...

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

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

1