專(zhuān)利名稱::在分組數(shù)據(jù)上操作的指令集的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明具體涉及計(jì)算機(jī)系統(tǒng)領(lǐng)域。更具體地,本發(fā)明涉及分組數(shù)據(jù)操作領(lǐng)域。在典型的計(jì)算機(jī)系統(tǒng)中,將處理器實(shí)現(xiàn)為利用產(chǎn)生一種結(jié)果的指令在由大量的位(如64)表示的值上操作。例如,執(zhí)行加法指令將第一個(gè)64位值與第二個(gè)64位值相加并作為第三個(gè)64位值存儲(chǔ)該結(jié)果。然而,多媒體應(yīng)用(諸如以計(jì)算機(jī)支持的協(xié)作為目的的應(yīng)用(CSC-電話會(huì)議與混合媒體數(shù)據(jù)處理的集成)、2D/3D圖形、圖象處理、視頻壓縮/解壓、識(shí)別算法與音頻處理)要求處理可以用少量的位表示的大量數(shù)據(jù)。例如,圖形數(shù)據(jù)通常需要8或16位,聲音數(shù)據(jù)通常需要8或16位。這些多媒體應(yīng)用的各個(gè)需要一種或多種算法,各需要若干操作。例如,算法可能需要加法、比較及移位操作。為了改進(jìn)多媒體應(yīng)用(以及具有相同特征的其它應(yīng)用),先有技術(shù)處理器提供分組數(shù)據(jù)格式。分組數(shù)據(jù)格式中通常用來(lái)表示單個(gè)值的位被分成若干固定長(zhǎng)度的數(shù)據(jù)元素,各元素表示單獨(dú)的值。例如,可將一個(gè)64位寄存器分成兩個(gè)32位元素,各元素表示一個(gè)單獨(dú)的32位值。此外,這些先有技術(shù)處理器提供并行分開(kāi)處理這些分組數(shù)據(jù)類(lèi)型中各元素的指令。例如,分組的加法指令將來(lái)自第一分組數(shù)據(jù)與第二分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素相加。從而,如果多媒體算法需要包含必須在大量數(shù)據(jù)元素上執(zhí)行的五種操作的循環(huán),總是希望組裝該數(shù)據(jù)并利用分組數(shù)據(jù)指令并行執(zhí)行這些操作。以這一方式,這些處理器便能更高效地處理多媒體應(yīng)用。然而,如果該操作循環(huán)中包含處理器不能在分組數(shù)據(jù)上執(zhí)行的操作(即處理器缺少適當(dāng)?shù)闹噶?,則必須分解該數(shù)據(jù)來(lái)執(zhí)行該操作。例如,如果多媒體算法要求加法運(yùn)算而不能獲得上述分組加法指令,則程序員必須分解第一分組數(shù)據(jù)與第二分組數(shù)據(jù)(即分開(kāi)包含第一分組數(shù)據(jù)與第二分組數(shù)據(jù)的元素),將各個(gè)分開(kāi)的單獨(dú)的元素相加,然后將結(jié)果組裝成分組的結(jié)果供進(jìn)一步分組處理。執(zhí)行這種組裝與分解所需的處理時(shí)間通常抵消了提供分組數(shù)據(jù)格式的性能優(yōu)點(diǎn)。因此,希望在通用處理器上包含提供典型多媒體算法所需的所有操作的分組數(shù)據(jù)指令集。然而,由于當(dāng)今微處理器上的有限芯片面積,可以增加的指令數(shù)目是有限的。包含分組數(shù)據(jù)指令的一種通用處理器便是加州SantaClara的Intel公司制造的i860XPTM處理器。i860XP處理器包含具有不同元素大小的若干分組數(shù)據(jù)類(lèi)型。此外,i860XP處理器包含分組加法與分組比較指令。然而,分組加法指令并不斷開(kāi)進(jìn)位鏈,因此程序員必須保證軟件正在執(zhí)行的運(yùn)算不會(huì)導(dǎo)致溢出,即運(yùn)算不會(huì)導(dǎo)致來(lái)自分組數(shù)據(jù)中一個(gè)元素的位溢出到該分組數(shù)據(jù)的下一元素中。例如,如果將值1加到存儲(chǔ)“11111111”的8位分組數(shù)據(jù)元素上,便出現(xiàn)溢出而結(jié)果為“100000000”。此外,i860XP所支持的分組數(shù)據(jù)類(lèi)型中的小數(shù)點(diǎn)位置是固定的(即i860XP處理器支持?jǐn)?shù)8.8、6.10與8.24,其中數(shù)i.j包含i個(gè)最高位及小數(shù)點(diǎn)后的j位)。從而限制了程序員可以表示的值。由于i860XP處理器只支持這兩條指令,它不能執(zhí)行采用分組數(shù)據(jù)的多媒體算法所要求的許多運(yùn)算。另一種支持分組數(shù)據(jù)的通用處理器便是Motorala公司制造的MC88110TM處理器。MC88110處理器支持具有不同長(zhǎng)度元素的若干種不同的分組數(shù)據(jù)格式。此外,MC88110處理器所支持的分組指令集中包括組裝、分解、分組加法、分組減法、分組乘法、分組比較與分組旋轉(zhuǎn)。MC88110處理器分組命令通過(guò)連接第一寄存器對(duì)中的各元素的(t*r)/64(其中t為該分組數(shù)據(jù)的元素中的位數(shù))個(gè)最高有效位進(jìn)行操作來(lái)生成寬度為r的一個(gè)字段。該字段取代存儲(chǔ)在第二寄存器對(duì)中的分組數(shù)據(jù)的最高有效位。然后將這一分組數(shù)據(jù)存儲(chǔ)在第三寄存器對(duì)中并左旋r位。下面在表1與2中示出所支持的t與r值,以及這一指令的運(yùn)算實(shí)例。x=未定義的操作表1表2分組指令的這一實(shí)現(xiàn)具有兩個(gè)缺點(diǎn)。第一是需要附加的邏輯在指令結(jié)束時(shí)執(zhí)行旋轉(zhuǎn)。第二是生成分組數(shù)據(jù)結(jié)果所需的指令數(shù)目。例如,如果希望使用4個(gè)32位值來(lái)生成第三寄存器(以上所示)中的結(jié)果,便需要兩條具有t=32與r=32的指令,如下面表3中所示。ppackSource1.Source2源1)(源2)(結(jié)果1)ppackResult1.Source3(結(jié)果1)(源3)(結(jié)果3)表3MC88110處理器分解命令通過(guò)將來(lái)自分組數(shù)據(jù)的4、8或16位數(shù)據(jù)元素放入兩倍長(zhǎng)(8、16或32位)的數(shù)據(jù)元素的低位一半中,并填充以零,即將得出的數(shù)據(jù)元素的較高位設(shè)定為零進(jìn)行操作。下面表4中示出了這一分解命令的操作的一個(gè)例子。第一寄存器對(duì)表4MC88110處理器分組乘法指令將64位分組數(shù)據(jù)的各元素乘以一個(gè)32位值,如同該分組數(shù)據(jù)表示單一的值一樣,如下面表5中所示。表5這一乘法指令具有兩個(gè)缺點(diǎn)。首先這一乘法指令并不斷開(kāi)進(jìn)位鏈,從而程序員必須保證在分組數(shù)據(jù)上執(zhí)行的運(yùn)算并不導(dǎo)致溢出。結(jié)果,程序員有時(shí)必須加入附加的指令來(lái)防止這一溢出。第二,這一乘法指令將分組數(shù)據(jù)中的各元素乘以單一的值(即該32位值)。結(jié)果,用戶沒(méi)有選擇分組數(shù)據(jù)中哪些元素乘以該32位值的靈活性。因此,程序員必須制備數(shù)據(jù)使得分組數(shù)據(jù)中的每一個(gè)元素上都需要相同的乘法或者每當(dāng)需要對(duì)該數(shù)據(jù)中少于全部元素進(jìn)行乘法時(shí)浪費(fèi)處理時(shí)間來(lái)分解數(shù)據(jù)。因此程序員不能并行利用多個(gè)乘數(shù)來(lái)執(zhí)行多個(gè)乘法。例如,將8個(gè)不同的數(shù)據(jù)片相乘,每一數(shù)據(jù)片一個(gè)字長(zhǎng),需要四次單獨(dú)的乘法運(yùn)算。各運(yùn)算每次乘兩個(gè)字,實(shí)際上浪費(fèi)了用于位16以上的位的數(shù)據(jù)線與電路。MC88110處理器分組比較指令比較來(lái)自第一分組數(shù)據(jù)與第二分組數(shù)據(jù)的對(duì)應(yīng)的32位數(shù)據(jù)元素。兩個(gè)比較中各個(gè)可能返回小于(<)或大于等于(≥)之一,得出四種可能的組合。該指令返回一個(gè)8位結(jié)果串;四位表示符合四種可能條件中哪一種,四位表示這些位的補(bǔ)碼。根據(jù)這一指令的結(jié)果的條件轉(zhuǎn)移能以兩種方式實(shí)現(xiàn)1)用一序列條件轉(zhuǎn)移;或2)用跳轉(zhuǎn)表。該指令的問(wèn)題在于它需要根據(jù)數(shù)據(jù)的條件轉(zhuǎn)移來(lái)執(zhí)行函數(shù)的事實(shí),諸如ifY>AthenX=X+BelseX=X。這一函數(shù)的偽碼編譯表示將是比較Y,A新的微處理器試圖通過(guò)推測(cè)轉(zhuǎn)移到哪里來(lái)加快執(zhí)行。如果預(yù)測(cè)正確,便不損失性能并且存在著提高性能的潛力。然而如果預(yù)測(cè)錯(cuò)誤,便損失性能。因此,預(yù)測(cè)得好的鼓勵(lì)是巨大的。然而根據(jù)數(shù)據(jù)的轉(zhuǎn)移(諸如上面的)呈現(xiàn)為不可預(yù)測(cè)的方式,這破壞了預(yù)測(cè)算法并得出更多的錯(cuò)誤預(yù)測(cè)。結(jié)果,使用這一比較指令來(lái)建立根據(jù)數(shù)據(jù)的條件轉(zhuǎn)移要付出性能上的高昂代價(jià)。MC88110處理器旋轉(zhuǎn)指令旋轉(zhuǎn)一個(gè)64位值到0與60位之間的任一模4邊界上(見(jiàn)下面表6的示例)。表6由于旋轉(zhuǎn)指令使移出寄存器的高位移入寄存器的低位,MC88110處理器并不支持單個(gè)地移位分組數(shù)據(jù)中的各元素。結(jié)果,要求單獨(dú)移位分組數(shù)據(jù)類(lèi)型中各元素的編程算法需要1)分解數(shù)據(jù),2)單獨(dú)地在各元素上執(zhí)行移位,及3)將結(jié)果組裝成結(jié)果分組數(shù)據(jù)供進(jìn)一步分組數(shù)據(jù)處理。本發(fā)明描述了在處理器中加入支持典型的多媒體應(yīng)用所要求的操作的分組數(shù)據(jù)指令集的方法與裝置。在一個(gè)實(shí)施例中,本發(fā)明包括一個(gè)處理器及一個(gè)存儲(chǔ)區(qū)。存儲(chǔ)區(qū)中包含若干指令供處理器執(zhí)行以操作分組數(shù)據(jù)。在這一實(shí)施例中,這些指令包括組裝、分解、分組加法、分組減法、分組乘法、分組移位及分組比較。處理器對(duì)接收組裝指令作出響應(yīng),組裝來(lái)自至少兩個(gè)分組數(shù)據(jù)中的數(shù)據(jù)元素的一部分位以構(gòu)成第三分組數(shù)據(jù)。作為比較,處理器對(duì)接收該分解指令作出響應(yīng),生成包含來(lái)自第一分組數(shù)據(jù)操作數(shù)的至少一個(gè)數(shù)據(jù)元素及來(lái)自第二分組數(shù)據(jù)操作數(shù)的至少一個(gè)對(duì)應(yīng)數(shù)據(jù)元素的第四分組數(shù)據(jù)。處理器響應(yīng)接收該分組加法指令單獨(dú)地將來(lái)自至少兩個(gè)分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素并行加在一起。作為對(duì)比,處理器響應(yīng)接收該分組減法指令單獨(dú)地將來(lái)自至少兩個(gè)分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素并行相減。處理器響應(yīng)接收分組乘法指令單獨(dú)地將來(lái)自至少兩個(gè)分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素并行相乘。處理器響應(yīng)接收分組移位指令單獨(dú)地將分組數(shù)據(jù)操作數(shù)中的各數(shù)據(jù)元素并行移位所指示的計(jì)數(shù)值。處理器響應(yīng)接收分組比較指令按照指示的關(guān)系單獨(dú)地將來(lái)自至少兩個(gè)分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素并行比較,并作為結(jié)果將一個(gè)分組掩碼存儲(chǔ)在第一寄存器中。分組掩碼至少包含第一掩碼元素與第二掩碼元素。第一掩碼元素中的各位表示比較一組對(duì)應(yīng)數(shù)據(jù)元素的結(jié)果,而第二掩碼元素中的各位表示第二組數(shù)據(jù)元素的比較結(jié)果。本發(fā)明是在附圖中用示例而非限制方式說(shuō)明的。相同的參照指示相同的元素。圖1說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的示例性計(jì)算機(jī)系統(tǒng)。圖2說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的處理器的寄存器文件。圖3為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的處理器用來(lái)處理數(shù)據(jù)的通用步驟的流程圖。圖4說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的分組數(shù)據(jù)類(lèi)型。圖5a表示按照本發(fā)明的一個(gè)實(shí)施例的寄存器中分組數(shù)據(jù)。圖5b表示按照本發(fā)明的一個(gè)實(shí)施例的寄存器中分組數(shù)據(jù)。圖5c表示按照本發(fā)明的一個(gè)實(shí)施例的寄存器中分組數(shù)據(jù)。圖6a表示按照本發(fā)明的一個(gè)實(shí)施例指示分組數(shù)據(jù)的使用的控制信號(hào)格式。圖6b說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的指示分組數(shù)據(jù)的使用的第二控制信號(hào)格式。分組加法/減法圖7a說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例執(zhí)行分組加法的方法。圖7b說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例執(zhí)行分組減法的方法。圖8說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)的各個(gè)位上執(zhí)行分組加法與分組減法的電路。圖9說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組字節(jié)數(shù)據(jù)上執(zhí)行分組加法與分組減法的電路。圖10為按照本發(fā)明的一個(gè)實(shí)施例在分組字?jǐn)?shù)據(jù)上執(zhí)行分組加法與分組減法的電路的邏輯視圖。圖11為按照本發(fā)明的一個(gè)實(shí)施例在分組雙字?jǐn)?shù)據(jù)上執(zhí)行分組加法與分組減法的電路的邏輯視圖。分組乘法圖12為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行分組乘法運(yùn)算的方法的流程圖。圖13說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例執(zhí)行分組乘法的電路。乘-加/減圖14為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行乘-加與乘-減運(yùn)算的方法的流程圖。圖15說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行乘-加與/或乘-減運(yùn)算的電路。分組移位圖16為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行分組移位操作的方法的流程圖。圖17說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)的各個(gè)字節(jié)上執(zhí)行分組移位的電路。組裝圖18為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行組裝操作的方法的流程圖。圖19a說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組字節(jié)數(shù)據(jù)上執(zhí)行組裝操作的電路。圖19b說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組字?jǐn)?shù)據(jù)上執(zhí)行組裝操作的電路。分解圖20為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行分解操作的方法的流程圖。圖21說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行分解操作的電路。個(gè)數(shù)計(jì)數(shù)圖22為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行個(gè)數(shù)計(jì)數(shù)操作的方法的流程圖。圖23為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)的一個(gè)數(shù)據(jù)元素上執(zhí)行個(gè)數(shù)計(jì)數(shù)操作及為結(jié)果分組數(shù)據(jù)生成單一結(jié)果數(shù)據(jù)元素的方法的流程圖。圖24說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在具有四個(gè)字?jǐn)?shù)據(jù)元素的分組數(shù)據(jù)上執(zhí)行個(gè)數(shù)計(jì)數(shù)操作的電路。圖25說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)的一個(gè)字?jǐn)?shù)據(jù)元素上執(zhí)行個(gè)數(shù)計(jì)數(shù)操作的詳細(xì)電路。分組邏輯運(yùn)算。圖26為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行若干邏輯運(yùn)算的方法的流程圖。圖27說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行邏輯運(yùn)算的電路。分組比較圖28為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行分組比較操作的方法的流程圖。圖29說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的分組數(shù)據(jù)的單個(gè)字節(jié)上執(zhí)行分組比較操作的電路。本申請(qǐng)描述在處理器中包括支持典型的多媒體應(yīng)用所要求的分組數(shù)據(jù)上的操作的指令集的方法與裝置。在下面的描述中,陳述了許多特定細(xì)節(jié)以提供對(duì)本發(fā)明的全面理解。然而,應(yīng)理解本發(fā)明可以不用這些特定細(xì)節(jié)實(shí)現(xiàn)。在其它實(shí)例中,為了避免使本發(fā)明不必要地沖淡,不詳細(xì)示出眾所周知的電路、結(jié)構(gòu)與技術(shù)。定義為了提供理解本發(fā)明的實(shí)施例的描述的基礎(chǔ),提出以下定義。位X至位Y;定義二進(jìn)制數(shù)的子字段。例如,字節(jié)001110102(以基2表示)的位6至位0表示子字段1110102。二進(jìn)制數(shù)后面的‘2’表示基2。因此,10002等于810,而F16等于1510。RX為寄存器。寄存器為能存儲(chǔ)與提供數(shù)據(jù)的任何器件。寄存器的進(jìn)一步功能在下面描述。寄存器不是處理器組件的必要部件。SRC1,SRC2與DEST標(biāo)識(shí)存儲(chǔ)區(qū)(諸如存儲(chǔ)器地址、寄存器等)Source1-i與Result1-i表示數(shù)據(jù)計(jì)算機(jī)系統(tǒng)圖1說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的示范性計(jì)算機(jī)系統(tǒng)100。計(jì)算機(jī)系統(tǒng)100包括用于傳遞信息的總線101或其它通信硬件與軟件,及用于處理信息的與總線101耦合的處理器109。處理器109表示包含CISC(復(fù)雜指令集計(jì)算)或RISC(精減指令集計(jì)算)類(lèi)型體系結(jié)構(gòu)在內(nèi)的任何類(lèi)型體系結(jié)構(gòu)的中央處理單元。計(jì)算機(jī)系統(tǒng)100還包括耦合在總線101上用于存儲(chǔ)信息及要由處理器109執(zhí)行的指令的隨機(jī)存取存儲(chǔ)器(RAM)或其它動(dòng)態(tài)存儲(chǔ)設(shè)備(稱作主存儲(chǔ)器104)。在處理器109執(zhí)行指令期間,主存儲(chǔ)器104也可用來(lái)存儲(chǔ)臨時(shí)變量或其它中間信息。計(jì)算機(jī)系統(tǒng)100還包括耦合在總線101上用于存儲(chǔ)靜態(tài)信息及處理器109的指令的只讀存儲(chǔ)器(ROM)106與/或其它靜態(tài)存儲(chǔ)設(shè)備。數(shù)據(jù)存儲(chǔ)設(shè)備107耦合在總線101上用于存儲(chǔ)信息與指令。圖1還示出處理器109包括執(zhí)行單元130、寄存器文件150、高速緩沖存儲(chǔ)器165及外部總線170。當(dāng)然,處理器109還包含其它電路,為了不沖淡本發(fā)明而未示出它們。執(zhí)行單元130用于執(zhí)行處理器109所接收的指令。除了識(shí)別通常在通用處理器實(shí)現(xiàn)的指令,執(zhí)行單元130還識(shí)別在分組數(shù)據(jù)格式上執(zhí)行操作的分組指令集140中的指令。在一個(gè)實(shí)施例中,分組指令集140包含以此后描述的方式支持組裝操作、分解操作、分組加法運(yùn)算、分組減法運(yùn)算、分組乘法運(yùn)算、分組移位操作、分組比較操作、乘-加運(yùn)算、乘-減運(yùn)算、個(gè)數(shù)計(jì)算操作及一組分組邏輯運(yùn)算(包含分組“與”、分組“與非”、分組“或”及分組“異或”)的指令。雖然描述了包含這些指令的分組指令集140的一個(gè)實(shí)施例,其它實(shí)施例可包含這些指令的子集或超集。通過(guò)包含這些指令,可以用分組數(shù)據(jù)執(zhí)行多媒體應(yīng)用中所使用的許多算法所需要的操作。從而,可以編寫(xiě)這些算法來(lái)組裝必要的數(shù)據(jù)及在分組數(shù)據(jù)上執(zhí)行必要的操作,而無(wú)須分解這些分組數(shù)據(jù)來(lái)一次在一個(gè)數(shù)據(jù)元素上執(zhí)行一個(gè)或多個(gè)操作。如上所述,這比不支持某些多媒體算法所要求的分組數(shù)據(jù)操作的先有技術(shù)通用處理器(即,如果多媒體算法要求不能在分組數(shù)據(jù)上執(zhí)行的操作,則程序必須分解該數(shù)據(jù),單獨(dú)地在分開(kāi)的元素上執(zhí)行操作,然后將結(jié)果組裝成分組結(jié)果供進(jìn)一步分組處理)具有性能上的優(yōu)勢(shì)。此外,所公開(kāi)的在其中執(zhí)行若干條這些指令的方式改進(jìn)了許多多媒體應(yīng)用的性能。執(zhí)行單元130由內(nèi)部總線170耦合在寄存器文件150上。寄存器文件150表示處理器109上用于存儲(chǔ)包含數(shù)據(jù)在內(nèi)的信息的存儲(chǔ)區(qū)。應(yīng)理解本發(fā)明的一個(gè)方面是在分組數(shù)據(jù)上操作的所描述的指令集。按照本發(fā)明的這一方面,用來(lái)存儲(chǔ)分組數(shù)據(jù)的存儲(chǔ)區(qū)不是關(guān)鍵的。但是,稍后參照?qǐng)D2描述寄存器文件150的一個(gè)實(shí)施例。執(zhí)行單元130耦合在高速緩沖存儲(chǔ)器160及解碼器165上。高速緩沖存儲(chǔ)器160用來(lái)高速緩沖來(lái)自諸如主存儲(chǔ)器104的數(shù)據(jù)與/或控制信號(hào)、解碼器165用來(lái)將處理器109所接收的指令解碼成控制信號(hào)與/或微代碼入口點(diǎn)。響應(yīng)這些控制信號(hào)與/或微代碼入口點(diǎn),執(zhí)行單元130執(zhí)行適當(dāng)?shù)牟僮?。例如,如果接收到一個(gè)加法指令,解碼器165便令執(zhí)行單元130執(zhí)行要求的加法;如果接收到一個(gè)減法指令,解碼器165便令執(zhí)行單元130執(zhí)行要求的減法;等。解碼器165可用任何數(shù)目的不同機(jī)構(gòu)實(shí)現(xiàn)(諸如,查找表、硬件實(shí)現(xiàn)、PLA等)。從而,盡管解碼器與執(zhí)行單元執(zhí)行各種指令是由一系列if/then語(yǔ)句表示的,但應(yīng)理解指令的執(zhí)行并不需要這些if/then語(yǔ)句的一系列處理。而是將任何用于邏輯執(zhí)行這一if/then處理的機(jī)構(gòu)認(rèn)為是在本發(fā)明的范圍之內(nèi)。圖1還示出了數(shù)據(jù)存儲(chǔ)設(shè)備107,諸如磁盤(pán)或光盤(pán),及其對(duì)應(yīng)的盤(pán)驅(qū)動(dòng)器。計(jì)算機(jī)系統(tǒng)100也能通過(guò)總線101耦合在將信息顯示給計(jì)算機(jī)用戶的顯示設(shè)備121上。顯示設(shè)備121可包含幀緩沖器、專(zhuān)用的圖形描繪設(shè)備(graphicsrenderingdevice)、陰極射線管(CRT)與/或平板顯示器。包含字母數(shù)字與其它鍵的字母數(shù)字輸入設(shè)備122通常耦合在總線101上,用于向處理器109傳遞信息及命令選擇。另一種用戶輸入設(shè)備為光標(biāo)控制設(shè)備123,諸如用于傳遞方向信息及命令選擇給處理器109及用于控制光標(biāo)在顯示設(shè)備121上運(yùn)動(dòng)的鼠標(biāo)器、軌跡球、筆、觸摸屏或光標(biāo)方向鍵。這一輸入設(shè)備通常具有兩根軸上的兩個(gè)自由度,第一軸(如X)及第二軸(如Y),它允許設(shè)備指定平面上的位置。然而,本發(fā)明不應(yīng)限制在只有兩個(gè)自由度的輸入設(shè)備上。另一可以耦合到總線101上的設(shè)備為可用來(lái)在諸如紙、膠片等介質(zhì)或類(lèi)似類(lèi)型的介質(zhì)上打印指令、數(shù)據(jù)或其它信息的硬拷貝設(shè)備124。此外,可將計(jì)算機(jī)系統(tǒng)100耦合在用于聲音錄制與/或播放的設(shè)備125上,諸如耦合在用于錄制信息的麥克風(fēng)上的音頻數(shù)字化器。此外,該設(shè)備可包含耦合在數(shù)模(D/A)轉(zhuǎn)換器上的揚(yáng)聲器,用于播放數(shù)字化聲音。計(jì)算機(jī)系統(tǒng)100也可以是計(jì)算機(jī)網(wǎng)絡(luò)(諸如LAN)中的終端。計(jì)算機(jī)系統(tǒng)100這時(shí)便是計(jì)算機(jī)網(wǎng)絡(luò)的一個(gè)計(jì)算機(jī)子系統(tǒng)。計(jì)算機(jī)系統(tǒng)100可選地包含視頻數(shù)字化設(shè)備126。視頻數(shù)字化設(shè)備126能用來(lái)捕捉能在計(jì)算機(jī)網(wǎng)絡(luò)上傳輸給其它計(jì)算機(jī)的視頻圖象。在一個(gè)實(shí)施例中,處理器109附加支持與X86指令集(諸如加州SantaClara的Intel公司制造的Pentium處理器等現(xiàn)有微處理器所使用的指令集)兼容的指令集。從而,在一個(gè)實(shí)施例中,處理器109支持加州SantaClara的Intel公司所定義的IATM-Intel體系結(jié)構(gòu)所支持的所有操作(見(jiàn)“微處理器”,Intel資料集卷1與卷2,1992與1993,可從加州SantaClara的Intel購(gòu)得)。結(jié)果,除了本發(fā)明的操作外,處理器109還能支持現(xiàn)有的X86操作。雖然本發(fā)明是描述為包含在基于X86指令集中的,替代實(shí)施例可將本發(fā)明包含在其它指令集中。例如,可將本發(fā)明包含在采用新指令集的64位處理器中。圖2說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的處理器的寄存器文件。寄存器文件150用來(lái)存儲(chǔ)信息,包括控制/狀態(tài)信息、整數(shù)數(shù)據(jù)、浮點(diǎn)數(shù)據(jù)及分組數(shù)據(jù)。在圖2所示的實(shí)施例中,寄存器文件150包括整數(shù)寄存器201、寄存器209、狀態(tài)寄存器208及指令指針寄存器211。狀態(tài)寄存器208指示處理器109的狀態(tài)。指令指針寄存器211存儲(chǔ)要執(zhí)行的下一條指令的地址。整數(shù)寄存器201、寄存器209、狀態(tài)寄存器208及指令指針寄存器211全都耦合在內(nèi)部總線170上。任何附加的寄存器也耦合在內(nèi)部總線170上。在一個(gè)實(shí)施例中,寄存器209既用于分組數(shù)據(jù)又用于浮點(diǎn)數(shù)據(jù)。在這一實(shí)施例中,處理器109在任何給定時(shí)刻都必須將寄存器209作為棧定位的浮點(diǎn)寄存器或作為非棧定位的分組數(shù)據(jù)寄存器對(duì)待。在本實(shí)施例中,包括了一種機(jī)制允許處理器109在作為棧定位的浮點(diǎn)寄存器與非棧定位的分組數(shù)據(jù)寄存器的寄存器209上操作之間切換。在另一實(shí)施例中,處理器109可同時(shí)在作為非棧定位的浮點(diǎn)與分組數(shù)據(jù)寄存器的寄存器209上操作。作為另一實(shí)例,在另一實(shí)施例中,這些相同的寄存器可用來(lái)存儲(chǔ)整數(shù)數(shù)據(jù)。當(dāng)然,可以實(shí)現(xiàn)替代的實(shí)施例來(lái)包括或多或少的寄存器組。例如,替代實(shí)施例可包含獨(dú)立的浮點(diǎn)寄存器組用于存儲(chǔ)浮點(diǎn)數(shù)據(jù)。作為另一實(shí)例,替代實(shí)施例可包含第一組寄存器,各用于存儲(chǔ)控制/狀態(tài)信息,及第二組寄存器,各能存儲(chǔ)整數(shù)、浮點(diǎn)及分組數(shù)據(jù)。為了清楚起見(jiàn),不應(yīng)將一個(gè)實(shí)施例的寄存器的意義限制在特定類(lèi)型的電路上。而是,一個(gè)實(shí)施例的寄存器只需要能存儲(chǔ)與提供數(shù)據(jù),并執(zhí)行這里所描述的功能??蓪⒏鞣N寄存器組(諸如整數(shù)寄存器201、寄存器209)實(shí)現(xiàn)成包含不同數(shù)目的寄存器與/或不同大小的寄存器。例如,在一個(gè)實(shí)施例中,將整數(shù)寄存器201實(shí)現(xiàn)為存儲(chǔ)32位,而將寄存器209實(shí)現(xiàn)為存儲(chǔ)80位(全部80位用來(lái)存儲(chǔ)浮點(diǎn)數(shù)據(jù)而只用64位存儲(chǔ)分組數(shù)據(jù))。此外,寄存器209包含8個(gè)寄存器,R0212a至R7212h。R1212a、R2212b及R3212c為寄存器209中各個(gè)寄存器的實(shí)例??蓪⒓拇嫫?09中的一個(gè)寄存器的32位移到整數(shù)寄存器201中的一個(gè)整數(shù)寄存器中。類(lèi)似地,可將整數(shù)寄存器中的值移入寄存器209中的一個(gè)寄存器32位中。在另一實(shí)施例中,整數(shù)寄存器201各包含64位,并且64位數(shù)據(jù)可在整數(shù)寄存器201與寄存器209之間傳送。圖3為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的處理器用來(lái)處理數(shù)據(jù)的通用步驟的流程圖。例如,這些操作中包含加載操作,將來(lái)自高速緩沖存儲(chǔ)器160、主存儲(chǔ)器104、只讀存儲(chǔ)器(ROM)104或數(shù)據(jù)存儲(chǔ)設(shè)備107的數(shù)據(jù)加載到寄存器文件150中的寄存器。在步驟301,解碼器202接收來(lái)自高速緩沖存儲(chǔ)器160或總線101的控制信號(hào)207。解碼器202解碼該控制信號(hào)來(lái)確定要執(zhí)行的操作。在步驟302,解碼器202存取寄存器文件150或存儲(chǔ)器中的單元。取決于控制信號(hào)207中指定的寄存器地址存取寄存器文件150中的寄存器或存儲(chǔ)器中的存儲(chǔ)器單元。例如,對(duì)于分組數(shù)據(jù)上的操作,控制信號(hào)207可包含SRC1、SRC2及DEST寄存器地址。SRC1是第一源寄存器的地址。SRC2是第二源寄存器的地址。由于不是所有操作都需要兩個(gè)源地址,在某些情況中SRC2地址是可選的。如果一種操作不需要SRC2地址,便只使用SRC1地址。DEST是存儲(chǔ)結(jié)果數(shù)據(jù)的目的地寄存器的地址。在一個(gè)實(shí)施例中,SRC1或SRC2也用作DEST。相對(duì)于圖6a與圖6b更全面地描述SRC1、SRC2及DEST。存儲(chǔ)在對(duì)應(yīng)寄存器中的數(shù)據(jù)分別稱作源1(Source1)、源2(Source2)與結(jié)果(Result)。每一個(gè)這種數(shù)據(jù)的長(zhǎng)度都是64位。在本發(fā)明的另一實(shí)施例中,SRC1、SRC2及DEST中任何一個(gè)或全部能定義處理器109的可尋址存儲(chǔ)器空間中的一個(gè)存儲(chǔ)器單元。例如,SRC1可標(biāo)識(shí)主存儲(chǔ)器104中的存儲(chǔ)器單元,而SRC2標(biāo)識(shí)整數(shù)寄存器201中的第一寄存器及DEST標(biāo)識(shí)寄存器209中的第二寄存器。這里為了簡(jiǎn)化描述,本發(fā)明將相對(duì)于存取寄存器文件150描述。然而,這些存取能對(duì)存儲(chǔ)器進(jìn)行。在步驟303,啟動(dòng)執(zhí)行單元130在存取的數(shù)據(jù)上執(zhí)行操作。在步驟304,按照控制信號(hào)207的要求將結(jié)果存儲(chǔ)回寄存器文件150。數(shù)據(jù)與存儲(chǔ)格式圖4說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的分組數(shù)據(jù)類(lèi)型。示出了三種分組數(shù)據(jù)格式分組字節(jié)401、分組字402及分組雙字403。在本發(fā)明的一個(gè)實(shí)施例中,分組字節(jié)為包含8個(gè)數(shù)據(jù)元素的64位長(zhǎng)。各數(shù)據(jù)元素為一個(gè)字節(jié)長(zhǎng)。通常,數(shù)據(jù)元素是與其它相同長(zhǎng)度的數(shù)據(jù)元素一起存儲(chǔ)在單一寄存器(或存儲(chǔ)器單元)中的一個(gè)單獨(dú)的數(shù)據(jù)片段。在本發(fā)明的一個(gè)實(shí)施例中,存儲(chǔ)在寄存器中的數(shù)據(jù)元素的數(shù)目是64位除以一個(gè)數(shù)據(jù)元素的位長(zhǎng)度。分組字402為64位長(zhǎng)并包含4個(gè)字402數(shù)據(jù)元素。各字402數(shù)據(jù)元素包含16位信息。分組雙字403為64位長(zhǎng)并包含兩個(gè)雙字403數(shù)據(jù)元素。各雙字403數(shù)據(jù)元素包含32位信息。圖5a至5c說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的寄存器中分組數(shù)據(jù)存儲(chǔ)表示。無(wú)符號(hào)分組字節(jié)的寄存器表示510示出在寄存器R0212a至R7212h之一中無(wú)符號(hào)分組字節(jié)401的存儲(chǔ)。各字節(jié)數(shù)據(jù)元素的信息存儲(chǔ)在字節(jié)0的位7至位0、字節(jié)1的位15至位8、字節(jié)2的位23至位16、字節(jié)3的位31至位24、字節(jié)4的位39至位32、字節(jié)5的位47至位40、字節(jié)6的位55至位48及字節(jié)7的位63至位56中。從而,寄存器中使用了所有可利用的位。這一存儲(chǔ)布置提高了處理器的存儲(chǔ)效率。同時(shí),通過(guò)存取8個(gè)數(shù)據(jù)元素,便可同時(shí)在8個(gè)數(shù)據(jù)元素上執(zhí)行一種操作。帶符號(hào)分組字節(jié)寄存器表示511示出帶符號(hào)分組字節(jié)401的存儲(chǔ)。注意只需要每一個(gè)字節(jié)數(shù)據(jù)元素的第八位用于符號(hào)指示。無(wú)符號(hào)分組字寄存器表示512示出如何將字3至字0存儲(chǔ)在寄存器209的一個(gè)寄存器中。位15至位0包含字0的數(shù)據(jù)元素信息,位31至位16包含字1的數(shù)據(jù)元素信息,位47至位32包含數(shù)據(jù)元素字2的信息而位63至位48包含數(shù)據(jù)元素字3的信息。帶符號(hào)分組字寄存器表示513類(lèi)似于無(wú)符號(hào)分組字寄存器表示512。注意只需要各字?jǐn)?shù)據(jù)元素的第16位用作符號(hào)指示。無(wú)符號(hào)分組雙字寄存器表示514示出寄存器209如何存儲(chǔ)兩個(gè)雙字?jǐn)?shù)據(jù)元素。雙字0存儲(chǔ)在寄存器的位31至位0中。雙字1存儲(chǔ)在寄存器的位63至位32中。帶符號(hào)分組雙字寄存器表示515類(lèi)似于無(wú)符號(hào)分組雙字寄存器表示514。注意必要的符號(hào)位是雙字?jǐn)?shù)據(jù)元素的第32位。如上所述,寄存器209既可用于分組數(shù)據(jù)又可用于浮點(diǎn)數(shù)據(jù)。在本發(fā)明的這一實(shí)施例中,可能要求該單個(gè)編程處理器109來(lái)跟蹤諸如R0212a的所尋址的寄存器是存儲(chǔ)分組數(shù)據(jù)還是浮點(diǎn)數(shù)據(jù)。在一個(gè)替代實(shí)施例中,處理器109能跟蹤存儲(chǔ)在寄存器209的各個(gè)寄存器中的數(shù)據(jù)的類(lèi)型。然后如果例如在浮點(diǎn)數(shù)據(jù)上試圖進(jìn)行分組加法運(yùn)算時(shí),這一替代實(shí)施例便能產(chǎn)生出錯(cuò)??刂菩盘?hào)格式下面描述處理器109用來(lái)操作分組數(shù)據(jù)的控制信號(hào)格式的一個(gè)實(shí)施例。在本發(fā)明的一個(gè)實(shí)施例中,控制信號(hào)是表示為32位的。解碼器202可從總線101接收控制信號(hào)207。在另一實(shí)施例中,解碼器202也能從高速緩沖存儲(chǔ)器160接收這種控制信號(hào)。圖6a說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例指示使用分組數(shù)據(jù)的控制信號(hào)格式。操作字段OP601(位31至位26)提供關(guān)于由處理器109執(zhí)行的操作的信息,例如分組加法、分組減法等。SRC1602(位25至位20)提供寄存器209中的寄存器的源寄存器地址。這一源寄存器包含在控制信號(hào)執(zhí)行中要使用的第一分組數(shù)據(jù)Source1。類(lèi)似地,SRC2603(位19至位14)包含寄存器209中的寄存器的地址。這一第二源寄存器包含在該操作執(zhí)行期間要使用的分組數(shù)據(jù)Source2。DEST605(位5至位0)包含寄存器209中的寄存器地址。這一目的地寄存器將存儲(chǔ)分組數(shù)據(jù)操作的結(jié)果分組數(shù)據(jù)Result??刂莆籗Z610(位12與位13)指示在第一與第二分組數(shù)據(jù)源寄存器中的數(shù)據(jù)元素的長(zhǎng)度。如果SZ610等于012,則將分組數(shù)據(jù)格式化為分組字節(jié)401。如果SZ610等于102,則將分組數(shù)據(jù)格式化為分組字402。SZ610等于002或112保留不用,然而在另一實(shí)施例中,這些值之一可用來(lái)指示分組雙字403??刂莆籘611(位11)指示是否要以飽和模式進(jìn)行該操作。如果T611等于1,則執(zhí)行飽和操作。如果T611等于0,則執(zhí)行非飽和操作。稍后將描述飽和操作??刂莆籗612(位10)指示使用帶符號(hào)操作。如果S612等于1,則執(zhí)行帶符號(hào)操作。如果S612等于0,則執(zhí)行無(wú)符號(hào)操作。圖6b說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例指示采用分組數(shù)據(jù)的第二種控制信號(hào)格式。這一格式對(duì)應(yīng)于可從Intel公司,文獻(xiàn)銷(xiāo)售處(P.O.Box7641,Mt.Prospect,IL,60056-7641)購(gòu)得的“Pentium處理器系列用戶手冊(cè)”中描述的通用整數(shù)操作碼格式。注意將OP601、SZ610、T611與S612全部合并成一個(gè)大字段。對(duì)于某些控制信號(hào),位3至5為SRC1602。在一個(gè)實(shí)施例中,當(dāng)存在一個(gè)SRC1602地址時(shí),則位3至5也對(duì)應(yīng)于DEST605。在一個(gè)替代實(shí)施例中,當(dāng)存在SRC2603地址時(shí),則位0至2也對(duì)應(yīng)于DEST605。對(duì)于其它控制信號(hào),如分組移位立即操作,位3至5表示對(duì)操作碼字段的擴(kuò)展。在一個(gè)實(shí)施例中,這一擴(kuò)展允許程序員包含一個(gè)具有控制信號(hào)的立即值,諸如移位計(jì)數(shù)值。在一個(gè)實(shí)施例中,立即值在控制信號(hào)后面。這在“Pentium處理器系列用戶手冊(cè)”附錄F,頁(yè)F-1至F-3中有更詳細(xì)的描述。位0至2表示SRC2603。這一通用格式允許寄存器到寄存器、存儲(chǔ)器到寄存器、寄存器被存儲(chǔ)器、寄存器被寄存器、寄存器被立即數(shù)、寄存器到存儲(chǔ)器的尋址。同時(shí),在一個(gè)實(shí)施例中,這一通用格式能支持整數(shù)寄存器到寄存器及寄存器到整數(shù)寄存器尋址。飽和/不飽和的說(shuō)明如上所述,T611指示操作是否可選擇地飽和。在允許飽和時(shí),當(dāng)操作的結(jié)果上溢或下溢出數(shù)據(jù)范圍時(shí),結(jié)果將被箝位。箝位的意思是如果結(jié)果超出范圍的最大或最小值便將該結(jié)果設(shè)定在最大或最小值上。下溢的情況中,飽和將結(jié)果箝位到范圍中的最低值上,而在上溢的情況中,則到最高值上。表7中示出各數(shù)據(jù)格式的允許范圍。數(shù)據(jù)格式最小值最大值無(wú)符號(hào)字節(jié)0255帶符號(hào)字節(jié)-128127無(wú)符號(hào)字065535帶符號(hào)字-3276832767無(wú)符號(hào)雙字0264-1帶符號(hào)雙字-263263-1表7如上所述,T611指示是否正在執(zhí)行飽和操作。因此,采用無(wú)符號(hào)字節(jié)數(shù)據(jù)格式,如果操作結(jié)果=258且允許飽和,則在將結(jié)果存儲(chǔ)進(jìn)該操作的目的地寄存器之前將該結(jié)果箝位到255。類(lèi)似地,如果操作結(jié)果=-32999且處理器109采用允許飽和的帶符號(hào)字?jǐn)?shù)據(jù)格式,則在將結(jié)果存儲(chǔ)進(jìn)操作的目的地寄存器之前將其箝位到-32768。分組加法分組加法運(yùn)算本發(fā)明的一個(gè)實(shí)施例能夠在執(zhí)行單元130中執(zhí)行分組加法運(yùn)算。即,本發(fā)明使第一分組數(shù)據(jù)的各數(shù)據(jù)元素能單個(gè)地加在第二分組數(shù)據(jù)的各數(shù)據(jù)元素上。圖7a說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例執(zhí)行分組加法的方法。在步驟701,解碼器202解碼處理器109接收的控制信號(hào)207。從而,解碼器202解碼出分組加法的操作碼;寄存器209中的SRC1602、SRC2603及DEST605地址;飽和/不飽和、帶符號(hào)/無(wú)符號(hào)及分組數(shù)據(jù)中的數(shù)據(jù)元素的長(zhǎng)度。在步驟702,解碼器202通過(guò)內(nèi)部總線170存取寄存器文件150中給出SRC1602與SRC2603地址的寄存器209。寄存器209向執(zhí)行單元130提供分別存儲(chǔ)在這些地址上的寄存器中的分組數(shù)據(jù)Source1與Source2。即,寄存器209通過(guò)內(nèi)部總線170將分組數(shù)據(jù)傳遞給執(zhí)行單元130。在步驟703,解碼器202啟動(dòng)執(zhí)行單元130去執(zhí)行分組加法運(yùn)算。解碼器202還通過(guò)內(nèi)部總線170傳遞分組數(shù)據(jù)元素的長(zhǎng)度、是否采用飽和及是否采用帶符號(hào)算術(shù)運(yùn)算。在步驟704,數(shù)據(jù)元素的長(zhǎng)度確定下面執(zhí)行哪一步驟。如果分組數(shù)據(jù)中的數(shù)據(jù)元素長(zhǎng)度為8位(字節(jié)數(shù)據(jù)),則執(zhí)行單元130執(zhí)行步驟705a。然而,如果分組數(shù)據(jù)中的數(shù)據(jù)元素長(zhǎng)度為16位(字?jǐn)?shù)據(jù)),則執(zhí)行單元130執(zhí)行步驟705b。在本發(fā)明的一個(gè)實(shí)施例中,只支持8位與16位數(shù)據(jù)元素長(zhǎng)度分組加法。然而,其它實(shí)施例能支持不同的與/或其它長(zhǎng)度。例如,在一個(gè)替代實(shí)施例中能附加支持32位數(shù)據(jù)元素長(zhǎng)度分組加法。假定數(shù)據(jù)元素長(zhǎng)度為8位,則執(zhí)行步驟705a。執(zhí)行單元130將Source1的位7至位0加在SRC2的位7至位0上,生成Result分組數(shù)據(jù)的位7至位0。與這一加法并行,執(zhí)行單元130將Source1的位15至位8加在Source2的位15至位8上,產(chǎn)生Result分組數(shù)據(jù)的位15至位8。與這些加法并行,執(zhí)行單元130將Source1的位23至位16加在Source2的位23至位16上,產(chǎn)生Result分組數(shù)據(jù)的位23至位16。與這些加法并行,執(zhí)行單元130將Source1的位31至位24加在Source2的位31至位24上,產(chǎn)生Result分組數(shù)據(jù)的位31至位24。與這些加法并行,執(zhí)行單元將Source1的位39至位32加在Source2的位39至位32上,產(chǎn)生Result分組數(shù)據(jù)的位39至位32。與這些加法并行,執(zhí)行單元130將Source1的位47至40加在Source2的位47至位40上,產(chǎn)生Result分組數(shù)據(jù)的位47至位40。與這些加法并行,執(zhí)行單元130將Source1的位55至位48加在Source2的位55至位48上,產(chǎn)生Result分組數(shù)據(jù)的位55至位48。與這些加法并行,執(zhí)行單元130將Source1的位63至位56加在Source2的位63至位56上,產(chǎn)生Result分組數(shù)據(jù)的位63至位56。假定數(shù)據(jù)元素長(zhǎng)度為16位,則執(zhí)行步驟705b。執(zhí)行單元130將Source1的位15至位0加在SRC2的位15至位0上,產(chǎn)生Result分組數(shù)據(jù)的位15至位0。與這一加法并行,執(zhí)行單元130將Source1的位31至位16加在Source2的位31至位16上,產(chǎn)生Result分組數(shù)據(jù)的位31至位16。與這些加法并行,執(zhí)行單元130將Source1的位47至位32加在Source2的位47至位32上,產(chǎn)生Result分組數(shù)據(jù)的位47至位32。與這些加法并行,執(zhí)行單元130將Source1的位63至位48加在Source2的位63至位48上,產(chǎn)生Result分組數(shù)據(jù)的位63至位48。在步驟706,解碼器202用目的地寄存器的DEST605地址啟動(dòng)寄存器209中的一個(gè)寄存器。從而,將Result存儲(chǔ)在DEST605尋址的寄存器中。表8a說(shuō)明分組加法運(yùn)算的寄存器表示。第一行的位是Source1分組數(shù)據(jù)的分組數(shù)據(jù)表示。第二行的位是Source2分組數(shù)據(jù)的分組數(shù)據(jù)表示。第三行的位是Result分組數(shù)據(jù)的分組數(shù)據(jù)表示。各數(shù)據(jù)元素位下面的號(hào)碼是數(shù)據(jù)元素號(hào)碼。例如,Source1數(shù)據(jù)元素0為100010002。因此,如果該數(shù)據(jù)元素是8位長(zhǎng)度(字節(jié)數(shù)據(jù))且執(zhí)行的是無(wú)符號(hào)不飽和的加法,則執(zhí)行單元130產(chǎn)生所示的Result分組數(shù)據(jù)。注意在本發(fā)明的一個(gè)實(shí)施例中,當(dāng)結(jié)果上溢或下溢且運(yùn)算采用不飽和時(shí),簡(jiǎn)單地截位結(jié)果。即忽略進(jìn)位位。例如,在表8a中,結(jié)果數(shù)據(jù)元素1的寄存器表示將是100010002+100010002=000010002。類(lèi)似地,對(duì)于下溢也截位其結(jié)果。這一截位形式使程序員能容易地執(zhí)行模運(yùn)算。例如,結(jié)果數(shù)據(jù)元素1的公式可表示為(Source1數(shù)據(jù)元素1+Source2數(shù)據(jù)元素1)mod256=結(jié)果數(shù)據(jù)元素1。此外,熟悉本技術(shù)的人員會(huì)從這一描述理解上溢與下溢可通過(guò)在狀態(tài)寄存器中設(shè)置出錯(cuò)位來(lái)檢測(cè)。表8a表8b說(shuō)明分組字?jǐn)?shù)據(jù)加法運(yùn)算的寄存器表示。因此,如果該數(shù)據(jù)元素是16位長(zhǎng)度(字?jǐn)?shù)據(jù))且所執(zhí)行的是無(wú)符號(hào)不飽和加法,執(zhí)行單元130產(chǎn)生所示的Result分組數(shù)據(jù)。注意在字?jǐn)?shù)據(jù)元素2中,來(lái)自位7(見(jiàn)下面強(qiáng)調(diào)的位1)的進(jìn)位傳播到位8中,導(dǎo)致數(shù)據(jù)元素2上溢(見(jiàn)下面強(qiáng)調(diào)的“上溢”)。表8b表8c說(shuō)明分組雙字?jǐn)?shù)據(jù)加法運(yùn)算的寄存器表示。本發(fā)明的一個(gè)替代實(shí)施例支持這一運(yùn)算。因此,如果該數(shù)據(jù)元素是32位長(zhǎng)度(即雙字?jǐn)?shù)據(jù))且執(zhí)行的是無(wú)符號(hào)不飽和加法,執(zhí)行單元130產(chǎn)生所示的Result分組數(shù)據(jù)。注意來(lái)自雙字?jǐn)?shù)據(jù)元素1的位7與位15的進(jìn)位分別傳播到位8與位16中。表8c為了更好地說(shuō)明分組加法與普通加法之間的差別,表9中復(fù)制了來(lái)自上例的數(shù)據(jù)。然而,在這一情況中,在數(shù)據(jù)上執(zhí)行普通加法(64位)。注意來(lái)自位7、位15、位23、位31、位39及位47的進(jìn)位已分別帶到位8、位16、位24、位32、位40及位48中表9帶符號(hào)/不飽和分組加法表10說(shuō)明帶符號(hào)分組加法的示例,其中的分組數(shù)據(jù)的數(shù)據(jù)元素長(zhǎng)度是8位。不使用飽和。因此,結(jié)果能上溢與下溢。表10利用與表8a-8c及表9不同的數(shù)據(jù)。表10帶符號(hào)/飽和的分組加法表11說(shuō)明帶符號(hào)分組加法的示例,其中的分組數(shù)據(jù)的數(shù)據(jù)元素長(zhǎng)度是8位。采用了飽和,因此將上溢箝位到最大值及將下溢箝位到最小值。表11使用與表10相同的數(shù)據(jù)。這里將數(shù)據(jù)元素0與數(shù)據(jù)元素2箝位到最小值,而將數(shù)據(jù)元素4與數(shù)據(jù)元素6箝位到最大值。表11分組減法分組減法運(yùn)算本發(fā)明的一個(gè)實(shí)施例使在執(zhí)行單元130中能執(zhí)行分組減法運(yùn)算。即,本發(fā)明使第二分組數(shù)據(jù)的各數(shù)據(jù)元素能從第一分組數(shù)據(jù)的各數(shù)據(jù)元素中分別地減去。圖7b說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例執(zhí)行分組減法的方法。注意,步驟710-713類(lèi)似于步驟701-704。在本發(fā)明的當(dāng)前實(shí)施例中,只支持8位與16位數(shù)據(jù)元素長(zhǎng)度分組減法。然而,替代實(shí)施例能支持不同的與/或其它長(zhǎng)度。例如,一個(gè)替代實(shí)施例能附加支持32位數(shù)據(jù)元素長(zhǎng)度分組減法。假定數(shù)據(jù)元素長(zhǎng)度是8位,便執(zhí)行步驟714a與715a。執(zhí)行單元130求Source2的位7至位0的2的補(bǔ)碼。與求2的補(bǔ)碼并行,執(zhí)行單元130求Source2的位15至位8的2的補(bǔ)碼。與這些求2的補(bǔ)碼并行,執(zhí)行單元130求Source2的位23至位16的2的補(bǔ)碼。與這些求2的補(bǔ)碼并行,執(zhí)行單元130求Source2的位31至位24的2的補(bǔ)碼。與這些求2的補(bǔ)碼并行,執(zhí)行單元130求Source2的位39至位32的2的補(bǔ)碼。與這些求2的補(bǔ)碼并行,執(zhí)行單元130求Source2的位47至位40的2的補(bǔ)碼。與這些求2的補(bǔ)碼并行,執(zhí)行單元130求Source2的位55至位48的2的補(bǔ)碼。與這些求2的補(bǔ)碼并行,執(zhí)行單元130求Source2的位63至位56的2的補(bǔ)碼。在步驟715a,執(zhí)行單元130執(zhí)行Source2的2的補(bǔ)碼位與Source1的位的加法,如對(duì)步驟705a總的描述。假定數(shù)據(jù)元素長(zhǎng)度是16位,則執(zhí)行步驟714b與715b。執(zhí)行單元130求Source2的位15至位0的2的補(bǔ)碼。與這一求2的補(bǔ)碼并行,執(zhí)行單元130求Source2的位31至位16的2的補(bǔ)碼。與這些求2的補(bǔ)碼并行,執(zhí)行單元130求Source2的位47至位32的2的補(bǔ)碼。與這些求2的補(bǔ)碼并行,執(zhí)行單元130求Source2的位63至位48的2的補(bǔ)碼。在步驟715b,執(zhí)行單元130執(zhí)行Source2的2的補(bǔ)碼位與Source1的位的加法,如對(duì)步驟705b總的描述。注意步驟714與715為用在本發(fā)明的一個(gè)實(shí)施例中從第二個(gè)數(shù)減去第一個(gè)數(shù)的方法。然而,其它形式的減法在本技術(shù)中是已知的,不應(yīng)認(rèn)為本發(fā)明限于采用2的求補(bǔ)算術(shù)運(yùn)算。在步驟716,解碼器202用目的地寄存器的目的地地址啟動(dòng)寄存器209。從而,將結(jié)果分組數(shù)據(jù)存儲(chǔ)在寄存器209的DEST寄存器中。表12說(shuō)明分組減法運(yùn)算的寄存器表示。假定數(shù)據(jù)元素為8位長(zhǎng)度(字節(jié)數(shù)據(jù))且所執(zhí)行的是無(wú)符號(hào)不飽和減法,則執(zhí)行單元130產(chǎn)生所示的結(jié)果分組數(shù)據(jù)。表12分組數(shù)據(jù)加法/減法電路圖8說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)的各個(gè)位上執(zhí)行分組加法與分組減法的電路。圖8示出修改過(guò)的位片加法器/減法器800。加法器/減法器801a-b能在Source1加上或減去來(lái)自Source2的兩位。運(yùn)算與進(jìn)位控制803向控制線路809a傳輸控制信號(hào)啟動(dòng)加法或減法運(yùn)算。從而,加法器/減法器801a在Source1i804a上所接收的位i上加上或減去Source2i805a上接收的位i,產(chǎn)生在Resulti806a上傳輸?shù)慕Y(jié)果位。Cin807a-b與Cout808a-b表示在加法器/減法器上經(jīng)常見(jiàn)到的進(jìn)位控制電路。從運(yùn)算與進(jìn)位控制803通過(guò)分組數(shù)據(jù)使能811啟動(dòng)位控制802來(lái)控制Cini+1807b及Couti。例如,在表13a中,執(zhí)行無(wú)符號(hào)分組字節(jié)加法。如果加法器/減法器801a相加Source1位7與Source2位7,則運(yùn)算與進(jìn)位控制803將啟動(dòng)位控制802,停止將進(jìn)位從位7傳播到位8。表13a然而,如果執(zhí)行的是無(wú)符號(hào)分組字加法,并且類(lèi)似地用加法器/減法器801a將Source1的位7加在Source2的位7上,則位控制802傳播該進(jìn)位到位8。表13b說(shuō)明這一結(jié)果。對(duì)于分組雙字加法及非分組加法都允許這一傳播。表13b加法器/減法器801a通過(guò)首先反相Source2i805a及加1形成Source2i805a的2的補(bǔ)碼,從Source1i804a減去位Source2i805a。然后,加法器/減法器801a將這一結(jié)果加在Source1i804a上。位片的2的補(bǔ)碼運(yùn)算技術(shù)是本技術(shù)中眾所周知的,熟悉本技術(shù)的人員會(huì)理解如何設(shè)計(jì)這一位片的2的補(bǔ)碼運(yùn)算電路。注意進(jìn)位的傳播是受位控制802及運(yùn)算與進(jìn)位控制803控制的。圖9說(shuō)明按照本發(fā)明一個(gè)實(shí)施例在分組字節(jié)數(shù)據(jù)上執(zhí)行分組加法與分組減法的電路。Source1總線901與Source2總線902分別通過(guò)Source1in906a-h與Source2in905a-h將信息信號(hào)帶到加法器/減法器908a-h中。從而,加法器/減法器908a在Source1位7至位0上加上/減去Source2位7至位0;加法器/減法器908b在Source1位15至位8上加上/減去Source2位15至位8,等等。CTRL904a-h通過(guò)分組控制911接收來(lái)自運(yùn)算控制903的禁止進(jìn)位傳播、允許/禁止飽和以及允許/禁止帶符號(hào)/無(wú)符號(hào)算術(shù)運(yùn)算的控制信號(hào)。運(yùn)算控制903通過(guò)從CTRL904a-h接收進(jìn)位信息并且不將它傳播給次最高位加法器/減法器908a-h而禁止進(jìn)位傳播。從而,運(yùn)算控制903執(zhí)行運(yùn)算與進(jìn)位控制803及64位分組數(shù)據(jù)的位控制802的運(yùn)算。給出了圖1-9中的示例及上述描述,熟悉本技術(shù)的人員能建立這一電路。加法器/減法器908a-h通過(guò)結(jié)果輸出907a-h將各種分組加法的結(jié)果信息傳遞給結(jié)果寄存器910a-h。各結(jié)果寄存器910a-h存儲(chǔ)及隨后將結(jié)果信息傳輸?shù)絉esult總線909上。然后將這一結(jié)果信息存儲(chǔ)在DEST605寄存器地址指定的整數(shù)寄存器中。圖10為按照本發(fā)明的一個(gè)實(shí)施例在分組字?jǐn)?shù)據(jù)上執(zhí)行分組加法與分組減法的電路的邏輯視圖。這里,正在執(zhí)行分組字運(yùn)算。運(yùn)算控制903啟動(dòng)位8與位7、位24與位23、位40與位39以及位56與位55之間的進(jìn)位傳播。從而,示出為虛擬加法器/減法器1008a的加法器/減法器908a與908b一起工作在分組字?jǐn)?shù)據(jù)Source1的第一個(gè)字(位15至位0)上加上/減去分組字?jǐn)?shù)據(jù)Source2的第一個(gè)字(位15至位0);示出為虛擬加法器/減法器1008b的加法器/減法器908c與908d一起工作在分組字?jǐn)?shù)據(jù)Source1的第二個(gè)字(位31至位16)上加/減分組字?jǐn)?shù)據(jù)Source2的第二個(gè)字(位31至位16),等等。虛擬加法器/減法器1008a-d通過(guò)結(jié)果輸出1007a-d(組合的結(jié)果輸出907a-b、907c-d、907e-f及907g-h)將結(jié)果信息傳遞給虛擬結(jié)果寄存器1010a-d。各虛擬結(jié)果寄存器1010a-d(組合的結(jié)果寄存器910a-b、910c-d、910e-f及910g-h)存儲(chǔ)要傳遞到Result總線909上的16位結(jié)果數(shù)據(jù)元素。圖11為按照本發(fā)明的一個(gè)實(shí)施例在分組雙字?jǐn)?shù)據(jù)上執(zhí)行分組加法與分組減法的電路的邏輯圖。運(yùn)算控制903啟動(dòng)位8與位7、位16與位15、位24與位23、位40與位39、位48與位47及位56與位55之間的進(jìn)位傳播。從而,示出為虛擬加法器/減法器1108a的加法器/減法器908a-d一起工作在組合字?jǐn)?shù)據(jù)Source1的第一個(gè)雙字(位31至位0)上加上/減去組合雙字?jǐn)?shù)據(jù)Source2的第一個(gè)雙字(位31至位0);示出為虛擬加法器/減法器1108b的加法器/減法器908e-h一起工作在組合雙字?jǐn)?shù)據(jù)Source1的第二個(gè)雙字(位63至位32)上加上/減去組合雙字?jǐn)?shù)據(jù)Source2的第二個(gè)雙字(位63至位32)。虛擬加法器/減法器1108a-b通過(guò)結(jié)果輸出1107a-b(組合的結(jié)果輸出907a-d與907e-h)將結(jié)果信息傳遞給虛擬結(jié)果寄存器1110a-b。各虛擬結(jié)果寄存器1110a-b(組合的結(jié)果寄存器910a-d與910e-h)存儲(chǔ)要傳遞到Result總線909上的32位結(jié)果數(shù)據(jù)元素。分組乘法分組乘法運(yùn)算在本發(fā)明的一個(gè)實(shí)施例中,SRC1寄存器中包含被乘數(shù)數(shù)據(jù)(Source1),SRC2寄存器中包含乘數(shù)數(shù)據(jù)(Source2),而DEST寄存器中則包含乘積(結(jié)果)的一部分。即Source1的各數(shù)據(jù)元素獨(dú)立地乘以Source2的相應(yīng)數(shù)據(jù)元素。取決于乘法的類(lèi)型,Result中將包含積的高階位或低階位。在本發(fā)明的一個(gè)實(shí)施例中,支持下述乘法運(yùn)算乘法高無(wú)符號(hào)分組、乘法高帶符號(hào)分組及乘法低分組。高/低表示在Result中要包含來(lái)自乘積的哪些位。這是必要的,因?yàn)閮蓚€(gè)N位數(shù)相乘得出具有2N位的積。由于各結(jié)果數(shù)據(jù)元素與被乘數(shù)及乘數(shù)數(shù)據(jù)元素大小相同,結(jié)果只能表示積的一半。高導(dǎo)致較高階位被作為結(jié)果輸出。低導(dǎo)致低階位被作為結(jié)果輸出。例如,Source1[70]×Source2[70]的無(wú)符號(hào)高分組乘法,在Result[70]中存儲(chǔ)積的高階位。在本發(fā)明的一個(gè)實(shí)施例中,高/低運(yùn)算修飾符的使用消除了從一個(gè)數(shù)據(jù)元素上溢到下一個(gè)較高數(shù)據(jù)元素的可能性。即,這一修飾符允許程序員選擇積中哪些位要在結(jié)果中而不考慮上溢。程序員能用分組乘法運(yùn)算的組合生成完整的2N位積。例如,程序員能用Source1和Source2用乘法高無(wú)符號(hào)分組運(yùn)算然后再用相同的Source1與Source2用乘法低分組運(yùn)算得出完整的(2N)積。提供了乘法高運(yùn)算因?yàn)橥ǔ7e的高階位是積的僅有的重要部分。程序員可以不必首先執(zhí)行任何截位便得到積的高階位,這種截位對(duì)于非分組數(shù)據(jù)運(yùn)算通常是需要的。在本發(fā)明的一個(gè)實(shí)施例中,Source2中的各數(shù)據(jù)元素可具有一個(gè)不同的值。這向程序員提供了對(duì)于Source1中的各被乘數(shù)可具有不同的值作為乘數(shù)的靈活性。圖12為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行分組乘法運(yùn)算的方法的流程圖。在步驟1201,解碼器202解碼處理器109接收的控制信號(hào)207。從而,解碼器202解碼出適當(dāng)乘法運(yùn)算的運(yùn)算碼;寄存器209中的SRC1602、SRC2603及DEST604地址;帶符號(hào)/無(wú)符號(hào)、高/低及分組數(shù)據(jù)中的數(shù)據(jù)元素的長(zhǎng)度。在步驟1202,解碼器202通過(guò)內(nèi)部總線170存取寄存器文件150中給定SRC1602與SRC2603地址的寄存器209。寄存器209向執(zhí)行單元130提供存儲(chǔ)在SRC1603寄存器中的分組數(shù)據(jù)(Source1)及存儲(chǔ)在SRC2603寄存器中的分組數(shù)據(jù)(Source2)。即,寄存器209通過(guò)內(nèi)部總線170將分組數(shù)據(jù)傳遞給執(zhí)行單元130。在步驟1130解碼器202啟動(dòng)執(zhí)行單元130執(zhí)行適當(dāng)?shù)姆纸M乘法運(yùn)算。解碼器202還通過(guò)內(nèi)部總線170傳遞用于乘法運(yùn)算的數(shù)據(jù)元素的長(zhǎng)度及高/低。在步驟1210,數(shù)據(jù)元素的長(zhǎng)度確定下面執(zhí)行哪一步驟。如果數(shù)據(jù)元素的長(zhǎng)度是8位(字節(jié)數(shù)據(jù)),則執(zhí)行單元130執(zhí)行步驟1212。然而,如果分組數(shù)據(jù)中的數(shù)據(jù)元素長(zhǎng)度為16位(字?jǐn)?shù)據(jù)),則執(zhí)行單元130執(zhí)行步驟1214。在一個(gè)實(shí)施例中,只支持16位數(shù)據(jù)元素長(zhǎng)度的分組乘法。在另一實(shí)施例中,支持8位與16位數(shù)據(jù)元素長(zhǎng)度分組乘法。然而,在另一實(shí)施例中,還支持32位數(shù)據(jù)元素長(zhǎng)度分組乘法。假定數(shù)據(jù)元素的長(zhǎng)度為8位,便執(zhí)行步驟1212。在步驟1212中,執(zhí)行下述各操作,將Source1位7至位0乘以Source2位7至位0生成Result位7至位0。將Source1位15至8乘以Source2位15至8生成Result位15至8。將Source1位23至16乘以Source2位23至16生成Result位23至16。將Source1位31至24乘以Source2位31至24生成Result位31至24。將Source1位39至32乘以Source2位39至32生成Result位39至32。將Source1位47至40乘以Source2位47至40生成REsult位47至40。將Source1位55至48乘以Source2位55至48生成Result位55至48。將Source1位63至56乘以Source2位63至56生成Result位63至56。假定數(shù)據(jù)元素的長(zhǎng)度為16位,則執(zhí)行步驟1214。在步驟1214中,執(zhí)行下述操作。將Source1位15至0乘以Source2位15至0生成Result位15至0。將Source1位31至16乘以Source2位31至16生成Result位31至16。將Source1位47至32乘以Source2位47至32生成Result位47至32。將Source1位63至48乘以Source2位63至48生成Result位63至48。在一個(gè)實(shí)施例中,同時(shí)執(zhí)行步驟1212的乘法。然而在另一實(shí)施例中,這些乘法是串行執(zhí)行的。在另一實(shí)施例中,這些乘法中一些是同時(shí)執(zhí)行的而一些是串行執(zhí)行的。這一討論也同樣適用于步驟1214的乘法。在步驟1220將Result存儲(chǔ)在DEST寄存器中。表14示出在分組字?jǐn)?shù)據(jù)上的分組乘法無(wú)符號(hào)高運(yùn)算的寄存器表示。第一行的位為Source1的分組數(shù)據(jù)表示。第二行的位為Source2的數(shù)據(jù)表示。第三行的位為Result的分組數(shù)據(jù)表示。各數(shù)據(jù)元素位下面的號(hào)碼為數(shù)據(jù)元素號(hào)。例如,Source1數(shù)據(jù)元素2為11111111000000002。表14表15示出分組字?jǐn)?shù)據(jù)上的乘法高帶符號(hào)分組運(yùn)算的寄存器表示。表15表16示出分組字?jǐn)?shù)據(jù)上的分組乘法低運(yùn)算的寄存器表示。表16分組數(shù)據(jù)乘法電路在一個(gè)實(shí)施例中,可以在與分解的數(shù)據(jù)上的單一乘法運(yùn)算相同數(shù)目的時(shí)鐘周期中在多個(gè)數(shù)據(jù)元素上出現(xiàn)乘法運(yùn)算。為了達(dá)到在相同數(shù)目的時(shí)鐘周期中執(zhí)行,采用了并行性。即同時(shí)指示寄存器在數(shù)據(jù)元素上執(zhí)行乘法運(yùn)行。在下面更詳細(xì)地討論這一點(diǎn)。圖13說(shuō)明用于按照本發(fā)明的一個(gè)實(shí)施例執(zhí)行分組乘法的電路。運(yùn)算控制1300控制執(zhí)行乘法的電路。運(yùn)算控制1300處理乘法運(yùn)算的控制信號(hào)并具有下述輸出高/低使能1380;字節(jié)/字使能1381及符號(hào)使能1382,高/低使能1380標(biāo)識(shí)結(jié)果中要包含積的高階位還是低階位。字節(jié)/字使能1381標(biāo)識(shí)要執(zhí)行的是字節(jié)分組數(shù)據(jù)還是字分組數(shù)據(jù)乘法運(yùn)算。符號(hào)使能1382指示是否應(yīng)采用帶符號(hào)乘法。分組字乘法器1301同時(shí)乘四個(gè)字?jǐn)?shù)據(jù)元素。分組字節(jié)乘法器1302乘8個(gè)字節(jié)數(shù)據(jù)元素。分組字乘法器1301及分組字節(jié)乘法器都具有下述輸入Source1[630]1331、Source[630]1333、符號(hào)使能1382及高/低使能1380。分組字乘法器1301包含4個(gè)16×16乘法器電路16×16乘法器A1310、16×16乘法器B1311、16×16乘法器C1312及16×16乘法器D1313。16×16乘法器A1310具有輸入Source1[150]與Source2[150],16×16乘法器B1311具有輸入Source1[3116]與Source2[3116],16×16乘法器C1312具有輸入Source1[4732]與Source2[4732],16×16乘法器D1313具有輸入Source1[6348]與Source2[6348]。各16×16乘法器耦合在符號(hào)使能1382上。各16×16乘法器產(chǎn)生32位積。對(duì)于各乘法器,多路復(fù)用器(分別為Mx01350、Mx11351、Mx21352及Mx31353)接收32位結(jié)果。取決于高/低使能1380的值,各多路復(fù)用器輸出積的16個(gè)高階位或16個(gè)低階位。將四個(gè)多路復(fù)用器的輸出組合成一個(gè)64位結(jié)果。這一結(jié)果可選地存儲(chǔ)在結(jié)果寄存器11371中。分組字節(jié)乘法器1302包含8個(gè)8×8乘法器電路8×8乘法器A1320至8×8乘法器H1337。各8×8乘法器具有來(lái)自各Source1[630]1331及Source2[630]1333的8位輸入。例如8×8乘法器A1320具有輸入Source1[70]與Source2[70],而8×8乘法器H1327具有輸入Source1[6356]與Source2[6356]。各8×8乘法器耦合在符號(hào)使能1382上。各8×8乘法器產(chǎn)生一個(gè)16位積。對(duì)于各乘法器,多路復(fù)用器(諸如Mx41360與Mx111367)接收16位結(jié)果。取決于高/低使能1380的值。各多路復(fù)用器輸出積的8個(gè)高階位或8個(gè)低階位。將8個(gè)多路復(fù)用器的輸出組合成一個(gè)64位結(jié)果。可選地將這一結(jié)果存儲(chǔ)在結(jié)果寄存器21372中。取決于該運(yùn)算要求的數(shù)據(jù)元素的長(zhǎng)度,字節(jié)/字使能1381啟動(dòng)特定的結(jié)果寄存器。在一個(gè)實(shí)施例中,通過(guò)制造能乘兩個(gè)8×8數(shù)或一個(gè)16×16數(shù)兩者的電路,減少用于實(shí)現(xiàn)乘法的面積。即將兩個(gè)8×8乘法器及一個(gè)16×16乘法器組合成一個(gè)8×8與16×16乘法器。運(yùn)算控制1300將允許乘法的適當(dāng)長(zhǎng)度。在這一實(shí)施例中,可以縮小乘法器所使用的物理面積,然而它將難于執(zhí)行分組字節(jié)乘法及分組字乘法。在另一支持分組雙字乘法的實(shí)施例中,一個(gè)乘法器能執(zhí)行四個(gè)8×8乘法、兩個(gè)16×16乘法或一個(gè)32×32乘法。在一個(gè)實(shí)施例中,只提供分組字乘法運(yùn)算。在這一實(shí)施例中,不包含分組字節(jié)乘法器1302及結(jié)果寄存器21372。在指令集中包含上述分組乘法運(yùn)算的優(yōu)點(diǎn)從而上述分組乘法指令提供了Source1中各數(shù)據(jù)元素乘以Source2中其對(duì)應(yīng)數(shù)據(jù)元素的獨(dú)立乘法。當(dāng)然,要求Source1各元素乘以同一個(gè)數(shù)算法可通過(guò)將該相同的數(shù)存儲(chǔ)在Source2的各元素中來(lái)執(zhí)行。此外,這一乘法指令通過(guò)斷開(kāi)進(jìn)位鏈防止上溢;借此解除程序員的這一責(zé)任,不再需要準(zhǔn)備數(shù)據(jù)來(lái)防止上溢的指令,并得出更健壯的代碼。反之,不支持這一指令的先有技術(shù)通用處理器需要通過(guò)分解數(shù)據(jù)元素、執(zhí)行乘法及隨后組裝結(jié)果供進(jìn)一步分組處理,來(lái)執(zhí)行這一運(yùn)算。這樣,處理器109便能利用一條指令并行地將分組數(shù)據(jù)的不同數(shù)據(jù)元素乘以不同的乘數(shù)。典型的多媒體算法執(zhí)行大量的乘法運(yùn)算。從而,通過(guò)減少執(zhí)行這些乘法運(yùn)算所需的指令數(shù),便能提高這些多媒體算法的性能。從而,通過(guò)在處理器109所支持的指令集中提供這一乘法指令,處理器109便能在較高的性能級(jí)上執(zhí)行需要這一功能的算法。乘-加/減乘-加/減運(yùn)算在一個(gè)實(shí)施例中,采用下面表17a與表17b中所示的單一乘-加指令執(zhí)行兩個(gè)乘-加運(yùn)算。表17a示出所公開(kāi)的乘-加指令的簡(jiǎn)化表示,而表17b示出公開(kāi)的乘-加指令的位級(jí)示例。Multiply-AddSource1.Source2Source1Source2Result1表17a表17b除了用“減”替換“加”之外,乘-減運(yùn)算與乘-加運(yùn)算相同。表12中示出執(zhí)行兩個(gè)乘-減運(yùn)算的示例乘-減指令的運(yùn)算。Multiply-SubtractSource1.Source2Source1Source2Result1表12在本發(fā)明的一個(gè)實(shí)施例中,SRC1寄存器包含分組數(shù)據(jù)(Source1),SRC2寄存器包含分組數(shù)據(jù)(Source2),而DEST寄存器將包含在Source1與Source2上執(zhí)行乘-加或乘-減指令的結(jié)果(Result)。在乘-加或乘-減指令的第一步中,Source1的各數(shù)據(jù)元素獨(dú)立地乘以Source2的對(duì)應(yīng)數(shù)據(jù)元素以生成一組對(duì)應(yīng)的中間結(jié)果。在執(zhí)行乘-加指令時(shí),將這些中間結(jié)果成對(duì)相加,生成兩個(gè)數(shù)據(jù)元素,將它們作為Result的數(shù)據(jù)元素存儲(chǔ)。相反,在執(zhí)行乘-減指令時(shí),成對(duì)相減這些中間結(jié)果生成兩個(gè)數(shù)據(jù)元素,將它們作為Result的數(shù)據(jù)元素存儲(chǔ)。替代實(shí)施例可改變中間結(jié)果的數(shù)據(jù)元素與/或Result中的數(shù)據(jù)元素中的位數(shù)。此外,替代實(shí)施例可改變Source1、Source2及Result中的數(shù)據(jù)元素?cái)?shù)。例如,如果Source1與Source2各有8個(gè)數(shù)據(jù)元素,可將乘-加/減指令實(shí)現(xiàn)為產(chǎn)生帶有4個(gè)數(shù)據(jù)元素(Result中的各數(shù)據(jù)元素表示兩個(gè)中間結(jié)果的相加)、兩個(gè)數(shù)據(jù)元素(結(jié)果中的各數(shù)據(jù)元素表示四個(gè)中間結(jié)果的相加)等的Result。圖14為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行乘-加與乘-減的方法的流程圖。在步驟1401,解碼器202解碼處理器109接收的控制信號(hào)207。從而,解碼器202解碼出乘-加或乘-減指令的操作碼。在步驟1402,解碼器202通過(guò)內(nèi)部總線170存取給出SRC1602與SRC2603地址的寄存器文件150中的寄存器209。寄存器209向執(zhí)行單元130提供存儲(chǔ)在SRC1602寄存器中的分組數(shù)據(jù)(Source1)及存儲(chǔ)在SRC2603寄存器中的分組數(shù)據(jù)(Source2)。即寄存器209通過(guò)內(nèi)部總線170將分組數(shù)據(jù)傳遞給執(zhí)行單元130。在步驟1403,解碼器202啟動(dòng)執(zhí)行單元130去執(zhí)行指令。如果該指令為乘-加指令,流程進(jìn)到步驟1414。然而,如果該指令為乘-減指令,流程便進(jìn)到步驟1415。在步驟1414中,執(zhí)行以下運(yùn)算。將Source1位15至0乘以Source2位15至0生成第一32位中間結(jié)果(中間結(jié)果1)。將Source1位31至16乘以Source2位31至16生成第二32位中間結(jié)果(中間結(jié)果2)。將Source1位47至32乘以Source2位47至32生成第三32位中間結(jié)果(中間結(jié)果3)。將Source1位63至48乘以Source2位63至48生成第四32位中間結(jié)果(中間結(jié)果4)。將中間結(jié)果1加到中間結(jié)果2上生成Result的位31至0,并將中間結(jié)果3加到中間結(jié)果4上生成Result的位63至32。步驟1415與步驟1414相同,除了將中間結(jié)果1與中間結(jié)果2相減以生成Result的位31至0,中間結(jié)果3與中間結(jié)果4相減以生成Result的位63至32。不同實(shí)施例可執(zhí)行串行、并行或串行與并行運(yùn)算的某種組合的乘與加/減。在步驟1420,將Result存儲(chǔ)在DEST寄存器中。分組數(shù)據(jù)乘-加/減電路在一個(gè)實(shí)施例中,能和在分解的數(shù)據(jù)上的單個(gè)乘法一樣的相同數(shù)目的時(shí)鐘周期中在多個(gè)數(shù)據(jù)元素上出現(xiàn)各乘-加與乘-減指令。為了達(dá)到在相同數(shù)目的時(shí)鐘周期中執(zhí)行,采用了并行性。即指示寄存器在數(shù)據(jù)元素上同時(shí)執(zhí)行乘-加或乘-減運(yùn)算。下面更詳細(xì)地討論這一點(diǎn)。圖15說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行乘-加與/或乘-減運(yùn)算的電路。操作控制1500處理乘-加與乘-減指令的控制信號(hào)。操作控制1500在使能1580上輸出信號(hào)來(lái)控制分組乘-加法器/減法器1501。分組乘-加法器/減法器1501具有下列輸入Source1[630]1531、Source2[630]1533及使能1580。分組乘-加法器/減法器1501包含4個(gè)16×16乘法器電路16×16乘法器A1510、16×16乘法器B1511、16×16乘法器C1512及16×16乘法器D1513。16×16乘法器A1510具有輸入Source1[150]及Source2[150]。16×16乘法器B1511具有輸入Source1[3116]及Source2[3116]。16×16乘法器C1512具有輸入Source1[4732]及Source2[4732]。16×16乘法器D1513具有輸入Source1[6348]及Source2[6348],16×16乘法器A1510及16×16乘法器B1511生成的32位中間結(jié)果由虛擬加法器/減法器1550接收,而16×16乘法器C1512及16×16乘法器D1513生成的32位中間結(jié)果則由虛擬加法器/減法器1551接收。基于當(dāng)前指令是乘-加還是乘-減指令,虛擬加法器/減法器1550與1551或加或減它們各自的32位輸入。虛擬加法器/減法器1550的輸出(即Result的位31至0)及虛擬加法器/減法器1551的輸出(即Result的位63至32)組合成64位Result并被傳遞給結(jié)果寄存器1571。在一個(gè)實(shí)施例中,虛擬加法器/減法器1551及1550是以類(lèi)似虛擬加法器/減法器1108b及1108a的方式實(shí)現(xiàn)的(即各虛擬加法器/減法器1551及1550是由帶有適當(dāng)傳播延時(shí)的4個(gè)8位加法器組成的)。然而,替代實(shí)施例能用各種方式實(shí)現(xiàn)虛擬加法器/減法器15S1及1550。為了在分解數(shù)據(jù)上操作的先有技術(shù)處理器上執(zhí)行這些乘-加或乘-減指令的等效指令,將需要四次獨(dú)立的64位乘法運(yùn)算與兩次64位加或減法運(yùn)算以及必要的加載與存儲(chǔ)操作。這浪費(fèi)用于Source1與Source2的高于位16及Result的高于位32的數(shù)據(jù)線及電路。并且,這種先有技術(shù)處理器生成的整個(gè)64位結(jié)果對(duì)于程序員可能是無(wú)用的。因此,程序員將必須截?cái)喔鹘Y(jié)果。在指令集中包含上述乘-加運(yùn)算的優(yōu)點(diǎn)上述乘-加/減指令可用于若干目的。例如,乘-加指令可用在復(fù)數(shù)乘法及值的相乘與累加。稍后要描述利用乘-加指令的若干算法。從而通過(guò)在處理器109支持的指令集中加入上述乘-加與/或乘-減指令,便能用比缺少這些指令的先有技術(shù)通用處理器較少的指令執(zhí)行許多功能。分組移位分組移位操作在本發(fā)明的一個(gè)實(shí)施例中,SCR1寄存器中包含要移位的數(shù)據(jù)(Source1),SRC2寄存器中包含表示移位計(jì)數(shù)的數(shù)據(jù)(Source2),而DEST寄存器中將包含移位的結(jié)果(Result)。即Source1中的各數(shù)據(jù)元素獨(dú)立地移位該移位計(jì)數(shù)。在一個(gè)實(shí)施例中,將Source2解釋為一個(gè)無(wú)符號(hào)的64位標(biāo)量。在另一實(shí)施例中,Source2為分組數(shù)據(jù)并包含Source1中各對(duì)應(yīng)數(shù)據(jù)元素的移位計(jì)數(shù)。在本發(fā)明的一個(gè)實(shí)施例中,支持算術(shù)移位與邏輯移位兩者。算術(shù)移位將各數(shù)據(jù)元素的位向下移位指定的數(shù)目,并用符號(hào)位的初始值填充各數(shù)據(jù)元素的高階位。對(duì)于分組字節(jié)數(shù)據(jù)大于7的移位計(jì)數(shù)、對(duì)于分組字?jǐn)?shù)據(jù),大于15的移位計(jì)數(shù)、或?qū)τ诜纸M雙字大于31的移位計(jì)數(shù)導(dǎo)致用符號(hào)位的初始值來(lái)填充各Result數(shù)據(jù)元素。邏輯移位可用向上或向下移位來(lái)操作。在邏輯向右移位中,用0來(lái)填充各數(shù)據(jù)元素的高階位。在邏輯向左移位中,用零來(lái)填充各數(shù)據(jù)元素的最低位。在本發(fā)明的一個(gè)實(shí)施例中,對(duì)分組字節(jié)與分組字支持算術(shù)向右移位、邏輯向右移位及邏輯向左移位。在本發(fā)明的另一實(shí)施例中,對(duì)分組雙字也支持這些操作。圖16為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行分組移位操作的方法的流程圖。在步驟1601,解碼器202解碼處理器109所接收的控制信號(hào)207。從而,解碼器202解碼出用于適當(dāng)移位操作的操作碼;寄存器209中的SRC1602、SRC2603及DEST605地址;飽和/不飽和(對(duì)移位操作不一定需要)、帶符號(hào)/無(wú)符號(hào)(也不一定需要)及分組數(shù)據(jù)中的數(shù)據(jù)元素的長(zhǎng)度。在步驟1602,解碼器202通過(guò)內(nèi)部總線170存取寄存器文件150中給出SRC1602及SRC2603地址的寄存器209。寄存器209向執(zhí)行單元130提供SRC1602寄存器中所存儲(chǔ)的分組數(shù)據(jù)(Source1)及存儲(chǔ)在SRC2603寄存器中的標(biāo)量移位計(jì)數(shù)(Source2)。即寄存器209通過(guò)內(nèi)部總線170將分組數(shù)據(jù)傳遞給執(zhí)行單元130。在步驟1603,解碼器202啟動(dòng)執(zhí)行單元130去執(zhí)行適當(dāng)?shù)姆纸M移位操作。解碼器202還通過(guò)內(nèi)部總線170傳遞數(shù)據(jù)元素長(zhǎng)度、移位操作類(lèi)型及移位方向(對(duì)于邏輯移位)。在步驟1610,數(shù)據(jù)元素的長(zhǎng)度確定下面要執(zhí)行哪一步驟。如果數(shù)據(jù)元素的長(zhǎng)度是8位(字節(jié)數(shù)據(jù)),則執(zhí)行單元130執(zhí)行步驟1612。然而,如果分組數(shù)據(jù)中的數(shù)據(jù)元素的長(zhǎng)度為16位(字?jǐn)?shù)據(jù)),則執(zhí)行單元130執(zhí)行步驟1614。在一個(gè)實(shí)施例中,只支持8位與16位數(shù)據(jù)元素長(zhǎng)度的分組移位。然而,在另一實(shí)施例中,也支持32位數(shù)據(jù)元素長(zhǎng)度的分組移位。假定數(shù)據(jù)元素的長(zhǎng)度為8位,便執(zhí)行步驟1612。在步驟1612中,執(zhí)行下述操作。將Source1位7至0移位移位計(jì)數(shù)(Source2位63至0)生成Result位7至0。Source1位15至8移位移位計(jì)數(shù)生成Result位15至8。將Source1位23至16移位移位計(jì)數(shù)生成Result位23至16。將Source1位31至24移位移位計(jì)數(shù)生成Result位31至24。將Source1位39至32移位移位計(jì)數(shù)生成Result位39至32。將Source1位47至40移位移位計(jì)數(shù)生成Result位47至40。將Source1位55至48移位移位計(jì)數(shù)生成Result位55至48。將Source1位63至56移位移位計(jì)數(shù)生成Result位63至56。假定數(shù)據(jù)元素的長(zhǎng)度為16位,便執(zhí)行步驟1614。在步驟1614中執(zhí)行下述操作。將Source1位15至0移位移位計(jì)數(shù)生成Result位15至0。將Source1位31至16移位移位計(jì)數(shù)生成Result位31至16。將Source1位47至32移位移位計(jì)數(shù)生成Result位47至32。將Source1位63至48移位移位計(jì)數(shù)生成Result位63至48。在一個(gè)實(shí)施例中,步驟1612的移位是同時(shí)執(zhí)行的。然而,在另一實(shí)施例中,這些移位是串行執(zhí)行的。在另一實(shí)施例中這些移位中一些是同時(shí)執(zhí)行的而一些是串行執(zhí)行的。這一討論同樣適用于步驟1614的移位。在步驟1620,將Result存儲(chǔ)在DEST寄存器中。表19說(shuō)明字節(jié)分組算術(shù)向右移位操作的寄存器表示。第一行的位為Source1的分組數(shù)據(jù)表示。第二行的位為Source2的數(shù)據(jù)表示。第三行的位為Result的分組數(shù)據(jù)表示。各數(shù)據(jù)元素位下面的數(shù)字為數(shù)據(jù)元素號(hào)。例如,Source1數(shù)據(jù)元素3為100000002表19表20說(shuō)明分組字節(jié)數(shù)據(jù)上的分組邏輯向右移位操作的寄存器表示表20表21說(shuō)明分組字節(jié)數(shù)據(jù)上的分組邏輯向左移位操作的寄存器表示<p>表21分組數(shù)據(jù)移位電路在一個(gè)實(shí)施例中,在與分解的數(shù)據(jù)上的單個(gè)移位操作相同數(shù)目的時(shí)鐘周期中可在多個(gè)數(shù)據(jù)元素上出現(xiàn)移位操作。為了達(dá)到在相同數(shù)目的時(shí)鐘周期中執(zhí)行,采用了并行性。即指示寄存器同時(shí)在數(shù)據(jù)元素上執(zhí)行移位操作,下面對(duì)此作更詳細(xì)的討論。圖17說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)的各個(gè)字節(jié)上執(zhí)行分組移位的電路。圖17示出經(jīng)修改的字節(jié)片移位電路、字節(jié)片級(jí)i1799的使用。各字節(jié)片(除最高位數(shù)據(jù)元素字節(jié)片外)包含一個(gè)移位單元及位控制。最高位數(shù)據(jù)元素字節(jié)片只需一個(gè)移位單元。移位單元i1711及移位單元i+11771各允許將來(lái)自Source1的8位移位該移位計(jì)數(shù)。在一個(gè)實(shí)施例中,各移位單元象已知的8位移位電路那樣操作。各移位單元具有一個(gè)Source1輸入、一個(gè)Source2輸入、一個(gè)控制輸入、一個(gè)下一級(jí)信號(hào)、一個(gè)上一級(jí)信號(hào)及一個(gè)結(jié)果輸出。因此,移位單元i1711具有Source1i1731輸入、Source2[630]1733輸入、控制i1701輸入、下一級(jí)i1713信號(hào)、上一級(jí)i1712輸入及存儲(chǔ)在結(jié)果寄存器i1751中的結(jié)果。因此,移位單元i+11771具有Source1i+11732輸入、Source2[630]1733輸入、控制i+11702輸入、下一級(jí)i+11773信號(hào)、上一級(jí)i+11772輸入及存儲(chǔ)在結(jié)果寄存器i+11752中的結(jié)果。Sourcc1輸入通常是Source1的一個(gè)8位部分。8位表示數(shù)據(jù)元素的最小類(lèi)型,一個(gè)分組字節(jié)數(shù)據(jù)元素。Source2輸入表示移位計(jì)數(shù)。在一個(gè)實(shí)施例中,各移位單元從Source2[630]1733接收相同的移位計(jì)數(shù)。操作控制1700傳輸控制信號(hào)啟動(dòng)各移位單元執(zhí)行要求的移位??刂菩盘?hào)是從移位類(lèi)型(算術(shù)/邏輯)及移位方向確定的。下一級(jí)信號(hào)是從該移位單元的位控制接收的。取決于移位的方向(左/右),在下一級(jí)信號(hào)上移位單元將最高位移出/進(jìn)。類(lèi)似地,取決于移位的方向(右/左),各移位單元在上一級(jí)信號(hào)上將最低位移出/進(jìn)。上一級(jí)信號(hào)是從前一級(jí)的位控制單元接收的。結(jié)果輸出表示移位單元在其上操作的Source1的部分上的移位操作的結(jié)果。位控制i1720是從操作控制1700通過(guò)分組數(shù)據(jù)啟動(dòng)i1706啟動(dòng)的。位控制i1720控制下一級(jí)i1713及上一級(jí)i+11772。例如,假定移位單元i1711負(fù)責(zé)Source1的8個(gè)最低位,而移位單元i+11771負(fù)責(zé)Source1的下一個(gè)8位。如果執(zhí)行在分組字節(jié)上的移位,位控制i1720將不允許來(lái)自移位單元i+11771的最低位與移位單元i1711的最高位連通。然而,執(zhí)行分組字上的移位時(shí),則位控制i1720將允許來(lái)自移位單元i+11771的最低位與移位單元i1711的最高位連通。例如,在表22中,執(zhí)行分組字節(jié)算術(shù)向右移位。假定移位單元i+11771在數(shù)據(jù)元素1上操作,而移位單元i1711在數(shù)據(jù)元素0上操作。移位單元i+11771將其最低位移出。然而操作控制1700將導(dǎo)致位控制i1720停止從上一級(jí)i+11721接收的該位傳播到下一級(jí)i1713。反之,移位單元i1711以符號(hào)位填充最高階位Source1[7]。表22然而,如果執(zhí)行分組字算術(shù)移位,則將移位單元i+11771的最低位傳遞給移位單元i1711的最高位。表23示出這一結(jié)果。這一傳遞對(duì)于分組雙字移位同樣允許。表23各移位單元可選地耦合在結(jié)果寄存器上。結(jié)果寄存器臨時(shí)存儲(chǔ)移位操作的結(jié)果直到可將整個(gè)結(jié)果Result[630]1760傳輸給DEST寄存器為止。對(duì)于一個(gè)完整的64位分組移位電路,使用8個(gè)移位單元及7個(gè)位控制單元。這一電路也能用來(lái)執(zhí)行64位非分組數(shù)據(jù)上的移位,從而使用同一電路來(lái)執(zhí)行非分組移位操作與分組移位操作。在指令集中包含上述移位操作的優(yōu)點(diǎn)上述分組移位指令導(dǎo)致Source1的各元素移位指定的移位計(jì)數(shù)。通過(guò)在指令集中加入這一指令,便可使用單一指令移位一個(gè)分組數(shù)據(jù)的各元素。反之,不支持這一操作的先有技術(shù)通用處理器必須執(zhí)行許多指令來(lái)分解Source1,單個(gè)地移位各分解的數(shù)據(jù)元素,然后將結(jié)果組裝成分組數(shù)據(jù)格式供進(jìn)一步分組處理。傳送操作傳送操作向或從寄存器209傳送數(shù)據(jù)。在一個(gè)實(shí)施例中,SRC2603為包含源數(shù)據(jù)的地址而DEST605則是數(shù)據(jù)要傳送到的地址。在這一實(shí)施例中,不使用SRC1602。在另一實(shí)施例中,SRC1602等于DEST605。為了說(shuō)明傳送操作的目的,將寄存器與存儲(chǔ)單元區(qū)分開(kāi)。寄存器在寄存器文件150中而存儲(chǔ)器則可以是諸如在高速緩沖存儲(chǔ)器160、主存儲(chǔ)器104、ROM106、數(shù)據(jù)存儲(chǔ)設(shè)備107中。傳送操作可將數(shù)據(jù)從存儲(chǔ)器傳送到寄存器209,從寄存器209到存儲(chǔ)器,及從寄存器209中的一個(gè)寄存器到寄存器209中的第二寄存器。在一個(gè)實(shí)施例中,分組數(shù)據(jù)是存儲(chǔ)在與存儲(chǔ)整數(shù)數(shù)據(jù)不同的寄存器中的。在這一實(shí)施例中,傳送操作能將數(shù)據(jù)從整數(shù)寄存器201傳送到寄存器209。例如,在處理器109中,如果分組數(shù)據(jù)存儲(chǔ)在寄存器209中而整數(shù)數(shù)據(jù)存儲(chǔ)在整數(shù)寄存器201中,則傳送指令能用來(lái)將數(shù)據(jù)從整數(shù)寄存器201傳送到寄存器209,反之亦然。在一個(gè)實(shí)施例中,當(dāng)為傳送指定了一個(gè)存儲(chǔ)器地址時(shí),在該存儲(chǔ)單元的8個(gè)字節(jié)數(shù)據(jù)(該存儲(chǔ)單元包含最低字節(jié))被加載到寄存器209中的一個(gè)寄存器或從該寄存器存儲(chǔ)到指定存儲(chǔ)器單元中。當(dāng)指定寄存器209中的一個(gè)寄存器時(shí),便將該寄存器的內(nèi)容傳送到或加載自寄存器209中的第二寄存器或者從第二寄存器向指定寄存器加載。如果整數(shù)寄存器201的長(zhǎng)度為64位,并指定了一個(gè)整數(shù)寄存器,則將該整數(shù)寄存器中的8個(gè)字節(jié)數(shù)據(jù)加載到寄存器209中的寄存器或從該寄存器存儲(chǔ)到指定的整數(shù)寄存器中。在一個(gè)實(shí)施例中,整數(shù)是表示為32位的。在執(zhí)行從寄存器209到寄存器201的傳送操作時(shí),則只將分組數(shù)據(jù)的低32位傳送到指定的整數(shù)寄存器。在一個(gè)實(shí)施例中,將高階32位變成0。類(lèi)似地,當(dāng)執(zhí)行從整數(shù)寄存器201到寄存器209的傳送時(shí),只加載寄存器209中的一個(gè)寄存器的低32位。在一個(gè)實(shí)施例中,處理器109支持寄存器209中的寄存器與存儲(chǔ)器之間的32位傳送操作。在另一實(shí)施例中,只在分組數(shù)據(jù)的高階32位上執(zhí)行只有32位的傳送。組裝操作在本發(fā)明的一個(gè)實(shí)施例中,SRC1602寄存器包含數(shù)據(jù)(Source1),SRC2603寄存器包含數(shù)據(jù)(Source2),而DEST605寄存器將包含操作的結(jié)果數(shù)據(jù)(Result)。這便是,將Source1的部分與Source2的部分組裝在一起生成Result。在一個(gè)實(shí)施例中,組裝操作通過(guò)將源分組字(或雙字)的低階字節(jié)(或字)組裝進(jìn)Result的字節(jié)(或字)中而將分組字(或雙字)轉(zhuǎn)換成分組字節(jié)(或字)。在一個(gè)實(shí)施例中,組裝操作將4個(gè)分組字轉(zhuǎn)換成分組雙字。這一操作可選擇地以帶符號(hào)數(shù)據(jù)執(zhí)行。此外,這一操作可以選擇地以飽和執(zhí)行。在一個(gè)替代實(shí)施例中,加入了在各數(shù)據(jù)元素的高階部分上操作的附加的組裝操作。圖18為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行組裝操作的方法的流程圖。在步驟1801,解碼器202解碼處理器109接收的控制信號(hào)207。從而,解碼器202解碼出適當(dāng)?shù)慕M裝操作的操作碼;寄存器209中的SRC1602、SRC2603及DEST605地址;飽和/不飽和,帶符號(hào)/無(wú)符號(hào)及分組數(shù)據(jù)中的數(shù)據(jù)元素長(zhǎng)度。如上所述,SRC1602(或SRC2603)可用作DEST605。在步驟1802,解碼器202通過(guò)內(nèi)部總線170存取寄存器文件150中給定SRC1602與SRC2603地址的寄存器209。寄存器209向執(zhí)行單元130提供存儲(chǔ)在SRC1602寄存器中的分組數(shù)據(jù)(Source1)及存儲(chǔ)在SRC2603寄存器中的分組數(shù)據(jù)(Source2)。即寄存器209通過(guò)內(nèi)部總線170將分組數(shù)據(jù)傳遞給執(zhí)行單元130。在步驟1803,解碼器202啟動(dòng)執(zhí)行單元130去執(zhí)行適當(dāng)?shù)慕M裝操作。解碼器202還通過(guò)內(nèi)部總線170傳遞飽和及Source1和Source2中的數(shù)據(jù)元素的長(zhǎng)度??蛇x用飽和來(lái)使結(jié)果數(shù)據(jù)元素中的數(shù)據(jù)的值成為最大。如果Source1或Source2中的數(shù)據(jù)元素的值大于或小于Result的數(shù)據(jù)元素所能表示的值的范圍,則將對(duì)應(yīng)的結(jié)果數(shù)據(jù)元素設(shè)定在其最高或最低值上。例如,如果Source1與Source2的字?jǐn)?shù)據(jù)元素中的帶符號(hào)值小于0x80(或?qū)τ陔p字0x8000),則將結(jié)果字節(jié)(或字)數(shù)據(jù)元素箝位到0x80(或?qū)τ陔p字0x8000)上。如果Source1與Source2的字?jǐn)?shù)據(jù)元素中的帶符號(hào)值大于0x7F(或?qū)τ陔p字0x7FFF),則將結(jié)果字節(jié)(或字)數(shù)據(jù)元素箝位到0x7F(或0x7FFF)上。在步驟1810,數(shù)據(jù)元素的長(zhǎng)度確定下面要執(zhí)行哪一步驟。如果數(shù)據(jù)元素的長(zhǎng)度為16位(分組字402數(shù)據(jù)),則執(zhí)行單元130執(zhí)行步驟1812。然而,如果分組數(shù)據(jù)中的數(shù)據(jù)元素的長(zhǎng)度為32位(分組雙字403數(shù)據(jù)),則執(zhí)行單元130執(zhí)行步驟1814。假定源數(shù)據(jù)元素的長(zhǎng)度為16位,便執(zhí)行步驟1812。在步驟1812中,執(zhí)行以下操作。Source1位7至0為Result位7至0。Source1位23至16為Result位15至8。Source1位39至32為Result位23至16。Source1位63至56為Result位31至24。Source2位7至0為Result位39至32。Source2位23至16為Result位47至40。Source2位39至32為Result位55至48。Source2位63至56為Result位31至24。如果設(shè)定飽和,則測(cè)試各字的高階位來(lái)確定是否應(yīng)箝位Result數(shù)據(jù)元素。假定源數(shù)據(jù)元素的長(zhǎng)度為32位,便執(zhí)行步驟1814。在步驟1814中,執(zhí)行下述操作。Source1位15至0為Result位15至0。Source1位47至32為Result位31至16。Source2位15至0為Result位47至32。Source2位47至32為Result位63至48。如果設(shè)定了飽和,則測(cè)試各雙字的高階位來(lái)確定是否應(yīng)將Result數(shù)據(jù)元素箝位。在一個(gè)實(shí)施例中,同時(shí)執(zhí)行步驟1812的組裝。然而在另一實(shí)施例中,串行執(zhí)行這一組裝。在另一實(shí)施例中,一些組裝是同時(shí)執(zhí)行的而一些是串行執(zhí)行的。這一討論也適用于步驟1814的組裝。在步驟1820,將Result存儲(chǔ)在DEST605寄存器中。表24說(shuō)明組裝字操作的寄存器表示。加下標(biāo)的Hs與Ls分別表示Source1與Source2中的各16位數(shù)據(jù)元素的高與低階位。例如AL表示Source1中的數(shù)據(jù)元素A的低階8位。表25說(shuō)明組裝雙字操作的寄存器表示,其中加下標(biāo)的Hs與Ls分別表示Source1與Source2中的各32位數(shù)據(jù)元素的高低階位。表25組裝電路在本發(fā)明的一個(gè)實(shí)施例中,為了達(dá)到組裝操作的高效執(zhí)行,采用了并行性。圖19a與19b示出按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行組裝操作的電路。該電路能有選擇地執(zhí)行帶飽和的組裝操作。圖19a與19b的電路包括操作控制1900、結(jié)果寄存器1952、結(jié)果寄存器1953、8個(gè)16位到8位測(cè)試飽和電路及4個(gè)32位到16位測(cè)試飽和電路。操作控制1900接收來(lái)自解碼器202的信息來(lái)啟動(dòng)組裝操作。操作控制1900使用飽和值為各測(cè)試飽和電路啟動(dòng)飽和測(cè)試。如果源分組數(shù)據(jù)的長(zhǎng)度為字分組數(shù)據(jù)503,則操作控制1900設(shè)定輸出使能1931。這便啟動(dòng)結(jié)果寄存器1952的輸出。如果源分組數(shù)據(jù)的長(zhǎng)度為雙字分組數(shù)據(jù)504,則操作控制1900設(shè)定輸出使能1932。這便啟動(dòng)輸出寄存器1953的輸出。各測(cè)試飽和電路能有選擇地測(cè)試飽和。如果禁止飽和測(cè)試,則各測(cè)試飽和電路只將低階位傳遞到結(jié)果寄存器中對(duì)應(yīng)的位置上。如果允許測(cè)試飽和,則各測(cè)試飽和電路測(cè)試高階位來(lái)確定是否應(yīng)箝位結(jié)果。測(cè)試飽和1910至測(cè)試飽和1917具有16位輸入與8位輸出。8位輸出為輸入的低8位,或可選地是一個(gè)箝位的值(0x80、0x7F、或0xFF)。測(cè)試飽和1910接收Source1位15至0并向結(jié)果寄存器1952輸出位7至0。測(cè)試飽和1911接收Source1位31至16并向結(jié)果寄存器1952輸出位15至8。測(cè)試飽和1912接收Source1位47至32并向結(jié)果寄存器1952輸出位23至16。測(cè)試飽和1913接收Source1位63至48并向結(jié)果寄存器1952輸出位31至24。測(cè)試飽和1914接收Source2位15至0并向結(jié)果寄存器1952輸出位39至32。測(cè)試結(jié)果1915接收Source2位31至16并向結(jié)果寄存器1952輸出位47至40。測(cè)試飽和1916接收Source2位47至32并向結(jié)果寄存器1952輸出位55至48。測(cè)試飽和1917接收Source2位63至48并向結(jié)果寄存器1952輸出位63至56。測(cè)試飽和1920至測(cè)試飽和1923具有32位輸入與16位輸出。16位輸出為輸入的低16位,或可選地為一個(gè)箝位的值(0x8000、0x7FFF或0xFFFF)。測(cè)試飽和1920接收Source1位31至0并為結(jié)果寄存器1953輸出位15至0。測(cè)試飽和1921接收Source1位63至32并為結(jié)果寄存器1953輸出位31至16。測(cè)試飽和1922接收Source2位31至0并為結(jié)果寄存器1953輸出位47至32。測(cè)試飽和1923接收Source2位63至32并為結(jié)果寄存器1953輸出位63至48。例如,在表26中,執(zhí)行不帶飽和的無(wú)符號(hào)字組裝。操作控制1900將啟動(dòng)結(jié)果寄存器1952輸出結(jié)果[630]1960。Source13210Source23210Result76543210表26然而,如果執(zhí)行不帶飽和的無(wú)符號(hào)雙字組裝,操作控制1900將啟動(dòng)結(jié)果寄存器1953輸出結(jié)果[630]1960。表27示出這一結(jié)果。Source110Source210Result3210表27在指令集中包含上述組裝操作的優(yōu)點(diǎn)上述組裝指令組裝來(lái)自Source1與Source2中各數(shù)據(jù)元素的預(yù)定數(shù)目的位來(lái)生成Result。以這一方式,處理器109能以少到先有技術(shù)通用處理器中所需的指令一半的指令中組裝數(shù)據(jù)。例如,從四個(gè)32位數(shù)據(jù)元素生成包含4個(gè)16位數(shù)據(jù)元素的結(jié)果只需一條指令(與兩條指令相對(duì)照),如下面所示Pack.HighSource1.Source2Source1Source2Result1表28典型的多媒體應(yīng)用組裝大量數(shù)據(jù)。從而,通過(guò)將組裝這些數(shù)據(jù)所需的指令數(shù)目減少到一半,便提高了這些多媒體應(yīng)用的性能。分解操作分解操作在一個(gè)實(shí)施例中,分解操作交錯(cuò)兩個(gè)源分組數(shù)據(jù)的低位分組字節(jié)、字或雙字以生成結(jié)果分組字節(jié)、字或雙字。這里將這一操作稱作分解低操作。在另一實(shí)施例中,分解操作也可能交錯(cuò)高階元素(稱作分解高操作)。圖20為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行分解操作的方法的流程圖。首先執(zhí)行步驟2001與2002。在步驟2003,解碼器202啟動(dòng)執(zhí)行單元130去執(zhí)行分解操作。解碼器202通過(guò)內(nèi)部總線170傳遞Source1與Source2中的數(shù)據(jù)元素的長(zhǎng)度。在步驟2010,數(shù)據(jù)元素的長(zhǎng)度確定下面要執(zhí)行哪一步驟。如果數(shù)據(jù)元素的長(zhǎng)度為8位(分組字節(jié)401數(shù)據(jù)),則執(zhí)行單元130執(zhí)行步驟2012。然而,如果分組數(shù)據(jù)中的數(shù)據(jù)元素的長(zhǎng)度為16位(分組字402數(shù)據(jù))則執(zhí)行單元130執(zhí)行步驟2014。然而,如果分組數(shù)據(jù)中的數(shù)據(jù)元素的長(zhǎng)度為32位(分組雙字503數(shù)據(jù)),則執(zhí)行單元130執(zhí)行步驟2016。假定源數(shù)據(jù)元素長(zhǎng)度為8位,便執(zhí)行步驟2012。在步驟2012中,執(zhí)行下述操作。Source1位7至0為Result位7至0。Source2位7至0為Result位15至8。Source1位15至8為Result位23至16。Source2位15至8為Result位31至24。Source1位23至16為Result位39至32。Source2位23至16為Result位47至40。Source1位31至24為Result位55至48。Source2位31至24為Result位63至56。假定源數(shù)據(jù)元素的長(zhǎng)度為16位,則執(zhí)行步驟2014。在步驟2014中,執(zhí)行下述操作。Source1位15至0為Result位15至0。Source2位15至0為Result位31至16。Source1位31至16為Result位47至32。Source2位31至16為Result位63至48。假定源數(shù)據(jù)元素長(zhǎng)度為32位,則執(zhí)行步驟2016。在步驟2016中,執(zhí)行下述操作。Source1位31至0為Result位31至0。Source2位31至0為Result位63至32。在一個(gè)實(shí)施例中,同時(shí)執(zhí)行步驟2012的分解。然而,在另一實(shí)施例中,串行執(zhí)行這一分解。在另一實(shí)施例中,一些分解是同時(shí)執(zhí)行的而一些則是串行執(zhí)行的。這一討論也適用于步驟2014與步驟2016的分解。在步驟2020,將Result存儲(chǔ)在DEST605寄存器中。表29說(shuō)明分解雙字操作(各數(shù)據(jù)元素A0-1及B0-1包含32位)的寄存器表示。表29表30說(shuō)明分解字操作(各數(shù)據(jù)元素A0-3及B0-3包含16位)的寄存器表示。表30表31說(shuō)明分解字節(jié)操作(各數(shù)據(jù)元素A0-7及B0-7包含8位)的寄存器表示。表31分解電路圖21示出按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行分解操作的電路。圖21的電路包含操作控制電路2100、結(jié)果寄存器2152、結(jié)果寄存器2153及結(jié)果寄存器2154。操作控制2100接收來(lái)自解碼器202的信息以啟動(dòng)分解操作。如果源分組數(shù)據(jù)的長(zhǎng)度為字節(jié)分組數(shù)據(jù)502,則操作控制2100設(shè)定輸出使能2132。這便啟動(dòng)結(jié)果寄存器2152的輸出。如果源分組數(shù)據(jù)的長(zhǎng)度為字分組數(shù)據(jù)503,則操作控制2100設(shè)置輸出使能2133。這便啟動(dòng)輸出寄存器2153的輸出。如果源分組數(shù)據(jù)的長(zhǎng)度為雙字分組數(shù)據(jù)504,則操作控制2100設(shè)置輸出使能2134。這便啟動(dòng)輸出結(jié)果寄存器2154的輸出。結(jié)果寄存器2152具有下述輸入。Source1位7至0為結(jié)果寄存器2152的位7至0。Source2位7至0為結(jié)果寄存器2152的位15至8。Source1位15至8為結(jié)果寄存器2152的位23至16。Source2位15至8為結(jié)果寄存器2152的位31至24。Source1位23至16為結(jié)果寄存器2152的位39至32。Source2位23至16為結(jié)果寄存器2152的位47至40。Source1位31至24為結(jié)果寄存器2152的位55至48。Source2位31至24為結(jié)果寄存器2152的位63至56。結(jié)果寄存器2153具有下述輸入。Source1位15至0為結(jié)果寄存器2153的位15至0。Source2位15至0為結(jié)果寄存器2153的位31至16。Source1位31至16為結(jié)果寄存器2153的位47至32。Source2位31至16為結(jié)果寄存器2153的位63至48。結(jié)果寄存器2154具有下述輸入。Source1位31至0為結(jié)果寄存器2154的位31至0。Source2位31至0為結(jié)果寄存器2154的位63至32。例如,在表32中,執(zhí)行了分解字操作。操作控制2100將啟動(dòng)結(jié)果寄存器2153輸出結(jié)果[630]2160。Source13210Source23210Result210表32然而,如果執(zhí)行分解雙字,操作控制2100將啟動(dòng)結(jié)果寄存器2154輸出Result[630]2160。表33示出這一結(jié)果。Source110Source210Result10表33在指令集中包含上述分解指令的優(yōu)點(diǎn)通過(guò)將上述分解指令加入指令集中,可以交錯(cuò)或者分解分組數(shù)據(jù)。這一分解指令通過(guò)使Source2中的數(shù)據(jù)元素全為0,便能用來(lái)分解分組數(shù)據(jù)。分解字節(jié)的實(shí)例示出在表34a中。Source176543210Source276543210Result3210表34a同一分解指令可用來(lái)交錯(cuò)數(shù)據(jù),如表34b中所示。在多種多媒體算法中交錯(cuò)是有用的。例如,交錯(cuò)可用于轉(zhuǎn)置矩陣及插值象素。圖22為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行個(gè)數(shù)計(jì)數(shù)操作的方法的流程圖。在步驟2201,解碼器202響應(yīng)一個(gè)控制信號(hào)207的接收,解碼該控制信號(hào)207。在一個(gè)實(shí)施例中,控制信號(hào)207是通過(guò)總線101供給的。在另一實(shí)施例中,控制信號(hào)207是高速緩沖存儲(chǔ)器160供給的。從而,解碼器202解碼出個(gè)數(shù)計(jì)數(shù)的操作碼、以及寄存器209中的SRC1602及DEST605地址。注意在當(dāng)前本發(fā)明的實(shí)施例中不使用SRC2603。在這一實(shí)施例中也不使用飽和/不飽和、帶符號(hào)/無(wú)符號(hào)及分組數(shù)據(jù)中的數(shù)據(jù)元素長(zhǎng)度。在本發(fā)明的當(dāng)前實(shí)施例中,只支持16位數(shù)據(jù)元素長(zhǎng)度的分組加法。然而,熟悉本技術(shù)的人員會(huì)理解能在具有8個(gè)分組字節(jié)數(shù)據(jù)元素或兩個(gè)分組雙字?jǐn)?shù)據(jù)元素的分組數(shù)據(jù)上執(zhí)行個(gè)數(shù)計(jì)數(shù)。在步驟2202,解碼器202通過(guò)內(nèi)部總線170存取寄存器文件150中給出SRC1602地址的寄存器209。寄存器209向執(zhí)行單元130提供存儲(chǔ)在這一地址上的寄存器中的分組數(shù)據(jù)Source1,即寄存器209通過(guò)內(nèi)部總線170將分組數(shù)據(jù)傳遞給執(zhí)行單元130。在步驟2130,解碼器202啟動(dòng)執(zhí)行單元130去執(zhí)行個(gè)數(shù)計(jì)數(shù)操作。在一個(gè)替代實(shí)施例中,解碼器202還通過(guò)內(nèi)部總線170傳遞分組數(shù)據(jù)元素長(zhǎng)度。在步驟2205,假定數(shù)據(jù)元素長(zhǎng)度為16位,則執(zhí)行單元130求出Source1位15至0中置位的位的總數(shù),產(chǎn)生Result分組數(shù)據(jù)的位15至0。與這一求總數(shù)并行,執(zhí)行單元130求Source1位31至16的總數(shù),產(chǎn)生Result分組數(shù)據(jù)的位31至位16。與這些總數(shù)的生成并行,執(zhí)行單元130總計(jì)Source1的位47至位32,產(chǎn)生Result分組數(shù)據(jù)的位47至位32。與這些總計(jì)的生成并行,執(zhí)行單元130總計(jì)Source1的位63至位48,產(chǎn)生Result分組數(shù)據(jù)的位63至位48。在步驟2206,解碼器202啟動(dòng)寄存器209中帶有目的地寄存器的DEST605地址的寄存器。從而,將Result分組數(shù)據(jù)存儲(chǔ)在由DEST605尋址的寄存器中。在一個(gè)數(shù)據(jù)元素上執(zhí)行個(gè)數(shù)計(jì)數(shù)的方法圖23為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在一個(gè)分組數(shù)據(jù)的一個(gè)數(shù)據(jù)元素上執(zhí)行個(gè)數(shù)計(jì)數(shù)操作及生成一個(gè)結(jié)果分組數(shù)據(jù)的單個(gè)結(jié)果數(shù)據(jù)元素的方法。在步驟2310a,從Source1位15、14、13與12生成一個(gè)列和CSum1a及列進(jìn)位CCarry1a。在步驟2310b,從Source1位11、10、9與8生成列和CSum1b及列進(jìn)位CCarry1b。在步驟2310C從Source1位7、6、5與4生成列和CSum1c及列進(jìn)位CCarry1c。在步驟2310d,從Source1位3、2、1與0生成列和CSum1d及列進(jìn)位CCarry1d。在本發(fā)明的一個(gè)實(shí)施例中,步驟2310a-d是并行執(zhí)行的。在步驟2320a,從CSum1a、CCarry1a、CSum1b與CCarry1b生成列和CSum2a及列進(jìn)位CCarry2b。在步驟2320b,從CSum1c、CCarry1、CSum1d與CCarry1d生成列和CSum2b及列進(jìn)位CCarry2b。在本發(fā)明的一個(gè)實(shí)施例中,步驟2320a-b是并行執(zhí)行的。在步驟2330,從CSumm2a、CCarry2a、CSum2b及CCarry2b生成列和CSum3及列進(jìn)位CCarry3。在步驟2340,從CSum3與CCarry3生成Result結(jié)果。在一個(gè)實(shí)施例中,Result是以16位表示的。在這一實(shí)施例中,由于只需要位4至位0來(lái)表示Source1中置位的位的最大數(shù)目,將位15至5設(shè)定為0。Source1的最大位數(shù)為16。這出現(xiàn)在Source1等于11111111111111112時(shí)。Result將為16并用00000000000100002表示。從而,為了為64位分組數(shù)據(jù)上的個(gè)數(shù)計(jì)數(shù)操作計(jì)算4個(gè)結(jié)果數(shù)據(jù)元素,要為分組數(shù)據(jù)中的每一個(gè)數(shù)據(jù)元素執(zhí)行圖23的步驟。在一個(gè)實(shí)施例中,4個(gè)16位結(jié)果數(shù)據(jù)元素是并行計(jì)算的。執(zhí)行個(gè)數(shù)計(jì)數(shù)的電路圖24說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在具有4個(gè)字?jǐn)?shù)據(jù)元素的分組數(shù)據(jù)上執(zhí)行個(gè)數(shù)計(jì)數(shù)操作的電路。圖25說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)的一個(gè)字?jǐn)?shù)據(jù)元素上執(zhí)行個(gè)數(shù)計(jì)數(shù)操作的詳細(xì)電路。圖24示出一個(gè)電路,其中Source1總線2401通過(guò)Source1IN2406a-d將信息信號(hào)帶到popcnt電路2408a-d。從而popcnt電路2408a求出Source1的位16至位0中置位的位的總數(shù),生成Result的位15至位0。popcnt電路2408b求出Source1的位31至位16中置位的位的總數(shù),生成Result的位31至位16。popcnt電路2408c求出Source1的位47至位32中置位的位的總數(shù),生成Result的位47至位32。popcnt電路2408d求出Source1的位63至位48中的置位的位的總數(shù),生成Result的位63至位48。啟動(dòng)2404a-d通過(guò)控制2403從操作控制2410接收啟動(dòng)popcnt電路2408a-d執(zhí)行個(gè)數(shù)計(jì)數(shù)操作的控制信號(hào),及將Result放置在Result總線2409上。給予了上面描述及圖1-6b及22-25中的描述與說(shuō)明,熟悉本技術(shù)的人員將能建立這一電路。popcnt電路2408a-d通過(guò)結(jié)果輸出2407a-d將分組個(gè)數(shù)計(jì)數(shù)操作的結(jié)果信息傳遞到Result總線2409上。然后將這一結(jié)果信息存儲(chǔ)在DEST605寄存器地址所指定的整數(shù)寄存器中。在一個(gè)數(shù)據(jù)元素上執(zhí)行個(gè)數(shù)計(jì)數(shù)的電路圖25示出在分組數(shù)據(jù)的一個(gè)字?jǐn)?shù)據(jù)元素上執(zhí)行個(gè)數(shù)計(jì)數(shù)操作的詳細(xì)電路。具體地,圖25示出popcnt電路2408a的一部分。為了達(dá)到采用個(gè)數(shù)計(jì)數(shù)操作的應(yīng)用的最大性能,應(yīng)在一個(gè)時(shí)鐘周期內(nèi)完成這個(gè)操作。因此,假定存取寄存器及存儲(chǔ)結(jié)果需要時(shí)鐘周期的一定百分比,圖24的電路在一個(gè)時(shí)鐘周期大約80%的時(shí)間內(nèi)完成其操作。這一電路具有允許處理器109在一個(gè)時(shí)鐘周期中在四個(gè)16位數(shù)據(jù)元素上執(zhí)行個(gè)數(shù)計(jì)數(shù)操作的優(yōu)點(diǎn)。popcnt電路2408a采用4->2進(jìn)位保留加法器(除非另有指定,CSA將指4->2進(jìn)位保留加法器),popcnt電路2408a-d中可能采用的4->2進(jìn)位保留加法器是本技術(shù)中眾所周知的。4->2進(jìn)位保留加法器為將4個(gè)操作數(shù)相加得出兩個(gè)和的加法器。由于popent電路2408a中的個(gè)數(shù)計(jì)數(shù)操作包含16位,第一級(jí)包含4個(gè)4->2進(jìn)位保留加法器。這四個(gè)4->2進(jìn)位保留加法器將16個(gè)一位操作數(shù)變換成8個(gè)2位和。第二級(jí)將8個(gè)2位和變換成4個(gè)3位和,而第三級(jí)將4個(gè)3位和變換成兩個(gè)4位和。然后一個(gè)4位全加法器將兩個(gè)四位和相加生成最終結(jié)果。雖然采用了4->2進(jìn)位保留加法器,替代實(shí)施例中可采用3->2進(jìn)位保留加法器。另外,也可使用若干個(gè)全加法器;然而,這種配置不能象圖25中所示的實(shí)施例那樣快地提供結(jié)果。Source1IN1502406a攜帶Source1的位15至位0。第一個(gè)四位耦合在4->2進(jìn)位保留加法器(CSA2510a)的輸入上。下面的四位耦合在CSA2510b的輸入上。再下面的四位耦合在CSA2510c的輸入上。最后四位耦合在CSA2510d的輸入上。各CSA2510a-d生成兩個(gè)2位輸出。將CSA2510a的兩個(gè)2位輸出耦合到CSA2520a的兩個(gè)輸入上。將CSA2510b的兩個(gè)2位輸出耦合到CSA2520a的其它兩個(gè)輸入上。將CSA2510c的兩個(gè)2位輸出耦合到CSA2520b的兩個(gè)輸入上。將CSA2510d的兩個(gè)2位輸出耦合到CSA2520b其余兩個(gè)輸入上。各CSA2520a-b生成兩個(gè)3位輸出。將2520a的兩個(gè)3位輸出耦合到CSA2530的兩個(gè)輸入上。將2520b的兩個(gè)3位輸出耦合到CSA2530的其余兩個(gè)輸入上。CSA2530生成兩個(gè)4位輸出。將這些兩個(gè)4位輸出耦合到全加法器(FA2550)的兩個(gè)輸入上。FA2550將兩個(gè)4位輸入相加并傳遞Result輸出2407a的位3至位0作為該兩個(gè)4位輸入相加的總和。FA2550通過(guò)進(jìn)位輸出(CO2552)生成Result輸出2407a的位4。在一個(gè)替代實(shí)施例中,采用5位全加法器來(lái)生成Result輸出2407a的位4至位0。在任一情況中,都將Result輸出2407a的位15至位5固定在0上。同樣,將對(duì)全加法器的任何進(jìn)位輸入固定在0上。雖然在圖25中未示出,熟悉本技術(shù)的人員會(huì)理解可將Result輸出2407a多路復(fù)用或緩沖存儲(chǔ)到Result總線2409上。多路復(fù)用器受到使能2404a的控制。這將允許其它執(zhí)行單元電路將數(shù)據(jù)寫(xiě)到Result總線2409上。在指令集中加入上述個(gè)數(shù)計(jì)數(shù)操作的優(yōu)點(diǎn)上述個(gè)數(shù)計(jì)數(shù)指令計(jì)數(shù)諸如Source1等分組數(shù)據(jù)的各數(shù)據(jù)元素中置位的位的數(shù)目。從而,通過(guò)在指令集中加入這一指令,便可在一條單一指令中在分組數(shù)據(jù)上執(zhí)行個(gè)數(shù)計(jì)數(shù)操作。相反,先有技術(shù)通用處理器必須執(zhí)行許多指令來(lái)分解Source1,在各分解的數(shù)據(jù)元素上單個(gè)地執(zhí)行該功能,然后組裝結(jié)果供進(jìn)一步分組處理。從而,通過(guò)在處理器109支持的指令集中加入這一個(gè)數(shù)計(jì)數(shù)指令,便提高了需要這一功能的算法的性能。邏輯運(yùn)算邏輯運(yùn)算在本發(fā)明的一個(gè)實(shí)施例中,SRC1寄存器包含分組數(shù)據(jù)(Source1),SRC2寄存器包含分組數(shù)據(jù)(Source2),而DEST寄存器將包含在Source1與Source2上執(zhí)行所選擇的邏輯運(yùn)算的結(jié)果(Result)。例如,如果選擇了邏輯“與”運(yùn)算,則將Source1與Source2邏輯“與”。在本發(fā)明的一個(gè)實(shí)施例中,支持下述邏輯運(yùn)算邏輯“與”、邏輯“非與”(ANDN)、邏輯“或”及邏輯“異或”(XOR)。邏輯“與”、“或”及“異或”運(yùn)算是本技術(shù)中眾所周知的。邏輯“非與”(ANDN)運(yùn)算使Source2與Source1的邏輯“非”進(jìn)行“與”運(yùn)算。雖然本發(fā)明是關(guān)于這些邏輯運(yùn)算描述的,其它實(shí)施例可實(shí)現(xiàn)其它邏輯運(yùn)算。圖26為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行若干種邏輯運(yùn)算的方法的流程圖。在步驟2601,解碼器202解碼處理器109所接收的控制信號(hào)207。從而,解碼器202解碼出適當(dāng)?shù)倪壿嬤\(yùn)算(即“與”、“非與”、“或”或“異或”)的操作碼;寄存器209中的SRC1602、SRC2603及DEST604地址。在步驟2602,解碼器202通過(guò)內(nèi)部總線170存取寄存器文件150中給出SRC1602及SRC2603地址的寄存器209。寄存器209向執(zhí)行單元130提供存儲(chǔ)在SRC1602寄存器中的分組數(shù)據(jù)(Source1)及存儲(chǔ)在SRC2603寄存器中的分組數(shù)據(jù)(Source2)。即,寄存器209通過(guò)內(nèi)部總線170將分組數(shù)據(jù)傳遞給執(zhí)行單元130。在步驟2603,解碼器202啟動(dòng)執(zhí)行單元130去執(zhí)行分組邏輯運(yùn)算中所選擇的一種。在步驟2610,分組邏輯運(yùn)算中所選擇的一種確定下面執(zhí)行哪一步驟。如果選擇了邏輯“與”運(yùn)算,執(zhí)行單元130執(zhí)行步驟2612;如果選擇了邏輯“非與”運(yùn)算,執(zhí)行單元130執(zhí)行步驟2613;如果選擇了邏輯“或”運(yùn)算,執(zhí)行單元130執(zhí)行步驟2614;而如果選擇了邏輯“異或”運(yùn)算,執(zhí)行單元130執(zhí)行步驟2615。假定選擇了邏輯“與”運(yùn)算,便執(zhí)行步驟2612。在步驟2612中,Source1位63至0和Source2位63至0進(jìn)行“與”運(yùn)算生成Result位63至0。假定選擇了邏輯“非與”運(yùn)算,便執(zhí)行步驟2613。在步驟2613中,Source1位63至0和Source2位63至0進(jìn)行“非與”運(yùn)算生成Result位63至0。假定選擇了邏輯“或”運(yùn)算,便執(zhí)行步驟2614。在步驟2614中,Source1位63至0和Source2位63至0進(jìn)行“或”運(yùn)算生成Result位63至0。假定選擇了邏輯“異或”運(yùn)算,便執(zhí)行步驟2615。在步驟2615中,Source1位63至0和Source2位63至0進(jìn)行“異或”運(yùn)算生成Result位63至0。在步驟2620,將Result存儲(chǔ)在DEST寄存器中。表36說(shuō)明分組數(shù)據(jù)上的邏輯“非與”運(yùn)算的寄存器表示。第一行的位是Source1的分組數(shù)據(jù)表示。第二行的位是Source2的分組數(shù)據(jù)表示。第三行的位是Result的分組數(shù)據(jù)表示。各數(shù)據(jù)元素位下方的數(shù)字為數(shù)據(jù)元素號(hào)。例如,Source1數(shù)據(jù)元素2為11111111000000002表36雖然本發(fā)明是相對(duì)于在Source1與Source2中的對(duì)應(yīng)數(shù)據(jù)元素上執(zhí)行同一邏輯運(yùn)算描述的,替代實(shí)施例可支持允許在逐個(gè)元素的基礎(chǔ)上選擇在對(duì)應(yīng)的數(shù)據(jù)元素上要執(zhí)行的邏輯運(yùn)算的指令。分組數(shù)據(jù)邏輯電路在一個(gè)實(shí)施例中,能夠在和非分組數(shù)據(jù)上的單一邏輯運(yùn)算相同數(shù)目的時(shí)鐘周期中在多個(gè)數(shù)據(jù)元素上出現(xiàn)上述邏輯運(yùn)算。為了達(dá)到在相同數(shù)目的時(shí)鐘周期中的執(zhí)行,采用了并行性。圖27說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行邏輯運(yùn)算的電路。操作控制2700控制執(zhí)行邏輯運(yùn)算的電路。操作控制2700處理控制信號(hào)并在控制線2780上輸出選擇信號(hào)。這些選擇信號(hào)向邏輯運(yùn)算電路2701傳遞“與”、“非與”、“或”及“異或”運(yùn)算中選擇的一種。邏輯運(yùn)算電路2701接收Source1[630]及Source2[630]并執(zhí)行選擇信號(hào)指定的邏輯運(yùn)算以生成Result。邏輯運(yùn)算電路2701將Result[630]傳遞給結(jié)果寄存器2731。在指令集中加入上述邏輯運(yùn)算的優(yōu)點(diǎn)上述邏輯指令執(zhí)行邏輯“與”、邏輯“非與”、邏輯“或”及邏輯“異或”。這些指令在需要數(shù)據(jù)的邏輯操作的任何應(yīng)用中是有用的。通過(guò)在處理器109支持的指令集中加入這些指令,便可以在一條指令中在分組數(shù)據(jù)上執(zhí)行這些邏輯運(yùn)算。分組比較分組比較操作在本發(fā)明的一個(gè)實(shí)施例中,SRC1602寄存器中包含要比較的數(shù)據(jù)(Source1),SRC2603寄存器中包含要相對(duì)于它進(jìn)行比較的數(shù)據(jù)(Source2),而DEST605寄存器中將包含比較的結(jié)果(Result)。即,用Source2的各數(shù)據(jù)元素按指定的關(guān)系獨(dú)立地與Source1中各數(shù)據(jù)元素比較。在本發(fā)明的一個(gè)實(shí)施例中,支持下述比較關(guān)系等于;帶符號(hào)的大于;帶符號(hào)的大于或等于;無(wú)符號(hào)大于;或無(wú)符號(hào)大于或等于。在每對(duì)對(duì)應(yīng)的數(shù)據(jù)元素中測(cè)試這種關(guān)系。例如,Source1[70]大于Source2[70],結(jié)果為Result[70]。如果比較結(jié)果滿足該關(guān)系,則在一個(gè)實(shí)施例中將Result中的對(duì)應(yīng)數(shù)據(jù)元素設(shè)置成全1。如果比較的結(jié)果不滿足該關(guān)系,則將Result中的對(duì)應(yīng)數(shù)據(jù)元素設(shè)置成全0。圖28為說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)上執(zhí)行分組比較操作的方法的流程圖。在步驟2801,解碼器202解碼處理器109接收的控制信號(hào)207。從而,解碼器202解碼出適當(dāng)比較操作的操作碼;寄存器209中的SRC1602、SRC2603及DEST605地址;飽和/不飽和(對(duì)比較操作沒(méi)有必要),帶符號(hào)/無(wú)符號(hào)及分組數(shù)據(jù)中的數(shù)據(jù)元素的長(zhǎng)度。如上所述,SRC1602(或SRC2603)可用作DEST605。在步驟2802,解碼器202通過(guò)內(nèi)部總線170存取寄存器文件150中給定SRC1602與SRC2603地址的寄存器209。寄存器209向執(zhí)行單元130提供存儲(chǔ)在SRC1602寄存器中的分組數(shù)據(jù)(Source1)及存儲(chǔ)在SRC2603寄存器中的分組數(shù)據(jù)(Source2)。即,寄存器209通過(guò)內(nèi)部總線170將分組數(shù)據(jù)傳遞給執(zhí)行單元130。在步驟2803,解碼器202啟動(dòng)執(zhí)行單元130去執(zhí)行適當(dāng)?shù)姆纸M比較操作。解碼器202還通過(guò)內(nèi)部總線170傳遞數(shù)據(jù)元素的長(zhǎng)度及比較操作的關(guān)系。在步驟2810,數(shù)據(jù)元素的長(zhǎng)度確定下面要執(zhí)行的步驟。如果數(shù)據(jù)元素的長(zhǎng)度為8位(分組字節(jié)401數(shù)據(jù)),則執(zhí)行單元130執(zhí)行步驟2812。然而,如果分組數(shù)據(jù)中的數(shù)據(jù)元素的長(zhǎng)度為16位(分組字402數(shù)據(jù)),則執(zhí)行單元130執(zhí)行步驟2814。在一個(gè)實(shí)施例中,只支持8位與16位數(shù)據(jù)元素長(zhǎng)度的分組比較。然而,在另一實(shí)施例中,也支持32位數(shù)據(jù)元素長(zhǎng)度的分組比較(分組雙字403)。假定數(shù)據(jù)元素的長(zhǎng)度為8位,則執(zhí)行步驟2812。在步驟2812中,執(zhí)行下述操作。將Source1位7至0對(duì)Source2位7至0比較生成Result位7至0。將Source1位15至8對(duì)Source2位15至8比較生成Result位15至8。將Source1位23至16對(duì)Source2位23至16比較生成Result位23至16。將Source1位31至24對(duì)Source2位31至24比較生成Result位31至24。將Source1位39至32對(duì)Source2位39至32比較生成Result位39至32。將Source1位47至40對(duì)Source2位47至40比較生成Result位47至40。將Source1位55至48對(duì)Source2位55至48比較生成Result位55至48。將Source1位63至56對(duì)Source2位63至56比較生成Result位63至56。假定數(shù)據(jù)元素的長(zhǎng)度為16位,便執(zhí)行步驟2814。在步驟2814中,執(zhí)行下述操作。將Source1位15至0對(duì)Source2位15至0比較生成Result位15至0。將Source1位31至16對(duì)Source2位31至16比較生成Result位31至16。將Source1位47至32對(duì)Source2位47至32比較生成Result位47至32。將Source1位63至48對(duì)Source2位63至48比較生成Result位63至48。在一個(gè)實(shí)施例中,步驟2812的比較是同時(shí)執(zhí)行的。然而,在另一實(shí)施例中,這些比較是串行執(zhí)行的。在另一實(shí)施例中,一些比較是同時(shí)執(zhí)行的而一些則是串行執(zhí)行的。這一討論也適用于步驟2814中的比較。在步驟2820,將Result存儲(chǔ)在DEST605寄存器中。表37說(shuō)明分組比較無(wú)符號(hào)大于操作的寄存器表示。第一行的位是Source1的分組數(shù)據(jù)表示。第二行的位是Source2的數(shù)據(jù)表示。第三行的位是Result的分組數(shù)據(jù)表示。各數(shù)據(jù)元素位下面的數(shù)字是數(shù)據(jù)元素號(hào)。例如,Source1數(shù)據(jù)元素3為100000002。表37表38說(shuō)明分組字節(jié)數(shù)據(jù)上的分組比較帶符號(hào)大于或等于操作的寄存器表示。<表38分組數(shù)據(jù)比較電路在一個(gè)實(shí)施例中,在和非分組數(shù)據(jù)上的單個(gè)比較操作相同數(shù)目的時(shí)鐘周期中能在多個(gè)數(shù)據(jù)元素上產(chǎn)生比較操作。為了達(dá)到相同數(shù)目的時(shí)鐘周期中的執(zhí)行,采用了并行性。即,同時(shí)指示寄存器在數(shù)據(jù)元素上執(zhí)行比較操作。下面更詳細(xì)地討論這一點(diǎn)。圖29示出按照本發(fā)明的一個(gè)實(shí)施例在分組數(shù)據(jù)的各個(gè)字節(jié)上執(zhí)行分組比較操作的電路。圖29示出經(jīng)過(guò)修改的字節(jié)片比較電路、字節(jié)片級(jí)i2999的使用。除了最高位數(shù)據(jù)元素字節(jié)片以外的各字節(jié)片都包含一個(gè)比較單元及位控制。最高位數(shù)據(jù)元素字節(jié)片只需一個(gè)比較單元。比較單元i2911及比較單元i+12971各允許來(lái)自Source1的8位與來(lái)自Source2的對(duì)應(yīng)的8位進(jìn)行比較。在一個(gè)實(shí)施例中,各比較單元象已知的8位比較單元一樣操作。這一已知的8位比較電路包含允許從Source1減去Source2的字節(jié)片電路。處理減法的結(jié)果來(lái)確定比較操作的結(jié)果。在一個(gè)實(shí)施例中,減法結(jié)果包含一個(gè)溢出信息。測(cè)試這一溢出信息來(lái)判定比較操作的結(jié)果是否為真。各比較單元具有一個(gè)Source1輸入、一個(gè)Source2輸入、一個(gè)控制輸入、一個(gè)下一級(jí)信號(hào)、一個(gè)上一級(jí)信號(hào)及一個(gè)結(jié)果輸出。因此,比較單元i2911具有Source1i2931輸入、Source2i2933輸入、控制i2901輸入、下一級(jí)i2913信號(hào)、上一級(jí)i2912輸入及存儲(chǔ)在結(jié)果寄存器i2951中的結(jié)果。因此,比較單元i+12971具有Source1i+12932輸入、Source2i+12934輸入、控制i+12902輸入、下一級(jí)i+12973信號(hào)、上一級(jí)i+12972輸入及存儲(chǔ)在結(jié)果寄存器i+12952中的結(jié)果。Source1n輸入通常是Source1的一個(gè)8位部分。8位表示最小類(lèi)型的數(shù)據(jù)元素,一個(gè)分組字節(jié)401的數(shù)據(jù)元素。Source2輸入是Source2的對(duì)應(yīng)8位部分。操作控制2900傳輸控制信號(hào)來(lái)啟動(dòng)各比較單元執(zhí)行所要求的比較。控制信號(hào)是從比較的關(guān)系(諸如帶符號(hào)大于)及數(shù)據(jù)元素的長(zhǎng)度(諸如字節(jié)或字)確定的。下一級(jí)信號(hào)是從該比較單元的位控制接收的。當(dāng)使用大于字節(jié)長(zhǎng)度的數(shù)據(jù)元素時(shí),位控制單元有效地組合比較單元。例如,當(dāng)比較字分組數(shù)據(jù)時(shí),第一比較單元與第二比較單元之間的位控制單元將使得這兩個(gè)比較單元作為一個(gè)16位比較單元工作。類(lèi)似地,第三與第四比較單元之間的控制單元將使得這兩個(gè)比較單元作為一個(gè)比較單元工作。這可以繼續(xù)到四個(gè)分組字?jǐn)?shù)據(jù)元素。取決于所要求的關(guān)系及Source1與Source2的值,比較單元通過(guò)允許較高階比較單元的結(jié)果向下傳播到較低階比較單元或反過(guò)來(lái)以執(zhí)行比較。這便是,各比較單元將利用位控制i2920傳遞的信息來(lái)提供比較結(jié)果。如果使用雙字分組數(shù)據(jù),則四個(gè)比較單元一起工作以形成用于各數(shù)據(jù)元素的一個(gè)32位長(zhǎng)的比較單元。各比較單元的結(jié)果輸出表示該比較單元在其上操作的Source1與Source2的部分上的比較操作的結(jié)果。位控制i2920是從操作控制2900通過(guò)分組數(shù)據(jù)使能i2906啟動(dòng)的。位控制i2920控制下一級(jí)i2913與上一級(jí)i+12972。例如,假定比較單元i2911負(fù)責(zé)Source1與Source2的8個(gè)最低位,而比較單元i+12971負(fù)責(zé)Source1與Source2的下一8位。如果在分組字節(jié)數(shù)據(jù)上執(zhí)行比較,位控制i2920將不允許來(lái)自比較單元i+12971的結(jié)果信息傳遞到比較單元i2911,反之亦然。然而,如果在分組字上執(zhí)行比較,則位控制i2920將允許來(lái)自比較單元i2911的結(jié)果(在一個(gè)實(shí)施例中為溢出)信息傳遞到比較單元i+1,以及來(lái)自比較單元i+12971的結(jié)果(在一個(gè)實(shí)施例中為溢出)信息傳遞給比較單元i2911。例如,在表39中,執(zhí)行分組字節(jié)帶符號(hào)大于比較。假定比較單元i+12971在數(shù)據(jù)元素1上操作,而比較單元i2911在數(shù)據(jù)元素0上操作。比較單元i+12971比較一個(gè)字的最高8位并通過(guò)上一級(jí)i+12972傳遞該結(jié)果信息。比較單元i2911比較該字的最低8位并通過(guò)下一級(jí)i2913傳遞該結(jié)果信息。然而操作控制2900將使得位控制i2920停止在比較單元之間傳播從上一級(jí)i+12972及下一級(jí)i2913接收的結(jié)果信息。表39然而,如果執(zhí)行分組字帶符號(hào)大于比較,則比較單元i+12971的結(jié)果將傳遞到比較單元i2911,反之亦然。表40示出這一結(jié)果。這一類(lèi)型的傳遞對(duì)分組雙字比較同樣允許。表40各比較單元可選地耦合在結(jié)果寄存器上。結(jié)果寄存器臨時(shí)存儲(chǔ)比較操作的結(jié)果直到能將完整的結(jié)果Result[630]2960傳輸?shù)紻EST605寄存器為止。對(duì)于一個(gè)完整的64位分組比較電路,采用8個(gè)比較單元及7個(gè)位控制單元。這一電路也能用來(lái)在64位非分組數(shù)據(jù)上執(zhí)行比較,借此利用同一電路來(lái)執(zhí)行非分組比較操作與分組比較操作。在指令集中加入上述分組比較操作的優(yōu)點(diǎn)上述分組比較指令將Source1與Source2的比較結(jié)果作為分組掩碼存儲(chǔ)。如上所述,數(shù)據(jù)上的條件轉(zhuǎn)移是不可預(yù)測(cè)的,并因?yàn)樗鼈兤茐霓D(zhuǎn)移預(yù)測(cè)算法,因此浪費(fèi)了處理器性能。然而,通過(guò)生成分組掩碼,這一比較指令減少了需要的基于數(shù)據(jù)的條件轉(zhuǎn)移的數(shù)目。例如,可以在分組數(shù)據(jù)上執(zhí)行函數(shù)(ifY>AthenX=X+B;elseX=X),如下面表41中所示(表41中所示的值為以16進(jìn)制符號(hào)示出的)。Compare.Greater_ThanSource1.Source2Source1=Y(jié)0-1Source2=A0-1掩碼PackedANDSource3.MaskSource3=B0-1掩碼結(jié)果PackedAddSource4.ResultSource4=X0-1結(jié)果新X0-1值表41從上述示例中可見(jiàn),不再需要條件轉(zhuǎn)移。由于不需要轉(zhuǎn)移指令,當(dāng)使用這一比較指令來(lái)執(zhí)行這一與其它類(lèi)似操作時(shí),推測(cè)性地預(yù)測(cè)轉(zhuǎn)移的處理器不會(huì)有性能降低。從而,通過(guò)在處理器109支持的指令集中提供這一比較指令,處理器109便能在較高的性能級(jí)上執(zhí)行需要這一功能的算法。多媒體算法示例為說(shuō)明所公開(kāi)的指令集的通用性,下面描述若干多媒體算法示例。在一些情況中,可以用類(lèi)似的分組數(shù)據(jù)指令來(lái)執(zhí)行這些算法中的某些步驟。在下面的示例中,已經(jīng)省略了需要使用通用處理器指令來(lái)管理數(shù)據(jù)傳送、循環(huán)及條件轉(zhuǎn)移的若干步驟。1)復(fù)數(shù)乘法所公開(kāi)的乘-加指令能用來(lái)在單一的指令中將兩個(gè)復(fù)數(shù)相乘,如表42a中所示。兩個(gè)復(fù)數(shù)(諸如,r1i1與r2i2)的乘法是按照下列等式執(zhí)行的實(shí)部=r1·r2-i1·i2虛部=r1·i2+r2·i1如果將這一指令實(shí)現(xiàn)成在一時(shí)鐘周期中完成,本發(fā)明便能在一個(gè)時(shí)鐘周期中將兩個(gè)復(fù)數(shù)相乘。Multiply-AddSource1.Source2Source1Source2Result1表42a作為另一示例,表42b示出用來(lái)將三個(gè)復(fù)數(shù)一起乘的指令。表42bMultiply-AddSource1,Source2Source1Source2Result1PackedShiftRightSource1.Source2Result1Result2PackResult2.Result2Result2Result2Result3Multiply-AddResult3,Source3Result3Source3Result42)乘累加運(yùn)算所公開(kāi)的指令也能用來(lái)乘與累加值。例如,可將兩組4個(gè)數(shù)據(jù)元素(A1-4與B1-4)相乘與累加,如下面表43中所示。在一個(gè)實(shí)施例中,表43中所示的各指令是實(shí)現(xiàn)成在每個(gè)時(shí)鐘周期中完成的。表43Multiply-AddSource1.Source2Source1Source2Result1Multiply-AddSource3.Source4Source3Source4Result2UnpackedAddResult1.Result2Result1Result2Result3如果各組中的數(shù)據(jù)元素的數(shù)目超過(guò)8個(gè)且為4的倍數(shù),如果如下面表44中所示執(zhí)行,這些組的乘法與累加需要更少的指令。Multiply-AddSource1.Source2Source1Source2Result1Multiply-AddSource3.Source4Source3Source4Result2PackedAddResult1.Result2Result1Result2Result3UnpackHighResult3,Source5Result3Source5Result4UnpackLowResult3.Source5Result3Source5Result5PackedAddResult4,Result5Result4Result5Result6表44作為另一示例,表45示出組A與B以及組C與D的分開(kāi)乘法與累加,其中這些組中各組包含兩個(gè)數(shù)據(jù)元素。Multiply-AddSource1.Source2Source1Source2Result1表45作為另一示例,表46示出組A與B以及組C與D的分開(kāi)乘法與累加,其中這些組中各組包含4個(gè)數(shù)據(jù)元素。Multiply-AddSource1.Source2Source1Source2Result1Multiply-AddSource3.Source4Source3Source4Result2PackedAddResult1,Result2Result1Result2Result6表463)點(diǎn)積算法點(diǎn)積(亦稱內(nèi)積)用在信號(hào)處理與矩陣運(yùn)算中。例如,在計(jì)算矩陣的積、數(shù)字濾波操作(諸如FIR與IIR濾波)及計(jì)算相關(guān)序列時(shí)使用點(diǎn)積。由于許多語(yǔ)音壓縮算法(如GSM、G.728、CELP及VSELP)及高保真壓縮算法(諸如MPEG及分頻段編碼)廣泛地利用數(shù)字濾波及相關(guān)計(jì)算,提高點(diǎn)積的性能等于提高這些算法的性能。兩個(gè)長(zhǎng)度N的序列A與B的點(diǎn)積定義為Result=Σi=0N-1Ai•Bi]]>執(zhí)行點(diǎn)積計(jì)算廣泛利用乘累加運(yùn)算,其中將各序列的對(duì)應(yīng)元素相乘,并累加這些結(jié)果以構(gòu)成點(diǎn)積結(jié)果。通過(guò)包含傳送、分組加法、乘-加及分組移位操作,本發(fā)明允許使用分組數(shù)據(jù)執(zhí)行點(diǎn)積計(jì)算。例如,如果使用包含4個(gè)16位元素的分組數(shù)據(jù)類(lèi)型,便可用下述操作在各包含4個(gè)值的兩個(gè)序列上執(zhí)行點(diǎn)積計(jì)算1)使用傳送指令從A序列取4個(gè)16位值來(lái)生成Source1;2)使用傳送指令從B序列取4個(gè)16位值來(lái)生成Source2;以及3)使用乘-加、分組加法及移位指令如上所述相乘與累加。對(duì)于帶有稍多元素的矢量,使用表46中所示的方法并在最后將最終結(jié)果加在一起。其它支持指令包含用于初始化累加器寄存器的分組OR與XOR指令,用于在計(jì)算的最后級(jí)上移出不需要的值的分組移位指令。利用已存在處理器109的指令集中的指令完成循環(huán)控制操作。4)二維環(huán)路濾波器二維環(huán)路濾波器用在一些多媒體算法中。例如,下面表47中所示的濾波器系數(shù)可用在視頻會(huì)議算法中以便在象素?cái)?shù)據(jù)上執(zhí)行低通濾波。表47為了計(jì)算位置(x,y)上的象素的新值,使用下述等式結(jié)果象素=(x-1,y-1)+2(x,y-1)+(x+1,y-1)+2(x-1,y)+4(x,y)+2(x+1,y)+(x-1,y+1)+2(x,y+1)+(x+1,y+1)通過(guò)包含組裝、分組、傳送、分組移位及分組加法,本發(fā)明允許使用分組數(shù)據(jù)執(zhí)行二維環(huán)路濾波器。按照上述環(huán)路濾波器的一種實(shí)現(xiàn),這一環(huán)路濾波器是作為兩個(gè)簡(jiǎn)單的一維濾波器應(yīng)用的-即,上述二維濾波器能用作兩個(gè)121濾波器。第一濾波器在水平方向上,而第二濾波器則在垂直方向上。表48示出象素?cái)?shù)據(jù)的一個(gè)8×8塊的表示。←8→表48執(zhí)行下述步驟來(lái)實(shí)現(xiàn)象素?cái)?shù)據(jù)的這一8×8塊上的濾波器的水平通過(guò)1)使用傳送指令存取8個(gè)8位象素值作為分組數(shù)據(jù);2)將這8個(gè)8位象素分解成包含4個(gè)8位象素的16位分組數(shù)據(jù)(Source1)以保持累加中的精度;3)復(fù)制Source1兩次生成Source2與Source3;4)在Source1上執(zhí)行非分組向右移位16位;5)在Source3上執(zhí)行非分組向左移位16位;6)通過(guò)執(zhí)行下述分組加法生成(Source1+2*Source2+Source3);a)Source1=Source1+Source2;b)Source1=Source1+Source2;c)Source1=Source1+Source3;7)作為一個(gè)8×8中間結(jié)果數(shù)組的一部分存儲(chǔ)得出的分組字?jǐn)?shù)據(jù);以及8)重復(fù)這些步驟直到生成如下面表49中所示的整個(gè)8×8中間結(jié)果數(shù)組(如IA0表示來(lái)自表49的A0的中間結(jié)果)?!?6→表49執(zhí)行下述步驟來(lái)實(shí)現(xiàn)8×8中間結(jié)果數(shù)組上的濾波器的垂直通過(guò)1)使用傳送指令存取來(lái)自該中間結(jié)果數(shù)組的4×4的數(shù)據(jù)塊作為分組數(shù)據(jù)以生成source1、Source2及Source3(如見(jiàn)作為示例的表50);←16→Source1Source2Source3表502、通過(guò)執(zhí)行下述分組加法生成(Sourcel+2*Souree2+Souree3)a)Sourcel=Source1+Source2;b)Source1=Source1+Source2;c)Sourcel=Source1+Source3;3)在得出的Source1上執(zhí)行分組向右移位4位生成加權(quán)值之和一實(shí)際上除以16;4)組裝帶有飽和的結(jié)果Source1,將16位值轉(zhuǎn)換回8位象素值;5)將得出的分組字節(jié)數(shù)據(jù)作為一個(gè)8×8結(jié)果數(shù)組的一部分存馓對(duì)于表50中所示的例子,這四個(gè)字節(jié)表示B0、B1、B2與B3的新象素值);以及6)重復(fù)這些步驟直到生成整個(gè)8×8結(jié)果數(shù)組為止。值得指出的是,8×8結(jié)果數(shù)組的頂與底行是用不同的算法確定的,為了不沖淡本發(fā)明在這里未描述該算法。從而通過(guò)在處理器109上提供組裝、分解、傳送、分組移位及分組加法指令,本發(fā)明的性能明顯高于先有技術(shù)通用處理器,后者必須一次一個(gè)數(shù)據(jù)元素地執(zhí)行這些濾波器所要求的操作。5)運(yùn)動(dòng)估計(jì)(MotionEstimation)運(yùn)動(dòng)估計(jì)用在若干種多媒體應(yīng)用中(諸如,電視會(huì)議及MPEG(高質(zhì)量電視播放))。對(duì)于電視會(huì)議,運(yùn)動(dòng)估計(jì)用來(lái)減少必須在終端之間傳輸?shù)臄?shù)據(jù)量。運(yùn)動(dòng)估計(jì)通過(guò)將視頻幀分成固定大小的視頻塊進(jìn)行。對(duì)于幀1中的各塊,確定在幀2中是否有包含相似圖象的塊。如果幀2中包含這樣的塊,便能用對(duì)幀1中的運(yùn)動(dòng)矢量引用來(lái)描述該塊。這樣,不是傳輸表示該塊的所有數(shù)據(jù),只需要將一個(gè)運(yùn)動(dòng)矢量傳輸?shù)浇邮战K端。例如,如果幀1中的一塊相似于幀2中的一塊且在相同的屏幕坐標(biāo)上,只需要為該塊發(fā)送一個(gè)運(yùn)動(dòng)矢量0。然而,如果幀1中的一塊相似于幀2中的一塊但在不同的屏面坐標(biāo)上,只需要發(fā)送指示該塊的新位置的一個(gè)運(yùn)動(dòng)矢量即可。按照一種實(shí)現(xiàn),為了確定幀1中的塊A是否相似于幀2中的塊B,確定象素值之間的絕對(duì)差值之和。和越低,塊A與塊B越相似(即如果和為0,塊A等于塊B)。通過(guò)包含傳送、分解、分組加法、帶飽和的分組減法及邏輯運(yùn)算,本發(fā)明允許用分組數(shù)據(jù)執(zhí)行運(yùn)動(dòng)估計(jì)。例如,如果兩個(gè)16×16的視頻塊是用作為分組數(shù)據(jù)存儲(chǔ)的兩個(gè)8位象素值的數(shù)組表示的,可用下述步驟計(jì)算出這兩塊中的象素值的絕對(duì)差值1)利用傳送指令從塊A中取8個(gè)8位值生成Source1;2)利用傳送指令從塊B中取8個(gè)8位值生成Source2;3)執(zhí)行帶飽和的分組減法從Source2中減去Source1生成Source3-通過(guò)帶飽和的減法,Source3中將只包含這一減法的正結(jié)果(即負(fù)結(jié)果成為0);4)執(zhí)行帶飽和的分組減法從Source1中減去Source2生成Source4-通過(guò)帶飽和的減法,Source4中將只包含這一減法的正結(jié)果(即負(fù)結(jié)果成為0);5)在Source3與Source4上執(zhí)行分組或運(yùn)算(OR)產(chǎn)生Source5-通過(guò)執(zhí)行這一或運(yùn)算,Source5中包含Source1與Source2的絕對(duì)值;6)重復(fù)這些步驟直到處理完16×16塊。將得出的8位絕對(duì)值分解成16位數(shù)據(jù)元素以便允許16位精度,然后使用分組加法求和。從而,通過(guò)在處理器109上提供傳送、分解、分組加法、帶飽和的分組減法及邏輯運(yùn)算,本發(fā)明比先有技術(shù)通用處理器有了明顯的性能提高,后者必須一次一個(gè)數(shù)據(jù)元素地執(zhí)行運(yùn)動(dòng)估計(jì)計(jì)算的加法與絕對(duì)差值。6)離散余弦變換離散余弦變換(DCT)是用在許多信號(hào)處理算法中的著名函數(shù)。尤其是視頻與圖象壓縮算法廣泛地利用這一變換。在圖象與視頻壓縮算法中,使用DCT將一塊象素從空間表示變換到頻率表示。在頻率表示中,將畫(huà)面信息分成頻率分量,某些分量比其它分量更重要。壓縮算法有選擇地量化或丟棄對(duì)重構(gòu)畫(huà)面內(nèi)容并無(wú)不利影響的頻率分量。以這一方式達(dá)到壓縮。DCT有許多實(shí)現(xiàn),其中最流行的是基于快速傅里葉變換(FFT)計(jì)算流程建模的某種快速變換方法。在該快速變換中,將N階變換分解成N/2階變換的組合并重組結(jié)果??蓪⑦@一分解一直進(jìn)行到到達(dá)最小的二階變換為止。通常將這一初等二階變換核稱作蝶形運(yùn)算。蝶形運(yùn)算表示如下X=a*x+b*yY=c*x-d*y其中a、b、c與d稱作系數(shù),x與y為輸入數(shù)據(jù),而X與Y則為變換輸出。通過(guò)包含傳送、乘-加及分組移位指令,本發(fā)明允許以下述方式使用分組數(shù)據(jù)執(zhí)行DCT計(jì)算1)利用傳送及分解指令取表示x與y的兩個(gè)16位值生成Source1(見(jiàn)下面表51);2)如下面表51中所示生成Source2注意Source2在若干次蝶形運(yùn)算上可重復(fù)使用;以及3)利用Source1與Source2執(zhí)行乘-加指令生成Result(見(jiàn)下面表51Source1Source2</tables>Source3表51在一些情況中,蝶形運(yùn)算的系數(shù)為1。對(duì)于這些情況,蝶形運(yùn)算退化成只有加與減,這可以利用分組加法與分組減法指令來(lái)執(zhí)行。IEEE文件規(guī)定了電視會(huì)議必須執(zhí)行的逆DCT所用的精度。(見(jiàn)IEEE電路與系統(tǒng)協(xié)會(huì),“8×8逆離散余弦變換的實(shí)現(xiàn)的IEEE標(biāo)準(zhǔn)規(guī)范”,IEEEStd.1180-1990,IEEEInc.345East47thst.,NY,NY10017,USA,1991年3月18日)。公開(kāi)的乘-加指令滿足這一要求的精度因?yàn)樗褂?6位輸入來(lái)生成32位輸出。從而通過(guò)在處理器109上提供傳送、乘-加及分組移位操作,本發(fā)明相比于每次必須一個(gè)數(shù)據(jù)元素地執(zhí)行DCT計(jì)算的加法與乘法的先有技術(shù)通用處理器,本發(fā)明有了明顯的性能提高。替代實(shí)施例雖然已將本發(fā)明描述成其中各個(gè)不同的運(yùn)算具有獨(dú)立的電路,但也能實(shí)現(xiàn)替代的實(shí)施例使不同運(yùn)算共同某些電路。例如,在一個(gè)實(shí)施例中使用下列電路1)單個(gè)算術(shù)邏輯單元(ALU)來(lái)執(zhí)行分組加法、分組減法、分組比較及分組邏輯運(yùn)算;2)一個(gè)電路單元來(lái)執(zhí)行組裝、分解及分組移位操作;3)一個(gè)電路單元來(lái)執(zhí)行分組乘法及乘-加運(yùn)算;以及4)一個(gè)電路單元來(lái)執(zhí)行個(gè)數(shù)計(jì)數(shù)操作。這里使用了對(duì)應(yīng)與相應(yīng)的名詞來(lái)指稱存儲(chǔ)在兩個(gè)或更多分組數(shù)據(jù)中的數(shù)據(jù)元素之間的預(yù)定關(guān)系。在一個(gè)實(shí)施例中,這一關(guān)系是基于分組數(shù)據(jù)中的數(shù)據(jù)元素的位位置的。例如,第一分組數(shù)據(jù)的數(shù)據(jù)元素0(例如以分組字節(jié)格式存儲(chǔ)在位位置0-7中)對(duì)應(yīng)于第二分組數(shù)據(jù)的數(shù)據(jù)元素0(例如以分組字節(jié)格式存儲(chǔ)在位位置0-7中)。然而,在不同的實(shí)施例中這一關(guān)系可以不同。例如,第一與第二分組數(shù)據(jù)中的對(duì)應(yīng)數(shù)據(jù)元素可能具有不同長(zhǎng)度。作為另一示例,不是第一分組數(shù)據(jù)的最低位數(shù)據(jù)元素對(duì)應(yīng)于第二分組數(shù)據(jù)的最低位數(shù)據(jù)元素(及以此類(lèi)推),而且第一與第二分組數(shù)據(jù)中的數(shù)據(jù)元素可以以某種其它次序互相對(duì)應(yīng)。作為另一示例,第一與第二分組數(shù)據(jù)中的數(shù)據(jù)元素不是具有一一對(duì)應(yīng),而數(shù)據(jù)元素可在不同的比率上對(duì)應(yīng)(例如,第一分組數(shù)據(jù)的一個(gè)或多個(gè)數(shù)據(jù)元素可對(duì)應(yīng)于第二分組數(shù)據(jù)中的兩個(gè)或更多不同數(shù)據(jù)元素)。雖已用若干實(shí)施例描述了本發(fā)明,熟悉本技術(shù)者將理解本發(fā)明不限于所述實(shí)施例??稍谒綑?quán)利要求書(shū)的精神與范圍內(nèi)修改或改變來(lái)實(shí)現(xiàn)本發(fā)明的方法與裝置。因此,該說(shuō)明書(shū)應(yīng)認(rèn)為是示例性的而不是對(duì)本發(fā)明的限制。權(quán)利要求書(shū)按照條約第19條的修改25.一種處理器,包括一個(gè)存儲(chǔ)區(qū),配置成包含第一分組數(shù)據(jù)及第二分組數(shù)據(jù),這些分組數(shù)據(jù)分別包含第一多個(gè)數(shù)據(jù)元素及第二多個(gè)數(shù)據(jù)元素,其中第一多個(gè)數(shù)據(jù)元素中的各數(shù)據(jù)元素對(duì)應(yīng)于第二多個(gè)數(shù)據(jù)元素中的一個(gè)數(shù)據(jù)元素;一個(gè)解碼器,配置成解碼指令;第一電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第一電路配置成響應(yīng)分解指令同時(shí)復(fù)制第一與第二多個(gè)數(shù)據(jù)元素的某些對(duì)應(yīng)數(shù)據(jù)元素到該存儲(chǔ)區(qū)中作為第三分組數(shù)據(jù)中的多個(gè)結(jié)果數(shù)據(jù)元素;第二電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第二電路配置成響應(yīng)組裝指令同時(shí)復(fù)制第一與第二多個(gè)數(shù)據(jù)元素中的各數(shù)據(jù)元素的一部分到該存儲(chǔ)區(qū)中作為第三分組數(shù)據(jù)中的多個(gè)結(jié)果數(shù)據(jù)元素;第三電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第三電路配置成響應(yīng)乘法指令同時(shí)將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素與第二多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素相乘,以生成第三分組數(shù)據(jù)中的多個(gè)結(jié)果數(shù)據(jù)元素,其中各結(jié)果數(shù)據(jù)元素只包含高階位或低階位;第四電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第四電路配置成響應(yīng)加法指令同時(shí)將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素與第二多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素相加,以生成第三分組數(shù)據(jù)中的多個(gè)結(jié)果數(shù)據(jù)元素;第五電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第五電路配置成響應(yīng)減法指令同時(shí)從第二多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素中減去第一多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素,以生成第三分組數(shù)據(jù)中的多個(gè)結(jié)果數(shù)據(jù)元素;第六電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第六電路配置成同時(shí)將第一分組數(shù)據(jù)中的各數(shù)據(jù)元素對(duì)第二分組數(shù)據(jù)中的對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行比較,并且第六電路還配置成生成具有多個(gè)掩碼元素的分組掩碼,各掩碼元素表示一個(gè)對(duì)應(yīng)的比較,并且各掩碼元素根據(jù)該對(duì)應(yīng)的比較是真還是偽,包含全部具有第一預(yù)定值或第二預(yù)定值的多個(gè)位;以及第七電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第七電路配置成響應(yīng)移位指令,將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素獨(dú)立地移位一個(gè)移位計(jì)數(shù)。26.權(quán)利要求25的處理器,還包括第八電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第八電路配置成響應(yīng)乘-加指令,同時(shí)將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素與第二多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素相乘,以生成多個(gè)中間結(jié)果數(shù)據(jù)元素,并同時(shí)將相鄰的中間結(jié)果數(shù)據(jù)相加以生成第三分組數(shù)據(jù)中的多個(gè)結(jié)果數(shù)據(jù)元素。27.權(quán)利要求25的處理器,還包括第九電路,它耦合在該存儲(chǔ)區(qū)與該解碼器上,該第九電路配置成響應(yīng)個(gè)數(shù)計(jì)數(shù)指令,同時(shí)生成至少具有第一與第二結(jié)果數(shù)據(jù)元素的結(jié)果分組數(shù)據(jù),該第一結(jié)果數(shù)據(jù)元素表示第一多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素中置位的位的總數(shù),而第二結(jié)果數(shù)據(jù)元素則表示該第一多個(gè)數(shù)據(jù)元素的第二數(shù)據(jù)元素中置位的位的總數(shù)。28.權(quán)利要求25的處理器,還包括第十電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第十電路配置成響應(yīng)邏輯“與”指令,同時(shí)將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素及第二多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“與”,以生成第三分組數(shù)據(jù)中的多個(gè)結(jié)果數(shù)據(jù)元素;第十一電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第十一電路配置成響應(yīng)第二邏輯“與”指令,同時(shí)將第一多個(gè)數(shù)據(jù)元素的各元素的“非”與來(lái)自第二多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“與”,以生成第三分組數(shù)據(jù)中的多個(gè)結(jié)果數(shù)據(jù)元素;第十二電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第十二電路配置成響應(yīng)邏輯“或”指令,同時(shí)將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素與第二多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“或”,以生成第三分組數(shù)據(jù)中的多個(gè)結(jié)果數(shù)據(jù)元素;以及第十三電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第十三電路耦合成響應(yīng)第二邏輯“或”指令,同時(shí)將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素的“非”與第二多個(gè)數(shù)據(jù)元素的對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“或”,以生成第三分組數(shù)據(jù)中的多個(gè)結(jié)果數(shù)據(jù)元素。29.權(quán)利要求25的處理器,其中該第七電路進(jìn)一步配置成在各數(shù)據(jù)元素中用零填充數(shù)目為移位計(jì)數(shù)的位。30.權(quán)利要求25的處理器,其中該第七電路進(jìn)一步配置成在各數(shù)據(jù)元素中用各自的數(shù)據(jù)元素的符號(hào)位填充數(shù)目為移位計(jì)數(shù)的位。31.權(quán)利要求25的處理器,其中該第一電路進(jìn)一步配置成同時(shí)復(fù)制第一多個(gè)數(shù)據(jù)元素中的一半數(shù)據(jù)元素及第二多個(gè)數(shù)據(jù)元素中的一半數(shù)據(jù)元素。32.權(quán)利要求31的處理器,將從第一與第二多個(gè)數(shù)據(jù)元素復(fù)制的對(duì)應(yīng)數(shù)據(jù)元素復(fù)制到互相鄰接的存儲(chǔ)區(qū)中作為多個(gè)結(jié)果數(shù)據(jù)元素。33.權(quán)利要求32的處理器,其中以相同的次序復(fù)制第一多個(gè)數(shù)據(jù)元素作為第一分組數(shù)據(jù)中出現(xiàn)的第一多個(gè)數(shù)據(jù)元素。34.權(quán)利要求25的處理器,其中該第二電路所復(fù)制的各數(shù)據(jù)元素部分是第一與第二多個(gè)數(shù)據(jù)元素中的各數(shù)據(jù)元素的低階位或高階位。35.權(quán)利要求34的處理器,其中將第一多個(gè)數(shù)據(jù)元素部分互相鄰接地復(fù)制到第三分組數(shù)據(jù)中,作為多個(gè)結(jié)果數(shù)據(jù)元素。36.權(quán)利要求35的處理器,其中將第一與第二多個(gè)數(shù)據(jù)元素部分以第一與第二多個(gè)數(shù)據(jù)元素出現(xiàn)在第一與第二分組數(shù)據(jù)中相同的次序復(fù)制到第三分組數(shù)據(jù)中。37.權(quán)利要求25的處理器,其中第一與第二多個(gè)數(shù)據(jù)元素各包含兩個(gè)數(shù)據(jù)元素,各數(shù)據(jù)元素表示32位。38.權(quán)利要求25的處理器,其中第一與第二多個(gè)數(shù)據(jù)元素各包含4個(gè)數(shù)據(jù)元素,各數(shù)據(jù)元素表示16位。39.權(quán)利要求25的處理器,其中第一與第二多個(gè)數(shù)據(jù)元素各包含8個(gè)數(shù)據(jù)元素,各數(shù)據(jù)元素表示8位。40.一種處理器,包括第一存儲(chǔ)區(qū),配置成包含具有第一多個(gè)數(shù)據(jù)元素的第一分組數(shù)據(jù);第二存儲(chǔ)區(qū),配置成包含具有第二多個(gè)數(shù)據(jù)元素的第二分組數(shù)據(jù),第二多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素對(duì)應(yīng)于第一多個(gè)數(shù)據(jù)元素的一個(gè)不同的數(shù)據(jù)元素;一個(gè)解碼器,配置成解碼指令,該指令指定對(duì)應(yīng)于該第一存儲(chǔ)區(qū)的第一地址、對(duì)應(yīng)于該第二存儲(chǔ)區(qū)的第二地址、對(duì)應(yīng)于一個(gè)第三存儲(chǔ)區(qū)的目的地地址及至少要在第一多個(gè)數(shù)據(jù)元素上執(zhí)行的操作;第一電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第一電路配置成響應(yīng)分解指令,并行地將來(lái)自第一與第二多個(gè)數(shù)據(jù)元素的某些對(duì)應(yīng)數(shù)據(jù)元素復(fù)制到第三存儲(chǔ)區(qū)中,作為第三分組數(shù)據(jù)中的第三多個(gè)數(shù)據(jù)元素;第二電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第二電路配置成響應(yīng)組裝指令,并行地將第一與第二多個(gè)數(shù)據(jù)元素中的各數(shù)據(jù)元素的一部分復(fù)制到第三存儲(chǔ)區(qū)中,作為第三分組數(shù)據(jù)中的第三多個(gè)數(shù)據(jù)元素;第三電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第三電路配置成響應(yīng)乘法指令,并行地將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素與第二多個(gè)數(shù)據(jù)元素的不同對(duì)應(yīng)數(shù)據(jù)元素相乘,以生成第三分組數(shù)據(jù)中的第三多個(gè)數(shù)據(jù)元素,其中第三多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素只包含高階位或低階位;第四電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第四電路配置成響應(yīng)加法指令,并行地將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素與第二多個(gè)數(shù)據(jù)元素的不同的對(duì)應(yīng)數(shù)據(jù)元素相加,以生成第三分組數(shù)據(jù)中的第三多個(gè)數(shù)據(jù)元素;第五電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第五電路配置成響應(yīng)減法指令,并行地將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素從第二多個(gè)數(shù)據(jù)元素的不同對(duì)應(yīng)數(shù)據(jù)元素中減去,以生成第三分組數(shù)據(jù)中的第三多個(gè)數(shù)據(jù)元素;第六電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第六電路配置成響應(yīng)比較指令,并行地將第一分組數(shù)據(jù)中的各數(shù)據(jù)元素對(duì)第二分組數(shù)據(jù)中的一個(gè)不同對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行比較,以及該第六電路進(jìn)一步配置成生成具有多個(gè)掩碼元素的分組掩碼,多個(gè)掩碼元素中的各掩碼元素表示第六電路并行地將第一分組數(shù)據(jù)中的各數(shù)據(jù)元素對(duì)第二分組數(shù)據(jù)中的不同對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行比較所生成的對(duì)應(yīng)比較結(jié)果,多個(gè)掩碼元素中的各掩碼元素根據(jù)對(duì)應(yīng)的比較結(jié)果是真還是假包含全部具有第一預(yù)定值或第二預(yù)定值的多個(gè)位;以及第七電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第七電路配置成響應(yīng)移位指令,獨(dú)立地將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素移位移位計(jì)數(shù)。41.權(quán)利要求40的處理器,還包括第八電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第八電路配置成響應(yīng)乘-加指令,并行地將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素與第二多個(gè)數(shù)據(jù)元素的一個(gè)不同對(duì)應(yīng)數(shù)據(jù)元素相乘,以生成第三多個(gè)數(shù)據(jù)元素,以及并行地將第三多個(gè)數(shù)據(jù)元素中的相鄰數(shù)據(jù)元素相加,以生成第三分組數(shù)據(jù)中的第四多個(gè)數(shù)據(jù)元素。42.權(quán)利要求41的處理器,還包括第九電路,它耦合在該存儲(chǔ)區(qū)與該解碼器上,該第九電路配置成響應(yīng)個(gè)數(shù)計(jì)數(shù)指令,并行地生成至少具有第一與第二結(jié)果數(shù)據(jù)元素的結(jié)果分組數(shù)據(jù),第一結(jié)果數(shù)據(jù)元素表示第一多個(gè)數(shù)據(jù)元素的第一數(shù)據(jù)元素中置位的位的總數(shù),而第二結(jié)果數(shù)據(jù)元素表示第一多個(gè)數(shù)據(jù)元素的第二數(shù)據(jù)元素中置位的位的總數(shù)。43.權(quán)利要求42的處理器,還包括第十電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第十電路配置成響應(yīng)邏輯“與”指令,并行地將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素及來(lái)自第二多個(gè)數(shù)據(jù)元素的一個(gè)不同對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“與”,以生成第三分組數(shù)據(jù)中的第三多個(gè)數(shù)據(jù)元素;第十一電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第十一電路配置成響應(yīng)第二邏輯“與”指令,并行地將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素的“非”與來(lái)自第二多個(gè)元素的一個(gè)不同對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“與”,以生成第三分組數(shù)據(jù)中的第三多個(gè)數(shù)據(jù)元素;第十二電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第十二電路配置成響應(yīng)邏輯“或”指令,并行地將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素與第二多個(gè)數(shù)據(jù)元素的一個(gè)不同對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“或”,以生成第三分組數(shù)據(jù)中的第三多個(gè)數(shù)據(jù)元素;以及第十三電路,耦合在該存儲(chǔ)區(qū)與該解碼器上,該第十三電路耦合成響應(yīng)第二邏輯“或”指令,并行地將第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素的“非”與第二多個(gè)數(shù)據(jù)元素的一個(gè)不同對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“或”,以生成第三分組數(shù)據(jù)中的第三多個(gè)數(shù)據(jù)元素。44.權(quán)利要求40的處理器,其中第七電路還配置成響應(yīng)邏輯移位指令,并行地邏輯移位第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素,其中用零來(lái)填充各數(shù)據(jù)元素中數(shù)目為移位計(jì)數(shù)的位。45.權(quán)利要求40的處理器,其中第七電路還配置成響應(yīng)算術(shù)移位指令,并行地在第一多個(gè)數(shù)據(jù)元素的各數(shù)據(jù)元素上獨(dú)立地執(zhí)行算術(shù)移位,其中用各自數(shù)據(jù)元素的符號(hào)位填充各數(shù)據(jù)元素中數(shù)目為移位計(jì)數(shù)的位。46.權(quán)利要求40的處理器,其中第一電路還配置成響應(yīng)分解指令,并行地復(fù)制第一多個(gè)數(shù)據(jù)元素中的一半數(shù)據(jù)元素及第二多個(gè)數(shù)據(jù)元素的一半數(shù)據(jù)元素。47.權(quán)利要求46的處理器,其中第一電路從第一與第二多個(gè)數(shù)據(jù)元素復(fù)制的對(duì)應(yīng)數(shù)據(jù)元素是互相鄰接地放置在第三存儲(chǔ)區(qū)中作為第三多個(gè)數(shù)據(jù)元素的。48.權(quán)利要求47的處理器,其中第一電路復(fù)制的各第一多個(gè)數(shù)據(jù)元素是與第一多個(gè)數(shù)據(jù)元素出現(xiàn)在第一分組數(shù)據(jù)中的相同次序復(fù)制到第三分組數(shù)據(jù)中的。49.權(quán)利要求40的處理器,其中第二電路復(fù)制的各數(shù)據(jù)元素部分是第一與第二多個(gè)數(shù)據(jù)元素中各數(shù)據(jù)元素中的位的一半。50.權(quán)利要求49的處理器,其中第二電路復(fù)制的各數(shù)據(jù)元素部分是第一與第二多個(gè)數(shù)據(jù)元素中各數(shù)據(jù)元素的低或高階位。51.權(quán)利要求50的處理器,其中第二電路從第一多個(gè)數(shù)據(jù)元素中的數(shù)據(jù)元素復(fù)制的部分是鄰接第三多個(gè)數(shù)據(jù)元素放置的。52.權(quán)利要求51的處理器,其中將從第一與第二多個(gè)數(shù)據(jù)元素復(fù)制的部分以第一與第二多個(gè)數(shù)據(jù)元素出現(xiàn)在第一與第二分組數(shù)據(jù)中相同的次序復(fù)制到第三分組數(shù)據(jù)中。53.權(quán)利要求40的處理器,其中第一與第二多個(gè)數(shù)據(jù)元素各包含兩個(gè)數(shù)據(jù)元素,各數(shù)據(jù)元素表示32位。54.權(quán)利要求40的處理器,其中第一與第二多個(gè)數(shù)據(jù)元素各包含4個(gè)數(shù)據(jù)元素,各數(shù)據(jù)元素表示16位。55.權(quán)利要求40的處理器,其中第一與第二多個(gè)數(shù)據(jù)元素各包含8個(gè)數(shù)據(jù)元素,各數(shù)據(jù)元素表示8位。權(quán)利要求1.一種計(jì)算機(jī)系統(tǒng),包括包含第一寄存器的處理器;以及耦合在所述處理器上的存儲(chǔ)區(qū),其中存儲(chǔ)有在第一分組數(shù)據(jù)及第二分組數(shù)據(jù)上操作的組裝指令,所述第一分組數(shù)據(jù)至少包含第一數(shù)據(jù)元素及第二數(shù)據(jù)元素,所述第二分組數(shù)據(jù)至少包含第三數(shù)據(jù)元素及第四數(shù)據(jù)元素,各所述第一數(shù)據(jù)元素,所述第二數(shù)據(jù)元素、所述第三數(shù)據(jù)元素及所述第四數(shù)據(jù)元素包含一組位,所述處理器響應(yīng)接收所述組裝指令,組裝各個(gè)所述第一數(shù)據(jù)元素、所述第二數(shù)據(jù)元素、所述第三數(shù)據(jù)元素及所述第四數(shù)據(jù)元素的一部分以構(gòu)成第三分組數(shù)據(jù);在第四分組數(shù)據(jù)及第五分組數(shù)據(jù)上操作的分解指令,所述第四分組數(shù)據(jù)至少包含第五數(shù)據(jù)元素及第六數(shù)據(jù)元素,所述第五分組數(shù)據(jù)至少包含對(duì)應(yīng)于所述第五數(shù)據(jù)元素的第七數(shù)據(jù)元素及對(duì)應(yīng)于所述第六數(shù)據(jù)元素的第八數(shù)據(jù)元素,各所述第五數(shù)據(jù)元素、所述第六數(shù)據(jù)元素、所述第七數(shù)據(jù)元素及所述第八數(shù)據(jù)元素包含一組位,所述處理器響應(yīng)接收所述分解指令,生成至少包含來(lái)自所述第四分組數(shù)據(jù)的所述第五數(shù)據(jù)元素及來(lái)自所述第五分組數(shù)據(jù)的所述第七數(shù)據(jù)元素的第六分組數(shù)據(jù);分組加法指令,所述處理器響應(yīng)接收所述分組加法指令,并行將所述第四分組數(shù)據(jù)及所述第五分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素獨(dú)立相加;分組減法指令,所述處理器響應(yīng)接收所述分組減法指令,并行將所述第四分組數(shù)據(jù)及所述第五分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素獨(dú)立相減;分組移位指令,所述處理器響應(yīng)接收所述分組移位指令,并行單獨(dú)移位至少所述第一數(shù)據(jù)元素一個(gè)指定的計(jì)數(shù)及所述第二數(shù)據(jù)元素一個(gè)指定的計(jì)數(shù);以及分組比較指令,所述處理器響應(yīng)接收所述分組比較指令,按照指定的關(guān)系并行單獨(dú)比較來(lái)自所述第四分組數(shù)據(jù)及所述第五分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素,并作為結(jié)果將一個(gè)分組掩碼存儲(chǔ)在所述第一寄存器中,所述分組掩碼至少包含各含有所述預(yù)定位數(shù)的第一掩碼元素及第二掩碼元素,所述第一掩碼元素中的各位指示所述第四分組數(shù)據(jù)中的所述第五數(shù)據(jù)元素與所述第五分組數(shù)據(jù)中的所述第七數(shù)據(jù)元素比較的所述結(jié)果,所述第二掩碼元素中的各位指示所述第四分組數(shù)據(jù)中的所述第六數(shù)據(jù)元素與所述第五分組數(shù)據(jù)中的所述第八數(shù)據(jù)元素比較的所述結(jié)果。2.權(quán)利要求1的計(jì)算機(jī)系統(tǒng),所述存儲(chǔ)區(qū)中還存儲(chǔ)有分組乘法指令,所述處理器響應(yīng)接收所述分組乘法指令,并行將所述第四分組數(shù)據(jù)及所述第五分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素單獨(dú)相乘。3.權(quán)利要求1的計(jì)算機(jī)系統(tǒng),所述存儲(chǔ)區(qū)中還存儲(chǔ)有分組乘-加指令,所述處理器響應(yīng)接收所述分組乘-加指令,將所述第一數(shù)據(jù)元素與所述第三數(shù)據(jù)元素相乘以生成第一中間結(jié)果,并將所述第二數(shù)據(jù)元素與所述第四數(shù)據(jù)元素相乘以生成第二中間結(jié)果,以及將所述第一中間結(jié)果與所述第二中間結(jié)果相加以生成最終結(jié)果中的第九數(shù)據(jù)元素。4.權(quán)利要求2的計(jì)算機(jī)系統(tǒng),其中所述第一數(shù)據(jù)元素、所述第二數(shù)據(jù)元素、所述第三數(shù)據(jù)元素及所述第四數(shù)據(jù)元素各包含預(yù)定數(shù)目的位,及其中所述第九數(shù)據(jù)元素包含兩倍于所述預(yù)定數(shù)目的位。5.權(quán)利要求1的計(jì)算機(jī)系統(tǒng),所述存儲(chǔ)區(qū)中還存儲(chǔ)有個(gè)數(shù)計(jì)數(shù)指令,所述處理器響應(yīng)接收所述個(gè)數(shù)計(jì)數(shù)指令,并行確定所述第一數(shù)據(jù)元素中有多少位設(shè)置成預(yù)定值及所述第二數(shù)據(jù)元素中有多少位設(shè)置成所述預(yù)定值。6.權(quán)利要求1的計(jì)算機(jī)系統(tǒng),所述存儲(chǔ)區(qū)中還存儲(chǔ)有,第一分組邏輯指令,所述處理器響應(yīng)接收所述第一分組邏輯指令,并行對(duì)來(lái)自所述第四分組數(shù)據(jù)及所述第五分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“與”運(yùn)算;第二分組邏輯指令,所述處理器響應(yīng)接收所述第二分組邏輯指令,并行對(duì)來(lái)自所述第四分組數(shù)據(jù)的數(shù)據(jù)元素及來(lái)自所述第五分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素的邏輯“非”進(jìn)行邏輯“與”運(yùn)算;第三分組邏輯指令,所述處理器響應(yīng)接收所述第三分組邏輯指令,并行對(duì)來(lái)自所述第四分組數(shù)據(jù)及所述第五分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“或”運(yùn)算;以及第四分組邏輯指令,所述處理器響應(yīng)接收所述第四分組邏輯指令,并行對(duì)來(lái)自所述第四分組數(shù)據(jù)及所述第五分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“異或”運(yùn)算。7.權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中所述移位是算術(shù)移位。8.權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中所述移位是邏輯移位。9.權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中所述移位是向右方向上的。10.權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中所述移位是向左方向上的。11.權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中所述第一數(shù)據(jù)元素,所述第二數(shù)據(jù)元素、所述第三數(shù)據(jù)元素及所述第四數(shù)據(jù)元素各包含預(yù)定數(shù)目的位。12.權(quán)利要求11的計(jì)算機(jī)系統(tǒng),其中所述部分包含所述預(yù)定數(shù)目的位的一半。13.權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中所述第五數(shù)據(jù)元素、所述第六數(shù)據(jù)元素、所述第七數(shù)據(jù)元素及所述第八數(shù)據(jù)元素各包含所述預(yù)定數(shù)目的位。14.一種操作第一分組數(shù)據(jù)及第二分組數(shù)據(jù)的方法,所述第一分組數(shù)據(jù)至少包含第一數(shù)據(jù)元素及第二數(shù)據(jù)元素,所述第二分組數(shù)據(jù)至少包含對(duì)應(yīng)于所述第一數(shù)據(jù)元素的第三數(shù)據(jù)元素及對(duì)應(yīng)于所述第二數(shù)據(jù)元素的第四數(shù)據(jù)元素,各所述第一數(shù)據(jù)元素、所述第二數(shù)據(jù)元素、所述第三數(shù)據(jù)元素及所述第四數(shù)據(jù)元素各包含一組位,所述方法包括計(jì)算機(jī)實(shí)現(xiàn)的下述步驟接收一條指令;確定所述指令是否是組裝指令、分解指令、分組加法指令、分組減法指令、分組移位指令及分組比較指令之一;如果所述指令為所述組裝指令,則組裝所述第一數(shù)據(jù)元素、所述第二數(shù)據(jù)元素、所述第三數(shù)據(jù)元素及所述第四數(shù)據(jù)元素各個(gè)的一部分以構(gòu)成第三分組數(shù)據(jù);如果所述指令為所述分解指令,生成至少包含來(lái)自所述第一分組數(shù)據(jù)的所述第一數(shù)據(jù)元素及來(lái)自所述第二分組數(shù)據(jù)的所述第三數(shù)據(jù)元素的第四分組數(shù)據(jù);如果所述指令為所述分組加法指令,并行將所述第一分組數(shù)據(jù)及所述第二分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素單獨(dú)相加;如果所述指令為所述分組減法指令,并行將所述第一分組數(shù)據(jù)及所述第二分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素單獨(dú)相減;如果所述指令為所述分組移位指令,并行單獨(dú)移位至少所述第一數(shù)據(jù)元素及所述第二數(shù)據(jù)元素指定的計(jì)數(shù);以及如果所述指令為所述分組比較指令,則按照指定的關(guān)系并行單獨(dú)比較來(lái)自所述第一分組數(shù)據(jù)及所述第二分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素,并作為結(jié)果生成一個(gè)分組掩碼,所述分組掩碼至少包含各含有所述預(yù)定數(shù)目的位的第一掩碼元素及第二掩碼元素,所述第一掩碼元素中的各位指示比較所述第一分組數(shù)據(jù)中的所述第一數(shù)據(jù)元素與所述第二分組數(shù)據(jù)中的所述第三數(shù)據(jù)元素的所述結(jié)果,所述第二掩碼元素中的各位指示比較所述第一分組數(shù)據(jù)中的所述第二數(shù)據(jù)元素與所述第二分組數(shù)據(jù)中的所述第四數(shù)據(jù)元素的所述結(jié)果。15.權(quán)利要求14的方法,其中所述確定步驟還包括確定所述指令是否是分組乘法指令;以及所述方法述包括下述步驟如果所述指令為所述分組乘法指令,便并行將所述第一分組數(shù)據(jù)及所述第二分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素單獨(dú)相乘。16.權(quán)利要求14的方法,其中所述確定步驟還包括確定所述指令是否是分組乘-加指令;以及所述方法還包括下述步驟如果所述指令為所述分組乘-加指令,執(zhí)行下述步驟將所述第一數(shù)據(jù)元素及所述第三數(shù)據(jù)元素相乘以生成第一中間結(jié)果;將所述第二數(shù)據(jù)元素與所述第四數(shù)據(jù)元素相乘以生成第二中間結(jié)果;以及將所述第一中間結(jié)果與所述第二中間結(jié)果相加以生成最終結(jié)果中的第五數(shù)據(jù)元素。17.權(quán)利要求16的方法,其中所述第一數(shù)據(jù)元素、所述第二數(shù)據(jù)元素、所述第三數(shù)據(jù)元素及所述第四數(shù)據(jù)元素各包含預(yù)定數(shù)目的位,及其中所述第四數(shù)據(jù)元素與所述第五數(shù)據(jù)元素各包含兩倍于所述預(yù)定數(shù)目的位。18.權(quán)利要求14的方法,其中所述確定步驟還包括確定所述指令是否是個(gè)數(shù)計(jì)數(shù)指令;以及所述方法還包括下述步驟如果所述指令是所述個(gè)數(shù)計(jì)數(shù)指令,并行確定在所述第一數(shù)據(jù)元素中多少位設(shè)置在預(yù)定值上,及在所述第二數(shù)據(jù)元素中多少位設(shè)置在所述預(yù)定值上。19.權(quán)利要求14的方法,其中所述確定步驟還包括確定所述指令是否是多條分組邏輯指令之一;以及所述方法還包括下述步驟如果所述指令為所述多條分組邏輯指令的第一條,則并行將來(lái)自所述第一分組數(shù)據(jù)及所述第二分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“與”運(yùn)算,如果所述指令為所述多條分組邏輯指令的第二條,則并行將來(lái)自所述第一分組數(shù)據(jù)的數(shù)據(jù)元素與來(lái)自所述第二分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素的邏輯“非”進(jìn)行邏輯“與”運(yùn)算;如果所述指令為所述多條分組邏輯指令的第三條,則并行將來(lái)自所述第一分組數(shù)據(jù)及所述第二分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“或”運(yùn)算;以及如果所述指令為所述多條分組邏輯指令的第四條,則并行將來(lái)自所述第一分組數(shù)據(jù)及所述第二分組數(shù)據(jù)的對(duì)應(yīng)數(shù)據(jù)元素進(jìn)行邏輯“異或”運(yùn)算。20.權(quán)利要求14的計(jì)算機(jī)系統(tǒng),其中所述單獨(dú)移位的步驟是作為算術(shù)移位與邏輯移位之一執(zhí)行的。21.權(quán)利要求14的計(jì)算機(jī)系統(tǒng),其中所述單獨(dú)移位的步驟是這樣執(zhí)行的,使所述第一數(shù)據(jù)元素及所述第二數(shù)據(jù)元素兩者都在向右方向及向左方向之一上移位。22.權(quán)利要求16的方法,其中所述第一數(shù)據(jù)元素、所述第二數(shù)據(jù)元素、所述第三數(shù)據(jù)元素及所述第四數(shù)據(jù)元素各包含預(yù)定數(shù)目的位。23.權(quán)利要求22的方法,其中所述部分包含所述預(yù)定數(shù)目的位的一半。24.權(quán)利要求14的方法,其中所述確定步驟是由解碼器執(zhí)行的。全文摘要一種在處理器中加入支持典型的多媒體應(yīng)用所要求的分組數(shù)據(jù)上的操作的指令集的裝置。在一個(gè)實(shí)施例中,本發(fā)明包括具有存儲(chǔ)區(qū)(150)、解碼器(165)及多個(gè)電路(130)的處理器。該多個(gè)電路提供若干指令的執(zhí)行來(lái)操作分組數(shù)據(jù)。在這一實(shí)施例中,這些指令包含組裝、分解、分組乘法、分組加法、分組減法、分組比較及分組移位。文檔編號(hào)G06F7/57GK1200822SQ96197839公開(kāi)日1998年12月2日申請(qǐng)日期1996年7月17日優(yōu)先權(quán)日1995年8月31日發(fā)明者A·D·佩勒格,Y·雅里,M·米塔爾,L·M·門(mén)內(nèi)梅爾,B·艾坦,A·F·格盧,C·杜龍,E·科瓦施,W·維特申請(qǐng)人:英特爾公司