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

一种用于执行多媒体应用的操作的装置、系统和方法制造方法及图纸

技术编号:2869811 阅读:124 留言:0更新日期:2012-04-11 18:40
一种装置,包括:    存储区,所述存储区存储包括每一个都具有多个数据元素的分组数据的数据;    执行单元,所述执行单元执行具有用于标识第一源数据和第二源数据的格式的分组数据指令集所指定的操作,其中所述分组数据指令集指定至少如下操作,包括:    一个或多个分解类型操作,其中每个导致在所述存储区生成和存储结果分组数据,所述结果分组数据包括少于所述第一源数据的数据元素和所述第二源数据的对应数据元素交错的数据元素的全部;    一个或多个组装类型的操作,其中每个导致在所述存储区生成和存储结果分组数据,所述结果分组数据包括从所述第一源数据和所述第二源数据中的每个数据元素中求出的多个位部分;    一个或多个分组乘类型操作,其中每个导致在所述存储区生成和存储结果分组数据,所述结果分组数据仅包括作为独立结果元素的高阶或者低阶位,所述高阶或者低阶位来自与所述第二源数据的对应数据元素相乘后的所述第一源数据的每个数据元素;    一个或多个分组加类型操作,其中每个导致在所述存储区生成和存储结果分组数据,所述结果分组数据包括作为独立的结果元素的与所述第二源数据的对应数据元素进行了相加的所述第一源数据的每个数据元素;和    一个或多个分组减类型操作,其中每个导致在所述存储区生成和存储结果分组数据,所述结果分组数据包括作为独立的结果元素的被从所述第一源数据的对应数据元素中减去的所述第二源数据的每个数据元素;    一个或多个分组比较类型操作,其中每个导致在所述存储区生成和存储结果分组数据,所述结果分组数据包括作为独立的结果元素的掩码,所述掩码表示将所述第一源数据中的每个数据元素之一和所述第二源数据中的对应数据元素进行对应的比较,所述掩码中的那些对应比较为真的掩码的每一个包括多个都具有第一预定值的位,并且所述掩码中的那些对应比较为假的掩码的每一个包括多个都具有第二预定值的位;    一个或多个乘加类型操作,其中每个导致在所述存储区生成和存储结果分组数据,所述结果分组数据包括第一结果元素和第二结果元素,所述第一和第二结果元素被存储而没有对所述第一和第二结果元素进行求和,其中所述第一结果元素表示将所述第一源数据和所述第二源数据的两对对应数据元素相乘的结果的第一个和,所述第二结果元素表示将所述第一源数据和所述第二源数据的不同两对的对应数据元素相乘的结果的第二个和,所述第一和第二结果元素具有比用于生成所述第一和第二结果元素的所述第一和第二源数据中的每个数据元素更高的精度;以及    一个或多个分组移位类型的操作,其中每个导致在所述存储区生成和存储结果分组数据,所述结果分组数据包括作为独立的结果元素的所述第一源数据,所述第一源数据中的每个数据元素已经进行了由所述第二源数据指定的量的移位并且对每个数据元素的所述量的位进行了填充,如果需要,则使用填充值来填充。(*该技术在2016年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术具体涉及计算机系统领域。更具体地,本专利技术涉及分组数据操作领域。
技术介绍
在典型的计算机系统中,将处理器实现为利用产生一种结果的指令在由大量的位(如64)表示的值上操作。例如,执行加法指令将第一个64位值与第二个64位值相加并作为第三个64位值存储该结果。然而,多媒体应用(诸如以计算机支持的协作为目的的应用(CSC-电话会议与混合媒体数据处理的集成)、2D/3D图形、图象处理、视频压缩/解压、识别算法与音频处理)要求处理可以用少量的位表示的大量数据。例如,图形数据通常需要8或16位,声音数据通常需要8或16位。这些多媒体应用的各个需要一种或多种算法,各需要若干操作。例如,算法可能需要加法、比较及移位操作。为了改进多媒体应用(以及具有相同特征的其它应用),先有技术处理器提供分组数据格式。分组数据格式中通常用来表示单个值的位被分成若干固定长度的数据元素,各元素表示单独的值。例如,可将一个64位寄存器分成两个32位元素,各元素表示一个单独的32位值。此外,这些先有技术处理器提供并行分开处理这些分组数据类型中各元素的指令。例如,分组的加法指令将来自第一分组数据与第二分组数据的对应数据元素相加。从而,如果多媒体算法需要包含必须在大量数据元素上执行的五种操作的循环,总是希望组装该数据并利用分组数据指令并行执行这些操作。以这一方式,这些处理器便能更高效地处理多媒体应用。然而,如果该操作循环中包含处理器不能在分组数据上执行的操作(即处理器缺少适当的指令),则必须分解该数据来执行该操作。例如,如果多媒体算法要求加法运算而不能获得上述分组加法指令,则程序员必须分解第一分组数据与第二分组数据(即分开包含第一分组数据与第二分组数据的元素),将各个分开的单独的元素相加,然后将结果组装成分组的结果供进一步分组处理。执行这种组装与分解所需的处理时间通常抵消了提供分组数据格式的性能优点。因此,希望在通用处理器上包含提供典型多媒体算法所需的所有操作的分组数据指令集。然而,由于当今微处理器上的有限芯片面积,可以增加的指令数目是有限的。包含分组数据指令的一种通用处理器便是加州Santa Clara的Intel公司制造的i860XPTM处理器。i860XP处理器包含具有不同元素大小的若干分组数据类型。此外,i860XP处理器包含分组加法与分组比较指令。然而,分组加法指令并不断开进位链,因此程序员必须保证软件正在执行的运算不会导致溢出,即运算不会导致来自分组数据中一个元素的位溢出到该分组数据的下一元素中。例如,如果将值1加到存储“11111111”的8位分组数据元素上,便出现溢出而结果为“100000000”。此外,i860XP所支持的分组数据类型中的小数点位置是固定的(即i860XP处理器支持数8.8、6.10与8.24,其中数i.j包含i个最高位及小数点后的j位)。从而限制了程序员可以表示的值。由于i860XP处理器只支持这两条指令,它不能执行采用分组数据的多媒体算法所要求的许多运算。另一种支持分组数据的通用处理器便是Motorala公司制造的MC88110TM处理器。MC88110处理器支持具有不同长度元素的若干种不同的分组数据格式。此外,MC88110处理器所支持的分组指令集中包括组装、分解、分组加法、分组减法、分组乘法、分组比较与分组旋转。MC88110处理器分组命令通过连接第一寄存器对中的各元素的(t*r)/64(其中t为该分组数据的元素中的位数)个最高有效位进行操作来生成宽度为r的一个字段。该字段取代存储在第二寄存器对中的分组数据的最高有效位。然后将这一分组数据存储在第三寄存器对中并左旋r位。下面在表1与2中示出所支持的t与r值,以及这一指令的运算实例。 X=未定义的操作表1 表2分组指令的这一实现具有两个缺点。第一是需要附加的逻辑在指令结束时执行旋转。第二是生成分组数据结果所需的指令数目。例如,如果希望使用4个32位值来生成第三寄存器(以上所示)中的结果,便需要两条具有t=32与r=32的指令,如下面表3中所示。ppack Source1,Source2 (源1)(源2)(结果1) ppack Result1,Source3 (结果1)(源3)(结果2)表3MC88110处理器分解命令通过将来自分组数据的4、8或16位数据元素放入两倍长(8、16或32位)的数据元素的低位一半中,并填充以零,即将得出的数据元素的较高位设定为零进行操作。下面表4中示出了这一分解命令的操作的一个例子。第一寄存器对 321 0表4MC88110处理器分组乘法指令将64位分组数据的各元素乘以一个32位值,如同该分组数据表示单一的值一样,如下面表5中所示。 表5 这一乘法指令具有两个缺点。首先这一乘法指令并不断开进位链,从而程序员必须保证在分组数据上执行的运算并不导致溢出。结果,程序员有时必须加入附加的指令来防止这一溢出。第二,这一乘法指令将分组数据中的各元素乘以单一的值(即该32位值)。结果,用户没有选择分组数据中哪些元素乘以该32位值的灵活性。因此,程序员必须制备数据使得分组数据中的每一个元素上都需要相同的乘法或者每当需要对该数据中少于全部元素进行乘法时浪费处理时间来分解数据。因此程序员不能并行利用多个乘数来执行多个乘法。例如,将8个不同的数据片相乘,每一数据片一个字长,需要四次单独的乘法运算。各运算每次乘两个字,实际上浪费了用于位16以上的位的数据线与电路。MC88110处理器分组比较指令比较来自第一分组数据与第二分组数据的对应的32位数据元素。两个比较中各个可能返回小于(<)或大于等于(≥)之一,得出四种可能的组合。该指令返回一个8位结果串;四位表示符合四种可能条件中哪一种,四位表示这些位的补码。根据这一指令的结果的条件转移能以两种方式实现1)用一序列条件转移;或2)用跳转表。该指令的问题在于它需要根据数据的条件转移来执行函数的事实,诸如if Y>A then X=X+B else X=X。这一函数的伪码编译表示将是比较Y,A 新的微处理器试图通过推测转移到哪里来加快执行。如果预测正确,便不损失性能并且存在着提高性能的潜力。然而如果预测错误,便损失性能。因此,预测得好的鼓励是巨大的。然而根据数据的转移(诸如上面的)呈现为不可预测的方式,这破坏了预测算法并得出更多的错误预测。结果,使用这一比较指令来建立根据数据的条件转移要付出性能上的高昂代价。MC88110处理器旋转指令旋转一个64位值到0与60位之间的任一模4边界上(见下面表6的示例)。 表6由于旋转指令使移出寄存器的高位移入寄存器的低位,MC88110处理器并不支持单个地移位分组数据中的各元素。结果,要求单独移位分组数据类型中各元素的编程算法需要1)分解数据,2)单独地在各元素上执行移位,及3)将结果组装成结果分组数据供进一步分组数据处理。
技术实现思路
本专利技术描述了在处理器中加入支持典型的多媒体应用所要求的操作的分组数据指令集的方法与装置。在一个实施例中,本专利技术包括一个处理器及一个存储区。存储区中包含若干指令供处理器执行以操作分组数据。在这一实施例中,这些指令包括组装、分解、分组加法、分组减法、分组乘法本文档来自技高网
...

【技术保护点】

【技术特征摘要】

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

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

1
相关领域技术
  • 暂无相关专利