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

控制移位分组数据的位校正的装置制造方法及图纸

技术编号:7865328 阅读:162 留言:0更新日期:2012-10-15 00:31
本发明专利技术的名称是“控制移位分组数据的位校正的装置”。本发明专利技术涉及控制移位分组数据的位校正的装置,提供一种在处理器中加入支持典型的多媒体应用所要求的分组数据上的操作的指令集的装置。在一个实施例中,本发明专利技术包括具有存储区(150)、解码器(165)及多个电路(130)的处理器。该多个电路提供若干指令的执行来操作分组数据。在这一实施例中,这些指令包含组装、分解、分组乘法、分组加法、分组减法、分组比较及分组移位。(*该技术在2016年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术具体涉及计算机系统领域。更具体地,本专利技术涉及分组数据操作领域。
技术介绍
在典型的计算机系统中,将处理器实现为利用产生一种结果的指令在由大量的位(如64)表示的值上操作。例如,执行加法指令将第一个64位值与第二个64位值相加并作为第三个64位值存储该结果。然而,多媒体应用(诸如以计算机支持的协作为目的的应用(CSC-电话会议与混合媒体数据处理的集成)、2D/3D图形、图象处理、视频压缩/解压、 识别算法与音频处理)要求处理可以用少量的位表示的大量数据。例如,图形数据通常需要8或16位,声音数据通常需要8或16位。这些多媒体应用的各个需要一种或多种算法,各需要若干操作。例如,算法可能需要加法、比较及移位操作。为了改进多媒体应用(以及具有相同特征的其它应用),先有技术处理器提供分组数据格式。分组数据格式中通常用来表示单个值的位被分成若干固定长度的数据元素,各元素表示单独的值。例如,可将一个64位寄存器分成两个32位元素,各元素表示一个单独的32位值。此外,这些先有技术处理器提供并行分开处理这些分组数据类型中各元素的指令。例如,分组的加法指令将来自第一分组数据与第二分组数据的对应数据元素相加。从而,如果多媒体算法需要包含必须在大量数据元素上执行的五种操作的循环,总是希望组装该数据并利用分组数据指令并行执行这些操作。以这一方式,这些处理器便能更高效地处理多媒体应用。然而,如果该操作循环中包含处理器不能在分组数据上执行的操作(即处理器缺少适当的指令),则必须分解该数据来执行该操作。例如,如果多媒体算法要求加法运算而不能获得上述分组加法指令,则程序员必须分解第一分组数据与第二分组数据(即分开包含第一分组数据与第二分组数据的元素),将各个分开的单独的元素相加,然后将结果组装成分组的结果供进一步分组处理。执行这种组装与分解所需的处理时间通常抵消了提供分组数据格式的性能优点。因此,希望在通用处理器上包含提供典型多媒体算法所需的所有操作的分组数据指令集。然而,由于当今微处理器上的有限芯片面积,可以增加的指令数目是有限的。包含分组数据指令的一种通用处理器便是加州Santa Clara的Intel公司制造的i860XP 处理器。i860XP处理器包含具有不同元素大小的若干分组数据类型。此外, 860ΧΡ处理器包含分组加法与分组比较指令。然而,分组加法指令并不断开进位链,因此程序员必须保证软件正在执行的运算不会导致溢出,即运算不会导致来自分组数据中一个元素的位溢出到该分组数据的下一元素中。例如,如果将值I加到存储“11111111”的8位分组数据元素上,便出现溢出而结果为“100000000”。此外,i860XP所支持的分组数据类型中的小数点位置是固定的(即i860XP处理器支持数8. 8,6. 10与8. 24,其中数i. j包含i个最高位及小数点后的j位)。从而限制了程序员可以表示的值。由于i860XP处理器只支持这两条指令,它不能执行采用分组数据的多媒体算法所要求的许多运算。另一种支持分组数据的通用处理器便是Motorala公司制造的MC88110 处理器。MC88110处理器支持具有不同长度元素的若干种不同的分组数据格式。此外,MC88110处理器所支持的分组指令集中包括组装、分解、分组加法、分组减法、分组乘法、分组比较与分组旋转。MC88110处理器分组命令通过连接第一寄存器对中的各元素的(t*r)/64(其中t为该分组数据的元素中的位数)个最高有效位进行操作来生成宽度为r的一个字段。该字段取代存储在第二寄存器对中的分组数据的最高有效位。然后将这一分组数据存储在第三寄存器对中并左旋r位。下面在表I与2中示出所支持的t与r值,以及这一指令的运算实例。本文档来自技高网...

【技术保护点】

【技术特征摘要】
1995.08.31 US 08/5213601.一种方法,包括 接收第一指令,所述第一指令包括操作码字段;第一字段,用于指示第一操作数,第一操作数具有包括第一操作数第一数据元素和第一操作数第二数据元素的第一多个数据元素;第二字段,用于指示第二操作数,第二操作数具有包括第二操作数第一数据元素和第二操作数第二数据元素的第二多个数据元素;第一操作数第一数据元素、第一操作数第二数据元素、第二操作数第一数据元素、第二操作数第二数据元素的每一个都具有N/2位的长度。响应于所述第一指令,存储具有N位长度的第一结果数据元素,所述第一结果数据元素包括第一操作数第一数据元素和第二操作数第一数据元素。2.权利要求I的方法,其中,所述第一指令是分解指令以及其中所述第一结果数据元素是第一分解数据元素。3.权利要求2的方法,进一步包括利用第一分解数据元素重写第一操作数的第一多个数据元素。4.权利要求2的方法,其中第一操作数第一数据元素是第一操作数的低阶数据元素以及第二操作数第一数据元素是第二操作数的低阶数据元素,以及分解指令的操作码字段包含操作代码集之一以指定交错来自第一和第二多个数据元素的低阶字节元素、字元素或双字元素的分解操作。5.权利要求4的方法,其中存储第一分解数据元素包括 存储所述第一操作数第一数据元素和把所述第二操作数第一数据元素与所述第一操作数第一数据元素一起存储在相邻的存储单元中。6.权利要求2的方法,其中所述第一操作数第一数据元素是第一操作数的高阶数据元素,第二操作数第一数据元素是第二操作数的高阶数据元素,以及分解指令的操作码字段包含操作代码集之一以指定交错来自第一和第二多个数据元素的高阶字节元素、字元素或双字元素的分解操作。7.权利要求2的方法,进一步包括 响应于所述分解指令存储具有N位长度的第二分解数据元素,所述第二分解数据元素包括第一操作数第二数据元素,以及第二操作书第二数据元素。8.权利要求7的方法,其中存储第一分解数据元素和存储第二分解的数据元素包括 将所述第一操作数第一数据元素放在第一存储单元中; 将所述第二操作数第一数据元素放在第二存储单元中,所述第二存储单元与所述第一存储单元相邻; 将所述第一操作数第二数据元素放在第三存储单元中,所述第三存储单元与所述第二存储单元相邻; 将第二操作数第二数据元素放在第四存储单元中,所述第四存储单元与所述第三存储单元相邻。9.权利要求8的方法,其中所述第一存储单元,所述第二存储单元,所述第三存储单元,以及所述第四存储单元是所述分解指令指示的目的地操作数中的部分。10.权利要求9的方法,其中所述目的地操作数由分解指令的第一字段表示。11.权利要求10的方法,还包括利用所述目的地操作数重写至少部分第一操作数。12.权利要求11的方法,其中第一字段由分解指令的第3-5位构成。13.权利要求9的方法,其中第二字段包括分解指令的第三字节的第0-2位。14.权利要求13的方法,其中目的地操作数由分解指令的第二字段指示。15.权利要求13的方法,还包括 利用目的地操作数重写至少部分第二操作数。16.一种装置,包括 解码器,用于解码第一指令,所述第一指令指示第一操作数,第一操作数具有包括第一操作数第一数据元素和第一操作数第二数据元素的第一多个数据元素;第二操作数,第二操作数具有包括第二操作数第一数据元素和第二操作数第二数据元素的第二多个数据元素;每个数据元素都具有N/2位的长度。功能单元,响应于所述解码器解码所述第一指令,存储具有N位长度的第一结果数据元素,所述第一结果数据元素包括第一操作数第一数据元素和第二操作数第一数据元素。17.权利要求16的装置,其中所述第一指令是分解指令并且其中所述第一结果数据元素是第一分解数据元素。18.权利要求17的装置,其中所述分解指令具有包括三个或更多字节的整数操作码格式,三个字节中的第三字节允许第一三位的源寄存器地址和第二三位的源-目的地寄存器地址。19.权利要求18的装置,其中第一操作数对应于第一三位的源寄存器地址。20.权利要求18的装置,其中第一操作数对应于储存器中可寻址的存储单元。21.权利要求18的装置,其中第二操作数对应于第二三位的源-目的地寄存器地址,以及其中功能单元用于在对应于第二三位的源-目的地寄存器地址的目的地存储第一分解数据元素,并重写第二操作数。22.权利要求21的装置,其中所述功能单元用于将所述第一操作数第一数据元素存储在目的地的第一部分中,以及将所述第二操作数第一数据元素存储到目的地中与所述第一部分相邻的第二部分中,以及此外,其中所述功能单元还用于响应于所述第一指令,将所述第一操作数第二数据元素存储到所述目的地中与所述第二部分相邻的第三部分中,以及将所述第二操作数第二数据元素存储到所述目的地中与所述第三部分相邻的第四部分中。23.权利要求17的装置,还包括 存储器,用于保存分解指令,所述分解指令具有包括三个或更多字节的整数操作码格式,所述三个字节中的一个字节允许第一三位的源寄存器地址和第二三位的的源-目的地寄存器地址;以及 存储设备,用于存储软件,所述软件被配置成将分解指令提供给存储器以用于执行。24.权利要求23的装置,其中,所述解码器用于从存储器接收分解指令并对分解指令进行解码,第一操作数对应于第一三位的源寄存器地址,第二操作数对应于第二三位的源-目的地寄存器地址。25.权利要求24的装置,其中功能单元用于在对应于第二三位的源-目的地寄存器地址的目的地存储第一分解数据元素。26.—种微处理器,包括第一源寄存器,用于保存第一分组数据,第一分组数据具有包括第一分组数据元素和第三分组数据元素的第一多个分组数据元素,第一分组数据元素和第三分组数据元素的每一个都具有N/2位的长度; 第二源寄存器,用于保存第二分组数据,第二分组数据具有包括第二分组数据元素和第四分组数据元素的第二多个分组数据元素,第二分组数据元素和第四分组数据元素的每一个都具有N/2位的长度; 电路,耦合以从第一源寄存器接收第一分组数据以及从第二源寄存器接收第二分组数据,并且响应于分解指令,通过将第一分组数据元素和第二分组数据元素复制到目的地寄存器的第一分解数据元素以及通过将第三分组数据元素和第四分组数据元素复制到目的地寄存器的第二分解数据元素从而分解第一分组数据和第二分组数据,第一和第二分解数据元素的每一个都具有N位的长度。27.权利要求26的微处理器,其中第一分组数据元素是第一分组数据的低阶数据元素以及第二分组数据元素是第二分组数据的低阶数据元素,并且分解指令包括操作码字段,用于包含至少第一操作代码集的其中之一以指定交错来自第一和第二多个数据元素的低阶数据元素的分解操作,所述第一操作代码集指定来自由字节元素、字元素和双字元素组成的组中的数据元素。28.权利要求26的微处理器,其中,第一分组数据元素是第一分组数据的高阶数据元素以及第二数据元素是第二分组数据的高阶数据元素,以及分解指令包括操作码字段,所述操作码字段选择地包含第二操作代码集之一以指定交错来自第一和第二多个数据元素的高阶数据元组的分解操作,所述第二操作代码集指定来自由字节元素、字元素和双字元素所组成的组中的数据元素。29.权利要求26的微处理器,其中,目的地寄存器是第一源寄存器以及其中利用第一和第二分解数据元素重写第一源寄存器的至少一部分。30.权利要求26的微处理器,其中,分解指令具有包括三个或更多字节的整数操作码格式,三个或更多字节中的第三字节允许识别第一源寄存器的第一三位的寄存器地址。31.权利要求30的微处理器,其中,第一三位的寄存器地址也识别目的地寄存器。32.一种装置,包括 用于接收第一指令的部件,所述第一指令包括操作码字段;第一字段,用于指示第一操作数,第一操作数具有包括第一操作数第一数据元素和第一操作数第二数据元素的第一多个数据元素;以及第二字段,用于指示第二操作数,第二操作数具有包括第二操作数第一数据元素和第二操作数第二数据元素的第二多个数据元素;第一操作数第一数据元素、第一操作数第二数据元素、第二操作数第一数据元素、第二操作数第二数据元素的每一个都具有N/2位的长度。用于响应所述第一指令存储具有N位长度的第一结果数据元素的部件,所述第一结果数据元素包括第一操作数第一数据元素和第二操作数第一数据元素。33.一种处理器,包括 寄存器文件,用于存储第一和第二分组数据,第一分组数据包括第一和第二数据元素以及第二分组数据包括第三和第四数据元素,其中,第一多个数据元素中的每个数据元素在各自的位置对应于第二多个数据元素中的不同的数据元素;解码器,用于解码分组数据指令;以及 执行单元,耦合到寄存器文件和解码器,其中,所述执行单元响应于分组数据指令将来自第一分组数据的第一数据元素和来自第二分组数据的对应的数据元素结合到寄存器文件中作为第三分组数据。34.一种处理器,包括 第一寄存器,用于在第一寄存器的位[15:0]中存储第一源数据元素以及在第一寄存器的位[31:16]中存储第二源数据元素; 第二寄存器,用于在第二寄存器的位[15:0]中存储第三源数据元素以及在第二寄存器的位[31:16]中存储第四源数据元素; 解码器,用于解码分组数据指令;以及 执行单元,耦合至寄存器和解码器,所述执行单元被配置成响应于分组数据指令产生分组数据结果,所述分组数据结果把第一源数据元素存储在结果寄存器的位[15:0]中以及把第三源数据元素存储在结果寄存器的位[31:16]中的。35.一种处理系统,被配置成支持2D/3D图形,图像处理,视频压缩/解压缩以及音频操作,所述系统包括 总线,配置成用于传送信息;和 处理器,耦合到所述总线以处理信息,所述处理器包括 寄存器文件,用于存储第一和第二分组数据,第一分组数据包括第一和第二数据元素以及第二分组数据包括第三和第四数据元素,其中,第一多个数据元素中的每个数据元素在各自的位置对应于第二多个数据元素中的不同的数据元素; 解码器,用于解码分组数据指令;以及 执行单元,耦合到寄存器文件和解码器,其中,所述执行单元响应于分组数据指令将来自第一分组数据的第一数据元素和来自第二分组数据的对应的数据元素结合成到寄存器文件中作为第三分组数据; 其中所述系统被配置成耦合到用于向用户显示信息的显示设备和用于从用户接收信息的用户输入设备。36.一种混合媒体处理系统,被配置成支持2D/3D图形,图像处理,视频压缩/解压缩以及音频操作,所述系统包括 通信总线,用于传送信息;和 处理器,耦合到所述通信总线以处理信息,所述处理器包括 第一寄存器,用于在第一寄存器的位[15:0]中存储第一源数据元素以及在第一寄存器的位[31:16]中存储第二源数据元素; 第二寄存器,用于在第二寄存器的位[15:0]中存储第三源数据元素以及在第二寄存器的位[31:16]中存储第四源数据元素; 执行单元,耦合至第一寄存器、第二寄存器和解码器,所述执行单元被配置成响应于分组数据指令产生分组数据结果,所述分组数据结果把第一源数据元素存储在第一寄存器的位[15:0]中以及把第三源数据元素存储在第一寄存器的位[31:16]中, 其中,所述系统被配置成耦合至用于向用户显示信息的显示设备和用于从用户接收信息的用户输入设备。37.一种处理器,包括 寄存器文件,配置成存储第一分组数据和第二分组数据,所述第一分组数据和第二分组数据分别包括第一多个数据元素和第二多个数据元素,其中第一多个数据元素中的每个数据元素对应于第二多个数据元素中的数据元素; 解码器,配置成解码乘操作的指令,该指令指定数据元素的长度;和执行单元,耦合到所述寄存器文件和解码器,所述执行单元配置成把来自第一多个数据元素的每个数据元素与来自第二多个数据元素的相应数据元素相乘,以便响应所述解码器解码所述乘操作的指令而生成第三分组数据的多个结果数据元素,其中每个结果数据元素的长度等于所述指令指定的数据元素的长度。38.一种处理器,包括 寄存器文件,配置成存储第一 64位的分组数据和第二 64位的分组数据,所述第一 64位的分组数据和第二 64位的分组数据分别包括第一多个数据元素和第二多个数据元素,其中第一多个数据元素中的每个数据元素对应于第二多个数据元素中的数据元素,每个数据元素的长度是8位、16位或者32位; 解码器,配置成解码32位的分组乘指令,所述指令指定数据元素的长度;和执行单元,耦合到所述寄存器文件和解码器,并且被配置成把来自第一多个数据元素的每个数据元素和来自第二多个数据元素的对应数据元素相乘,以便响应所述解码器解码所述乘指令而生成第三分组数据的多个结果数据元素,其中每个结果数据元素的长度等于所述指令指定的数据元素的长度。39.一种处理系统,被配置成支持2D/3D图形,图像处理,视频压缩/解压缩以及音频操作,所述系统包括 总线,配置成用于传送信息;和 处理器,耦合到所述总线以处理信息,所述处理器包括 寄存器文件,配置成存储第一分组数据和第二分组数据,所述第一分组数据和第二分组数据分别包括第一多个数据元素和第二多个数据元素,其中第一多个数据元素中的每个数据元素对应于第二多个数据元素中的数据元素; 解码器,配置成解码乘操作的指令,该指令指定数据元素的长度;和执行单元,耦合到所述寄存器文件和解码器,所述执行单元配置成把来自第一多个数据元素的每个数据元素与来自第二多个数据元素的相应数据元素相乘,以便响应所述解码器解码所述乘操作的指令而生成第三分组数据的多个结果数据元素,其中每个结果数据元素的长度等于所述指令指定的数据元素的长度; 其中所述系统被配置成耦合到用于向用户显示信息的显示设备和用于从用户接收信息的用户输入设备。40.一种混合媒体处理系统,被配置成支持2D/3D图形,图像处理,视频压缩/解压缩以及音频操作,所述系统包括 通信总线,用于传送信息;和 处理器,耦合到所述通信总线以处理信息,所述处理器包括 寄存器文件,配置成存储第一 64位的分组数据和第二 64位的分组数据,所述第一 64位的分组数据和第二 64位的分组数据分别包括第一多个数据元素和第二多个数据元素,其中第一多个数据元素中的每个数据元素对应于第二多个数据元素中的数据元素,每个数据元素的长度是8位、16位或者32位; 解码器,配置成解码32位的分组乘指令,所述指令指定数据元素的长度;和执行单元,耦合到所述寄存器文件和解码器,并且被配置成把来自第一多个数据元素的每个数据元素和来自第二多个数据元素的对应数据元素相乘,以便响应所述解码器解码所述乘指令而生成第三分组数据的多个结果数据元素,其中每个结果数据元素的长度等于所述指令指定的数据元素的长度; 其中所述系统被配置成耦合到用于向用户显示信息的显示设备和用于从用户接收信息的用户输入设备。41.一种处理器,包括 指令高速缓存器,配置成用于存储指令; 指令指针寄存器,配置成存储要执行的指令的地址; 寄存器文件,包括多个寄存器,可操作来根据要执行的指令把浮点数据或者分组数据存储在单个寄存器中,所述分组数据包括多个数据元素; 解码器,耦合到指令指针寄存器和指令高速缓存器,该解码器配置成用于解码分组数据指令,该分组数据指令指定要对所述寄存器中所存储的每个数据元素执行的移位操作,和所述分组数据指令指定要在寄存器中存储的数据元素的大小,所述解码器还配置成解码加载指令,所述加载指令指定要把数据从数据高速缓存器加载到寄存器文件中的加载操作;和 执行单元,耦合到所述寄存器文件和解码器,所述执行单元配置成响应于分组数据指令而独立地移位每个数据元素,并且所述执行单元配置成响应所述加载指令执行加载操作。42.一种处理器,包括 指令高速缓存器,配置成用于存储指令; 指令指针寄存器,配置成存储要执行的指令的地址; 寄存器文件,包括多个寄存器,可操作来根据要执行的指令把浮点数据或者分组数据存储在单个寄存器中,所述分组数据包括一个64位的数据元素,两个32位的数据元素,四个16位的数据元素或者八个8位的数据元素; 解码器,耦合到指令指针寄存器和指令高速缓存器,该解码器配置成用于解码32位的分组数据指令,该32位的分组数据指令指定要对所述寄存器中所存储的每个数据元素执行的移位操作,和所述32位的分组数据指令指定要在寄存器中存储的数据元素的大小,所述解码器还配置成解码加载指令,所述加载指令指定要把数据从数据高速缓存器加载到寄存器文件中的加载操作;和 执行单元,耦合到所述寄存器文件和解码器,所述执行单元配置成响应于分组数据指令而独立地用一定数目的时钟周期移位数据元素中的每个数据元素,所述时钟周期的数目等于所述处理器对非分组数据执行单个移位操作所需要的时钟周期数目,并且所述执行单元还配置成响应所述加载指令执行加载操作。43.一种处理系统,被配置成支持2D/3D图形,图像处理,视频压缩/解压缩以及音频操作,所述系统包括总线,配置成用于传送信息;和 处理器,耦合到所述总线以处理信息,所述处理器包括 指令高速缓存器,配置成用于存储指令; 寄存器文件,包括多个寄存器,可操作来根据要执行的指令把浮点数据或者分组数据存储在单个寄存器中,所述分组数据包括多个数据元素; 解码器,耦合到指令高速缓存器,该解码器配置成用于解码分组数据指令,该分组数据指令指定要对所述寄存器中所存储的每个数据元素执行的移位操作,和所述分组数据指令指定要在寄存器中存储的数据元素的大小;和 执行单元,耦合到所述寄存器文件和解码器,所述执行单元配置成响应于分组数据指令而独立地移位每个数据元素, 其中所述系统被配置成耦合到用于向用户显示信息的显示设备和用于从用户接收信息的用户输入...

【专利技术属性】
技术研发人员:A·D·佩勒格Y·雅里M·米塔尔L·M·门内梅尔B·艾坦A·F·格卢C·杜龙E·科瓦施W·维特
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1