【技术实现步骤摘要】
本专利技术具体涉及计算机系统领域。更具体地,本专利技术涉及分组数据操作领域。
技术介绍
在典型的计算机系统中,将处理器实现为利用产生一种结果的指令在由大量的位(如64)表示的值上操作。例如,执行加法指令将第一个64位值与第二个64位值相加并作为第三个64位值存储该结果。然而,多媒体应用(诸如以计算机支持的协作为目的的应用(CSC-电话会议与混合媒体数据处理的集成)、2D/3D图形、图象处理、视频压缩/解压、 识别算法与音频处理)要求处理可以用少量的位表示的大量数据。例如,图形数据通常需要8或16位,声音数据通常需要8或16位。这些多媒体应用的各个需要一种或多种算法,各需要若干操作。例如,算法可能需要加法、比较及移位操作。为了改进多媒体应用(以及具有相同特征的其它应用),先有技术处理器提供分组数据格式。分组数据格式中通常用来表示单个值的位被分成若干固定长度的数据元素,各元素表示单独的值。例如,可将一个64位寄存器分成两个32位元素,各元素表示一个单独的32位值。此外,这些先有技术处理器提供并行分开处理这些分组数据类型中各元素的指令。例如,分组的加法指令将来自第一分组数据与第二分组数据的对应数据元素相加。从而,如果多媒体算法需要包含必须在大量数据元素上执行的五种操作的循环,总是希望组装该数据并利用分组数据指令并行执行这些操作。以这一方式,这些处理器便能更高效地处理多媒体应用。然而,如果该操作循环中包含处理器不能在分组数据上执行的操作(即处理器缺少适当的指令),则必须分解该数据来执行该操作。例如,如果多媒体算法要求加法运算而不能获得上述分组加法指令,则程序员必 ...
【技术保护点】
【技术特征摘要】
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·维特,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。