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

用于响应于单个指令来执行横向部分求和的系统、装置和方法制造方法及图纸

技术编号:10488954 阅读:148 留言:0更新日期:2014-10-03 17:17
描述了用于响应于单个向量打包横向求和指令在计算机处理器中执行打包数据元素的向量打包横向部分求和的系统、装置和方法的诸个实施例,该单个向量打包横向求和指令包括目的地向量寄存器操作数、源向量寄存器操作数以及操作码。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术的领域一般涉及计算机处理器架构,更具体地涉及在执行时导致特定结果的指令。
技术介绍
指令集或指令集架构(ISA)是计算机架构中与编程有关的部分,并且可包括原生数据类型、指令、寄存器架构、寻址模式、存储器架构、中断和异常处理、以及外部输入和输出(I/o)。术语指令在本申请中一般表示宏指令,宏指令是被提供给处理器(或指令转换器,该指令转换器(利用静态二进制转换、包括动态编译的动态二进制转换)转换、变形、仿真或以其他方式将指令转换成将由处理器处理的一个或多个其他指令)以供执行的指令一作为对比,微指令或微操作(微操作)是处理器的解码器解码宏指令的结果。 ISA与微架构不同,微架构是实现该指令集的处理器的内部设计。具有不同微架构的处理器可共享共同的指令集。例如,INTEL?奔腾四(Pentium4)处理器、Intel?酷睿(Core?)处理器、以及来自加利福尼亚州桑尼威尔(Sunnyvale)的超微半导体有限公司(Advanced Micro Devices, Inc.)的诸多处理器执行几乎相同版本的x86指令集(在更新的版本中加入了一些扩展),但具有不同的内部设计。例如,在不同的微架构中可使用公知的技术以不同方法来实现ISA的相同寄存器架构,这些技术包括专用物理寄存器、使用寄存器重命名机制(诸如,使用寄存器别名表(RAT)、重排序缓冲器(R0B)、以及引退寄存器组;使用多个映射和寄存器池)的一个或多个动态分配的物理寄存器、等等。在本申请中使用短语寄存器架构、寄存器组以及寄存器来表示软件/编程者可见的寄存器和指令指定寄存器的方式,除非另外指定。在需要特殊性的场合,将使用定语逻辑的、架构的或软件可见的来指示寄存器架构中的寄存器/寄存器组,同时不同的定语将用于指示给定微架构中的寄存器(例如物理寄存器、重排序缓冲器、引退寄存器、寄存器池)。 指令集包括一个或多个指令格式。给定指令格式定义多个字段(位的数量、位的位置等)以指定将要被执行的操作(操作码)以及该操作将要执行的操作数等等。通过定义指令模板(或子格式),一些指令格式被进一步分解。例如,可将给定指令格式的指令模板定义成具有该指令格式的字段的不同子集(所包括的字段通常是相同顺序,但至少一些由于包括更少的字段而具有不同的位位置)和/或定义成对给定字段的解释不同。因此,利用给定指令格式(而且如果定义,则按照该指令格式的指令模板中的给定一个模板)来表达ISA的每个指令,并且ISA的每个指令包括用于指定其操作和操作数的字段。例如,示例性的ADD (加法)指令具有特定的操作码和指令格式,该指令格式包括用于指定该操作码的操作码字段和用于选择操作数(源I/目的地和源2)的操作数字段;并且该ADD指令在指令流中的出现将具有在操作数字段中的特定内容,该特定内容选择特定操作数。 科学应用、金融应用、自动向量化通用应用、RMS(识别、挖掘和合成)应用以及可视和多媒体应用(诸如,2D/3D图形、图像处理、视频压缩/解压缩、语音识别算法和音频处理)通常需要对大量数据项执行相同的操作(称为“数据并行化”)。单指令多数据(SMD)指的是使得处理器对多个数据项执行一操作的一种类型的指令。SMD技术尤其适用于将寄存器中的多个位逻辑地划分成多个固定尺寸的数据元素的处理器,其中每个数据元素表示单独的值。例如,可将256位寄存器中的位指定为要进行操作的源操作数,作为4个单独的64位打包数据元素(四字(Q)尺寸数据元素)、8个单独的32位打包数据元素(双字(D)尺寸数据元素)、16个单独的16位打包数据元素(字(W)尺寸数据元素)、或32个单独的8位数据元素(字节(B)尺寸数据元素)。该数据类型可被称为打包数据类型或向量数据类型,并且该数据类型的操作数被称为打包数据操作数或向量操作数。换句话说,打包数据项或向量指的是打包数据元素的序列,而打包数据操作数或向量操作数是SIMD指令(或称为打包数据指令或向量指令)的源操作数或目的地操作数。 作为示例,一种类型的SIMD指令指定了将要以纵向方式对两个源向量操作数执行的单个向量操作,用于生成具有相同尺寸的、具有相同数量的数据元素的并且按照相同数据元素次序的目的地向量操作数(也被称为结果向量操作数)。源向量操作数中的数据元素被称为源数据元素,而目的地向量操作数中的数据元素被称为目的地或结果数据元素。这些源向量操作数具有相同尺寸并且包含相同宽度的数据元素,因此它们包含相同数量的数据元素。两个源向量操作数中的相同位位置中的源数据元素形成数据元素对(也称为相应的数据元素;即,每个源操作数的数据元素位置O中的数据元素相对应,每个源操作数中的数据元素位置I中的数据元素相对应,以此类推)。对这些源数据元素对中的每一个分别执行该SMD指令指定的操作,以产生匹配数量的结果数据元素,并且因此每一对源数据元素具有相应的结果数据元素。由于该操作是纵向的,且由于结果向量操作数是相同尺寸、具有相同数量的数据元素并且结果数据元素按照与源向量操作数相同的数据元素顺序被存储,所以结果数据元素处于结果向量操作数中与源向量操作数中的它们相应的源数据元素对相同的位位置中。除了这种示例性类型的SIMD指令之外,存在各种各样其他类型的SIMD指令(例如仅具有一个源向量操作数或具有超过两个源向量操作数、以横向方式操作、产生不同尺寸的结果向量操作数、具有不同尺寸的数据元素和/或具有不同的数据元素次序的SMD指令)。应当理解,术语目的地向量操作数(或目的地操作数)被定义为执行由指令指定的操作的直接结果,包括将该目的地操作数存储在一位置处(可以是由该指令指定的寄存器或存储器地址处),使得它可作为源操作数由另一指令访问(通过该另一指令指定同一位置)。 诸如具有包括x86、MMX?、流式 SMD 扩展(SSE)、SSE2、SSE3、SSE4.1 以及 SSE4.2指令的指令集的Intel? Core?处理器所采用的SMD技术之类的SMD技术已经实现了应用性能的重大改进。已经推出和/或发布了被称为高级向量扩展(AVX) (AVX1和AVX2)和利用向量扩展(VEX)编码方案的附加的SMD扩展集(参见例如2011年10月的丨ntelK 64 和IA-32架构软件开发者手册;以及参见2011年6月的Intelu高级向量扩展编程参考)。 附图简沭 本专利技术是通过示例说明的,而不仅局限于各个附图的图示,在附图中,类似的参考标号表示类似的元件,其中: 图1示出PHPSUMD指令的示例性操作的示例性说明。 图2示出在处理器中使用PHPSUMD指令的实施例。 图3示出用于处理PHPSUMD指令的方法的实施例。 图4示出用于处理四数据元素数据通道横向部分和的横向部分和的示例性伪代码。 图5示出根据本专利技术一个实施例的多个I有效位向量写掩码元素与向量尺寸和数据元素尺寸之间的关联。 图6A例示了示例性AVX指令格式; 图6B示出来自图6A的哪些字段构成完整操作码字段和基础操作字段; 图6C示出来自图6A的哪些字段构成寄存器索引字段; 图7A-7B是示出根据本专利技术的实施例的通用向量友好指令格式及其指令模板的框图; 图8A-D是示出根据本专利技术的实施例的示例性专用向本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201180076309.html" title="用于响应于单个指令来执行横向部分求和的系统、装置和方法原文来自X技术">用于响应于单个指令来执行横向部分求和的系统、装置和方法</a>

【技术保护点】
一种响应于单个向量打包横向求和指令在计算机处理器中执行打包数据元素的向量打包横向部分求和的方法,所述单个向量打包横向求和指令包括目的地向量寄存器操作数、源向量寄存器操作数以及操作码,所述方法包括以下步骤:执行所述单个向量打包横向求和指令,以对于所述源向量寄存器的数据通道的每个数据元素位置计算来自比所述数据元素位置更低有效的数据元素位置的所有数据元素与所述位置的数据元素之和,其中对于每个打包数据元素位置产生的所述和是直至所述打包数据元素位置的诸个打包数据元素并且包括所述打包数据元素的所有打包数据元素之和;以及将对于所述源向量寄存器的打包数据元素位置计算出的每个和存储在所述目的地向量寄存器的相应打包数据元素位置中。

【技术特征摘要】
【国外来华专利技术】1.一种响应于单个向量打包横向求和指令在计算机处理器中执行打包数据元素的向量打包横向部分求和的方法,所述单个向量打包横向求和指令包括目的地向量寄存器操作数、源向量寄存器操作数以及操作码,所述方法包括以下步骤: 执行所述单个向量打包横向求和指令,以对于所述源向量寄存器的数据通道的每个数据元素位置计算来自比所述数据元素位置更低有效的数据元素位置的所有数据元素与所述位置的数据元素之和,其中对于每个打包数据元素位置产生的所述和是直至所述打包数据元素位置的诸个打包数据元素并且包括所述打包数据元素的所有打包数据元素之和;以及 将对于所述源向量寄存器的打包数据元素位置计算出的每个和存储在所述目的地向量寄存器的相应打包数据元素位置中。2.如权利要求1所述的方法,其特征在于,所述源向量的每个数据通道具有四个打包数据元素。3.如权利要求1所述的方法,其特征在于,要处理的数据通道的数量取决于所述目的地向量寄存器的尺寸。4.如权利要求1所述的方法,其特征在于,所述源向量寄存器和目的地向量寄存器的尺寸是128位、256位、或512位。5.如权利要求1所述的方法,其特征在于,所述源寄存器和所述目的地寄存器的打包数据元素的尺寸是8位、16位、32位或64位。6.如权利要求5所述的方法,其特征在于,通过所述操作码来定义所述源寄存器和所述目的地寄存器的打包数据元素的尺寸。7.如权利要求1所述的方法,其特征在于,所述执行步骤还包括: 在每次求和之后确定所述打包数据元素位置是否是所述数据通道的最后一个打包数据元素位置; 当所述打包数据元素位置是所述数据通道的最后一个打包数据元素位置时,则所述数据通道的处理完成; 当所述打包数据元素位置不是所述数据通道的最后一个打包数据元素位置时,则计算下一最低有效的打包数据元素位置的和。8.—种制品,包括: 有形的机器可读存储介质,其上存储有指令的出现,其中所述指令的格式指定向量寄存器作为其源操作数,并指定单个目的地向量寄存器作为其目的地,并且其中所述指令包括操作码,所述操作码指令机器响应于所述单个指令的单次出现而导致:对于所述源向量寄存器的数据通道的每个数据元素位置计算来自比所述数据元素位置更低有效的数据元素位置的所有数据元素与所述位置的数据元素之和,其中对于每个打包数据元素位置产生的所述和是直至所述打包数据元素位置的诸个打包数据元素并且包括所述打包数据元素的所有打包数据元素之和;以及将对于所述源向量寄存器的打包数据元素位置计算出的每个和存储在所述目的地向量寄存器的相应打包数据元素位置中。9.如权利要求8所述的制品,其特征在于,所述源向量的每个...

【专利技术属性】
技术研发人员:E·乌尔德阿迈德瓦尔M·哈高格R·凡伦天A·格雷德斯廷S·卢巴诺维奇Z·斯波伯B·靳兹伯格Z·艾韦弗
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1