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

执行部分宽度压缩数据指令的装置和方法制造方法及图纸

技术编号:2887323 阅读:185 留言:0更新日期:2012-04-11 18:40
提供了用于执行标量压缩数据指令的方法与装置。其中处理器包括:多个寄存器;耦合在该多个寄存器上的寄存器重新命名单元;耦合在寄存器重新命名单元上的解码器;及耦合在解码器上的部分宽度执行单元。(*该技术在2019年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般涉及计算机系统领域。更具体地,本专利技术涉及利用诸如SIMD技术的处理器高效地执行诸如标量压缩数据指令等的部分宽度压缩数据指令的方法与装置。诸如2D/3D图形、图像处理、视频压缩/解压缩、话音识别算法与音频处理等多媒体应用通常要求在大量数据项上执行相同的操作(称作“数据并行性”)。各种多媒体应用通常实现需要若干诸如加或乘(以后称为MUL)等浮点或整数运算的一种或多种算法。通过提供其执行导致处理器并行地在多个数据项上执行相同运算的宏指令,诸如Pentium处理器体系结构与MMxTM指令集等采用的单指令多数据(SIMD)技术已使在多媒体应用性能上有了明显的改进(Pentium及MMXTM为SantaClara,CA的Intel公司的注册商标或商标)。SIMD技术特别适用于提供压缩数据格式的系统。压缩数据格式便是将寄存器中的位逻辑上分成若干固定大小的数据元素的数量,各元素表示独立的值的数据格式。例如,可将64位寄存器分解成四个16位元素,每个表示独立的16位值。然后,压缩数据指令便可并行地分开处理这些压缩数据类型中的各元素。参见附图说明图1,其中示出了示例性压缩数据指令。在这一示例中,压缩加法指令(如SIMD ADD)将第一压缩数据运算数X与第二压缩数据运算数Y的对应数据元素相加生成压缩数据结果Z,即X0+Y0=Z0,X1+Y1=Z1,x2+Y2=Z2及x3+Y3=Z3。将许多数据元素压缩到一个寄存器或存储器单元中并采用并行硬件执行使SIMD体系结构一次能执行多个操作,而得到明显的性能改进。例如,在这一示例中,在以前得出单一结果所需的时间中可得出四个独立的结果。虽然SIMD体系结构的优点是显而易见的,仍存在着希望只作为压缩数据元素的子集返回单个的结果的情况。本文描述了用于执行部分宽度压缩数据指令的方法与装置。按照本专利技术的一个方面,处理器包括多个寄存器、耦合在这多个寄存器上的寄存器重新命名单元、耦合在寄存器重新命名单元上的解码器及耦合在该解码器上的部分宽度执行单元。该寄存器重新命名单元提供了体系结构寄存器文件来存储各包含多个数据元素的压缩数据操作数。将解码器配置成解码其每个指定体系结构寄存器文件中的一个或多个寄存器的第一与第二指令集。第一指令集中的各指令指定要在存储在一个或多个指定的寄存器中的所有数据元素上执行的操作。反之,第二指令集中的各指令指定只要在存储在一个或多个指定的寄存器中的数据元素子集上执行的操作。将部分宽度执行单元配置成执行由第一或第二指令集之一指定的操作。从附图及详细描述中,本专利技术的其它特征与优点将是显而易见的。本专利技术是参照附图中的图以示例方式而非限制性方式描述的,附图中相同的标号指示相同的元素,附图中图1示出将来自第一压缩数据操作数与第二压缩数据操作数的对应数据元素相加的压缩加法指令。图2A为展示按照本专利技术的一个实施例的示例性计算机系统的简化方框图。图2B为展示按照本专利技术的一个实施例的示例性逻辑寄存器组的简化方框图。图2C为展示按照本专利技术的另一实施例的示例性逻辑寄存器组的简化方框图。图3为展示按照本专利技术的一个实施例的指令执行的流程图。图4概念性地展示执行按照本专利技术的各种实施例的部分宽度压缩数据指令的结果。图5A概念地展示用于执行按照本专利技术的一个实施例的全宽度压缩数据指令及部分宽度压缩数据指令的电路。图5B概念性地展示用于执行按照本专利技术的另一实施例的全宽度压缩数据与部分宽度压缩数据指令的电路。图5C概念性地展示用于执行按照本专利技术的又另一实施例的全宽度压缩数据及部分宽度压缩数据指令的电路。图6展示按照SIMD的示例性处理器实现的,能分别作为四个独立的加法执行单元与四个独立的乘法执行单元操作的加法执行单元与乘法执行单元。图7A-7B概念性地展示分别以“交错”方式执行的全宽度压缩数据操作与部分宽度压缩数据操作。图8A概念性地展示在同时在操作数的一半宽度上执行操作时从逻辑寄存器中存取全宽度操作数的处理器内的电路。图8B为进一步展示图8A的电路的定时图。图9概念性地展示通过将宏指令转换成各处理操作数的一部分全宽度的多条宏指令以“交错”方式在操作数上执行操作的无次序的流水线的一个实施例。图10为进一步展示图9中描述的实施例的定时图。图11为展示可采用来完成按照本专利技术的一个实施例的解码处理的解码逻辑的框图。本文描述了用于执行部分宽度压缩数据指令的方法与装置。这里名词“全宽度压缩数据指令”意在指称在一个或多个压缩数据操作数的所有数据元素上操作的压缩数据指令(如SIMD指令)。反之,名词“部分宽度压缩数据指令”意在广泛地指称设计成只在一个或多个压缩数据操作数的数据元素的子集上运算并返回压缩数据结果(到诸如压缩数据寄存器文件)的压缩数据指令。例如,标量SIMD指令可能只需要压缩数据操作数的最低位对之间的操作结果。在这一示例中,压缩数据结果的其余数据元素是忽略不计的,因为它们对标量SIMD指令无意义(例如,不关心其余数据元素)。按照本专利技术的各种实施例,可以以这样的方式来配置执行单元使之高效地提供全宽度压缩数据指令(如SIMD指令)及部分宽度压缩数据指令集(如标量SIMD指令)两者。在下面的详细描述中,为了说明的目的,提出了许多特定细节以便提供对本专利技术的彻底理解。然而,对于本技术中的普通技术人员很明显,不一定用这些特定细节来实践本专利技术。在其它实例中,并未示出或以方框图形式示出众所周知的器件、结构、接口及进程。考虑已为在单精度浮点数据、双精度浮点数据及整数数据上采用标量运算的标量体系结构(如单指令单数据(SISD)体系结构)编写的软件的数量,希望向开发人员提供将他们的软件移植到诸如SIMD体系结构等支持压缩数据指令的体系结构上的选择,而没有必要改写他们的软件与/或学习新的指令。通过提供部分宽度压缩数据指令,简单的翻译便能将老的标量代码变换成标量压缩数据代码。例如,编译程序非常容易从标量代码生成标量SIMD指令。然后,随着开发人员理解能用SIMD优化的他们的软件部分,他们便可逐渐地利用压缩数据指令。当然采用SIMD技术的计算机系统可能也以同样支持SISD指令来保持向后兼容。然而,许多最近的体系结构改进及这里讨论的其它因素有利于开发人员过渡到并利用SIMD技术,即使首先只采用标量SIMD指令也如此。提供部分宽度压缩数据指令的另一合理性在于可通过只在全宽度运算数的子集操作可达到的许多好处,其中包含降低功耗、提高速率、简洁的异常模型及提高的存储量。如下所示,根据用部分宽度压缩数据指令提供的指示,通过有选择地关闭对执行当前操作不必要的那些硬件单元可达到功率节省。另一种不希望强制压缩数据指令返回各对数据元素的单个结果的情况包含在提供部分宽度硬件的环境中的算术运算。由于成本与/或印模限制,通常不提供对诸如除法等某些算术运算的全面支持。从其性质上,即使在实现全宽度硬件(如执行单元与数据元素之间的一一对应)时,除法运算也非常长。因此,在只支持全宽度压缩数据运算同时提供部分宽度硬件的环境中,等待时间变得甚至更长。如下面进一步所示,诸如部分宽度压缩数据除法运算等部分宽度压缩数据运算可有选择地允许其运算数的某些部分绕过除法硬件。以这一方法,只在压缩数据运算数中的数据元素的子集上运算并不承担性能损失。此外,与外本文档来自技高网...

【技术保护点】
一种处理器,包括: 多个寄存器; 寄存器重新命名单元,耦合在多个寄存器上以提供体系结构寄存器文件来存储压缩数据操作数,各所述压缩数据操作数具有多个数据元素; 解码器,耦合在所述寄存器重新命名单元上,解码各指定体系结构寄存器文件中一或多个寄存器的第一与第二指令集,第一指令集中的各指令指定在存储在指定的一或多个寄存器中的所有数据元素上的操作,第二指令集中各条指定只在存储在指定的一或多个寄存器中的数据元素的子集上的操作;以及 部分宽度执行单元,耦合在解码器上以执行第一或第二指令集所指定的操作。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:P鲁塞尔T塔卡
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1