处理器的定制的基本操作的方法与设备的制作方法

文档序号:6410989阅读:250来源:国知局

专利名称::处理器的定制的基本操作的方法与设备的制作方法引用相关申请文件本发明要求1995年9月1日提交的美国临时申请60/003,140号和1995年9月25日提交的美国临时申请60/004,642号的优先权。本说明书中为讨论VLIM处理系统引用了如下专利申请5,103,311号美国专利数据处理模块及包括该模块的视频处理系统;5,450,556号美国专利应用由分支控制单元生成的路径数据阻止非正确路径上操作的VLIW处理器;5,313,551号美国专利软件控制下的多端口存储器旁路;1992年12月29日申请的序列号07/998,080的美国专利申请指令发布槽位数少于功能单元的VLIW处理器;1990年10月5日申请的序列号07/594,534的美国专利申请包括一存储电路和一组功能单元的处理器;1994年12月16日申请的序列号08/358,127的美国专利申请数据处理系统中的例外恢复(exceptionrecovery);以及同时提交的申请应用剪切功能的用于多媒体应用的定制操作的方法与设备;应用多操作数进行单一指令控制下并行处理的定制操作的方法与设备。
背景技术
:1、发明领域本发明涉及应用于执行包括多媒体功能等功能的处理器系统—诸如具有处理高质量视频和音频信号能力、执行专业高级功能操作的系统一的定制操作。2、相关技术描述系统可使用一个通用CPU和附加单元来作为多功能PC增强器。一般来说,PC必须处理有多重标准的视频和音频信号流,用户还要求尽可能有解压和压缩这两种功能。尽管PC机中使用的CPU芯片功能正朝着能解压低分辨率实时视频信号的方向发展,它们还不可能对视频信号进行高质量的解压和压缩。此外,用户还要求系统提供生动的视频和音频信号,同时又不降低系统的响应灵敏度。无论是通用应用软件还是嵌入基于微处理器的应用软件,人们都希望用高级语言进行程序设计。为了有效地支持优化编译器和简单化的编程模型,要求微处理器的体系结构具有一定的特点,例如有较大的线性地址空间、通用寄存器以及直接支持使用线性地址指针的寄存器对寄存器操作。近来微处理器体系结构普遍采用32位线性地址、32位寄存器和32位整数操作,而64位及128位的处理器系统正处于研究开发之中。不过,对于许多算法中进行的数据处理来说,如果数据运算占用全部位数(例如,32位系统中的32位),是对昂贵的硅片资源的一种浪费。有些重要的多媒体应用(如MPEG视频信号流的解压缩),对长度8位的数据项的处理要花费相当长的运算时间。用32、64、128…位类型的运算方式来处理长度短的数据项,不能发挥系统应用的32、64、128…位类型的运算硬件的效率。因而,定制的操作可以同时对数据项进行操作,只要增加少许硬件花费,就能大大地改善运算的效能。其它方法也能达到改善运算效能的类似效果,例如在每个时钟周期执行大量的传统微处理器指令。然而,所述的其它方法对于要求低成本的目标应用,一般来说成本惊人地昂贵。此外,用M位类型的运算(例如32位类型的运算)来处理长度短的N位数据项(N<M)不能发挥系统应用的M位类型的运算硬件的效率。常规的数据信号处理(DSP)运算的逻辑计算模数值。本发明所述的剪切或饱和运算方法在数据处理生成的数据超过寄存器物理限度的信号处理应用中具有特殊的价值。按照常规,当生成的数据超过寄存器物理范围限度时,数据就被映射到有效物理范围的另一端。在进行信号处理时,这种周期性的数据映射会产生恶劣的后果。例如,应用常规方法,一组音量很低的音频信号数据可能会被映射到最高音量对应的位置上。在控制应用和视频/音频信号处理应用系统中,当控制范围或强度范围饱和时,模数值对系统是不利的。发明概述本发明旨在在保留专用嵌入方式的优点,即芯片成本低廉和芯片数少,以及通用处理器可再编程性等优点不变的同时,对系统(例如PC系统)进行增强以提供实时多媒体功能。在PC应用中,本发明超越了固定功能多媒体芯片的功能。与此对应,本发明的一个目的是,以低廉的成本获得极高的多媒体性能。本发明的另一个目的是,提高应用软件的小内核程序的处理速度。本发明的另一个目的是,充分发挥高速缓冲存储器/存储器带宽的优点,同时又不需要过度数量的字节操作指令。本发明的另一个目的是提供功能强大的专门操作,以改善多媒体应用软件的性能。本发明的另一个目的是提供执行中有效地利用专门的位操作硬件的定制操作。本发明的另一个目的是提供专用于应用系统(如多媒体应用软件)的定制操作。本发明的另一个目的是运用能储存多个操作数的多操作数寄存器来进行单指令的控制下的并行处理。这对当前信号样本为8位或16位格式的音频和/或视频处理应用软件具有特殊的好处。本发明的另一个目的是,利用剪切操作在被截断的范围的正确一端保存接收到的信号,如音频或视频信号。本发明的应用范围是从如视频电话这样的低价格、单用途系统到传统个人计算机用的可重新编程的多用途插件卡。另外,本发明还可以应用于容易实行通用多媒体标准—如MPEG-1和MPEG-2的系统。此外,应用本发明能使功能强大的多用途CPU执行各种无论是开放式的还是专有的多媒体算法。在源码级定义软件兼容性的好处是能自由地掌握成本与性能间的最佳平衡。功能强大的编译器保证程序员不需要用繁琐的汇编语言进行程序设计。本发明允许程序员从源码中选用功能强大的低级操作,用熟悉的函数调用文法调用数字信号处理那样的操作。计算机系统包括,1、输入寄存器,每个均用于接收输入数据,每个输入数据含有M位,每个操作数包含N位,其中N小于或等于M;2、一个处理器,该处理器执行一组以选定操作数为对象的操作,每组操作中至少含有一个操作,操作结果产生N位长度的数据;3、一个目的寄存器,用于存放每组操作的运算结果数据。该组操作可以包含一个剪切或饱和操作。此外,该组操作可以并行运行,并且响应某命令集中的一个命令。通过以下的详细说明,本发明还有一些目的和优点,对熟悉本领域的人来说是显而易见的。以下的说明中,只是仅仅通过对本发明最佳实施方式思想的描述,叙述和说明了本发明的较佳实施例。正如将会认识到的,本发明还可以有其它不同的实施方式,在许多明显的方面,可以对本发明的一些细节上作出改进,但都不会偏离本发明的本质。同样,附图及说明的性质也应被视作是说明性的,而不是限制性的。附图简要说明本发明的上述目的以及其它目的的显而易见性,体现在对本发明进行的、包括以下附图的说明中附图1是本发明使用的一示例系统的方框图;附图2所示是CPU寄存器结构的一个例子;附图3(a)所示是存储器中矩阵组织的一个例子;附图3(b)所示是该例中要被执行的一个任务;附图4所示是一例用定制操作进行一个字节矩阵置换的应用;附图5(a)和5(b)所示是执行附图4所示字节矩阵置换的一列操作;附图6所示是一个dspiadd操作;附图7所示是一个dspuadd操作;附图8所示是一个dspidualadd操作;附图9所示是一个dspuquadaddui操作;附图10所示是一个dspimul操作;附图11所示是一个dspumul操作;附图12所示是一个dspidualmul操作;附图13所示是一个dspisub操作;附图14所示是一个dspusub操作;附图15所示是一个dspidualsub操作;附图16所示是一个ifir16操作;附图17所示是一个ifir8ii操作;附图18所示是一个ifir8ui操作;附图19所示是一个ufir16操作;附图20所示是一个ufir8uu操作;附图21所示是一个mergelsb操作;附图22所示是一个mergemsb操作;附图23所示是一个pack16lsb操作;附图24所示是一个pack16msb操作;附图25所示是一个packbytes操作;附图26所示是一个quadavg操作;附图27所示是一个quadumulmsb操作;附图28所示是一个ume8ii操作;附图29所示是一个ume8uu操作;附图30所示是一个iclipi操作;附图31所示是一个uclipi操作;附图32所示是一个uclipu操作;较佳实施例说明附图1是本发明使用的一示例系统的方框图。该系统包括一个微处理器、一个同步动态随机存取寄存器(SDRAM)和作为与多媒体入、出数据流通路接口所需的外部线路。本例中,由一个32位CPU组成VLIW处理器的内核。该CPU使用一个32位线性地址空间和128个全部为通用型的32位寄存器。本系统中没有将寄存器分类归组,相反,任何操作可以使用任何寄存器来存放任何操作数。在本系统中,CPU使用VLIW指令集结构,允许同时发出多达五个同时操作。本例中,这些操作可以指向CPU内27个功能单元中的任何五个,包括整数和浮点算术单元和数据并行的的数字信号处理(DSP)类单元。运用本发明的CPU的操作集中,包括传统的微处理器操作,此外还有多媒体专用操作,它们能极大地加快标准视频信号压缩和解压算法的速度,一个专门操作或者定制操作,即一条指令内的数个操作(本例中是5个)中的一个操作,能执行多达11个传统的微处理器操作。多媒体专用操作与VLIW、RISC或其它体系结构相结合,在多媒体应用中产生巨大的信息通量。本发明允许使用32、64、128…位的寄存器存放数据,执行这些“多媒体”运算。附图2所示是CPU寄存器结构的一个例子。本实施例中的CPU有128个32位通用寄存器,分别以r0…r127记之。本实施例中寄存器r0和r1实际上作为专用寄存器使用,寄存器r2至r127才真正被当作通用寄存器。本系统中,处理器每隔一个时钟周期发出一条长指令,每个这种指令包括几个操作(本实施例中有5个操作),每个操作都类似一条RISC机器指令,所不同的是操作的执行是有条件的,取决于某通用寄存器的内容。寄存器中的数据可以是—例如—整数表示或浮点表示。本实施例中,整数分为‘带符号整数’和‘无符号整数’两种,以二进制数2的补码位模式表示。整数算术运算不会产生陷阱。如果运算结果不可被表示,则返回的位模式是特定于操作的,如在对各运算的说明部分所定义的。典型的情况有对常规加减类操作实行回绕式处理,DSP类型的操作返回值为可表示的最高值或最低值,64位结果(例如无符号整数积)的返回值为其中的最低32位。因为本实施例是32位结构的,它不用浮点表示法表示多媒体运算中使用的数据的值。不过很显然,对64位,128位…结构的系统而言,可以用浮点表示法来表示多媒体运算中使用的数据值。例如,单精度(32位)IEEE-754浮点算术表示法和/或双精度(64位)IEEE-754浮点表示法就可以用来表示数据值。在本发明的结构体系中,所有运算均可选用“保护”(guarded)功能。保护运算有条件地执行运算,其条件值存放在保护寄存器(rguard)中。例如,一个保护的整数加法指令的写法是IFr23iaddr14r10->r13本例的意思是,“ifr23thenr13=r14+r10”。语句“ifr23”根据r23中值的最低有效位(LSB)的内容来判断“真”与“假”。因此,根据r23中值的最低有效位(LSB)的内容,r13要么不变,要么被设置为等于r14与r10的整数和。例如,在本发明的本实施例中,如果LSB被判断为1,就对目的寄存器(rdest)(本例中为r13)进行写操作。保护用于控制对程序员可见的系统状态—如寄存器值、存储器内容及设备状态—等的影响。本发明中的存储器是字节可寻址的。数据的寄存或存储采用“自然对齐”方式,就是说,寄存或存储一个16位数据时,寻找的地址数是2的倍数;寄存或存储一个32位数据时,寻找的地址数是4的倍数。熟悉本领域的人很容易据此修改。计算操作是寄存器对寄存器的操作。一个特定的操作,要有一个或两个寄存器作为操作对象,操作的结果被写入一个目的寄存器(rdest)。定制操作属于特殊的计算操作范畴,象是正常的计算操作,而通用CPU中又没有这些定制操作。定制操作的优点在于允许执行例如多媒体应用软件中的运算。本发明的定制操作是为显著提高重要的多媒体应用软件及其它应用软件的性能而设计的、功能强大的专用操作。如果在应用程序的源码中适当地结合定制操作,会能使该应用程序充分利用本发明的微处理器(例如Philips公司的TrimediaTM-1芯片)的高度并行操作的潜力。无论是通用应用软件还是基于微处理器的嵌入应用,人们都希望用高级语言进行程序设计。为了有效地支持优化编译器和简单化的编程模型,要求微处理器的体系结构具有一定的特点,例如有较大的线性地址空间、通用寄存器以及直接支持使用线性地址指针的寄存器对寄存器操作功能。本发明允许利用系统的全部资源。举例来说,利用32位资源同时处理两个16位数据项或4个8位数据项。这种资源利用只需增加极少的的费用投入就能极大地改进系统的性能。而且,这种资源利用能从在标准的微处理器资源中获得较高的执行速度。有些功能强的定制操作不使用条件转移语句,这有助于调度程序有效地利用目前系统中(例如使用TM-1指令的PhilipsTM-1芯片)每一条指令的五个操作槽(slot)。充满所有五个操作槽,对于计算密集的多媒体应用软件中的内部循环过程,具有特别重要的意义。定制操作帮助本发明以尽可能低的代价换取极高的多媒体操作性能。表1是本发明中定制操作一览表。有些定制操作有不同的格式,其区别表现于对操作数及结果的不同处理上。表示不同格式命令的助记符,试图对上述不同处理加以区分,以便于用户选择合适的操作。当然,每个操作也可以使用完全不同的助记符或名称。表1按功能分类的定制操作一览表<tablesid="table1"num="001"><tablewidth="810">功能助记符说明DSP绝对值dspiabs带符号32位值的绝对值的剪切值dspidualabs两个带符号16位半字的绝对值的剪切值DSP加dspiadd带符号32位值之和的剪切值dspuadd无符号32位值之和的剪切值dspidualadd两个带符号16位半字值之和的剪切值dspuquadaddui四个带符号/无符号字节值之和的剪切值DSP积dspimu1带符号32位值乘积的剪切值dspumu1无符号32位值乘积的剪切值dspidualmu1两个带符号16位半字值乘积的剪切值DSP差dspisub带符号32位值之差的剪切值dspusub无符号32位值之差的剪切值dspidualsub两个带符号16位半字值之差的剪切值积之和ifir16带符号16位半字值乘积之和ifir8ii带符号字节值乘积之和ifir8ui带符号与无符号字节值乘积之和ufir16无符号16位半字值乘积之无符号和ufir8uu无符号字节值乘积之无符号和合并mergelsb合并最低有效字节mergemsb合并最高有效字节打包pack16lsb打包最低有效16位半字pack16msb打包最高有效16位半字packbytes打包最低有效字节字节平均值quadavg四个无符号字节的平均值字节积quadumulmsb四个8位无符号字节对的积的最高字节动态评估ume8ii带符号8位之差的绝对值的无符号的和ume8uu无符号8位之差的绝对值之无符号和</table></tables>下面举例说明本发明所述的一个定制操作的使用方法。本例通过一个字节矩阵变换,简要说明了定制操作是如何显著提高应用软件小型内核的处理速度的。正如大多数定制操作应用所反映的那样,本例中定制操作的效能体现在其对多个数据项进行并行处理的能力上。本例的任务是对存储器中的一个4×4字节压缩矩阵进行转置。该矩阵中的数据可以是例如8位象素值。附图3(a)表示转置前后矩阵数据在存储器中的位置。附图3(b)用标准的数学语言叙述了本例要执行的任务。用传统微处理器指令执行这个过程,其指令直截了当,但却耗费时间。一种方法是,执行12个字节加载指令来加载字节(16个字节中只有12个需要易位),再用12个字节存储指令将它们存放回存储器中的新位置上。另一种方法是执行4个字(Word)加载指令,将已加载各字按字节在寄存器中重新排列,然后在执行4个字(Word)存储指令。不幸的是,在寄存器中将个字节重新排列,需要用大量的指令来进行适当的字节屏蔽和字节移位操作,而第一种方法总共进行24次加载和存储操作,实质上使用了加载/存储单元中的数据移位和数据屏蔽硬件,因而,该方法所需的指令序列长度较短。进行24次加载和存储操作的问题是,加载和存储操作的本身速度并不快至少要访问高速缓冲存储器,可能还要访问存储器体系中速度更慢的某些层次;再者说,进行字节加载和存储操作,通过字长32位的数据接口访问高速缓冲存储器或存储器,这是对高速缓冲存储器或存储器数据接口资源的一种浪费。因此,需要有一种充分发挥高速缓冲存储器/存储器带宽的优点、同时又不需要过度数量的字节操作指令的快速算法。本发明含有对字节和16位半字(halfwords)直接和并行地进行合并(mergemsb和mergelsb)和打包(pack16msb和pack16lsb)的操作指令。这些指令中有四条可应用于本例中来加快将字节打包成字的处理速度。附图4所示的是这些指令在字节矩阵置换例中的应用。附图5(a)所示是进行字节矩阵置换所需的一列操作命令,将其汇编成实际指令时,这些定制操作将尽可能地被相互组合,例如组合成每个指令含有5个操作。附图5(a)中的低级代码在此仅作示意之用。附图5(a)中第一组4个字加载操作(ld32d)将输入矩阵中打包的字送入寄存器r10、r11、r12和r13;第二组4个合并操作(mergemsb和mergelsb)在寄存器r14、r15、r16和r17中生成中间结果;第三组4个打包操作命令(pack16msb和pack16lsb)对源操作数进行替换,假如为了进行其它计算需要保留原矩阵操作数(有一种TM-1优化C编译器可以自动执行这种分析),该组操作可以将转置后的矩阵另存到各个独立的寄存器中。本例中,转置矩阵被用st32d存入四个寄存器r18、r19、r20和r21中。最后4个字存储操作命令将置换后的矩阵存回到存储器中。因此,使用本发明的定制操作,进行该字节矩阵置换需要4个字操作和4个字存储操作(至少这个数)以及8个寄存器到对寄存器的数据处理操作,总共是16次操作,换言之,字节矩阵置换的速度是平均每个字节一次操作。附图5(b)是一段对应的C语言程序。就本例而言,运用基于定制操作的算法与需要24次字节加载和存储操作的简单算法相比,表面上看其优点也就是减少了8次操作(减少了33%),而实际上,其优点远不止于此。首先,运用定制操作时,对存储器的访问次数从24次减少到8次,即减少到原需次数的三分之一,而存储器操作速度要比寄存器间操作速度慢(本例中所用定制操作就是后一种操作),所以,减少访问存储器的次数非常重要。第二,基于定制操作的代码的使用,使本系统采用的编译系统(TM-1系统)利用TM-1微处理器硬件潜在功能的能力得到加强。具体地说,当访问存储器的次数与寄存器间操作的次数相当时,编译系统更容易生成一个对代码的优化调度方案。一般来说,高性能的微处理器在一个时钟周期内访问存储器的次数有一定的限度,如果代码很长,又都是访问存储器的语句,就会在长的TM-1指令中产生空操作槽,从而浪费了硬件的潜在功能。如本例所示,使用本发明的定制操作,可以减少进行一次计算所需操作的绝对次数,也有助于编译系统生成充分利用所用CPU潜能的程序码。对于诸如用于例如一个完整MPEG视频解码算法的MPEG图像恢复系统以及动态评估(motion-estimation)内核等其它应用软件,使用本发明的定制操作也有益处。当然,本发明的定制操作的作用并不仅仅限于这些。表1所列的为本发明包含的定制操作。以下将对这些定制操作逐一地进行详细说明。在以下的功能语句代码中,使用了标准符号、文法等。例如,temp1和temp2代表两个临时寄存器;再例如,功能temp1<-sign_ext16to32(rsrc1<150>)表示将寄存器rsrc1中150位(位0至位15)的内容装入tem1寄存器,其中符号位(本例中为第15位)被扩展至16至32位(符号位扩展);同理,temp2<-sign_ext16to32(rsrc1<1631>)表示将寄存器rsrc1中的第16位至第31位的内容被提取(并被置于第0位至第15位用于计算),其中符号位(本例中为第31位)被扩展至16至32位。扩展符号位用于带符号数值上,本例中的带符号数值为带符号整数。对于无符号数值,使用的是填零方法。表示填零的记法与表示符号扩展的记法类似,例如,zero_ext8to32(rsrc1<150>)表示15至0位的值被用于计算,8至32位要被填零。源寄存器rsrc1与rsrc2及目的寄存器rdest可以是上述任何空闲的寄存器。以下所列各操作中,每个操作可以选用保护(guard)的方式,其在寄存器rguard中定义。如果采用保护方式,则在本例中,其最低有效位(LSB)决定了是否对目的寄存器进行修改。在本例中,如果rguard中的最低有效位的值为1,则对目的寄存器rdest进行写操作,否则就不改变rdest的值。dspiabsdspiabs操作计算一个带符号数的绝对值的剪切值,伪码记作h_dspiabs(硬件dspiabs)。该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{ifrsrc1>=0thenrdest<-rsrc1elseifrsrc1=0x800000000thenrdest<-0x7fffffffelserdest<-rsrc1}]]></pre>dspiabs操作是一个伪操作,由调度程序转换为h_dspiabs,其第一个参数为常量零,第二个参数等于dspiabs的参数。在汇编源程序文件中一般不使用伪操作。h_dspiabs执行与dspiabs相同的功能,只不过前者需要一个零作为其第一个参数。dspiabs计算rsrc1的绝对值,将结果剪切(clip)成[231-1…0]即范围内的值,并将该剪切值存入目的寄存器rdest。所有值都是带符号整数。dspidualabsdspidualabs操作计算两个带符号16位半字(halfword)的绝对值的剪切值,伪码记作h_dspidualabs(硬件dspidualabs)。该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{temp1<-sign_ext16to32(rsrc1<150>)temp2<-sign_ext16to32(rsrc1<3116>)iftemp1=oxffff8000thentemp1<-0x7fffiftemp2=oxffff8000thentemp2<-0x7fffiftemp1<0thentemp1<--temp1iftemp2<0thentemp2<--temp2rdest<3116><-temp2<150>rdest<150<-temp1<150>}]]></pre>dspidualabs操作是一个伪操作,由调度程序转换为双参数的h_dspidualabs,本例中,其第一个参数为常量零,第二个参数等于dspidualabs的参数。dspidualabs操作功能是分别计算寄存器rsrc1内高16位半字(halfword)和低16位半字的两个16位带符号数绝对值的剪切值。两个绝对值均被剪切为范围内的值,并被分别存入目的寄存器rdest中的两个对应的半字位置。所有值都是16位带符号整数。h_dspidualabs操作执行与dspidualabs相同的功能,只不过前者需要一个零作为其第一参数。dspiadddspiadd操作计算带符号数之和的剪切值,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{temp<-sign_ext32to64(rsrc1)+sign_ext32to64(rsrc2)iftemp<0xffffffff80000000thenrdest<-0x80000000elseiftemp>0x00000007fffffffthenrdest<-0x7fffffffelserdest<-temp}]]></pre>如附图6所示,dspiadd操作计算rsrc1+rsrc2的带符号和,将结果剪切成[231-1…-231]即范围内的32位带符号值,并将该剪切值存入目的寄存器rdest。所有值都是带符号整数。dspuadddspuadd操作计算无符号数之和的剪切值,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{temp<-zero_ext32to64(rsrc1)+zero_ext32to64(rsrc2)if(无符号)temp>0x00000000ffffffffthenrdest<-0xffffffffelserdest<-temp<310>}]]></pre>如附图7所示,dspuadd操作计算rsrc1+rsrc2的无符号和,将结果剪切成[231-1…0]即范围内的值,并将该剪切值存入目的寄存器rdest。dspidualadddspidualadd操作计算两个带符号16位半字之和的剪切值,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{temp1<-sign_ext16to32(rsrc1<150>)+sign_ext16to32(rsrc2<150>)temp2<sign_ext16to32(rsrc1<3116>)+sign_ext16to32(rsrc2<3116>)iftemp1<0xffff8000thentemp1<-0x8000iftemp2=0xffff8000thentemp2<-0x8000iftemp1>0x7fffthentemp1<-0x7fffiftemp2<0x7fffthentemp2<-0x7fffrdest<3116><-temp2<150>rdest<150><-temp1<150>}]]></pre>如附图8所示,dspidualadd操作分别计算rsrc1与rsrc2中两对16位半字的16位带符号和的剪切值。两个和数值均被剪切(clip)成[215-1…-215]即范围内的值,写入目的寄存器rdest中对应的半字位置。所有值均为16位带符号整数。dspuquadadduidspuquadaddui操作计算四个带符号与无符号字节(byte)之和的剪切值,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{for(i<-0,m<-31,n<-24;i<4;i<-i+1,m<-m-8,n<-n-8){temp<-zero_ext8to32(rsrc1<mn>)+sign_ext8to32(rsrc2<mn>)iftemp<0thenrdest<mn><-0elseiftemp>0xffthenrdest<mn><-0xffelserdest<mn><-temp<70>}]]></pre>如附图9所示,dspuquadaddui操作为rsrc1与rsrc2的四对8位字节分别计算出四个带符号和,其中假定rsrc1中的各字节值为无符号值,rsrc2中的各字节值为带符号值。将四个和数剪切成无符号的[255…0]即范围内的值,其结果是,所有四个字节和数均为无符号值。所有各计算均保留原数值精度。dspimu1dspimu1操作计算带符号数乘法的剪切值,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{temp<-sign_ext32to64(rsrc1)+sign_ext32to64(rsrc2)iftemp<0xffffffff80000000thenrdest<-0x80000000elseiftemp>0x000000007fffffffthenrdest<-0x7fffffffelserdest<-temp<310>}]]></pre>如附图10所示,dspimu1操作计算rsrc1×rsrc2的积,将结果剪切成[231-1…-231]即范围内的值,并将该剪切值存入目的寄存器rdest。所有值都是带符号整数。dspumu1dspumu1操作计算无符号数乘积的剪切值,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{temp<-zero_ext32to64(rsrc1)×zero_ext32to64(rsrc2)if(无符号值)temp>0x00000000ffffffffthenrdest<-0xffffffffelserdest<-temp<310>}]]></pre>如附图11所示,dspumu1操作计算rsrc1×rsrc2的无符号乘积值,将结果剪切成[231-1…0]即范围内的值,并将该剪切值存入目的寄存器rdest。dspidualmu1dspidualmu1操作计算两个带符号16位半字乘积的剪切值,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{temp1<-sign_ext16to32(rsrc1<150>)×sign_ext16to32(rsrc2<150>)temp2<-sign_ext16to32(rsrc1<3116>)×sign_ext16to32(rsrc2<3116>)iftemp1<0xffff8000thentemp1<-0x8000iftemp2=0xffff8000thentemp2<-0x8000iftemp1>0x7fffthentemp1<-0x7fffiftemp2<0x7fffthentemp2<-0x7fffrdest<3116><-temp2<150>rdest<150><-temp1<150>}]]></pre>如附图12所示,dspidualmu1操作分别计算rsrc1与rsrc2中两对16位高和低半字的带符号乘积的16位剪切值,两个乘积数值均被剪切成[215-1…-215]即范围内的值,并被存入目的寄存器rdest中对应的半字位置。所有值均为16位带符号整数。dspisubdspisub操作计算带符号减的剪切值,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{temp<-sign_ext32to64(rsrc1)-sign_ext32to64(rsrc2)iftemp<0xffffffff80000000thenrdest<-0x80000000elseiftemp>0x000000007fffffffthenrdest<-0x7fffffffelserdest<-temp<310>}]]></pre>如附图13所示,dspisub操作计算rsrc1-rsrc2的算术差,将结果剪切成范围内的值,并将该剪切值存入目的寄存器rdest。所有值都是带符号整数。dspusubdspusub操作计算无符号减的剪切值,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{temp<-zero_ext32to64(rsrc1)-zero_ext32to64(rsrc2)if(带符号值)temp<0thenrdest<-0elserdest<-temp<310>}]]></pre>如附图14所示,dspusub操作计算rsrc1-rsrc2的无符号差,将结果剪切成范围内的值,并将该剪切值存入目的寄存器rdest。dspidualsubdspidualsub操作计算两个带符号16位半字减的剪切值,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{temp1<-sign_ext16to32(rsrc1<150>)-sign_ext16to32(rsrc2<150>)temp2<-sign_ext16to32(rsrc1<3116>)-sign_ext16to32(rsrc2<3116>)iftemp1<0xffff8000thentemp1<-0x8000iftemp2<0xffff8000thentemp2<-0x8000iftemp1>0x7fffthentemp1<-0x7fffiftemp2>0x7fffthentemp2<-0x7fffrdest<3116><-temp2<150>rdest<150><-temp1<150>}]]></pre>如附图15所示,dspidualsub操作分别计算rsrc1与rsrc2中两对16位高和低半字的带符号16位算术差数值,两个算术差数值均被剪切成[215-1…-215]即范围内的值,并被存入目的寄存器rdest中对应的半字位置。所有值均为16位带符号整数。ifir16ifir16操作计算两个带符号16位半字乘积之和,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthenrdest<-signext16to32(rsrc1<3116>)×sign_ext16to32(rsrc2<3116>)+sign_ext16to32(rsrc1<150>)×sign_ext16to32(rsrc2<150>)]]></pre>如附图16所示,ifir16操作先计算rsrc1与rsrc2中两对16位半字的乘积,再将两个乘积数相加后存入目的寄存器rdest。假定所有的半字均为带符号值,因此,两个乘积数及其和也均为带符号数值。所有计算均保留原来的数值精度。ifir8iiifir8ii操作计算带符号字节值乘积的带符号和,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthenrdest<-sign_ext8to32(rsrc1<3124>)×sign_ext8to32(rsrc2<3124>)+sign_ext8to32(rsrc1<2316>)×sign_ext8to32(rsrc2<2316>)+sign_ext8to32(rsrc1<158>)×sign_ext8to32(rsrc2<158>)+sign_ext8to32(rsrc1<70>)×sign_ext8to32(rsrc2<70>)]]></pre>如附图17所示,ifir8ii操作先分别计算rsrc1与rsrc2中四个8位字节对的乘积,再将四个乘积数相加后写入目的寄存器rdest。假定所有的字节值均为带符号值,因此,四个乘积数及其和也均为带符号数值。所有计算均保留原来的数值精度。ifir8uiifir8ui操作计算带符号与无符号字节值乘积的带符号和,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthenrdest<-zero_ext8to32(rsrc1<3124>)×sign_ext8to32(rsrc2<3124>)+zero_ext8to32(rsrc1<2316>)×sign_ext8to32(rsrc2<2316>)+zero_ext8to32(rsrc1<158>)×sign_ext8to32(rsrc2<158>)+zero_ext8to32(rsrc1<70>)×sign_ext8to32(rsrc2<70>)]]></pre>如附图18所示,ifir8ui操作先分别计算rsrc1与rsrc2中四个8位字节对的乘积,再将四个乘积数相加后存入目的寄存器rdest。假定rsrc1中的字节值为无符号值,rsrc2中的字节值为带符号值,因此,四个乘积数及其和也均为带符号数值。所有计算均保留原来的数值精度。ufir16ufir16操作计算无符号16位半字值乘积之和,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{rdest<-zero_ext16to32(rsrc1<3116>)×zero_ext16to32(rsrc2<3116>)+zero_ext16to32(rsrc1<150>)×zero_ext16to32(rsrc2<150>)]]></pre>如附图19所示,ufir16操作先计算rsrc1与rsrc2中两对16位半字的乘积,再将两个乘积数相加后存入目的寄存器rdest。假定所有的半字均为无符号值,因此,两个乘积数及其和也均为无符号数值。所有计算均保留原来的数值精度。最后的积之和在被写入rdest之前被剪切成范围的值。ufir8uuufir8uu操作计算无符号字节值乘积之和的无符号和,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{rdest<-zero_ext8to32(rsrc1<3124>)×zero_ext8to32(rsrc2<3124>)+zero_ext8to32(rsrc1<2316>)×zero_ext8to32(rsrc2<2316>)+zero_ext8to32(rsrc1<158>)×zero_ext8to32(rsrc2<158>)+zero_ext8to32(rsrc1<70>)×zero_ext8to32(rsrc2<70>)]]></pre>如附图20所示,ufir8uu操作先分别计算rsrc1与rsrc2中四个8位字节对的乘积,再将四个乘积数相加后存入目的寄存器rdest。假定所有的字节值均为无符号值。所有计算均保留原精度。mergelsbmergelsb操作为合并最低有效字节,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{rdest<70><-rsrc2<70>rdest<158><-rsrc1<70>rdest<2316><-rsrc2<158>rdest<3124><-rsrc1<158>]]></pre>如附图21所示,mergelsb操作从rsrc1与rsrc2各取两对最低有效字节合并存入rdest中。其中rsrc2中的最低有效字节被组合到rdest中的最低有效字节位置,rsrc1中的最低有效字节被组合到rdest中的次低有效字节位置,rsrc2中的次低有效字节被组合到rdest中的次高有效字节位置,rsrc1中的次低有效字节被组合到rdest中的最高有效字节位置。mergemsbmergemsb操作为合并最高有效字节,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{rdest<70><-rsrc2<2315>rdest<158><-rsrc1<2315>rdest<2316><-rsrc2<3124>rdest<3124><-rsrc1<3124>]]></pre>如附图22所示,mergemsb操作从rsrc1与rsrc2各取两对最高有效字节合并存入rdest中。其中rsrc2中的次高有效字节被放置到rdest中的最低有效字节位置,rsrc1中的次高有效字节被放置到rdest中的次低有效字节位置,rsrc2中的最高有效字节被放置到rdest中的次高有效字节位置,rsrc1中的最高有效字节被放置到rdest中的最高有效字节位置。pack16lsbpack16lsb操作为打包最低有效16位半字,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{rdest<150><-rsrc2<150>rdest<3116><-rsrc1<150>]]></pre>如附图23所示,pack16lsb操作从rsrc1与rsrc2各取一个最低有效16位半字组合存入rdest中。其中rsrc1中的最低有效16位半字被放置到rdest中的最高有效半字位置,rsrc2中的最低有效16位半字被放置到rdest中的最低有效半字位置。pack16msbpack16msb操作为打包最高有效16位半字,该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{rdest<150><-rsrc2<3116>rdest<3116><-rsrc1<3116>]]></pre>如附图13所示,pack16msb操作从rsrc1与rsrc2各取一个最高有效16位半字组合存入rdest中。其中rsrc1中的最高有效16位半字被放置到rdest中的最高位半字位置,rsrc2中的最高有效16位半字被放置到rdest中的最低位半字位置。packbytespackbytes操作是打包最低字节,它具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{rdest<70><-rsrc2<70>rdest<158><-rsrc1<70>]]></pre>如附图25所示,packbytes操作从rsrc1与rsrc2各取一个最低有效字节组合存入rdest中。其中rsrc1中的最低有效字节被放置到rdest中的次低有效字节位置,rsrc2中的最低有效字节被放置到rdest中的最低有效字节位置。rdest中的两个最高有效字节位置被填零。quadavgquadavg操作计算四个无符号字节的平均值。该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{temp<-(zero_ext8to32(rsrc1<70>)+zero_ext8to32(rsrc2<70>)+1)/2rdest<70><-temp<70>temp<-(zero_ext8to32(rsrc1<158>)+zeroext8to32(rsrc2<158>)+1)/2rdest<158><-temp<70>temp<-(zero_ext8to32(rsrc1<2316>)+zero_ext8to32(rsrc2<2316>)+1)/2rdest<2316><-temp<70>temp<-(zero_ext8to32(rsrc1<3124>)+zero_ext8to32(rsrc2<3124>)+1)/2rdest<3124><-temp<70>}]]></pre>如附图26所示,quadavg操作对寄存器rser1与rscr2中的四对8位字节分别计算平均值。假定所有字节均为无符号字节。每对字节的平均值的最低8位被写入目的寄存器rdest中与该对字节位置相对应的字节位置。不对上溢与下溢情况作检查。quadumulmsbquadumulmsb操作计算四个无符号8位字节对的积的最高字节。该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{temp<-(zero_ext8to32(rsrc1<70>)×zero_ext8to32(rsrc2<70>))rdest<70><-temp<158>temp<-(zero_ext8to32(rsrc1<158>)×zero_ext8to32(rsrc2<158>))rdest<158><-temp<158>temp<-(zero_ext8to32(rsrc1<2316>)×zero_ext8to32(rsrc2<2316>))rdest<2316><-temp<158>temp<-(zero_ext8to32(rsrc1<3124>)×zero_ext8to32(rsrc2<3124>))rdest<3124><-temp<158>}]]></pre>如附图27所示,quadumulmsb操作分别计算寄存器rscr1与rscr2中的四对8位字节的积。假定所有字节均为无符号字节。每对字节的16位积的最高8位被写入目的寄存器rdest中与该对字节位置相对应的字节位置。ume8iiume8ii操作计算带符号8位字节之差的绝对值的无符号之和。该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthenrdest<-abs_val(sign_ext8to32(rsrc1<3124>)-sign_ext8to32(rsrc2<3124>))+abs_val(sign_ext8to32(rsrc1<2316>)-sign_ext8to32(rsrc2<2316>))+abs_val(sign_ext8to32(rsrc1<158>)-sign_ext8to32(rsrc2<158>))+abs_val(sign_ext8to32(rsrc1<70>)-sign_ext8to32(rsrc2<70>))]]></pre>如附图28所示,ume8ii操作分别计算寄存器rscr1与rscr2中的四对带符号8位字节的差,并将这四个差的绝对值的和写入目的寄存器rdest。所有计算均保留原精度。ume8uuume8uu操作计算无符号8位字节之差的绝对值之和。该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthenrdest<-abs_val(zero_ext8to32(rsrc1<3124>)-zero_ext8to32(rsrc2<3124>))+abs_val(zero_ext8to32(rsrc1<2316>)-zero_ext8to32(rsrc2<2316>))+abs_val(zero_ext8to32(rsrc1<158>)-zero_ext8to32(rsrc2<158>))+abs_val(zero_ext8to32(rsrc1<70>)-zero_ext8to32(rsrc2<70>))]]></pre>如附图29所示,ume8uu操作分别计算寄存器rscr1与rscr2中的四对无符号8位字节的差,并将这四个差的绝对值的和写入目的寄存器rdest。所有计算均保留原精度。iclipiiclipi操作将一带符号值剪切为另一带符号值。该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthenrdest<-min(max(rscr1,-rscr2-1),rscr2)]]></pre>iclipi操作返回scrc1在无符号整数范围-rscr2-1至rscr2内(包含边界值)的剪切值。假定参数rsrc1是带符号整数,rscr2是0至0x7fffffff范围内(包含边界值)的一个无符号整数。uclipiuclipi操作将一带符号值剪切为另一无符号值。该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthenrdest<-min(max(rscr1,0),rscr2)]]></pre>uclipi操作返回scrc1在无符号整数范围0至rscr2内(包含边界值)的剪切值。假定参数rsrc1是无符号整数,rscr2无符号整数。uclipuuclipu操作将一无符号值剪切为另一无符号值。该操作具有以下功能<prelisting-type="program-listing"><![CDATA[ifrguardthen{ifrscr1>rscr2thenrdest<-rscr2elserdest<-rscr1}]]></pre>uclipu操作返回scrc1在无符号整数范围0至rscr2内(包含边界值)的剪切值。假定参数rsrc1及rscr2均为带符号整数。通过运用以上的多媒体定制操作,应用软件具有以较低的成本使微处理器高度并行地执行多媒体功能的优点。从以上说明应该了解的是,本发明可应用于用VLIW、RISC、超标量等指令格式的处理器高度并行处理。此外,熟悉本领域的人也可以容易地根据以上思想添加一些操作。例如,虽然本说明中未对四对字节剪切差的操作予以专门描述,但熟悉本领域的人可以容易地根据以上说明开发出这条操作命令。本文至此就描述了用于执行多媒体功能的定制操作的方法和系统。本文仅描述和显示了本发明的较佳实施例,但正如前所述,应该清楚,本发明能被应用于其它各种组合与环境中,并能在所表述的本发明思想的范围内加以修改。权利要求1.一个计算机系统,包括接收输入数据的输入寄存器,每个输入数据含有M位,每个输入数据中具有操作数,每个操作数包含M位输入数据中N位,其中N小于或等于M;一个处理器,该处理器在某指令集中的一个指令的控制下,并行执行Q个以输入数据的操作数为对象的运算操作产生N位的结果数据;一个目的寄存器,用于存放作为M位输出的Q组运算结果数据。2.一个计算机系统,包括提供M位输入数据的输入寄存器,每个输入数据至少包含两个操作数,每个操作数包含N位,其中N小于或等于M;一个专用处理器,并行执行一组以输入数据中选定操作数为操作对象的运算操作,每组操作产生N位的结果数据;该处理器响应某指令集中的某个指令而执行操作;一个M位目的寄存器,用于存放N位结果数据,用作一个M位输出数据。3.如权利要求2中所述的计算机系统,其中各M位输入寄存器的每个输入数据包括一个N位的第一操作数和一个N位的第二操作数;该处理器包括将第一输入数据中的第一操作数与第二输入数据中的第一操作数相加产生一个N位的第一操作结果数据以及将第一输入数据中的第二操作数与第二输入数据中的第二操作数相加产生一个N位的第二操作结果数据的装置,以及将各个结果数据在某限定范围内分别剪切成长度分别为N位的剪切结果数据的装置;由所述目的寄存器将该分别剪切的结果数据存储在一起。4.如权利要求2中所述的计算机系统,其中M位的输入数据包括长度各为N位的两个操作数;该处理器包括计算每个操作数的绝对值并分别产生N位长度的绝对值的结果数据的装置,以及将各个绝对值在某限定范围内分别剪切成长度各为N位的剪切结果数据的装置;由所述目的寄存器将该分别剪切的结果数据存储在一起。5.如权利要求2中所述的计算机系统,其中M位的输入数据包含一个N位的第一操作数和一个N位的第二操作数;该处理器包括将第一输入数据中的第一操作数与第二输入数据中的第一操作数相乘产生第一个积以及将第一输入数据中的第二操作数与第二输入数据中的第二操作数相乘产生第二个积、两个积的长度均为N位的装置,以及将各个积在某限定范围内分别剪切成长度各为N位的剪切结果数据的装置由所述目的寄存器将该分别剪切的结果数据存储在一起。6.如权利要求2中所述的计算机系统,其中M位的输入数据包含一个N位的第一操作数和一个N位的第二操作数;该处理器包含将第一输入数据中的第一操作数与第二输入数据中的第一操作数相减产生第一个差、将第一输入数据中的第二操作数与第二输入数据中的第二操作数相减产生第二个差、两个差的长度均为N位的装置,以及将第一个差与第二个差在某限定范围内分别剪切成长度各为N位的剪切结果数据的装置;由所述目的寄存器将该分别剪切的结果数据存储在一起。7.如权利要求2中所述的计算机系统,其中M位的输入数据包含P个长度各为N位的操作数,其中P至少是2;该处理器包含将第一输入数据P个操作数中的每个操作数依次与第二输入数据P个操作数中对应的操作数相加、每次相加产生一个对应的N位的和的装置,以及将各个和在某限定范围内分别剪切成P个N位的剪切结果数据的装置;由所述目的寄存器将该P个剪切结果数据存储在一起。8.如权利要求2中所述的计算机系统,其中M位的输入数据包含P个长度各为N位的操作数,其中P至少是2;该处理器包含将第一输入数据P个操作数中的每个操作数依次与第二输入数据P个操作数中对应的操作数相减、每次相减产生一个对应的N位的差的装置,以及将各个差在某限定范围内分别剪切成P个N位的剪切结果数据的装置;由所述目的寄存器将该P个剪切结果数据存储在一起。9.如权利要求2中所述的计算机系统,其中M位的输入数据包含P个长度各为N位的操作数,其中P至少是2;该处理器包含将第一输入数据P个操作数中的每个操作数依次与第二输入数据P个操作数中对应的操作数相乘、每次相乘产生一个对应的N位的积的装置,以及将各个积在某限定范围内分别剪切成P个N位的剪切结果数据的装置;由所述目的寄存器将该P个剪切结果数据存储在一起。10.如权利要求2中所述的计算机系统,其中M位的输入数据包含P个长度各为N位的操作数,其中P至少是2;该处理器包含依次计算第一输入数据与第二输入数据内P对操作数中的每对操作数的平均值、每次计算产生一个对应的N位的平均值的装置;由所述目的寄存器存储该P个平均值。11.如权利要求2中所述的计算机系统,其中M位的输入数据包含P个长度各为N位的操作数,其中P至少是2;该处理器包含将第一输入数据P个操作数中的每个操作数依次与第二输入数据P个操作数中对应的操作数相乘、每次相乘产生一个对应的2*N位的积的装置;由所述目的寄存器从各个积中读取共N个选定位,形成对应的中间数据,将该P个中间数据存储到某目的寄存器,所述目的寄存器长度为M位。12.一个计算机系统,包括一个输入寄存器,用于提供M位的输入数据;一个处理器,用于从输入数据读取N个位的数据值用于P输入数据N<M;一个目的寄存器,用于存放从P输入数据的读取的各组N位数据值。13.一个计算机系统,包括一个输入寄存器,用于提供M位的输入数据;一个处理器,用于从输入数据中每个输入数据读取N个位的数据值用于P数据,N<M,该处理器包含将该从P输入数据的读取的各组N位数据值组合存入一个目的寄存器的装置。14.如权利要求12中所述的计算机系统,其中P为2,N为M的一半,并且所述处理器读取输入数据的最高有效位组(bits)或输入数据的最低有效位组之一。15.如权利要求12中所述的计算机系统,其中提供一个第一输入数据和一个第二输入数据;所述处理器读取各个输入数据的最高有效位组(msb),各个最高有效位组被分别用作最高有效位组内的最高有效位组(mmsb)和最高有效位组内的最低有效位组(lmsb);所述打包装置将第一输入数据中的最高有效位组内的最高有效位组(mmsb)组合成目的寄存器中的最高有效位组;所述打包装置将第二输入数据中的最高有效位组内的最高有效位组(mmsb)组合成寄存器中的次高有效位组;所述打包装置将第二输入数据中的最高有效位组内的最低有效位组(lmsb)组合成寄存器中的最低有效位组;所述打包装置将第一输入数据中的最高有效位组内的最低有效位组(lmsb)组合成寄存器中的次低有效位组。16.如权利要求12中所述的计算机系统,其中提供一个第一输入数据和一个第二输入数据;所述处理器读取各个输入数据的最低有效位组(lsb),各个最低有效位组被分别用作最低有效位组内的最高有效位组(mlsb)和最低有效位组内的最低有效位组(llsb);所述打包装置将第一输入数据中的最低有效位组内的最高有效位组(mlsb)组合成寄存器中的最高有效位组;所述打包装置将第二输入数据中的最低有效位组内的最高有效位组(mlsb)组合成寄存器中的次高有效位组;所述打包装置将第二输入数据中的最低有效位组内的最低有效位组(llsb)组合成寄存器中的最低有效位组;所述打包装置将第一输入数据中的最低有效位组内的最低有效位组(llsb)组合成寄存器中的次低有效位组。17.如权利要求12中所述的计算机系统,其中提供一个第一输入数据和一个第二输入数据;所述处理器读取各个输入数据的最低有效位组(lsb);所述打包装置将第二输入数据中的最低有效位组(lsb)组合成目的寄存器中的最低有效位组;所述打包装置将第一输入数据中的最低有效位组(lsb)组合成目的寄存器中的次低有效位组;所述打包装置用预定的位值填充目的寄存器中的最高有效位组。18.一个计算机系统,包含一个用于接收输入数据的输入寄存器,每个输入数据有M位,包含Q个操作数,每个操作数包含N位,其中N小于或等于M;一个用于对所述输入数据进行数据处理的处理器,所述数据处理包括并行执行以选定操作数为操作对象的一组运算操作,每组操作产生对应于各个操作数的N位长度的结果数据;一个用于存放作为包括M位的输出数据的Q个结果数据的目的寄存器。19.如权利要求18中所述的计算机系统,其中所述数据处理至少是音频处理和视频处理之一。20.如权利要求18中所述的计算机系统,其中所述计算机系统集成在半导体基片上。21.一个计算机系统,包含一个用于提供输入数据的输入寄存器,输入数据包含操作数;一个用于执行以操作数为操作对象的一组运算操作的处理器,所述操作包含剪切功能,所述处理器产生结果数据;一个用于存放结果数据中选定数据的目的寄存器。22.如权利要求21中所述的计算机系统,其中每个输入数据至少包含两个操作数;所述处理器响应某指令集中的某个指令而并行执行选定的操作,所述操作包含剪切功能并产生结果数据。23.一个计算机系统,包含一组输入寄存器,每个存放多个操作数的连接;从输入寄存器中接收操作数、响应某指令并行执行以该操作数中特定操作数为操作对象的一组操作的数据处理装置,所述操作包括单操作数的第一种操作和多操作数的第二种操作,每个操作均产生结果数据,每一组操作产生各自的输出数据,并且至少包含一个操作;一个与该数据处理装置相连、用于将各个输出结果数据存放一起的目的寄存器。24.一个用于信号数据处理的信号处理系统,包含至少一个用于存储和提供信号数据的输入寄存器;一个处理器,用于在指令控制下,执行系统硬件提供的一组机器指令,每个指令指示该处理器至少执行一个操作并产生结果数据,该组指令至少包含一个剪切指令,用于在将对信号数据操作的结果数据送到目的寄存器之前对该结果数据进行剪切。25.权利要求24中的计算机系统,其中所述计算机系统集成在半导体基片上。全文摘要定制操作可用于执行包括多媒体功能在内等功能的处理器系统。这些定制操作在保留专用嵌入方案的成本低廉芯片数少等优点以及通用处理器可编程性等优点不变的同时,提高系统(诸如PC系统)提供实时多媒体功能的能力。这些定制操作所作用的计算机系统,提供带操作数的输入数据,对操作数进行操作,并将结果送到目的寄存器。所执行的操作包括包含剪切或饱和操作在内的视频与音频信号处理。本发明也以来自输入寄存器(rscr)的选定操作数为运算对象进行并行操作并将操作结果存入目的寄存器(rdes)。文档编号G06F9/302GK1173931SQ96191245公开日1998年2月18日申请日期1996年8月30日优先权日1995年9月1日发明者G·斯莱芬伯格,P·范德穆伦,赵镛显,V·梅拉,李彦志申请人:菲利浦电子北美公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1