專(zhuān)利名稱(chēng):可以對(duì)復(fù)合操作數(shù)進(jìn)行壓縮操作的微處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明包括使用單個(gè)控制信號(hào)處理多個(gè)數(shù)據(jù)元素而執(zhí)行操作的一種裝置和方法。本發(fā)明允許對(duì)壓縮數(shù)據(jù)類(lèi)型執(zhí)行移動(dòng)、壓縮和拆開(kāi)的操作。
背景技術(shù):
當(dāng)今,大多數(shù)個(gè)人計(jì)算機(jī)系統(tǒng)的工作機(jī)制是使用一個(gè)指令產(chǎn)生一個(gè)結(jié)果。通過(guò)增加指令的執(zhí)行速度和處理器指令的復(fù)雜程度以及并行執(zhí)行多個(gè)指令來(lái)增加處理器性能,這種計(jì)算機(jī)稱(chēng)為復(fù)雜指令集計(jì)算機(jī)(CISC)。例如加里福尼亞州Santa Clara的INTEL公司的INTEL80386TM微處理器就屬于CISC類(lèi)型的處理器。
先前的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)經(jīng)過(guò)優(yōu)化以利用CISC概念。這樣的系統(tǒng)通常具有32位寬的數(shù)據(jù)總線。然而,針對(duì)計(jì)算機(jī)支持的協(xié)作(CSC-電話會(huì)議與混合媒體數(shù)據(jù)操作集成)、2維/3維圖像、圖像處理、視頻壓縮/解壓、識(shí)別算法和音頻處理方面的應(yīng)用增加了對(duì)更高性能的需求。但是,執(zhí)行速度和指令復(fù)雜性的增加只是一種解決方案。
這些應(yīng)用的一個(gè)共同的特征是它們常常操作大量的數(shù)據(jù),其中只有少數(shù)位是重要的。也就是說(shuō),是有關(guān)位用比數(shù)據(jù)總線大小少得多的位表示的數(shù)據(jù)。例如,處理器的許多操作是就8位和16位數(shù)據(jù)執(zhí)行的(例如視頻圖像中的像素彩色分量),但是具有寬得多的數(shù)據(jù)總線和寄存器。因此,具有32位數(shù)據(jù)總線和寄存器并且執(zhí)行這樣一種算法的處理器可能損失多達(dá)75%的數(shù)據(jù)處理、運(yùn)載和存儲(chǔ)能力,因?yàn)橹挥星?位數(shù)據(jù)是重要的。
因此,希望有一個(gè)處理器,它通過(guò)更加有效地利用表示被操作數(shù)據(jù)需要的位數(shù)和處理器實(shí)際數(shù)據(jù)運(yùn)載和存儲(chǔ)容量之間的差,從而提高其性能。
發(fā)明內(nèi)容
本文說(shuō)明一種改進(jìn)了數(shù)據(jù)處理操作的處理器。
一種處理器,它包括存儲(chǔ)第一壓縮數(shù)據(jù)的第一寄存器,一個(gè)解碼器和一個(gè)功能單元。解碼器有一個(gè)控制信號(hào)輸入??刂菩盘?hào)輸入用于接收第一控制信號(hào)和第二控制信號(hào)。第一控制信號(hào)用于指示一個(gè)壓縮操作。第二控制信號(hào)用于指示一個(gè)拆開(kāi)操作。功能單元連接到解碼器和寄存器。功能單元使用第一壓縮數(shù)據(jù)執(zhí)行壓縮和拆開(kāi)操作。處理器還支持移動(dòng)操作。
雖然在說(shuō)明書(shū)和附圖中包含了大量的細(xì)節(jié),但是,本發(fā)明由權(quán)利要求的范圍限定。只有在這些權(quán)利要求中提到的限制適用于本發(fā)明。
本發(fā)明用附圖中的、但不限于附圖中的實(shí)例說(shuō)明,相同的參考標(biāo)號(hào)表示相似的元件。
圖1表示使用本發(fā)明的方法和裝置的計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例;圖2表示本發(fā)明的處理器的一個(gè)實(shí)施例;圖3是說(shuō)明由本發(fā)明的處理器使用的操作寄存器文件中的數(shù)據(jù)的總步驟的流程圖;圖4a說(shuō)明存儲(chǔ)器數(shù)據(jù)類(lèi)型;圖4b、圖4c和圖4d說(shuō)明整數(shù)數(shù)據(jù)的寄存器內(nèi)表示;圖5a表示壓縮數(shù)據(jù)類(lèi)型;圖5b,圖5c和圖5d說(shuō)明壓縮數(shù)據(jù)的寄存器內(nèi)表示;圖6a表示在該計(jì)算機(jī)系統(tǒng)中使用的指示使用壓縮數(shù)據(jù)的控制信號(hào)格式;圖6b表示第二控制信號(hào)格式,它可以用于該計(jì)算機(jī)系統(tǒng)指示使用壓縮數(shù)據(jù)或者整數(shù)數(shù)據(jù);圖7表示由處理器在對(duì)壓縮數(shù)據(jù)執(zhí)行壓縮操作時(shí)所遵循的方法的一個(gè)實(shí)施例;圖8a表示能夠?qū)嚎s字節(jié)數(shù)據(jù)實(shí)現(xiàn)壓縮操作的電路;圖8b表示能夠?qū)嚎s字?jǐn)?shù)據(jù)實(shí)現(xiàn)壓縮操作的電路;圖9表示由處理器在對(duì)壓縮數(shù)據(jù)執(zhí)行拆開(kāi)操作時(shí)所遵循的方法的一個(gè)實(shí)施例;圖10表示能夠?qū)嚎s數(shù)據(jù)實(shí)現(xiàn)拆開(kāi)操作的電路。
具體實(shí)施例方式
本文敘述了對(duì)多個(gè)數(shù)據(jù)元素進(jìn)行移動(dòng)、壓縮和拆開(kāi)操作的處理器。在下面的說(shuō)明中,敘述了大量的諸如電路等這樣的細(xì)節(jié),以便提供對(duì)本發(fā)明徹底的了解。在另外的場(chǎng)合,為避免不必要地沖淡對(duì)本發(fā)明的理解,對(duì)熟知的結(jié)構(gòu)和技術(shù)未作詳細(xì)的敘述。
定義為了對(duì)理解本發(fā)明的實(shí)施例的說(shuō)明提供基礎(chǔ),提供下面的定義。
位X到位Y定義二進(jìn)制數(shù)的一個(gè)子字段。例如字節(jié)001110102(以2為基表示)的位6到位0表示子字段1110102,二進(jìn)制數(shù)后面的2表示以2為基。因此,10002等于810,而F16等于1510。
Rx是一個(gè)寄存器。寄存器是能夠存儲(chǔ)和提供數(shù)據(jù)的任何設(shè)備。寄存器的另外的功能下面說(shuō)明。一個(gè)寄存器不一定是處理器組件的一部分。
DEST是一個(gè)數(shù)據(jù)地址。
SRC1是一個(gè)數(shù)據(jù)地址。
SRC2是一個(gè)數(shù)據(jù)地址。
Result要存儲(chǔ)在由DEST尋址的寄存器中的數(shù)據(jù)。
Source1存儲(chǔ)在由SRC1尋址的寄存器中的數(shù)據(jù)。
Source2存儲(chǔ)在由SRC2尋址的寄存器中的數(shù)據(jù)。
計(jì)算機(jī)系統(tǒng)參考圖1,可以實(shí)現(xiàn)本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)作為計(jì)算機(jī)系統(tǒng)100表示。計(jì)算機(jī)系統(tǒng)100包括總線101或者其它傳輸信息的通信硬件和軟件以及與總線101連接的處理信息的處理器109。計(jì)算機(jī)系統(tǒng)100另外還包括一個(gè)隨機(jī)存取存儲(chǔ)器(RAM)或者其它動(dòng)態(tài)存儲(chǔ)設(shè)備(稱(chēng)為主存儲(chǔ)器104),它連接到總線101上,用于存儲(chǔ)信息和要由處理器109執(zhí)行的指令。主存儲(chǔ)器104也可以用于暫存變量或者其它在處理器109執(zhí)行指令時(shí)期的中間信息。計(jì)算機(jī)系統(tǒng)100還包括連接在總線101上的只讀存儲(chǔ)器(ROM)106,和/或其它靜態(tài)存儲(chǔ)設(shè)備,用于存儲(chǔ)靜態(tài)信息和處理器109要執(zhí)行的指令。數(shù)據(jù)存儲(chǔ)設(shè)備107連接到總線101上用于存儲(chǔ)信息和指令。
另外,數(shù)據(jù)存儲(chǔ)設(shè)備107,例如磁盤(pán)或光盤(pán)以及它們相應(yīng)的驅(qū)動(dòng)器,可以連接到計(jì)算機(jī)100上。計(jì)算機(jī)系統(tǒng)100也可以通過(guò)總線101連接到一個(gè)顯示設(shè)備121上,以便顯示信息給計(jì)算機(jī)用戶(hù)。顯示設(shè)備121可以包括一個(gè)幀緩沖器,專(zhuān)用圖形處理設(shè)備,一個(gè)陰極射線管(CRT),和/或一個(gè)平面面板顯示器。通常一個(gè)包括字母數(shù)字和其它鍵的字母數(shù)字輸入設(shè)備122連接到總線101上,用于給處理器109傳輸信息和命令選擇。另一類(lèi)型的用戶(hù)輸入設(shè)備是光標(biāo)控制設(shè)備123,例如鼠標(biāo)、軌跡球、光筆、觸摸屏、或者光標(biāo)指示鍵,用于給處理器109傳輸方向信息和命令選擇以及控制光標(biāo)在顯示設(shè)備121上的移動(dòng)。這種輸入設(shè)備通常在兩個(gè)軸上有兩個(gè)自由度,第一軸(例如x軸)和第二軸(例如y軸),它們?cè)试S光標(biāo)控制設(shè)備在一個(gè)平面內(nèi)指定位置。然而本發(fā)明不應(yīng)該局限于只有兩個(gè)自由度的輸入設(shè)備。
另一個(gè)可以連接到總線101上的設(shè)備是硬拷貝設(shè)備124,它可能用于在諸如紙、膠片、或者類(lèi)似類(lèi)型介質(zhì)上打印指令、數(shù)據(jù)或者其它信息。另外計(jì)算機(jī)系統(tǒng)100可以連接到聲音記錄和/或回放設(shè)備125上,例如連接到一個(gè)麥克風(fēng)上記錄信息的音頻數(shù)字轉(zhuǎn)換器。另外,該設(shè)備還可能包括一個(gè)連接到數(shù)/模(D/A)轉(zhuǎn)換器的揚(yáng)聲器,用于回放數(shù)字化的聲音。
還有,計(jì)算機(jī)系統(tǒng)100可以是一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)(例如一個(gè)局域網(wǎng))的一個(gè)終端。這樣,計(jì)算機(jī)系統(tǒng)100便是包括若干連網(wǎng)設(shè)備的一個(gè)計(jì)算機(jī)系統(tǒng)的一個(gè)計(jì)算機(jī)子系統(tǒng)。計(jì)算機(jī)系統(tǒng)100可以包括視頻數(shù)字化設(shè)備126。視頻數(shù)字化設(shè)備126可以用于獲取視頻圖像,而傳輸給網(wǎng)絡(luò)中的其它設(shè)備。
計(jì)算機(jī)系統(tǒng)100對(duì)于支持計(jì)算機(jī)支持的協(xié)作(CSC-電話會(huì)議與混合介質(zhì)數(shù)據(jù)操作的集成)、2維/3維圖形、圖像處理、視頻壓縮/解壓、識(shí)別算法和音頻操作十分有用。
處理器圖2表示處理器109的詳圖。處理器109可以在使用一層或多層諸如BiCMOS、CMOS和NMOS等工藝技術(shù)的基底上實(shí)現(xiàn)。
處理器109包括一個(gè)解碼由處理器109使用的控制信號(hào)和數(shù)據(jù)的解碼器202。然后數(shù)據(jù)可以通過(guò)內(nèi)部總線205存儲(chǔ)在寄存器文件204中。顯然,一個(gè)實(shí)施例的寄存器不應(yīng)該局限于特定類(lèi)型的電路,相反,一個(gè)實(shí)施例的寄存器只需要能夠存儲(chǔ)和提供數(shù)據(jù),以及執(zhí)行這里敘述的功能。
根據(jù)不同的數(shù)據(jù)類(lèi)型,數(shù)據(jù)可能存儲(chǔ)在整數(shù)寄存器組201、寄存器組209、狀態(tài)寄存器組208或者指令指針寄存器211中。其它的寄存器例如浮點(diǎn)寄存器可以包含在寄存器文件204中。在一個(gè)實(shí)施例中,整數(shù)寄存器組201存儲(chǔ)32位整數(shù)數(shù)據(jù)。在一個(gè)實(shí)施例中寄存器209組包括8個(gè)寄存器,R0212a到R7212h。寄存器組209中的每一個(gè)寄存器為64位長(zhǎng)。R1212a、R2212b和R3212c是寄存器組209中單個(gè)寄存器的例子。寄存器組209中的一個(gè)寄存器的32位可以移動(dòng)到整數(shù)寄存器組201中的一個(gè)整數(shù)寄存器中。類(lèi)似地,一個(gè)整數(shù)寄存器中的值可以移動(dòng)到寄存器組209中的一個(gè)寄存器的32位中。
狀態(tài)寄存器組208指示處理器109的狀態(tài)。指令指針寄存器211存儲(chǔ)下一要執(zhí)行的指令的地址。整數(shù)寄存器組201、寄存器組209、狀態(tài)寄存器組208、和指令指針寄存器211都連接到內(nèi)部總線205上。任何另外的寄存器也都應(yīng)該連接到內(nèi)部總線205上。
在另一個(gè)實(shí)施例中,這種寄存器中的某一些可以用于兩種類(lèi)型的數(shù)據(jù)。例如,寄存器組209和整數(shù)寄存器組201可以組合,其中每一個(gè)寄存器既可以存儲(chǔ)整數(shù)數(shù)據(jù)也可以存儲(chǔ)壓縮數(shù)據(jù)。在另一個(gè)實(shí)施例中,寄存器組209可以用作浮點(diǎn)寄存器組。在這一實(shí)施例中,壓縮數(shù)據(jù)或者浮點(diǎn)數(shù)據(jù)可以存儲(chǔ)在寄存器組209中。在一個(gè)實(shí)施例中,組合寄存器為64位長(zhǎng),而整數(shù)用64位表示。在該實(shí)施例中,在存儲(chǔ)壓縮數(shù)據(jù)和整數(shù)數(shù)據(jù)時(shí),寄存器不需區(qū)分這兩種數(shù)據(jù)類(lèi)型。
功能單元203執(zhí)行由處理器109執(zhí)行的操作。這樣的操作包括移位、加法、減法和乘法等。功能單元203連接到內(nèi)部總線205。高速緩沖存儲(chǔ)器206是處理器109的一個(gè)選件,可以用于緩沖存儲(chǔ)例如來(lái)自主存儲(chǔ)器104的數(shù)據(jù)和/或控制信號(hào)。高速緩沖存儲(chǔ)器206連接到解碼器202以接收控制信號(hào)207。
圖3表示處理器109的總操作。也就是說(shuō),圖3表示處理器109在對(duì)壓縮數(shù)據(jù)執(zhí)行操作、對(duì)未壓縮數(shù)據(jù)執(zhí)行操作或者執(zhí)行某個(gè)其它操作時(shí)遵循的步驟。例如這樣的操作包括用從高速緩沖存儲(chǔ)器206、主存儲(chǔ)器104、只讀存儲(chǔ)器(ROM)106或者數(shù)據(jù)存儲(chǔ)設(shè)備107的數(shù)據(jù)加載寄存器文件204中的一個(gè)寄存器的加載操作。在本發(fā)明的一個(gè)實(shí)施例中,處理器109支持由加里福尼亞州圣大克拉熱INTEL公司的INTEL80486TM支持的大多數(shù)指令。在本發(fā)明另一個(gè)實(shí)施例中,處理器109支持由加里福尼亞州圣大克拉熱INTEL公司的INTEL 80486TM支持的全部操作。在本發(fā)明的再一個(gè)實(shí)施例中,處理器109支持由加里福尼亞州圣大克拉熱INTEL公司制造的奔騰處理器、INTEL 80486TM處理器、80386TM處理器、INTEL 80286TM處理器、和INTEL 8086TM處理器支持的全部操作。在本發(fā)明的另一個(gè)實(shí)施例中,處理器109支持由加里福尼亞州Santa Clara的INTEL公司定義的IATM-INTEL結(jié)構(gòu)支持的全部操作(參見(jiàn)“微處理器”,INTEL數(shù)據(jù)叢書(shū)卷1和卷2,1992年和1993年,加里福尼亞州Santa Clara INTEL公司出版)。一般來(lái)說(shuō),處理器109可以支持奔騰處理器的當(dāng)前指令集,但是也可以修改為支持未來(lái)指令以及這里敘述的指令集的集合。重要的是,處理器109除這里敘述的操作外,可以支持先前所用的操作。
在步驟301,解碼器202從高速緩沖存儲(chǔ)器206或者總線101接收一個(gè)控制信號(hào)207。解碼器202解碼控制信號(hào)以判定要執(zhí)行的操作。
在步驟302,解碼器202訪問(wèn)寄存器204或者存儲(chǔ)器中的一個(gè)存儲(chǔ)單元。根據(jù)在控制信號(hào)207中指定的寄存器地址訪問(wèn)寄存器文件204中的寄存器或在存儲(chǔ)器中的存儲(chǔ)單元。例如,為對(duì)壓縮數(shù)據(jù)進(jìn)行操作,控制信號(hào)207可以包括SRC1、SRC2和DEST寄存器地址。SRC1是第一源寄存器地址。SRC2是第二源寄存器地址。在一些情況下,SRC2地址是可選項(xiàng),因?yàn)椴⒎撬械牟僮餍枰獌蓚€(gè)源地址。如果一個(gè)操作不需要SRC2地址,則只使用SRC1地址。DEST是存儲(chǔ)結(jié)果數(shù)據(jù)的目的寄存器的地址。在一個(gè)實(shí)施例中,SRC1或SRC2也用作DEST。SRC1、SRC2和DEST將結(jié)合圖6a和圖6b更充分地說(shuō)明。存儲(chǔ)在相應(yīng)寄存器中的數(shù)據(jù)分別稱(chēng)為Source1、source2和Result。它們每一個(gè)為64位長(zhǎng)。
在本發(fā)明的另一個(gè)實(shí)施例中,SRC1、SRC2和DEST中的任何一個(gè)或者全部可以定義為處理器109中的可尋址存儲(chǔ)器空間的一個(gè)存儲(chǔ)單元。例如,SRC1可能確定在主存儲(chǔ)器104中的一個(gè)存儲(chǔ)單元,而SRC2確定在整數(shù)寄存器組201中的第一寄存器,以及DEST確定寄存器組209中的第二寄存器。這里為說(shuō)明簡(jiǎn)單起見(jiàn),參考標(biāo)號(hào)是對(duì)寄存器文件204的訪問(wèn)標(biāo)注的,然而這些訪問(wèn)也可以對(duì)存儲(chǔ)器進(jìn)行。
在本發(fā)明的另一個(gè)實(shí)施例中,操作碼只包含兩個(gè)地址,SRC1和SRC2。在該實(shí)施例中,運(yùn)算結(jié)果存儲(chǔ)在SRC1或SRC2寄存器中,也就是說(shuō),SRC1(或SRC2)用作DEST。這種類(lèi)型的尋址與前面只具有兩個(gè)地址的CISC指令兼容。這簡(jiǎn)少了解碼器202的復(fù)雜性。注意,在這一實(shí)施例中,如果在SRC1寄存器中包含的數(shù)據(jù)不準(zhǔn)備破壞,則在執(zhí)行操作前必須首先把該數(shù)據(jù)復(fù)制到另一個(gè)寄存器中。這一復(fù)制需要一個(gè)另外的指令。這里為說(shuō)明簡(jiǎn)單起見(jiàn),將使用三地址尋址模式(亦即SRC1、SRC2和DEST)。然而應(yīng)當(dāng)記住,在一個(gè)實(shí)施例中,控制信號(hào)可能只包括SRC1和SRC2,以及SRC1(或SRC2)標(biāo)識(shí)目的寄存器。
在控制信號(hào)需要一個(gè)操作時(shí),在步驟303,允許功能單元203對(duì)來(lái)自寄存器文件204的被訪問(wèn)的數(shù)據(jù)執(zhí)行該項(xiàng)操作。一旦功能單元203執(zhí)行完這一操作,在步驟304,則根據(jù)控制信號(hào)207的要求把結(jié)果回存到寄存器文件204中。
數(shù)據(jù)和存儲(chǔ)格式圖4a表示可以用于圖1的計(jì)算機(jī)系統(tǒng)的一些數(shù)據(jù)格式。這些數(shù)據(jù)格式是定點(diǎn)格式。處理器109可以操作這些數(shù)據(jù)格式。多媒體算法常常使用這些數(shù)據(jù)格式。一個(gè)字節(jié)401包含8個(gè)信息位。一個(gè)字402包含16個(gè)信息位,或者兩個(gè)字節(jié)。一個(gè)雙字403包含32個(gè)信息位,或者4個(gè)字節(jié)。于是,處理器109執(zhí)行可能操作這些存儲(chǔ)器數(shù)據(jù)格式中任何一個(gè)的控制信號(hào)。
在下面的說(shuō)明中,對(duì)位、字節(jié)、字、和雙字的子字段加參考標(biāo)號(hào)。例如,字節(jié)001110102(以2為基表示)的位6到位0表示子字段1110102。
圖4b到圖4d表示本發(fā)明的實(shí)施例中使用的寄存器內(nèi)表示。例如無(wú)符號(hào)字節(jié)寄存器內(nèi)表示410可以表示存儲(chǔ)在整數(shù)寄存器組201中的一個(gè)寄存器中的數(shù)據(jù)。在一個(gè)實(shí)施例中,整數(shù)寄存器組201中的一個(gè)寄存器為64位長(zhǎng)。在另一個(gè)實(shí)施例中,整數(shù)寄存器組201中的一個(gè)寄存器為32位長(zhǎng)。為說(shuō)明簡(jiǎn)單起見(jiàn),下面敘述64位的整數(shù)寄存器,然而也可以使用32位的整數(shù)寄存器。
無(wú)符號(hào)字節(jié)的寄存器內(nèi)表示410示出處理器109在整數(shù)寄存器組201中存儲(chǔ)一個(gè)字節(jié)401,在該寄存器中的頭8位,即位7到位0用于該數(shù)據(jù)字節(jié)401。這些位表示為。為適當(dāng)?shù)乇硎具@一字節(jié),其余的56位必須為0。對(duì)于一個(gè)有符號(hào)字節(jié)的寄存器內(nèi)表示411,整數(shù)寄存器組201在頭7位,即位6到位0存儲(chǔ)該數(shù)據(jù),為數(shù)據(jù)部分,第7位表示符號(hào)位,圖中表示為{S}。其余的位63到位8為該字節(jié)的符號(hào)的延續(xù)。
無(wú)符號(hào)字的寄存器內(nèi)表示412存儲(chǔ)在整數(shù)寄存器組201中的一個(gè)寄存器中。位15到位0包含一個(gè)無(wú)符號(hào)字402。這些位表示為{w}。為適當(dāng)?shù)乇硎驹撟郑溆嗟奈?3到位16必須為0。帶符號(hào)的字402存儲(chǔ)在位14到位0,如帶符號(hào)字的寄存器內(nèi)表示413所示。其余的位64到位15是符號(hào)字段。
雙字403可以作為無(wú)符號(hào)雙字的寄存器內(nèi)表示414存儲(chǔ),或者作為帶符號(hào)雙字的寄存器內(nèi)表示415存儲(chǔ)。無(wú)符號(hào)雙字的寄存器內(nèi)表示414的位31到位0為數(shù)據(jù)。這些位表示為xv3r9jzsqg。為適當(dāng)表示該無(wú)符號(hào)雙字,其余的位63到位32必須為0。整數(shù)寄存器組201在其位30到位0存儲(chǔ)一個(gè)帶符號(hào)雙字的寄存器內(nèi)表示415,其余的位63到位31是符號(hào)字段。
如上面圖4b到圖4d所示,一些數(shù)據(jù)類(lèi)型在64位寬的寄存器中的存儲(chǔ)是一種低效的存儲(chǔ)方法。例如,為存儲(chǔ)一個(gè)無(wú)符號(hào)字節(jié)的寄存器內(nèi)表示410,位63到位8必須為0,而只有位7到位0可能包含非0位。因此,在一個(gè)64位寄存器中存儲(chǔ)一個(gè)字節(jié)的處理器只使用寄存器容量的12.5%。相似地,由功能單元203執(zhí)行的操作只有前幾位是重要的。
圖5a表示壓縮數(shù)據(jù)的數(shù)據(jù)格式。每一壓縮數(shù)據(jù)包括多于一個(gè)獨(dú)立的數(shù)據(jù)元素。圖中說(shuō)明3種壓縮數(shù)據(jù)格式壓縮字節(jié)501,壓縮字502和壓縮雙字503。在本發(fā)明的一個(gè)實(shí)施例中,壓縮字節(jié)為64位長(zhǎng),包含8個(gè)數(shù)據(jù)元素,每一個(gè)數(shù)據(jù)元素為一字節(jié)長(zhǎng)。一般來(lái)說(shuō),一個(gè)數(shù)據(jù)元素是一個(gè)單個(gè)的數(shù)據(jù),它與具有同樣長(zhǎng)度的其它數(shù)據(jù)元素存儲(chǔ)在一個(gè)單一寄存器中(或存儲(chǔ)單元)。在本發(fā)明的一個(gè)實(shí)施例中,存儲(chǔ)在一個(gè)寄存器中的數(shù)據(jù)元素的數(shù)目等于64除以數(shù)據(jù)元素的位長(zhǎng)。
壓縮字502為64位長(zhǎng),包含4個(gè)字402數(shù)據(jù)元素。每一個(gè)字402數(shù)據(jù)元素包含16個(gè)信息位。
壓縮雙字503為64位長(zhǎng),包含兩個(gè)雙字403數(shù)據(jù)元素。每一個(gè)雙字403數(shù)據(jù)元素包含32個(gè)信息位。
圖5b到圖5d表示寄存器內(nèi)壓縮數(shù)據(jù)存儲(chǔ)表示。無(wú)符號(hào)壓縮字節(jié)的寄存器內(nèi)表示510示出壓縮字節(jié)501在寄存器組R0212a到寄存器組Rn212af中的一個(gè)寄存器中的存儲(chǔ)方式。每個(gè)字節(jié)數(shù)據(jù)元素的信息對(duì)于字節(jié)0存儲(chǔ)在位7到位0,對(duì)于字節(jié)1存儲(chǔ)在位15到位8,對(duì)于字節(jié)2存儲(chǔ)在位23到位16,對(duì)于字節(jié)3存儲(chǔ)在位31到位24,對(duì)于字節(jié)4存儲(chǔ)在位39到位32,對(duì)于字節(jié)5存儲(chǔ)在位47到位40,對(duì)于字節(jié)6存儲(chǔ)在位55到位48,對(duì)于字節(jié)7存儲(chǔ)在位63到位56。因此寄存器中所有可用的位都被使用。這種存儲(chǔ)安排增加了處理器的存儲(chǔ)效率。另外,通過(guò)訪問(wèn)8個(gè)數(shù)據(jù)元素,現(xiàn)在可以同時(shí)對(duì)8個(gè)數(shù)據(jù)元素執(zhí)行操作。帶符號(hào)壓縮字節(jié)的寄存器內(nèi)表示511類(lèi)似地存儲(chǔ)在寄存器組209中的一個(gè)寄存器中。注意,每一字節(jié)數(shù)據(jù)元素只有第8位是必須的符號(hào)位,其它位可以用于或者可以不用于指示符號(hào)。
無(wú)符號(hào)壓縮字的寄存器內(nèi)表示512示出字3到字0是怎樣存儲(chǔ)在寄存器組209中的一個(gè)寄存器中的。位15到位0包含對(duì)于字0的數(shù)據(jù)元素信息,位31到位16包含對(duì)于字1的數(shù)據(jù)元素信息,位47到位32包含對(duì)于字2的數(shù)據(jù)元素信息,而位63到位48包含對(duì)于字3的數(shù)據(jù)元素信息。帶符號(hào)壓縮字的寄存器內(nèi)表示513類(lèi)似于無(wú)符號(hào)壓縮字的寄存器內(nèi)表示512。注意,每一字?jǐn)?shù)據(jù)元素只有第16位包含必要的符號(hào)指示符。
無(wú)符號(hào)壓縮雙字的寄存器內(nèi)表示514表示寄存器組209怎樣存儲(chǔ)兩個(gè)雙字?jǐn)?shù)據(jù)元素。雙字0存儲(chǔ)在寄存器的位31到位0。雙字1存儲(chǔ)在寄存器的位63到位32。帶符號(hào)壓縮雙字的寄存器內(nèi)表示515類(lèi)似于無(wú)符號(hào)壓縮雙字的寄存器內(nèi)表示514。注意,必要的符號(hào)位是該雙字?jǐn)?shù)據(jù)元素的第32位。
如前所述,寄存器組209既可以用于壓縮數(shù)據(jù),也可以用于整數(shù)數(shù)據(jù)。在本發(fā)明的這一實(shí)施例中,可以要求單個(gè)程序處理器109跟蹤一個(gè)被尋址的寄存器,例如R1212a,是否正在存儲(chǔ)壓縮數(shù)據(jù)或者簡(jiǎn)單整數(shù)/定點(diǎn)數(shù)據(jù)。在另一可選實(shí)施例中,處理器109可以跟蹤存儲(chǔ)在寄存器組209中的單個(gè)寄存器中的數(shù)據(jù)類(lèi)型。因此,如果例如試圖對(duì)簡(jiǎn)單/定點(diǎn)整數(shù)數(shù)據(jù)施行一個(gè)壓縮的加法運(yùn)算的話,這一可選實(shí)施例可能產(chǎn)生錯(cuò)誤。
控制信號(hào)格式下面說(shuō)明處理器109所用操作壓縮數(shù)據(jù)的控制信號(hào)格式的一個(gè)實(shí)施例。在本發(fā)明的一個(gè)實(shí)施例中,控制信號(hào)用32位表示。解碼器202可以從總線101接收控制信號(hào)207。在另一個(gè)實(shí)施例中,解碼器202也可以從高速緩沖存儲(chǔ)器206接收這樣的控制信號(hào)。
圖6a表示對(duì)壓縮數(shù)據(jù)進(jìn)行操作的控制信號(hào)的一般格式。操作字段OP601,即位31到位26,提供關(guān)于由處理器109要執(zhí)行的操作的信息;例如壓縮加,壓縮減等。SRC1602,即位25到位20,提供寄存器組209中的一個(gè)寄存器的源寄存器地址。該源寄存器包含在控制信號(hào)執(zhí)行中要用的第一壓縮數(shù)據(jù),Source1。相似地,SRC2 603,即位19到位14,包含寄存器組209中的一個(gè)寄存器的地址。這一第二源寄存器包含執(zhí)行操作期間要用到的壓縮數(shù)據(jù),Source2。DEST605,即位5到位0包含寄存器組209中的一個(gè)寄存器的地址。該目的寄存器將存儲(chǔ)壓縮數(shù)據(jù)操作的結(jié)果壓縮數(shù)據(jù)Result。
控制位SZ610,即位12和位13,指示在第一和第二壓縮數(shù)據(jù)源寄存器中的數(shù)據(jù)元素的長(zhǎng)度。如果SZ610等于012,則壓縮數(shù)據(jù)作為壓縮字節(jié)501格式化。如果SZ610等于102,則壓縮數(shù)據(jù)作為壓縮字502格式化。SZ610等于002或112預(yù)留,然而,在另一個(gè)實(shí)施例中,其中的一個(gè)可以用來(lái)指示壓縮雙字503。
控制位T611,即位11,指示該操作是否以飽和方式執(zhí)行。如果T611等于1,則執(zhí)行飽和操作。如果T611等于0,則執(zhí)行非飽和操作。后面說(shuō)明飽和操作。
控制位S612,即位10,指示使用帶符號(hào)操作。如果S612等于1,則執(zhí)行帶符號(hào)操作;如果S612等于0,則執(zhí)行無(wú)符號(hào)操作。
圖6b表示操作壓縮數(shù)據(jù)的控制信號(hào)的第二種一般格式。該格式相應(yīng)于在“奔騰處理器系列用戶(hù)手冊(cè)”中敘述的一般整數(shù)操作碼格式,該手冊(cè)由INTEL公司文獻(xiàn)銷(xiāo)售部出版,地址為P.O.Box 7641,Mt.prospect,IL,60056-7641。注意,OP601,SZ610,T611,和S612都結(jié)合在一個(gè)大字段中。對(duì)于一些控制信號(hào),位3到位5是SRC1 602。在一個(gè)實(shí)施例中,其中有一個(gè)SRC1 602地址,則位3到位5也相應(yīng)于DEST605。在一個(gè)可選的實(shí)施例中,其中有一個(gè)SRC2 603地址,則位0到位2也相應(yīng)于DEST605。對(duì)于其它的控制信號(hào),例如壓縮移位立即操作,位3到位5表示操作碼場(chǎng)的擴(kuò)展。在一個(gè)實(shí)施例中,這種擴(kuò)展允許程序員把一個(gè)立即數(shù)與控制信號(hào)結(jié)合,例如一個(gè)移位計(jì)數(shù)值。在一個(gè)實(shí)施例中,立即數(shù)跟著控制信號(hào)。這在“奔騰處理器系列用戶(hù)手冊(cè)”一書(shū)的附錄F,從F-1到F-3頁(yè)有詳細(xì)介紹。位0到位2表示SRC2603。這種一般格式允許寄存器到寄存器,存儲(chǔ)器到寄存器,由存儲(chǔ)器對(duì)寄存器,由寄存器對(duì)寄存器,由立即數(shù)對(duì)寄存器,由寄存器到存儲(chǔ)器尋址。在一個(gè)實(shí)施例中,這種一般格式也可以支持整數(shù)寄存器到寄存器和寄存器到整數(shù)寄存器尋址。
飽和/非飽和的說(shuō)明如前所述,T611指示操作是否可選為飽和。在允許飽和的場(chǎng)合,當(dāng)一個(gè)操作的結(jié)果溢出或下溢數(shù)據(jù)的范圍時(shí),其結(jié)果被箝位。箝位指的是如果結(jié)果超過(guò)該范圍的最大或最小值時(shí)把結(jié)果設(shè)定在最大或最小值。在下溢的場(chǎng)合,飽和把結(jié)果箝位在該范圍的最小值,而在溢出的場(chǎng)合,飽和把結(jié)果箝位在最大值。對(duì)于每一種數(shù)據(jù)格式允許的范圍示于表1。
表1如上所述,T611指示是否正在執(zhí)行飽和操作。因此,使用無(wú)符號(hào)字節(jié)數(shù)據(jù)格式,如果一個(gè)運(yùn)算結(jié)果=258并且允許飽和,則在該結(jié)果被存儲(chǔ)在該操作的目的寄存器之前被箝位在255。類(lèi)似地,如果運(yùn)算的結(jié)果=-32999且處理器109使用帶符號(hào)字?jǐn)?shù)據(jù)格式同時(shí)允許飽和,則運(yùn)算結(jié)果在被存儲(chǔ)在該運(yùn)算的目的寄存器之前被箝位在-32768。
數(shù)據(jù)處理操作在本發(fā)明的一個(gè)實(shí)施例中,多媒體應(yīng)用的性能不僅通過(guò)支持標(biāo)準(zhǔn)的CISC指令集(未壓縮數(shù)據(jù)操作),而且通過(guò)支持對(duì)壓縮數(shù)據(jù)的操作而得以改善。這樣的壓縮數(shù)據(jù)操作可能包括加法、減法、乘法、比較、移位、與和異或。然而,為充分使用這些操作,已經(jīng)確定,應(yīng)該包括數(shù)據(jù)處理操作。這樣的數(shù)據(jù)處理操作可能包括移動(dòng)、壓縮和拆開(kāi)。移位、壓縮和拆開(kāi)由于產(chǎn)生出允許程序員容易使用的格式的壓縮數(shù)據(jù)而方便了其它操作的執(zhí)行。
對(duì)于其它壓縮操作的進(jìn)一步的背景,參見(jiàn)流水號(hào)為—,于—申請(qǐng)的“具有比較操作的微處理器”,流水號(hào)為—于—申請(qǐng)的“具有移位操作的新型處理器”,流水號(hào)為08/176123,于1993年12月30日申請(qǐng)的“處理器中使用壓縮數(shù)據(jù)的方法和裝置”,流水號(hào)為08/175772,于1993年12月30日申請(qǐng)的“在處理器中使用新型操作的方法和裝置”,所有這些申請(qǐng)都轉(zhuǎn)讓給本發(fā)明的受讓人。
移動(dòng)操作移動(dòng)操作把數(shù)據(jù)傳輸給寄存器209或從寄存器209傳輸出數(shù)據(jù)。在一個(gè)實(shí)施例中,SRC2 603是包含源數(shù)據(jù)的地址,而DEST605是數(shù)據(jù)要傳輸?shù)降牡刂贰T谠搶?shí)施例中,不用SRC1 602。在另一個(gè)實(shí)施例中,SRC1 602就是DEST605。
為解釋移動(dòng)操作,要區(qū)分寄存器和存儲(chǔ)單元這兩種情況。寄存器在寄存器文件204中尋找,而存儲(chǔ)器可以是高速緩沖存儲(chǔ)器206、主存儲(chǔ)器104、ROM106、數(shù)據(jù)存儲(chǔ)設(shè)備107。
移動(dòng)操作可以從存儲(chǔ)器到寄存器組209、從寄存器組209到存儲(chǔ)器、和從寄存器組209中的一個(gè)寄存器到寄存器組209中的另一個(gè)寄存器移動(dòng)數(shù)據(jù)。在一個(gè)實(shí)施例中,壓縮數(shù)據(jù)存儲(chǔ)在不同于存儲(chǔ)整數(shù)數(shù)據(jù)的寄存器中。在該實(shí)施例中,移動(dòng)操作可以把數(shù)據(jù)從整數(shù)寄存器組201移動(dòng)到寄存器組209中。例如,在處理器109中,如果壓縮數(shù)據(jù)存儲(chǔ)在寄存器組209中而整數(shù)數(shù)據(jù)存儲(chǔ)在整數(shù)寄存器組201中,則可以使用移動(dòng)指令從整數(shù)寄存器組201移動(dòng)數(shù)據(jù)到寄存器組209,反之亦然。
在一個(gè)實(shí)施例中,當(dāng)為移動(dòng)指定一個(gè)存儲(chǔ)器地址時(shí),在存儲(chǔ)單元(指示最低有效字節(jié)的存儲(chǔ)器單元)中的數(shù)據(jù)的8個(gè)字節(jié)加載到寄存器組209中的一個(gè)寄存器或從該寄存器存儲(chǔ)數(shù)據(jù)的8個(gè)字節(jié)到該存儲(chǔ)單元。當(dāng)指定寄存器組209中的一個(gè)寄存器時(shí),該寄存器中的內(nèi)容被移動(dòng)到寄存器組209中的第二寄存器或從寄存器組209中的第二寄存器加載內(nèi)容到該寄存器。如果整數(shù)寄存器201為64位長(zhǎng),且指定一個(gè)整數(shù)寄存器,則在該整數(shù)寄存器中的數(shù)據(jù)的8個(gè)字節(jié)加載到寄存器209中的一個(gè)寄存器中或從后者存儲(chǔ)在該整數(shù)寄存器中。
在一個(gè)實(shí)施例中,整數(shù)用32位表示。當(dāng)從寄存器組209到整數(shù)寄存器組201執(zhí)行移動(dòng)操作時(shí),則只有低32位壓縮數(shù)據(jù)移動(dòng)到指定的整數(shù)寄存器。在一個(gè)實(shí)施例中,高階32位被置0。相似地,當(dāng)執(zhí)行從整數(shù)寄存器組201到寄存器組209的移動(dòng)時(shí),只加載寄存器組209中的一個(gè)寄存器的低32位。在一個(gè)實(shí)施例中,處理器109支持在寄存器組209的一個(gè)寄存器到存儲(chǔ)器之間的32位移動(dòng)操作。在另一個(gè)實(shí)施例中,只有32位的移動(dòng)操作是就壓縮數(shù)據(jù)的高階32位進(jìn)行的。
壓縮操作在本發(fā)明的一個(gè)實(shí)施例中,SRC1 602寄存器包含數(shù)據(jù)(Source1),SRC2 603寄存器包含數(shù)據(jù)(Source2),而DEST605寄存器包含運(yùn)算的結(jié)果數(shù)據(jù)(Result)。也就是說(shuō),Source1的各部分和Source2的各部分壓縮在一起產(chǎn)生Result。
在一個(gè)實(shí)施例中,壓縮操作通過(guò)把源壓縮字(或雙字)的低位字節(jié)(或字)壓縮到Result的字節(jié)(或字)中而把壓縮字(或雙字)變換為壓縮字節(jié)(或字)。在一個(gè)實(shí)施例中,壓縮操作把四壓縮字變換為壓縮雙字。這一操作可選使用帶符號(hào)數(shù)據(jù)執(zhí)行。另外,該操作可選使用飽和方式執(zhí)行。
圖7表示對(duì)壓縮數(shù)據(jù)執(zhí)行壓縮操作的方法的實(shí)施例。該實(shí)施例可以在圖2中的處理器109中實(shí)現(xiàn)。
在步驟701,解碼器202解碼由處理器109接收的控制信號(hào)207。于是,解碼器202解碼適當(dāng)?shù)膲嚎s操作的操作碼;寄存器組209中的SRC1 602、SRC2 603和DEST605的地址;飽和/非飽和、帶符號(hào)/無(wú)符號(hào)、和在壓縮數(shù)據(jù)中的數(shù)據(jù)元素的長(zhǎng)度。如前所述,SRC1602(或SRC2 603)可以用作DEST605。
在步驟702,通過(guò)內(nèi)部總線205,解碼器202訪問(wèn)寄存器 文件204中的寄存器組209,給出SRC1 602和SRC2 603的地址。寄存器組209供給功能單元203存儲(chǔ)在SRC1 602寄存器中的數(shù)據(jù)(Source1)和存儲(chǔ)在SRC2 603寄存器中的數(shù)據(jù)(Source2)。也就是說(shuō),寄存器組209通過(guò)內(nèi)部總線205給功能單元203傳輸數(shù)據(jù)。
在步驟703,解碼器202允許功能單元203執(zhí)行適當(dāng)?shù)膲嚎s操作。解碼器202通過(guò)內(nèi)部總線205進(jìn)一步傳輸在Source1和Source2中的數(shù)據(jù)元素的飽和和大小。飽和作為選項(xiàng)用以使在結(jié)果數(shù)據(jù)元素中的數(shù)據(jù)取最大值。如果在Source1和Source2中的數(shù)據(jù)元素的值大于或者小于在Result中的數(shù)據(jù)元素所能表示的值的范圍,則相應(yīng)的結(jié)果數(shù)據(jù)元素設(shè)定為其最大或最小值。例如,如果在Source1和Source2中的字?jǐn)?shù)據(jù)元素中的帶符號(hào)值小于0X80(或?qū)﹄p字來(lái)說(shuō)為0X8000),則結(jié)果字節(jié)(或字)數(shù)據(jù)元素箝位在0X80(或?qū)﹄p字來(lái)說(shuō)為0X8000)。如果在Source1和Source2中的字?jǐn)?shù)據(jù)元素中的帶符號(hào)值大于0X7F(或?qū)﹄p字來(lái)說(shuō)為0X7FFF),則結(jié)果字節(jié)(或字)數(shù)據(jù)元素箝位在0X7F(或0X7FFF)。
在步驟710,數(shù)據(jù)元素的大小決定下一步要執(zhí)行哪個(gè)步驟。如果數(shù)據(jù)元素的大小為16位(壓縮字502數(shù)據(jù)),則功能單元203執(zhí)行步驟712。然而,如果壓縮數(shù)據(jù)的數(shù)據(jù)元素的大小為32位(壓縮雙字503數(shù)據(jù)),則功能單元203執(zhí)行步驟714。
假定源數(shù)據(jù)元素的大小為16位,則執(zhí)行步驟712。在步驟712,執(zhí)行下面的內(nèi)容。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為Result31到24。如果設(shè)定了飽和,則測(cè)試每一字的高階位以判定是否要箝位Result數(shù)據(jù)元素。
假定源數(shù)據(jù)元素的大小為32位,則執(zhí)行步驟714。在步驟714,執(zhí)行下面的內(nèi)容。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è)試每一雙字的高階位以判定是否要箝位Result數(shù)據(jù)元素。
在一個(gè)實(shí)施例中,步驟712的壓縮操作同時(shí)執(zhí)行。然而,在另一個(gè)實(shí)施例中,這一壓縮操作順序執(zhí)行。在再一個(gè)實(shí)施例中,一部分壓縮操作同時(shí)執(zhí)行,而一部分順序執(zhí)行。這一討論也適用于步驟714的壓縮操作。
在步驟720,Result存儲(chǔ)在DEST605寄存器中。
表2表示非飽和無(wú)符號(hào)字壓縮操作的寄存器內(nèi)表示。第一行的位為Source1的壓縮數(shù)據(jù)表示。第二行的位為Source2的數(shù)據(jù)表示。第三行的位為Result的壓縮數(shù)據(jù)表示。每一數(shù)據(jù)元素位下面的數(shù)字是該數(shù)據(jù)元素的號(hào)碼。例如,Source1數(shù)據(jù)元素3是10000002。
表2表3表示飽和帶符號(hào)雙字壓縮操作的寄存器內(nèi)表示。
表3
壓縮電路在本發(fā)明的一個(gè)實(shí)施例中,為有效地執(zhí)行壓縮操作,使用并行方法。圖8a和圖8b表示能夠?qū)嚎s數(shù)據(jù)執(zhí)行壓縮操作的一個(gè)電路的實(shí)施例。該電路可選執(zhí)行飽和壓縮操作。
圖8a和圖8b的電路包括操作控制電路800,結(jié)果寄存器852,結(jié)果寄存器853,8個(gè)16位到8位的飽和測(cè)試電路,和4個(gè)32位到16位的飽和測(cè)試電路。
操作控制電路800從解碼器202接收信息以允許壓縮操作。操作控制電路800使用飽和值允許對(duì)每一飽和測(cè)試電路進(jìn)行飽和測(cè)試。如果源壓縮數(shù)據(jù)的大小為字壓縮數(shù)據(jù)503,則輸出許可信號(hào)831由操作控制電路800置位。這就允許輸出寄存器852輸出。如果源壓縮數(shù)據(jù)的大小是雙字壓縮數(shù)據(jù)504,則輸出許可信號(hào)832由操作控制電路800置位。這就允許輸出寄存器853輸出。
每一飽和測(cè)試電路可以選擇測(cè)試飽和。如果飽和測(cè)試被禁止,則每一飽和測(cè)試電路僅僅把低階位傳送給一個(gè)結(jié)果寄存器的相應(yīng)位置。如果飽和測(cè)試被許可,則每一飽和測(cè)試電路測(cè)試高階位以判定是否應(yīng)該對(duì)結(jié)果箝位。
飽和測(cè)試810到飽和測(cè)試817有16位輸入和8位輸出。8位輸出是輸入的低8位,或可選為一個(gè)箝位值(0X80,0X7F,或0XFF)。飽和測(cè)試810接收Source1位15到0而為結(jié)果寄存器852輸出位7到0。飽和測(cè)試811接收Source1位31到16而為結(jié)果寄存器852輸出位15到8。飽和測(cè)試812接收Source1位47到32而為結(jié)果寄存器852輸出位23到16。飽和測(cè)試813接收Source1位63到48而為結(jié)果寄存器852輸出位31到24。飽和測(cè)試814接收Source2位15到0而為結(jié)果寄存器852輸出位39到32。飽和測(cè)試815接收Source2位31到16而為結(jié)果寄存器852輸出位47到40。飽和測(cè)試816接收Source2位47到32而為結(jié)果寄存器852輸出位55到48。飽和測(cè)試817接收Source2位63到48而為結(jié)果寄存器852輸出位63到56。
飽和測(cè)試820到823有32位輸入和16位輸出。16位輸出是輸入的低16位,或可選為一個(gè)箝位值(0X8000,0X7FFF,或0XFFFF)。飽和測(cè)試820接收Source1位31到0而為結(jié)果寄存器853輸出位15到0。飽和測(cè)試821接收Source1位63到32而為結(jié)果寄存器853輸出位31到16。飽和測(cè)試822接收Source2位31到0而為結(jié)果寄存器853輸出位47到32。飽和測(cè)試823接收Source2位63到32而為結(jié)果寄存器853輸出位63到48。
例如在表4中,執(zhí)行無(wú)符號(hào)不飽和字壓縮操作。操作控制電路800許可結(jié)果寄存器852輸出結(jié)果[63:0]860。
表4然而,如果執(zhí)行無(wú)符號(hào)不飽和雙字壓縮操作,則操作控制電路800許可結(jié)果寄存器853輸出結(jié)果[63:0]860。表5表示這一結(jié)果。
表5拆開(kāi)操作在一個(gè)實(shí)施例中,拆開(kāi)操作交錯(cuò)放置兩個(gè)源壓縮數(shù)據(jù)的低階壓縮字節(jié)、字或者雙字以產(chǎn)生結(jié)果壓縮字節(jié)、字或者雙字。
圖9表示對(duì)壓縮數(shù)據(jù)執(zhí)行拆開(kāi)操作的方法的實(shí)施例。該實(shí)施例可以在圖2中的處理器109中實(shí)現(xiàn)。
首先執(zhí)行步驟701和702。在步驟903,解碼器202許可功能單元203執(zhí)行拆開(kāi)操作。解碼器202通過(guò)內(nèi)部總線205傳輸Source1和Source2中的數(shù)據(jù)元素的大小。
在步驟910,數(shù)據(jù)元素的大小決定下一步執(zhí)行哪一步驟。如果數(shù)據(jù)元素的大小為8位(壓縮字節(jié)數(shù)據(jù)501),則功能單元203執(zhí)行步驟712。然而,如果壓縮數(shù)據(jù)中的數(shù)據(jù)元素的大小為16位(壓縮字?jǐn)?shù)據(jù)502),則功能單元203執(zhí)行步驟714。然而,如果壓縮數(shù)據(jù)中的數(shù)據(jù)元素的大小為32位(壓縮雙字?jǐn)?shù)據(jù)503),則功能單元203執(zhí)行步驟716。
假定源數(shù)據(jù)元素的大小為8位,則執(zhí)行步驟712。在步驟712,執(zhí)行下面的內(nèi)容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ù)元素的大小為16位,則執(zhí)行步驟714。在步驟714,執(zhí)行下面的內(nèi)容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ù)元素的大小為32位,則執(zhí)行步驟716。在步驟716,執(zhí)行下面的內(nèi)容Source1位31到0為Result位31到0。Source2位31到0為Result位63到32。
在一個(gè)實(shí)施例中,步驟712的拆開(kāi)操作同時(shí)執(zhí)行。然而,在另一個(gè)實(shí)施例中,拆開(kāi)操作順序執(zhí)行。在再一個(gè)實(shí)施例中,拆開(kāi)操作的一部分同時(shí)執(zhí)行,另一部分順序執(zhí)行。這一討論也適用于在步驟714和步驟716的拆開(kāi)操作。
在步驟720,Result存儲(chǔ)在DEST605寄存器中。
表6示出字節(jié)拆開(kāi)操作的寄存器內(nèi)表示。
表6表7示出字拆開(kāi)操作的寄存器內(nèi)表示。
表7表8示出雙字拆開(kāi)操作的寄存器內(nèi)表示。
表8
拆開(kāi)電路在本發(fā)明的一個(gè)實(shí)施例中,為有效地執(zhí)行拆開(kāi)操作,使用并行方法。圖10表示能夠?qū)嚎s數(shù)據(jù)執(zhí)行拆開(kāi)操作的一個(gè)電路的實(shí)施例。
圖10的電路包括操作控制電路800,結(jié)果寄存器1052,結(jié)果寄存器1053和結(jié)果寄存器1054。
操作控制電路800從解碼器202接收信息而許可拆開(kāi)操作。如果源壓縮數(shù)據(jù)的大小是字節(jié)壓縮數(shù)據(jù)502,則由操作控制電路800置位輸出許可信號(hào)1032。這就允許結(jié)果寄存器1052輸出。如果源壓縮數(shù)據(jù)的大小為字壓縮數(shù)據(jù)503,則輸出許可信號(hào)1033由操作控制電路800置位。這就允許輸出寄存器1053輸出。如果源壓縮數(shù)據(jù)的大小是雙字壓縮數(shù)據(jù)504,則輸出許可信號(hào)1034由操作控制電路800置位。這就允許輸出結(jié)果寄存器1054輸出。
結(jié)果寄存器1052有下列輸入。Source1位7到0為結(jié)果寄存器1052的位7到0。Source2位7到0為結(jié)果寄存器1052的位15到8。Source1位15到8為結(jié)果寄存器1052的位23到16。Source2位15到8為結(jié)果寄存器1052的位31到24。
Source1位23到16為結(jié)果寄存器1052的位39到32。Source2位23到16為結(jié)果寄存器1052的位47到40。Source1位31到24為結(jié)果寄存器1052的位55到48。Source2位31到24為結(jié)果寄存器1052的位63到56。
結(jié)果寄存器1053有下列輸入。Source1位15到0為結(jié)果寄存器1053的位15到0。Source2位15到0為結(jié)果寄存器1053的位31到16。Source1位31到16為結(jié)果寄存器1053的位47到32。Source2位31到16為結(jié)果寄存器1053的位63到48。
結(jié)果寄存器1054有下列輸入。Source1位31到0為結(jié)果寄存器1054的位31到0。Source2位31到0為結(jié)果寄存器1054的位63到32。
例如,在表9中,執(zhí)行一個(gè)字拆開(kāi)操作。操作控制電路800將允許結(jié)果寄存器1053輸出結(jié)果[63:0]860。
表9
然而,如果執(zhí)行雙字拆開(kāi)操作,則操作控制電路800將允許結(jié)果寄存器1054輸出結(jié)果[63:0]860。表10表示這一結(jié)果。
表10因此,移動(dòng)、壓縮和拆開(kāi)操作可以操作多個(gè)數(shù)據(jù)元素。在現(xiàn)有技術(shù)的處理器中,為執(zhí)行這些類(lèi)型的操作,需要多個(gè)單獨(dú)的操作來(lái)執(zhí)行單一壓縮數(shù)據(jù)移動(dòng)、壓縮或者拆開(kāi)操作。在一個(gè)實(shí)施例中,用于壓縮數(shù)據(jù)操作的數(shù)據(jù)線都帶有相關(guān)的數(shù)據(jù)。它將提高計(jì)算機(jī)系統(tǒng)的性能。
權(quán)利要求
1.一種方法,包括接收第一指令,所述第一指令包括一個(gè)操作碼字段,一個(gè)第一字段表示具有第一組多個(gè)數(shù)據(jù)元的第一操作數(shù),所述第一數(shù)據(jù)元包括第一操作數(shù)第一數(shù)據(jù)元和第一操作數(shù)第二數(shù)據(jù)元,一個(gè)第二字段表示具有第二組多個(gè)數(shù)據(jù)元的第二操作數(shù),所述第二數(shù)據(jù)元包括第二操作數(shù)第一數(shù)據(jù)元和第二操作數(shù)第二數(shù)據(jù)元,每個(gè)第一操作數(shù)第一數(shù)據(jù)元、第一操作數(shù)第二數(shù)據(jù)元、第二操作數(shù)第一數(shù)據(jù)元和第二操作數(shù)第二數(shù)據(jù)元的長(zhǎng)度是N/2比特;響應(yīng)于所述第一指令存儲(chǔ)長(zhǎng)度為N比特的第一結(jié)果數(shù)據(jù)元,所述第一結(jié)果數(shù)據(jù)元包括第一操作數(shù)第一數(shù)據(jù)元和第二操作數(shù)第一數(shù)據(jù)元。
2.根據(jù)權(quán)利要求1的方法,其中所述第一指令是拆開(kāi)操作指令,其中所述第一結(jié)果數(shù)據(jù)元是第一拆開(kāi)數(shù)據(jù)元。
3.根據(jù)權(quán)利要求2的方法,其中還包括步驟用所述第一參考數(shù)據(jù)元覆蓋所述第一操作數(shù)的第一組多個(gè)數(shù)據(jù)元。
4.根據(jù)權(quán)利要求2的方法,其中第一操作數(shù)第一數(shù)據(jù)元是第一操作數(shù)的低階數(shù)據(jù)元,第二操作數(shù)第一數(shù)據(jù)元是第二操作數(shù)的低階數(shù)據(jù)元,所述拆開(kāi)指令的操作碼字段包含一組操作碼之一以從所述第一和第二組多個(gè)數(shù)據(jù)元識(shí)別拆開(kāi)操作交叉低階字節(jié)元、字元或雙字元。
5.根據(jù)權(quán)利要求4的方法,其中存儲(chǔ)第一拆開(kāi)數(shù)據(jù)元的步驟包括存儲(chǔ)第一操作數(shù)第一數(shù)據(jù)元和將第二操作數(shù)第二數(shù)據(jù)元存儲(chǔ)在與第一操作數(shù)第一數(shù)據(jù)元相鄰的位置。
6.根據(jù)權(quán)利要求2的方法,其中第一操作數(shù)第一數(shù)據(jù)元是第一操作數(shù)的高階數(shù)據(jù)元,第二操作數(shù)第一數(shù)據(jù)元是第二操作數(shù)的高階數(shù)據(jù)元,所述拆開(kāi)指令的操作碼字段包含一組操作碼之一以從所述第一和第二組多個(gè)數(shù)據(jù)元識(shí)別拆開(kāi)操作交叉高階字節(jié)元、字元或雙字元。
7.根據(jù)權(quán)利要求2的方法,其中還包括響應(yīng)于所述拆開(kāi)指令存儲(chǔ)長(zhǎng)度為N比特的第二拆開(kāi)數(shù)據(jù)元,所述第二拆開(kāi)數(shù)據(jù)元包括第一操作數(shù)第二數(shù)據(jù)元和第二操作數(shù)第二數(shù)據(jù)元。
8.根據(jù)權(quán)利要求7的方法,其中存儲(chǔ)第一拆開(kāi)數(shù)據(jù)元和第二拆開(kāi)數(shù)據(jù)元的步驟包括將第一操作數(shù)第一數(shù)據(jù)元放在第一存儲(chǔ)位置;將第二操作數(shù)第一數(shù)據(jù)元放在第二存儲(chǔ)位置,所述第二存儲(chǔ)位置與所述第一存儲(chǔ)位置相鄰;將第一操作數(shù)第二數(shù)據(jù)元放在第三存儲(chǔ)位置,所述第三存儲(chǔ)位置與所述第二存儲(chǔ)位置相鄰;將第二操作數(shù)第二數(shù)據(jù)元放在第四存儲(chǔ)位置,所述第四存儲(chǔ)位置與所述第三存儲(chǔ)位置相鄰。
9.根據(jù)權(quán)利要求8的方法,其中所述第一存儲(chǔ)位置、第二存儲(chǔ)位置、第三存儲(chǔ)位置、第四存儲(chǔ)位置是由所述拆開(kāi)指令標(biāo)明的目標(biāo)操作數(shù)的一部分。
10.根據(jù)權(quán)利要求9的方法,其中所述目標(biāo)操作數(shù)是由所述拆開(kāi)指令標(biāo)明的第一字段。
11.根據(jù)權(quán)利要求10的方法,其中還包括用所述目標(biāo)操作數(shù)覆蓋所述第一操作數(shù)的至少一部分。
12.根據(jù)權(quán)利要求11的方法,其中所述第一字段由拆開(kāi)指令的第3-第5比特構(gòu)成。
13.根據(jù)權(quán)利要求9的方法,其中所述第二字段由拆開(kāi)指令的第0-第2比特的三個(gè)字節(jié)構(gòu)成。
14.根據(jù)權(quán)利要求13的方法,其中所述目標(biāo)操作數(shù)由拆開(kāi)指令的第二字段表示。
15.根據(jù)權(quán)利要求14的方法,其中還包括用所述目標(biāo)操作數(shù)覆蓋所述第二操作數(shù)的至少一部分。
16.一種裝置,包括解碼第一指令的解碼器,所述第一指令包括一個(gè)操作碼字段,一個(gè)第一字段表示具有第一組多個(gè)數(shù)據(jù)元的第一操作數(shù),所述第一數(shù)據(jù)元包括第一操作數(shù)第一數(shù)據(jù)元和第一操作數(shù)第二數(shù)據(jù)元,一個(gè)第二字段表示具有第二組多個(gè)數(shù)據(jù)元的第二操作數(shù),所述第二數(shù)據(jù)元包括第二操作數(shù)第一數(shù)據(jù)元和第二操作數(shù)第二數(shù)據(jù)元,每個(gè)第一操作數(shù)第一數(shù)據(jù)元、第一操作數(shù)第二數(shù)據(jù)元、第二操作數(shù)第一數(shù)據(jù)元和第二操作數(shù)第二數(shù)據(jù)元的長(zhǎng)度是N/2比特;響應(yīng)于所述第一指令存儲(chǔ)長(zhǎng)度為N比特的第一結(jié)果數(shù)據(jù)元的功能單元,所述第一結(jié)果數(shù)據(jù)元包括第一操作數(shù)第一數(shù)據(jù)元和第二操作數(shù)第一數(shù)據(jù)元。
17.根據(jù)權(quán)利要求16的裝置,其中所述第一指令是拆開(kāi)操作指令,其中所述第一結(jié)果數(shù)據(jù)元是第一拆開(kāi)數(shù)據(jù)元。
18.根據(jù)權(quán)利要求17的裝置,其中所述拆開(kāi)指令是一個(gè)包含3個(gè)或者更多個(gè)字節(jié)的整數(shù)操作數(shù),其中第3個(gè)字節(jié)可以是一個(gè)第一3字節(jié)源寄存器地址和一個(gè)第二3字節(jié)源目標(biāo)寄存器地址。
19.根據(jù)權(quán)利要求18的裝置,其中所述第一操作數(shù)對(duì)應(yīng)于所述第一3字節(jié)源寄存器地址。
20.根據(jù)權(quán)利要求18的裝置,其中第一操作數(shù)對(duì)應(yīng)于一個(gè)存儲(chǔ)器中的一個(gè)地址存儲(chǔ)器位置。
21.根據(jù)權(quán)利要求18的裝置,其中所述第二操作數(shù)對(duì)應(yīng)于所述第二3字節(jié)源目標(biāo)寄存器地址,其中所述功能單元用于在對(duì)應(yīng)于第二3字節(jié)源目標(biāo)寄存器地址的目標(biāo)存儲(chǔ)第一拆開(kāi)數(shù)據(jù)元并覆蓋所述第二操作數(shù)。
22.根據(jù)權(quán)利要求21的裝置,其中所述功能單元用于響應(yīng)于所述第一指令,在所述目標(biāo)的第一部分存儲(chǔ)第一操作數(shù)第一數(shù)據(jù)元和在與所述第一部分相鄰的第二部分存儲(chǔ)第二操作數(shù)第一數(shù)據(jù)元,在與所述第二部分相鄰的第三部分存儲(chǔ)第一操作數(shù)第二數(shù)據(jù)元,在與所述第三部分相鄰的第四部分存儲(chǔ)第二操作數(shù)第二數(shù)據(jù)元。
23.根據(jù)權(quán)利要求17的裝置,其中還包括一個(gè)保持拆開(kāi)指令的存儲(chǔ)器,所述拆開(kāi)指令具有包含三個(gè)或者更多個(gè)字節(jié)的整數(shù)操作碼的格式,所述三個(gè)字節(jié)之一允許一個(gè)第一3字節(jié)源寄存器地址和一個(gè)第二3字節(jié)源目標(biāo)寄存器地址;和一個(gè)保持一個(gè)軟件的存儲(chǔ)裝置,所述軟件向所述存儲(chǔ)器提供所述拆開(kāi)指令以供執(zhí)行。
24.根據(jù)權(quán)利要求23的裝置,其中所述解碼器是用于接收和解碼來(lái)自存儲(chǔ)器的拆開(kāi)指令、對(duì)應(yīng)于第一3字節(jié)源寄存器地址的第一操作數(shù)、對(duì)應(yīng)于第二3字節(jié)源目標(biāo)寄存器地址的第二操作數(shù)。
25.根據(jù)權(quán)利要求24的裝置,其中所述功能單元用于存儲(chǔ)在對(duì)應(yīng)于第二3字節(jié)源目標(biāo)寄存器地址的目標(biāo)存儲(chǔ)第一拆開(kāi)數(shù)據(jù)元。
26.一種微處理器,包括保持第一壓縮數(shù)據(jù)的第一源寄存器,所述第一壓縮數(shù)據(jù)具有包含第一壓縮數(shù)據(jù)元和第三壓縮數(shù)據(jù)元的第一組多個(gè)壓縮數(shù)據(jù),每個(gè)第一壓縮數(shù)據(jù)元和第三壓縮數(shù)據(jù)元的長(zhǎng)度是N/2比特;保持第二壓縮數(shù)據(jù)的第二源寄存器,所述第二壓縮數(shù)據(jù)具有包含第二壓縮數(shù)據(jù)元和第四壓縮數(shù)據(jù)元的第二組多個(gè)壓縮數(shù)據(jù),每個(gè)第二壓縮數(shù)據(jù)元和第四壓縮數(shù)據(jù)元的長(zhǎng)度是N/2比特;被耦接的電路,用于從第一源寄存器接收第一壓縮數(shù)據(jù)和從第二源寄存器接收第二壓縮數(shù)據(jù),并響應(yīng)于一個(gè)拆開(kāi)指令提供復(fù)制第一壓縮數(shù)據(jù)元和第二壓縮數(shù)據(jù)元到目標(biāo)寄存器的第一拆開(kāi)數(shù)據(jù)元中和復(fù)制第三數(shù)據(jù)元和第四數(shù)據(jù)元到目標(biāo)寄存器的第二拆開(kāi)數(shù)據(jù)元中來(lái)拆開(kāi)所述第一壓縮數(shù)據(jù)和所述第二壓縮數(shù)據(jù),每個(gè)第一和第二拆開(kāi)數(shù)據(jù)元的長(zhǎng)度是N比特。
27.根據(jù)權(quán)利要求26的微處理器,其中所述第一壓縮數(shù)據(jù)元是第一壓縮數(shù)據(jù)的低階數(shù)據(jù)元,所述第二壓縮數(shù)據(jù)元是第二壓縮數(shù)據(jù)的低階數(shù)據(jù)元,所述拆開(kāi)指令包括一個(gè)操作碼字段以包含一個(gè)至少第一組操作碼之一以識(shí)別從第一和第二組多個(gè)數(shù)據(jù)元中交叉低階數(shù)據(jù)元的拆開(kāi)操作,所述第一組操作碼識(shí)別選自由字節(jié)元、字元和雙字元組成的組的數(shù)據(jù)元。
28.根據(jù)權(quán)利要求27的微處理器,其中所述第一壓縮數(shù)據(jù)元是第一壓縮數(shù)據(jù)的高階數(shù)據(jù)元,所述第二壓縮數(shù)據(jù)元是第二壓縮數(shù)據(jù)的高階數(shù)據(jù)元,所述拆開(kāi)指令包括一個(gè)操作碼字段以包含一個(gè)操作碼以交替地包含一個(gè)第二組操作碼之一以從第一和第二組多個(gè)數(shù)據(jù)元中交叉高階數(shù)據(jù)元的拆開(kāi)操作,所述第二組操作碼識(shí)別選自由字節(jié)元、字元和雙字元組成的組的數(shù)據(jù)元。
29.根據(jù)權(quán)利要求26的微處理器,其中所述目標(biāo)寄存器是第一源寄存器,所述第一源寄存器的一部分被所述第一和第二拆開(kāi)數(shù)據(jù)元覆蓋。
30.根據(jù)權(quán)利要求26的微處理器,其中所述拆開(kāi)指令具有包含三個(gè)或者更多個(gè)字節(jié)的整數(shù)操作碼的格式,所述三個(gè)或者更多個(gè)字節(jié)的第三個(gè)字節(jié)允許用于識(shí)別第一源寄存器的一個(gè)第一3字節(jié)源寄存器地址。
31.根據(jù)權(quán)利要求30的微處理器,其中所述第一3字節(jié)源寄存器地址還識(shí)別目標(biāo)寄存器。
32.一個(gè)包含機(jī)器可讀媒質(zhì)的物體,所述媒質(zhì)包含表示一個(gè)指令的數(shù)據(jù),所述指令在被所述機(jī)器執(zhí)行時(shí)使所述機(jī)器執(zhí)行以下的操作從含有N/2比特元A1和A2的第一M×N比特壓縮數(shù)據(jù)和含有N/2比特元B1和B2的第二M×N比特壓縮數(shù)據(jù)產(chǎn)生第一N比特結(jié)果,包括A1和B1。
33.根據(jù)權(quán)利要求32的物體,其中所述多個(gè)操作包括產(chǎn)生第二N比特結(jié)果,包括A2和B2;和將所述第一和第二N比特結(jié)果存儲(chǔ)在M×N比特的目標(biāo)中作為壓縮數(shù)據(jù)。
34.根據(jù)權(quán)利要求33的物體,其中所述多個(gè)操作還包括從所述指令標(biāo)明結(jié)構(gòu)寄存器訪問(wèn)第一M×N比特?cái)?shù)據(jù)源;用第一和第二N比特結(jié)果覆蓋所述指令識(shí)別的結(jié)構(gòu)寄存器中的第一M×N比特壓縮數(shù)據(jù)源。
35.根據(jù)權(quán)利要求33的物體,其中所述第一M×N壓縮數(shù)據(jù)源還包括另外的N/2比特元A3、A4,所述第二M×N壓縮數(shù)據(jù)源還包括N/2比特元B3、B4;且其中所述操作還包括產(chǎn)生第三N比特結(jié)果,包括A3和B3;產(chǎn)生第四N比特結(jié)果,包括A4和B4;存儲(chǔ)所述第三和第四N比特結(jié)果作為M×N比特目標(biāo)的壓縮數(shù)據(jù)元。
36.一種計(jì)算機(jī)系統(tǒng),適于處理數(shù)字運(yùn)動(dòng)視頻信號(hào),包括一個(gè)存儲(chǔ)器,用于存儲(chǔ)由第一組M個(gè)壓縮N比特?cái)?shù)據(jù)元構(gòu)成的M×N比特的第一M×N比特?cái)?shù)據(jù),和由第二組M個(gè)壓縮N比特?cái)?shù)據(jù)元構(gòu)成的M×N比特的第二M×N比特?cái)?shù)據(jù);一個(gè)與所述存儲(chǔ)器耦接的處理器,用于訪問(wèn)是第一和第二M×N比特?cái)?shù)據(jù),和響應(yīng)于具有第一格式的指令產(chǎn)生第三組M/2個(gè)壓縮的2N比特結(jié)果,所述第一格式可操作以識(shí)別對(duì)應(yīng)于第一M×N比特?cái)?shù)據(jù)的第一源和對(duì)應(yīng)于第二M×N比特?cái)?shù)據(jù)的第二源,對(duì)應(yīng)于來(lái)自對(duì)應(yīng)的第一和第二組M個(gè)N比特?cái)?shù)據(jù)的M/2串聯(lián)的數(shù)據(jù)對(duì)的第三組M/2個(gè)壓縮的2N比特結(jié)果;一個(gè)與所述處理器耦接的總線,用于發(fā)送輸入信號(hào)到處理器和從處理器發(fā)送輸出信號(hào);一個(gè)將所述總線與一個(gè)或者多個(gè)視頻裝置耦接的接口,所述視頻裝置選自由視頻數(shù)字化裝置、視頻采集裝置、網(wǎng)絡(luò)電纜和視頻記錄裝置組成的組中;和一個(gè)與所述總線耦接的光盤(pán)驅(qū)動(dòng)器,用于接收能存儲(chǔ)數(shù)字運(yùn)動(dòng)視頻數(shù)據(jù)的光盤(pán)。
37.一種計(jì)算機(jī)系統(tǒng),適于處理數(shù)字靜態(tài)視頻信號(hào),包括一個(gè)存儲(chǔ)器,用于存儲(chǔ)由第一組M個(gè)壓縮N比特?cái)?shù)據(jù)元構(gòu)成的M×N比特的第一M×N比特?cái)?shù)據(jù),和由第二組M個(gè)壓縮N比特?cái)?shù)據(jù)元構(gòu)成的M×N比特的第二M×N比特?cái)?shù)據(jù);一個(gè)與所述存儲(chǔ)器耦接的處理器,用于訪問(wèn)是第一和第二M×N比特?cái)?shù)據(jù),和響應(yīng)于具有第一格式的指令產(chǎn)生第三組M/2個(gè)壓縮的2N比特結(jié)果,所述第一格式可操作以識(shí)別對(duì)應(yīng)于第一M×N比特?cái)?shù)據(jù)的第一源和對(duì)應(yīng)于第二M×N比特?cái)?shù)據(jù)的第二源,對(duì)應(yīng)于來(lái)自對(duì)應(yīng)的第一和第二組M個(gè)N比特?cái)?shù)據(jù)的M/2串聯(lián)的數(shù)據(jù)對(duì)的第三組M/2個(gè)壓縮的2N比特結(jié)果;一個(gè)與所述處理器耦接的總線,用于發(fā)送輸入信號(hào)到處理器和從處理器發(fā)送輸出信號(hào);一個(gè)將所述總線與一個(gè)或者多個(gè)圖象裝置耦接的接口,所述圖象裝置選自由圖象再現(xiàn)裝置、筆、靜態(tài)圖象采集裝置、硬拷貝裝置和觸摸屏顯示裝置組成的組中;和一個(gè)與所述總線耦接的盤(pán)片驅(qū)動(dòng)器,用于接收可拆卸的盤(pán)片,所述盤(pán)片選自能存儲(chǔ)數(shù)字靜態(tài)圖象數(shù)據(jù)的光盤(pán)和磁盤(pán)組成的組中。
全文摘要
一個(gè)處理器包括用于存儲(chǔ)第一壓縮數(shù)據(jù)的第一寄存器(209),解碼器(202)和功能單元(203)。解碼器有一個(gè)控制信號(hào)輸入(207),用以接收第一控制信號(hào)和第二控制信號(hào)。第一控制信號(hào)用以指示壓縮操作,而第二控制信號(hào)用以指示拆開(kāi)操作。功能單元連接到解碼器(202)和寄存器(209)上。功能單元除執(zhí)行移動(dòng)操作外還使用第一壓縮數(shù)據(jù)執(zhí)行壓縮操作和拆開(kāi)操作。
文檔編號(hào)G06F9/302GK1492315SQ0212616
公開(kāi)日2004年4月28日 申請(qǐng)日期1995年12月1日 優(yōu)先權(quán)日1994年12月2日
發(fā)明者A·皮萊格, A 皮萊格, Y·雅列, 斬 , M·米陶爾, 門(mén)納梅爾, L·M·門(mén)納梅爾, B·艾坦 申請(qǐng)人:英特爾公司