欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

可以對復合操作數(shù)進行壓縮操作的微處理器的制作方法

文檔序號:6583595閱讀:278來源:國知局
專利名稱:可以對復合操作數(shù)進行壓縮操作的微處理器的制作方法
技術(shù)領(lǐng)域
本發(fā)明包括使用單個控制信號處理多個數(shù)據(jù)元素而執(zhí)行操作的一種裝置和方法。本發(fā)明允許對壓縮數(shù)據(jù)類型執(zhí)行移動、壓縮和拆開的操作。
背景技術(shù)
當今,大多數(shù)個人計算機系統(tǒng)的工作機制是使用一個指令產(chǎn)生一個結(jié)果。通過增加指令的執(zhí)行速度和處理器指令的復雜程度以及并行執(zhí)行多個指令來增加處理器性能,這種計算機稱為復雜指令集計算機(CISC)。例如加里福尼亞州Santa Clara的INTEL公司的INTEL80386TM微處理器就屬于CISC類型的處理器。
先前的計算機系統(tǒng)結(jié)構(gòu)經(jīng)過優(yōu)化以利用CISC概念。這樣的系統(tǒng)通常具有32位寬的數(shù)據(jù)總線。然而,針對計算機支持的協(xié)作(CSC-電話會議與混合媒體數(shù)據(jù)操作集成)、2維/3維圖像、圖像處理、視頻壓縮/解壓、識別算法和音頻處理方面的應用增加了對更高性能的需求。但是,執(zhí)行速度和指令復雜性的增加只是一種解決方案。
這些應用的一個共同的特征是它們常常操作大量的數(shù)據(jù),其中只有少數(shù)位是重要的。也就是說,是有關(guān)位用比數(shù)據(jù)總線大小少得多的位表示的數(shù)據(jù)。例如,處理器的許多操作是就8位和16位數(shù)據(jù)執(zhí)行的(例如視頻圖像中的像素彩色分量),但是具有寬得多的數(shù)據(jù)總線和寄存器。因此,具有32位數(shù)據(jù)總線和寄存器并且執(zhí)行這樣一種算法的處理器可能損失多達75%的數(shù)據(jù)處理、運載和存儲能力,因為只有前8位數(shù)據(jù)是重要的。
因此,希望有一個處理器,它通過更加有效地利用表示被操作數(shù)據(jù)需要的位數(shù)和處理器實際數(shù)據(jù)運載和存儲容量之間的差,從而提高其性能。

發(fā)明內(nèi)容
本文說明一種改進了數(shù)據(jù)處理操作的處理器。
一種處理器,它包括存儲第一壓縮數(shù)據(jù)的第一寄存器,一個解碼器和一個功能單元。解碼器有一個控制信號輸入??刂菩盘栞斎胗糜诮邮盏谝豢刂菩盘柡偷诙刂菩盘?。第一控制信號用于指示一個壓縮操作。第二控制信號用于指示一個拆開操作。功能單元連接到解碼器和寄存器。功能單元使用第一壓縮數(shù)據(jù)執(zhí)行壓縮和拆開操作。處理器還支持移動操作。
雖然在說明書和附圖中包含了大量的細節(jié),但是,本發(fā)明由權(quán)利要求的范圍限定。只有在這些權(quán)利要求中提到的限制適用于本發(fā)明。


本發(fā)明用附圖中的、但不限于附圖中的實例說明,相同的參考標號表示相似的元件。
圖1表示使用本發(fā)明的方法和裝置的計算機系統(tǒng)的一個實施例;圖2表示本發(fā)明的處理器的一個實施例;圖3是說明由本發(fā)明的處理器使用的操作寄存器文件中的數(shù)據(jù)的總步驟的流程圖;圖4a說明存儲器數(shù)據(jù)類型;圖4b、圖4c和圖4d說明整數(shù)數(shù)據(jù)的寄存器內(nèi)表示;圖5a表示壓縮數(shù)據(jù)類型;圖5b,圖5c和圖5d說明壓縮數(shù)據(jù)的寄存器內(nèi)表示;圖6a表示在該計算機系統(tǒng)中使用的指示使用壓縮數(shù)據(jù)的控制信號格式;圖6b表示第二控制信號格式,它可以用于該計算機系統(tǒng)指示使用壓縮數(shù)據(jù)或者整數(shù)數(shù)據(jù);圖7表示由處理器在對壓縮數(shù)據(jù)執(zhí)行壓縮操作時所遵循的方法的一個實施例;圖8a表示能夠?qū)嚎s字節(jié)數(shù)據(jù)實現(xiàn)壓縮操作的電路;圖8b表示能夠?qū)嚎s字數(shù)據(jù)實現(xiàn)壓縮操作的電路;圖9表示由處理器在對壓縮數(shù)據(jù)執(zhí)行拆開操作時所遵循的方法的一個實施例;圖10表示能夠?qū)嚎s數(shù)據(jù)實現(xiàn)拆開操作的電路。
具體實施例方式
本文敘述了對多個數(shù)據(jù)元素進行移動、壓縮和拆開操作的處理器。在下面的說明中,敘述了大量的諸如電路等這樣的細節(jié),以便提供對本發(fā)明徹底的了解。在另外的場合,為避免不必要地沖淡對本發(fā)明的理解,對熟知的結(jié)構(gòu)和技術(shù)未作詳細的敘述。
定義為了對理解本發(fā)明的實施例的說明提供基礎(chǔ),提供下面的定義。
位X到位Y定義二進制數(shù)的一個子字段。例如字節(jié)001110102(以2為基表示)的位6到位0表示子字段1110102,二進制數(shù)后面的2表示以2為基。因此,10002等于810,而F16等于1510。
Rx是一個寄存器。寄存器是能夠存儲和提供數(shù)據(jù)的任何設(shè)備。寄存器的另外的功能下面說明。一個寄存器不一定是處理器組件的一部分。
DEST是一個數(shù)據(jù)地址。
SRC1是一個數(shù)據(jù)地址。
SRC2是一個數(shù)據(jù)地址。
Result要存儲在由DEST尋址的寄存器中的數(shù)據(jù)。
Source1存儲在由SRC1尋址的寄存器中的數(shù)據(jù)。
Source2存儲在由SRC2尋址的寄存器中的數(shù)據(jù)。
計算機系統(tǒng)參考圖1,可以實現(xiàn)本發(fā)明的實施例的計算機系統(tǒng)作為計算機系統(tǒng)100表示。計算機系統(tǒng)100包括總線101或者其它傳輸信息的通信硬件和軟件以及與總線101連接的處理信息的處理器109。計算機系統(tǒng)100另外還包括一個隨機存取存儲器(RAM)或者其它動態(tài)存儲設(shè)備(稱為主存儲器104),它連接到總線101上,用于存儲信息和要由處理器109執(zhí)行的指令。主存儲器104也可以用于暫存變量或者其它在處理器109執(zhí)行指令時期的中間信息。計算機系統(tǒng)100還包括連接在總線101上的只讀存儲器(ROM)106,和/或其它靜態(tài)存儲設(shè)備,用于存儲靜態(tài)信息和處理器109要執(zhí)行的指令。數(shù)據(jù)存儲設(shè)備107連接到總線101上用于存儲信息和指令。
另外,數(shù)據(jù)存儲設(shè)備107,例如磁盤或光盤以及它們相應的驅(qū)動器,可以連接到計算機100上。計算機系統(tǒng)100也可以通過總線101連接到一個顯示設(shè)備121上,以便顯示信息給計算機用戶。顯示設(shè)備121可以包括一個幀緩沖器,專用圖形處理設(shè)備,一個陰極射線管(CRT),和/或一個平面面板顯示器。通常一個包括字母數(shù)字和其它鍵的字母數(shù)字輸入設(shè)備122連接到總線101上,用于給處理器109傳輸信息和命令選擇。另一類型的用戶輸入設(shè)備是光標控制設(shè)備123,例如鼠標、軌跡球、光筆、觸摸屏、或者光標指示鍵,用于給處理器109傳輸方向信息和命令選擇以及控制光標在顯示設(shè)備121上的移動。這種輸入設(shè)備通常在兩個軸上有兩個自由度,第一軸(例如x軸)和第二軸(例如y軸),它們允許光標控制設(shè)備在一個平面內(nèi)指定位置。然而本發(fā)明不應該局限于只有兩個自由度的輸入設(shè)備。
另一個可以連接到總線101上的設(shè)備是硬拷貝設(shè)備124,它可能用于在諸如紙、膠片、或者類似類型介質(zhì)上打印指令、數(shù)據(jù)或者其它信息。另外計算機系統(tǒng)100可以連接到聲音記錄和/或回放設(shè)備125上,例如連接到一個麥克風上記錄信息的音頻數(shù)字轉(zhuǎn)換器。另外,該設(shè)備還可能包括一個連接到數(shù)/模(D/A)轉(zhuǎn)換器的揚聲器,用于回放數(shù)字化的聲音。
還有,計算機系統(tǒng)100可以是一個計算機網(wǎng)絡(luò)(例如一個局域網(wǎng))的一個終端。這樣,計算機系統(tǒng)100便是包括若干連網(wǎng)設(shè)備的一個計算機系統(tǒng)的一個計算機子系統(tǒng)。計算機系統(tǒng)100可以包括視頻數(shù)字化設(shè)備126。視頻數(shù)字化設(shè)備126可以用于獲取視頻圖像,而傳輸給網(wǎng)絡(luò)中的其它設(shè)備。
計算機系統(tǒng)100對于支持計算機支持的協(xié)作(CSC-電話會議與混合介質(zhì)數(shù)據(jù)操作的集成)、2維/3維圖形、圖像處理、視頻壓縮/解壓、識別算法和音頻操作十分有用。
處理器圖2表示處理器109的詳圖。處理器109可以在使用一層或多層諸如BiCMOS、CMOS和NMOS等工藝技術(shù)的基底上實現(xiàn)。
處理器109包括一個解碼由處理器109使用的控制信號和數(shù)據(jù)的解碼器202。然后數(shù)據(jù)可以通過內(nèi)部總線205存儲在寄存器文件204中。顯然,一個實施例的寄存器不應該局限于特定類型的電路,相反,一個實施例的寄存器只需要能夠存儲和提供數(shù)據(jù),以及執(zhí)行這里敘述的功能。
根據(jù)不同的數(shù)據(jù)類型,數(shù)據(jù)可能存儲在整數(shù)寄存器組201、寄存器組209、狀態(tài)寄存器組208或者指令指針寄存器211中。其它的寄存器例如浮點寄存器可以包含在寄存器文件204中。在一個實施例中,整數(shù)寄存器組201存儲32位整數(shù)數(shù)據(jù)。在一個實施例中寄存器209組包括8個寄存器,R0212a到R7212h。寄存器組209中的每一個寄存器為64位長。R1212a、R2212b和R3212c是寄存器組209中單個寄存器的例子。寄存器組209中的一個寄存器的32位可以移動到整數(shù)寄存器組201中的一個整數(shù)寄存器中。類似地,一個整數(shù)寄存器中的值可以移動到寄存器組209中的一個寄存器的32位中。
狀態(tài)寄存器組208指示處理器109的狀態(tài)。指令指針寄存器211存儲下一要執(zhí)行的指令的地址。整數(shù)寄存器組201、寄存器組209、狀態(tài)寄存器組208、和指令指針寄存器211都連接到內(nèi)部總線205上。任何另外的寄存器也都應該連接到內(nèi)部總線205上。
在另一個實施例中,這種寄存器中的某一些可以用于兩種類型的數(shù)據(jù)。例如,寄存器組209和整數(shù)寄存器組201可以組合,其中每一個寄存器既可以存儲整數(shù)數(shù)據(jù)也可以存儲壓縮數(shù)據(jù)。在另一個實施例中,寄存器組209可以用作浮點寄存器組。在這一實施例中,壓縮數(shù)據(jù)或者浮點數(shù)據(jù)可以存儲在寄存器組209中。在一個實施例中,組合寄存器為64位長,而整數(shù)用64位表示。在該實施例中,在存儲壓縮數(shù)據(jù)和整數(shù)數(shù)據(jù)時,寄存器不需區(qū)分這兩種數(shù)據(jù)類型。
功能單元203執(zhí)行由處理器109執(zhí)行的操作。這樣的操作包括移位、加法、減法和乘法等。功能單元203連接到內(nèi)部總線205。高速緩沖存儲器206是處理器109的一個選件,可以用于緩沖存儲例如來自主存儲器104的數(shù)據(jù)和/或控制信號。高速緩沖存儲器206連接到解碼器202以接收控制信號207。
圖3表示處理器109的總操作。也就是說,圖3表示處理器109在對壓縮數(shù)據(jù)執(zhí)行操作、對未壓縮數(shù)據(jù)執(zhí)行操作或者執(zhí)行某個其它操作時遵循的步驟。例如這樣的操作包括用從高速緩沖存儲器206、主存儲器104、只讀存儲器(ROM)106或者數(shù)據(jù)存儲設(shè)備107的數(shù)據(jù)加載寄存器文件204中的一個寄存器的加載操作。在本發(fā)明的一個實施例中,處理器109支持由加里福尼亞州圣大克拉熱INTEL公司的INTEL80486TM支持的大多數(shù)指令。在本發(fā)明另一個實施例中,處理器109支持由加里福尼亞州圣大克拉熱INTEL公司的INTEL 80486TM支持的全部操作。在本發(fā)明的再一個實施例中,處理器109支持由加里福尼亞州圣大克拉熱INTEL公司制造的奔騰處理器、INTEL 80486TM處理器、80386TM處理器、INTEL 80286TM處理器、和INTEL 8086TM處理器支持的全部操作。在本發(fā)明的另一個實施例中,處理器109支持由加里福尼亞州Santa Clara的INTEL公司定義的IATM-INTEL結(jié)構(gòu)支持的全部操作(參見“微處理器”,INTEL數(shù)據(jù)叢書卷1和卷2,1992年和1993年,加里福尼亞州Santa Clara INTEL公司出版)。一般來說,處理器109可以支持奔騰處理器的當前指令集,但是也可以修改為支持未來指令以及這里敘述的指令集的集合。重要的是,處理器109除這里敘述的操作外,可以支持先前所用的操作。
在步驟301,解碼器202從高速緩沖存儲器206或者總線101接收一個控制信號207。解碼器202解碼控制信號以判定要執(zhí)行的操作。
在步驟302,解碼器202訪問寄存器204或者存儲器中的一個存儲單元。根據(jù)在控制信號207中指定的寄存器地址訪問寄存器文件204中的寄存器或在存儲器中的存儲單元。例如,為對壓縮數(shù)據(jù)進行操作,控制信號207可以包括SRC1、SRC2和DEST寄存器地址。SRC1是第一源寄存器地址。SRC2是第二源寄存器地址。在一些情況下,SRC2地址是可選項,因為并非所有的操作需要兩個源地址。如果一個操作不需要SRC2地址,則只使用SRC1地址。DEST是存儲結(jié)果數(shù)據(jù)的目的寄存器的地址。在一個實施例中,SRC1或SRC2也用作DEST。SRC1、SRC2和DEST將結(jié)合圖6a和圖6b更充分地說明。存儲在相應寄存器中的數(shù)據(jù)分別稱為Source1、source2和Result。它們每一個為64位長。
在本發(fā)明的另一個實施例中,SRC1、SRC2和DEST中的任何一個或者全部可以定義為處理器109中的可尋址存儲器空間的一個存儲單元。例如,SRC1可能確定在主存儲器104中的一個存儲單元,而SRC2確定在整數(shù)寄存器組201中的第一寄存器,以及DEST確定寄存器組209中的第二寄存器。這里為說明簡單起見,參考標號是對寄存器文件204的訪問標注的,然而這些訪問也可以對存儲器進行。
在本發(fā)明的另一個實施例中,操作碼只包含兩個地址,SRC1和SRC2。在該實施例中,運算結(jié)果存儲在SRC1或SRC2寄存器中,也就是說,SRC1(或SRC2)用作DEST。這種類型的尋址與前面只具有兩個地址的CISC指令兼容。這簡少了解碼器202的復雜性。注意,在這一實施例中,如果在SRC1寄存器中包含的數(shù)據(jù)不準備破壞,則在執(zhí)行操作前必須首先把該數(shù)據(jù)復制到另一個寄存器中。這一復制需要一個另外的指令。這里為說明簡單起見,將使用三地址尋址模式(亦即SRC1、SRC2和DEST)。然而應當記住,在一個實施例中,控制信號可能只包括SRC1和SRC2,以及SRC1(或SRC2)標識目的寄存器。
在控制信號需要一個操作時,在步驟303,允許功能單元203對來自寄存器文件204的被訪問的數(shù)據(jù)執(zhí)行該項操作。一旦功能單元203執(zhí)行完這一操作,在步驟304,則根據(jù)控制信號207的要求把結(jié)果回存到寄存器文件204中。
數(shù)據(jù)和存儲格式圖4a表示可以用于圖1的計算機系統(tǒng)的一些數(shù)據(jù)格式。這些數(shù)據(jù)格式是定點格式。處理器109可以操作這些數(shù)據(jù)格式。多媒體算法常常使用這些數(shù)據(jù)格式。一個字節(jié)401包含8個信息位。一個字402包含16個信息位,或者兩個字節(jié)。一個雙字403包含32個信息位,或者4個字節(jié)。于是,處理器109執(zhí)行可能操作這些存儲器數(shù)據(jù)格式中任何一個的控制信號。
在下面的說明中,對位、字節(jié)、字、和雙字的子字段加參考標號。例如,字節(jié)001110102(以2為基表示)的位6到位0表示子字段1110102。
圖4b到圖4d表示本發(fā)明的實施例中使用的寄存器內(nèi)表示。例如無符號字節(jié)寄存器內(nèi)表示410可以表示存儲在整數(shù)寄存器組201中的一個寄存器中的數(shù)據(jù)。在一個實施例中,整數(shù)寄存器組201中的一個寄存器為64位長。在另一個實施例中,整數(shù)寄存器組201中的一個寄存器為32位長。為說明簡單起見,下面敘述64位的整數(shù)寄存器,然而也可以使用32位的整數(shù)寄存器。
無符號字節(jié)的寄存器內(nèi)表示410示出處理器109在整數(shù)寄存器組201中存儲一個字節(jié)401,在該寄存器中的頭8位,即位7到位0用于該數(shù)據(jù)字節(jié)401。這些位表示為。為適當?shù)乇硎具@一字節(jié),其余的56位必須為0。對于一個有符號字節(jié)的寄存器內(nèi)表示411,整數(shù)寄存器組201在頭7位,即位6到位0存儲該數(shù)據(jù),為數(shù)據(jù)部分,第7位表示符號位,圖中表示為{S}。其余的位63到位8為該字節(jié)的符號的延續(xù)。
無符號字的寄存器內(nèi)表示412存儲在整數(shù)寄存器組201中的一個寄存器中。位15到位0包含一個無符號字402。這些位表示為{w}。為適當?shù)乇硎驹撟?,其余的?3到位16必須為0。帶符號的字402存儲在位14到位0,如帶符號字的寄存器內(nèi)表示413所示。其余的位64到位15是符號字段。
雙字403可以作為無符號雙字的寄存器內(nèi)表示414存儲,或者作為帶符號雙字的寄存器內(nèi)表示415存儲。無符號雙字的寄存器內(nèi)表示414的位31到位0為數(shù)據(jù)。這些位表示為3jivhmmexw。為適當表示該無符號雙字,其余的位63到位32必須為0。整數(shù)寄存器組201在其位30到位0存儲一個帶符號雙字的寄存器內(nèi)表示415,其余的位63到位31是符號字段。
如上面圖4b到圖4d所示,一些數(shù)據(jù)類型在64位寬的寄存器中的存儲是一種低效的存儲方法。例如,為存儲一個無符號字節(jié)的寄存器內(nèi)表示410,位63到位8必須為0,而只有位7到位0可能包含非0位。因此,在一個64位寄存器中存儲一個字節(jié)的處理器只使用寄存器容量的12.5%。相似地,由功能單元203執(zhí)行的操作只有前幾位是重要的。
圖5a表示壓縮數(shù)據(jù)的數(shù)據(jù)格式。每一壓縮數(shù)據(jù)包括多于一個獨立的數(shù)據(jù)元素。圖中說明3種壓縮數(shù)據(jù)格式壓縮字節(jié)501,壓縮字502和壓縮雙字503。在本發(fā)明的一個實施例中,壓縮字節(jié)為64位長,包含8個數(shù)據(jù)元素,每一個數(shù)據(jù)元素為一字節(jié)長。一般來說,一個數(shù)據(jù)元素是一個單個的數(shù)據(jù),它與具有同樣長度的其它數(shù)據(jù)元素存儲在一個單一寄存器中(或存儲單元)。在本發(fā)明的一個實施例中,存儲在一個寄存器中的數(shù)據(jù)元素的數(shù)目等于64除以數(shù)據(jù)元素的位長。
壓縮字502為64位長,包含4個字402數(shù)據(jù)元素。每一個字402數(shù)據(jù)元素包含16個信息位。
壓縮雙字503為64位長,包含兩個雙字403數(shù)據(jù)元素。每一個雙字403數(shù)據(jù)元素包含32個信息位。
圖5b到圖5d表示寄存器內(nèi)壓縮數(shù)據(jù)存儲表示。無符號壓縮字節(jié)的寄存器內(nèi)表示510示出壓縮字節(jié)501在寄存器組R0212a到寄存器組Rn212af中的一個寄存器中的存儲方式。每個字節(jié)數(shù)據(jù)元素的信息對于字節(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。因此寄存器中所有可用的位都被使用。這種存儲安排增加了處理器的存儲效率。另外,通過訪問8個數(shù)據(jù)元素,現(xiàn)在可以同時對8個數(shù)據(jù)元素執(zhí)行操作。帶符號壓縮字節(jié)的寄存器內(nèi)表示511類似地存儲在寄存器組209中的一個寄存器中。注意,每一字節(jié)數(shù)據(jù)元素只有第8位是必須的符號位,其它位可以用于或者可以不用于指示符號。
無符號壓縮字的寄存器內(nèi)表示512示出字3到字0是怎樣存儲在寄存器組209中的一個寄存器中的。位15到位0包含對于字0的數(shù)據(jù)元素信息,位31到位16包含對于字1的數(shù)據(jù)元素信息,位47到位32包含對于字2的數(shù)據(jù)元素信息,而位63到位48包含對于字3的數(shù)據(jù)元素信息。帶符號壓縮字的寄存器內(nèi)表示513類似于無符號壓縮字的寄存器內(nèi)表示512。注意,每一字數(shù)據(jù)元素只有第16位包含必要的符號指示符。
無符號壓縮雙字的寄存器內(nèi)表示514表示寄存器組209怎樣存儲兩個雙字數(shù)據(jù)元素。雙字0存儲在寄存器的位31到位0。雙字1存儲在寄存器的位63到位32。帶符號壓縮雙字的寄存器內(nèi)表示515類似于無符號壓縮雙字的寄存器內(nèi)表示514。注意,必要的符號位是該雙字數(shù)據(jù)元素的第32位。
如前所述,寄存器組209既可以用于壓縮數(shù)據(jù),也可以用于整數(shù)數(shù)據(jù)。在本發(fā)明的這一實施例中,可以要求單個程序處理器109跟蹤一個被尋址的寄存器,例如R1212a,是否正在存儲壓縮數(shù)據(jù)或者簡單整數(shù)/定點數(shù)據(jù)。在另一可選實施例中,處理器109可以跟蹤存儲在寄存器組209中的單個寄存器中的數(shù)據(jù)類型。因此,如果例如試圖對簡單/定點整數(shù)數(shù)據(jù)施行一個壓縮的加法運算的話,這一可選實施例可能產(chǎn)生錯誤。
控制信號格式下面說明處理器109所用操作壓縮數(shù)據(jù)的控制信號格式的一個實施例。在本發(fā)明的一個實施例中,控制信號用32位表示。解碼器202可以從總線101接收控制信號207。在另一個實施例中,解碼器202也可以從高速緩沖存儲器206接收這樣的控制信號。
圖6a表示對壓縮數(shù)據(jù)進行操作的控制信號的一般格式。操作字段OP601,即位31到位26,提供關(guān)于由處理器109要執(zhí)行的操作的信息;例如壓縮加,壓縮減等。SRC1602,即位25到位20,提供寄存器組209中的一個寄存器的源寄存器地址。該源寄存器包含在控制信號執(zhí)行中要用的第一壓縮數(shù)據(jù),Source1。相似地,SRC2 603,即位19到位14,包含寄存器組209中的一個寄存器的地址。這一第二源寄存器包含執(zhí)行操作期間要用到的壓縮數(shù)據(jù),Source2。DEST605,即位5到位0包含寄存器組209中的一個寄存器的地址。該目的寄存器將存儲壓縮數(shù)據(jù)操作的結(jié)果壓縮數(shù)據(jù)Result。
控制位SZ610,即位12和位13,指示在第一和第二壓縮數(shù)據(jù)源寄存器中的數(shù)據(jù)元素的長度。如果SZ610等于012,則壓縮數(shù)據(jù)作為壓縮字節(jié)501格式化。如果SZ610等于102,則壓縮數(shù)據(jù)作為壓縮字502格式化。SZ610等于002或112預留,然而,在另一個實施例中,其中的一個可以用來指示壓縮雙字503。
控制位T611,即位11,指示該操作是否以飽和方式執(zhí)行。如果T611等于1,則執(zhí)行飽和操作。如果T611等于0,則執(zhí)行非飽和操作。后面說明飽和操作。
控制位S612,即位10,指示使用帶符號操作。如果S612等于1,則執(zhí)行帶符號操作;如果S612等于0,則執(zhí)行無符號操作。
圖6b表示操作壓縮數(shù)據(jù)的控制信號的第二種一般格式。該格式相應于在“奔騰處理器系列用戶手冊”中敘述的一般整數(shù)操作碼格式,該手冊由INTEL公司文獻銷售部出版,地址為P.O.Box 7641,Mt.prospect,IL,60056-7641。注意,OP601,SZ610,T611,和S612都結(jié)合在一個大字段中。對于一些控制信號,位3到位5是SRC1 602。在一個實施例中,其中有一個SRC1 602地址,則位3到位5也相應于DEST605。在一個可選的實施例中,其中有一個SRC2 603地址,則位0到位2也相應于DEST605。對于其它的控制信號,例如壓縮移位立即操作,位3到位5表示操作碼場的擴展。在一個實施例中,這種擴展允許程序員把一個立即數(shù)與控制信號結(jié)合,例如一個移位計數(shù)值。在一個實施例中,立即數(shù)跟著控制信號。這在“奔騰處理器系列用戶手冊”一書的附錄F,從F-1到F-3頁有詳細介紹。位0到位2表示SRC2603。這種一般格式允許寄存器到寄存器,存儲器到寄存器,由存儲器對寄存器,由寄存器對寄存器,由立即數(shù)對寄存器,由寄存器到存儲器尋址。在一個實施例中,這種一般格式也可以支持整數(shù)寄存器到寄存器和寄存器到整數(shù)寄存器尋址。
飽和/非飽和的說明如前所述,T611指示操作是否可選為飽和。在允許飽和的場合,當一個操作的結(jié)果溢出或下溢數(shù)據(jù)的范圍時,其結(jié)果被箝位。箝位指的是如果結(jié)果超過該范圍的最大或最小值時把結(jié)果設(shè)定在最大或最小值。在下溢的場合,飽和把結(jié)果箝位在該范圍的最小值,而在溢出的場合,飽和把結(jié)果箝位在最大值。對于每一種數(shù)據(jù)格式允許的范圍示于表1。

表1如上所述,T611指示是否正在執(zhí)行飽和操作。因此,使用無符號字節(jié)數(shù)據(jù)格式,如果一個運算結(jié)果=258并且允許飽和,則在該結(jié)果被存儲在該操作的目的寄存器之前被箝位在255。類似地,如果運算的結(jié)果=-32999且處理器109使用帶符號字數(shù)據(jù)格式同時允許飽和,則運算結(jié)果在被存儲在該運算的目的寄存器之前被箝位在-32768。
數(shù)據(jù)處理操作在本發(fā)明的一個實施例中,多媒體應用的性能不僅通過支持標準的CISC指令集(未壓縮數(shù)據(jù)操作),而且通過支持對壓縮數(shù)據(jù)的操作而得以改善。這樣的壓縮數(shù)據(jù)操作可能包括加法、減法、乘法、比較、移位、與和異或。然而,為充分使用這些操作,已經(jīng)確定,應該包括數(shù)據(jù)處理操作。這樣的數(shù)據(jù)處理操作可能包括移動、壓縮和拆開。移位、壓縮和拆開由于產(chǎn)生出允許程序員容易使用的格式的壓縮數(shù)據(jù)而方便了其它操作的執(zhí)行。
對于其它壓縮操作的進一步的背景,參見流水號為—,于—申請的“具有比較操作的微處理器”,流水號為—于—申請的“具有移位操作的新型處理器”,流水號為08/176123,于1993年12月30日申請的“處理器中使用壓縮數(shù)據(jù)的方法和裝置”,流水號為08/175772,于1993年12月30日申請的“在處理器中使用新型操作的方法和裝置”,所有這些申請都轉(zhuǎn)讓給本發(fā)明的受讓人。
移動操作移動操作把數(shù)據(jù)傳輸給寄存器209或從寄存器209傳輸出數(shù)據(jù)。在一個實施例中,SRC2 603是包含源數(shù)據(jù)的地址,而DEST605是數(shù)據(jù)要傳輸?shù)降牡刂?。在該實施例中,不用SRC1 602。在另一個實施例中,SRC1 602就是DEST605。
為解釋移動操作,要區(qū)分寄存器和存儲單元這兩種情況。寄存器在寄存器文件204中尋找,而存儲器可以是高速緩沖存儲器206、主存儲器104、ROM106、數(shù)據(jù)存儲設(shè)備107。
移動操作可以從存儲器到寄存器組209、從寄存器組209到存儲器、和從寄存器組209中的一個寄存器到寄存器組209中的另一個寄存器移動數(shù)據(jù)。在一個實施例中,壓縮數(shù)據(jù)存儲在不同于存儲整數(shù)數(shù)據(jù)的寄存器中。在該實施例中,移動操作可以把數(shù)據(jù)從整數(shù)寄存器組201移動到寄存器組209中。例如,在處理器109中,如果壓縮數(shù)據(jù)存儲在寄存器組209中而整數(shù)數(shù)據(jù)存儲在整數(shù)寄存器組201中,則可以使用移動指令從整數(shù)寄存器組201移動數(shù)據(jù)到寄存器組209,反之亦然。
在一個實施例中,當為移動指定一個存儲器地址時,在存儲單元(指示最低有效字節(jié)的存儲器單元)中的數(shù)據(jù)的8個字節(jié)加載到寄存器組209中的一個寄存器或從該寄存器存儲數(shù)據(jù)的8個字節(jié)到該存儲單元。當指定寄存器組209中的一個寄存器時,該寄存器中的內(nèi)容被移動到寄存器組209中的第二寄存器或從寄存器組209中的第二寄存器加載內(nèi)容到該寄存器。如果整數(shù)寄存器201為64位長,且指定一個整數(shù)寄存器,則在該整數(shù)寄存器中的數(shù)據(jù)的8個字節(jié)加載到寄存器209中的一個寄存器中或從后者存儲在該整數(shù)寄存器中。
在一個實施例中,整數(shù)用32位表示。當從寄存器組209到整數(shù)寄存器組201執(zhí)行移動操作時,則只有低32位壓縮數(shù)據(jù)移動到指定的整數(shù)寄存器。在一個實施例中,高階32位被置0。相似地,當執(zhí)行從整數(shù)寄存器組201到寄存器組209的移動時,只加載寄存器組209中的一個寄存器的低32位。在一個實施例中,處理器109支持在寄存器組209的一個寄存器到存儲器之間的32位移動操作。在另一個實施例中,只有32位的移動操作是就壓縮數(shù)據(jù)的高階32位進行的。
壓縮操作在本發(fā)明的一個實施例中,SRC1 602寄存器包含數(shù)據(jù)(Source1),SRC2 603寄存器包含數(shù)據(jù)(Source2),而DEST605寄存器包含運算的結(jié)果數(shù)據(jù)(Result)。也就是說,Source1的各部分和Source2的各部分壓縮在一起產(chǎn)生Result。
在一個實施例中,壓縮操作通過把源壓縮字(或雙字)的低位字節(jié)(或字)壓縮到Result的字節(jié)(或字)中而把壓縮字(或雙字)變換為壓縮字節(jié)(或字)。在一個實施例中,壓縮操作把四壓縮字變換為壓縮雙字。這一操作可選使用帶符號數(shù)據(jù)執(zhí)行。另外,該操作可選使用飽和方式執(zhí)行。
圖7表示對壓縮數(shù)據(jù)執(zhí)行壓縮操作的方法的實施例。該實施例可以在圖2中的處理器109中實現(xiàn)。
在步驟701,解碼器202解碼由處理器109接收的控制信號207。于是,解碼器202解碼適當?shù)膲嚎s操作的操作碼;寄存器組209中的SRC1 602、SRC2 603和DEST605的地址;飽和/非飽和、帶符號/無符號、和在壓縮數(shù)據(jù)中的數(shù)據(jù)元素的長度。如前所述,SRC1602(或SRC2 603)可以用作DEST605。
在步驟702,通過內(nèi)部總線205,解碼器202訪問寄存器 文件204中的寄存器組209,給出SRC1 602和SRC2 603的地址。寄存器組209供給功能單元203存儲在SRC1 602寄存器中的數(shù)據(jù)(Source1)和存儲在SRC2 603寄存器中的數(shù)據(jù)(Source2)。也就是說,寄存器組209通過內(nèi)部總線205給功能單元203傳輸數(shù)據(jù)。
在步驟703,解碼器202允許功能單元203執(zhí)行適當?shù)膲嚎s操作。解碼器202通過內(nèi)部總線205進一步傳輸在Source1和Source2中的數(shù)據(jù)元素的飽和和大小。飽和作為選項用以使在結(jié)果數(shù)據(jù)元素中的數(shù)據(jù)取最大值。如果在Source1和Source2中的數(shù)據(jù)元素的值大于或者小于在Result中的數(shù)據(jù)元素所能表示的值的范圍,則相應的結(jié)果數(shù)據(jù)元素設(shè)定為其最大或最小值。例如,如果在Source1和Source2中的字數(shù)據(jù)元素中的帶符號值小于0X80(或?qū)﹄p字來說為0X8000),則結(jié)果字節(jié)(或字)數(shù)據(jù)元素箝位在0X80(或?qū)﹄p字來說為0X8000)。如果在Source1和Source2中的字數(shù)據(jù)元素中的帶符號值大于0X7F(或?qū)﹄p字來說為0X7FFF),則結(jié)果字節(jié)(或字)數(shù)據(jù)元素箝位在0X7F(或0X7FFF)。
在步驟710,數(shù)據(jù)元素的大小決定下一步要執(zhí)行哪個步驟。如果數(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è)定了飽和,則測試每一字的高階位以判定是否要箝位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è)定了飽和,則測試每一雙字的高階位以判定是否要箝位Result數(shù)據(jù)元素。
在一個實施例中,步驟712的壓縮操作同時執(zhí)行。然而,在另一個實施例中,這一壓縮操作順序執(zhí)行。在再一個實施例中,一部分壓縮操作同時執(zhí)行,而一部分順序執(zhí)行。這一討論也適用于步驟714的壓縮操作。
在步驟720,Result存儲在DEST605寄存器中。
表2表示非飽和無符號字壓縮操作的寄存器內(nèi)表示。第一行的位為Source1的壓縮數(shù)據(jù)表示。第二行的位為Source2的數(shù)據(jù)表示。第三行的位為Result的壓縮數(shù)據(jù)表示。每一數(shù)據(jù)元素位下面的數(shù)字是該數(shù)據(jù)元素的號碼。例如,Source1數(shù)據(jù)元素3是10000002。
表2表3表示飽和帶符號雙字壓縮操作的寄存器內(nèi)表示。
表3
壓縮電路在本發(fā)明的一個實施例中,為有效地執(zhí)行壓縮操作,使用并行方法。圖8a和圖8b表示能夠?qū)嚎s數(shù)據(jù)執(zhí)行壓縮操作的一個電路的實施例。該電路可選執(zhí)行飽和壓縮操作。
圖8a和圖8b的電路包括操作控制電路800,結(jié)果寄存器852,結(jié)果寄存器853,8個16位到8位的飽和測試電路,和4個32位到16位的飽和測試電路。
操作控制電路800從解碼器202接收信息以允許壓縮操作。操作控制電路800使用飽和值允許對每一飽和測試電路進行飽和測試。如果源壓縮數(shù)據(jù)的大小為字壓縮數(shù)據(jù)503,則輸出許可信號831由操作控制電路800置位。這就允許輸出寄存器852輸出。如果源壓縮數(shù)據(jù)的大小是雙字壓縮數(shù)據(jù)504,則輸出許可信號832由操作控制電路800置位。這就允許輸出寄存器853輸出。
每一飽和測試電路可以選擇測試飽和。如果飽和測試被禁止,則每一飽和測試電路僅僅把低階位傳送給一個結(jié)果寄存器的相應位置。如果飽和測試被許可,則每一飽和測試電路測試高階位以判定是否應該對結(jié)果箝位。
飽和測試810到飽和測試817有16位輸入和8位輸出。8位輸出是輸入的低8位,或可選為一個箝位值(0X80,0X7F,或0XFF)。飽和測試810接收Source1位15到0而為結(jié)果寄存器852輸出位7到0。飽和測試811接收Source1位31到16而為結(jié)果寄存器852輸出位15到8。飽和測試812接收Source1位47到32而為結(jié)果寄存器852輸出位23到16。飽和測試813接收Source1位63到48而為結(jié)果寄存器852輸出位31到24。飽和測試814接收Source2位15到0而為結(jié)果寄存器852輸出位39到32。飽和測試815接收Source2位31到16而為結(jié)果寄存器852輸出位47到40。飽和測試816接收Source2位47到32而為結(jié)果寄存器852輸出位55到48。飽和測試817接收Source2位63到48而為結(jié)果寄存器852輸出位63到56。
飽和測試820到823有32位輸入和16位輸出。16位輸出是輸入的低16位,或可選為一個箝位值(0X8000,0X7FFF,或0XFFFF)。飽和測試820接收Source1位31到0而為結(jié)果寄存器853輸出位15到0。飽和測試821接收Source1位63到32而為結(jié)果寄存器853輸出位31到16。飽和測試822接收Source2位31到0而為結(jié)果寄存器853輸出位47到32。飽和測試823接收Source2位63到32而為結(jié)果寄存器853輸出位63到48。
例如在表4中,執(zhí)行無符號不飽和字壓縮操作。操作控制電路800許可結(jié)果寄存器852輸出結(jié)果[63:0]860。
表4然而,如果執(zhí)行無符號不飽和雙字壓縮操作,則操作控制電路800許可結(jié)果寄存器853輸出結(jié)果[63:0]860。表5表示這一結(jié)果。
表5拆開操作在一個實施例中,拆開操作交錯放置兩個源壓縮數(shù)據(jù)的低階壓縮字節(jié)、字或者雙字以產(chǎn)生結(jié)果壓縮字節(jié)、字或者雙字。
圖9表示對壓縮數(shù)據(jù)執(zhí)行拆開操作的方法的實施例。該實施例可以在圖2中的處理器109中實現(xiàn)。
首先執(zhí)行步驟701和702。在步驟903,解碼器202許可功能單元203執(zhí)行拆開操作。解碼器202通過內(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位(壓縮字數(shù)據(jù)502),則功能單元203執(zhí)行步驟714。然而,如果壓縮數(shù)據(jù)中的數(shù)據(jù)元素的大小為32位(壓縮雙字數(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。
在一個實施例中,步驟712的拆開操作同時執(zhí)行。然而,在另一個實施例中,拆開操作順序執(zhí)行。在再一個實施例中,拆開操作的一部分同時執(zhí)行,另一部分順序執(zhí)行。這一討論也適用于在步驟714和步驟716的拆開操作。
在步驟720,Result存儲在DEST605寄存器中。
表6示出字節(jié)拆開操作的寄存器內(nèi)表示。
表6表7示出字拆開操作的寄存器內(nèi)表示。
表7表8示出雙字拆開操作的寄存器內(nèi)表示。
表8
拆開電路在本發(fā)明的一個實施例中,為有效地執(zhí)行拆開操作,使用并行方法。圖10表示能夠?qū)嚎s數(shù)據(jù)執(zhí)行拆開操作的一個電路的實施例。
圖10的電路包括操作控制電路800,結(jié)果寄存器1052,結(jié)果寄存器1053和結(jié)果寄存器1054。
操作控制電路800從解碼器202接收信息而許可拆開操作。如果源壓縮數(shù)據(jù)的大小是字節(jié)壓縮數(shù)據(jù)502,則由操作控制電路800置位輸出許可信號1032。這就允許結(jié)果寄存器1052輸出。如果源壓縮數(shù)據(jù)的大小為字壓縮數(shù)據(jù)503,則輸出許可信號1033由操作控制電路800置位。這就允許輸出寄存器1053輸出。如果源壓縮數(shù)據(jù)的大小是雙字壓縮數(shù)據(jù)504,則輸出許可信號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í)行一個字拆開操作。操作控制電路800將允許結(jié)果寄存器1053輸出結(jié)果[63:0]860。
表9
然而,如果執(zhí)行雙字拆開操作,則操作控制電路800將允許結(jié)果寄存器1054輸出結(jié)果[63:0]860。表10表示這一結(jié)果。
表10因此,移動、壓縮和拆開操作可以操作多個數(shù)據(jù)元素。在現(xiàn)有技術(shù)的處理器中,為執(zhí)行這些類型的操作,需要多個單獨的操作來執(zhí)行單一壓縮數(shù)據(jù)移動、壓縮或者拆開操作。在一個實施例中,用于壓縮數(shù)據(jù)操作的數(shù)據(jù)線都帶有相關(guān)的數(shù)據(jù)。它將提高計算機系統(tǒng)的性能。
權(quán)利要求
1.一種方法,包括接收第一指令,所述第一指令包括一個操作碼字段,一個第一字段表示具有第一組多個數(shù)據(jù)元的第一操作數(shù),所述第一數(shù)據(jù)元包括第一操作數(shù)第一數(shù)據(jù)元和第一操作數(shù)第二數(shù)據(jù)元,一個第二字段表示具有第二組多個數(shù)據(jù)元的第二操作數(shù),所述第二數(shù)據(jù)元包括第二操作數(shù)第一數(shù)據(jù)元和第二操作數(shù)第二數(shù)據(jù)元,每個第一操作數(shù)第一數(shù)據(jù)元、第一操作數(shù)第二數(shù)據(jù)元、第二操作數(shù)第一數(shù)據(jù)元和第二操作數(shù)第二數(shù)據(jù)元的長度是N/2比特;響應于所述第一指令存儲長度為N比特的第一結(jié)果數(shù)據(jù)元,所述第一結(jié)果數(shù)據(jù)元包括第一操作數(shù)第一數(shù)據(jù)元和第二操作數(shù)第一數(shù)據(jù)元。
2.根據(jù)權(quán)利要求1的方法,其中所述第一指令是拆開操作指令,其中所述第一結(jié)果數(shù)據(jù)元是第一拆開數(shù)據(jù)元。
3.根據(jù)權(quán)利要求2的方法,其中還包括步驟用所述第一參考數(shù)據(jù)元覆蓋所述第一操作數(shù)的第一組多個數(shù)據(jù)元。
4.根據(jù)權(quán)利要求2的方法,其中第一操作數(shù)第一數(shù)據(jù)元是第一操作數(shù)的低階數(shù)據(jù)元,第二操作數(shù)第一數(shù)據(jù)元是第二操作數(shù)的低階數(shù)據(jù)元,所述拆開指令的操作碼字段包含一組操作碼之一以從所述第一和第二組多個數(shù)據(jù)元識別拆開操作交叉低階字節(jié)元、字元或雙字元。
5.根據(jù)權(quán)利要求4的方法,其中存儲第一拆開數(shù)據(jù)元的步驟包括存儲第一操作數(shù)第一數(shù)據(jù)元和將第二操作數(shù)第二數(shù)據(jù)元存儲在與第一操作數(shù)第一數(shù)據(jù)元相鄰的位置。
6.根據(jù)權(quán)利要求2的方法,其中第一操作數(shù)第一數(shù)據(jù)元是第一操作數(shù)的高階數(shù)據(jù)元,第二操作數(shù)第一數(shù)據(jù)元是第二操作數(shù)的高階數(shù)據(jù)元,所述拆開指令的操作碼字段包含一組操作碼之一以從所述第一和第二組多個數(shù)據(jù)元識別拆開操作交叉高階字節(jié)元、字元或雙字元。
7.根據(jù)權(quán)利要求2的方法,其中還包括響應于所述拆開指令存儲長度為N比特的第二拆開數(shù)據(jù)元,所述第二拆開數(shù)據(jù)元包括第一操作數(shù)第二數(shù)據(jù)元和第二操作數(shù)第二數(shù)據(jù)元。
8.根據(jù)權(quán)利要求7的方法,其中存儲第一拆開數(shù)據(jù)元和第二拆開數(shù)據(jù)元的步驟包括將第一操作數(shù)第一數(shù)據(jù)元放在第一存儲位置;將第二操作數(shù)第一數(shù)據(jù)元放在第二存儲位置,所述第二存儲位置與所述第一存儲位置相鄰;將第一操作數(shù)第二數(shù)據(jù)元放在第三存儲位置,所述第三存儲位置與所述第二存儲位置相鄰;將第二操作數(shù)第二數(shù)據(jù)元放在第四存儲位置,所述第四存儲位置與所述第三存儲位置相鄰。
9.根據(jù)權(quán)利要求8的方法,其中所述第一存儲位置、第二存儲位置、第三存儲位置、第四存儲位置是由所述拆開指令標明的目標操作數(shù)的一部分。
10.根據(jù)權(quán)利要求9的方法,其中所述目標操作數(shù)是由所述拆開指令標明的第一字段。
11.根據(jù)權(quán)利要求10的方法,其中還包括用所述目標操作數(shù)覆蓋所述第一操作數(shù)的至少一部分。
12.根據(jù)權(quán)利要求11的方法,其中所述第一字段由拆開指令的第3-第5比特構(gòu)成。
13.根據(jù)權(quán)利要求9的方法,其中所述第二字段由拆開指令的第0-第2比特的三個字節(jié)構(gòu)成。
14.根據(jù)權(quán)利要求13的方法,其中所述目標操作數(shù)由拆開指令的第二字段表示。
15.根據(jù)權(quán)利要求14的方法,其中還包括用所述目標操作數(shù)覆蓋所述第二操作數(shù)的至少一部分。
16.一種裝置,包括解碼第一指令的解碼器,所述第一指令包括一個操作碼字段,一個第一字段表示具有第一組多個數(shù)據(jù)元的第一操作數(shù),所述第一數(shù)據(jù)元包括第一操作數(shù)第一數(shù)據(jù)元和第一操作數(shù)第二數(shù)據(jù)元,一個第二字段表示具有第二組多個數(shù)據(jù)元的第二操作數(shù),所述第二數(shù)據(jù)元包括第二操作數(shù)第一數(shù)據(jù)元和第二操作數(shù)第二數(shù)據(jù)元,每個第一操作數(shù)第一數(shù)據(jù)元、第一操作數(shù)第二數(shù)據(jù)元、第二操作數(shù)第一數(shù)據(jù)元和第二操作數(shù)第二數(shù)據(jù)元的長度是N/2比特;響應于所述第一指令存儲長度為N比特的第一結(jié)果數(shù)據(jù)元的功能單元,所述第一結(jié)果數(shù)據(jù)元包括第一操作數(shù)第一數(shù)據(jù)元和第二操作數(shù)第一數(shù)據(jù)元。
17.根據(jù)權(quán)利要求16的裝置,其中所述第一指令是拆開操作指令,其中所述第一結(jié)果數(shù)據(jù)元是第一拆開數(shù)據(jù)元。
18.根據(jù)權(quán)利要求17的裝置,其中所述拆開指令是一個包含3個或者更多個字節(jié)的整數(shù)操作數(shù),其中第3個字節(jié)可以是一個第一3字節(jié)源寄存器地址和一個第二3字節(jié)源目標寄存器地址。
19.根據(jù)權(quán)利要求18的裝置,其中所述第一操作數(shù)對應于所述第一3字節(jié)源寄存器地址。
20.根據(jù)權(quán)利要求18的裝置,其中第一操作數(shù)對應于一個存儲器中的一個地址存儲器位置。
21.根據(jù)權(quán)利要求18的裝置,其中所述第二操作數(shù)對應于所述第二3字節(jié)源目標寄存器地址,其中所述功能單元用于在對應于第二3字節(jié)源目標寄存器地址的目標存儲第一拆開數(shù)據(jù)元并覆蓋所述第二操作數(shù)。
22.根據(jù)權(quán)利要求21的裝置,其中所述功能單元用于響應于所述第一指令,在所述目標的第一部分存儲第一操作數(shù)第一數(shù)據(jù)元和在與所述第一部分相鄰的第二部分存儲第二操作數(shù)第一數(shù)據(jù)元,在與所述第二部分相鄰的第三部分存儲第一操作數(shù)第二數(shù)據(jù)元,在與所述第三部分相鄰的第四部分存儲第二操作數(shù)第二數(shù)據(jù)元。
23.根據(jù)權(quán)利要求17的裝置,其中還包括一個保持拆開指令的存儲器,所述拆開指令具有包含三個或者更多個字節(jié)的整數(shù)操作碼的格式,所述三個字節(jié)之一允許一個第一3字節(jié)源寄存器地址和一個第二3字節(jié)源目標寄存器地址;和一個保持一個軟件的存儲裝置,所述軟件向所述存儲器提供所述拆開指令以供執(zhí)行。
24.根據(jù)權(quán)利要求23的裝置,其中所述解碼器是用于接收和解碼來自存儲器的拆開指令、對應于第一3字節(jié)源寄存器地址的第一操作數(shù)、對應于第二3字節(jié)源目標寄存器地址的第二操作數(shù)。
25.根據(jù)權(quán)利要求24的裝置,其中所述功能單元用于存儲在對應于第二3字節(jié)源目標寄存器地址的目標存儲第一拆開數(shù)據(jù)元。
26.一種微處理器,包括保持第一壓縮數(shù)據(jù)的第一源寄存器,所述第一壓縮數(shù)據(jù)具有包含第一壓縮數(shù)據(jù)元和第三壓縮數(shù)據(jù)元的第一組多個壓縮數(shù)據(jù),每個第一壓縮數(shù)據(jù)元和第三壓縮數(shù)據(jù)元的長度是N/2比特;保持第二壓縮數(shù)據(jù)的第二源寄存器,所述第二壓縮數(shù)據(jù)具有包含第二壓縮數(shù)據(jù)元和第四壓縮數(shù)據(jù)元的第二組多個壓縮數(shù)據(jù),每個第二壓縮數(shù)據(jù)元和第四壓縮數(shù)據(jù)元的長度是N/2比特;被耦接的電路,用于從第一源寄存器接收第一壓縮數(shù)據(jù)和從第二源寄存器接收第二壓縮數(shù)據(jù),并響應于一個拆開指令提供復制第一壓縮數(shù)據(jù)元和第二壓縮數(shù)據(jù)元到目標寄存器的第一拆開數(shù)據(jù)元中和復制第三數(shù)據(jù)元和第四數(shù)據(jù)元到目標寄存器的第二拆開數(shù)據(jù)元中來拆開所述第一壓縮數(shù)據(jù)和所述第二壓縮數(shù)據(jù),每個第一和第二拆開數(shù)據(jù)元的長度是N比特。
27.根據(jù)權(quán)利要求26的微處理器,其中所述第一壓縮數(shù)據(jù)元是第一壓縮數(shù)據(jù)的低階數(shù)據(jù)元,所述第二壓縮數(shù)據(jù)元是第二壓縮數(shù)據(jù)的低階數(shù)據(jù)元,所述拆開指令包括一個操作碼字段以包含一個至少第一組操作碼之一以識別從第一和第二組多個數(shù)據(jù)元中交叉低階數(shù)據(jù)元的拆開操作,所述第一組操作碼識別選自由字節(jié)元、字元和雙字元組成的組的數(shù)據(jù)元。
28.根據(jù)權(quán)利要求27的微處理器,其中所述第一壓縮數(shù)據(jù)元是第一壓縮數(shù)據(jù)的高階數(shù)據(jù)元,所述第二壓縮數(shù)據(jù)元是第二壓縮數(shù)據(jù)的高階數(shù)據(jù)元,所述拆開指令包括一個操作碼字段以包含一個操作碼以交替地包含一個第二組操作碼之一以從第一和第二組多個數(shù)據(jù)元中交叉高階數(shù)據(jù)元的拆開操作,所述第二組操作碼識別選自由字節(jié)元、字元和雙字元組成的組的數(shù)據(jù)元。
29.根據(jù)權(quán)利要求26的微處理器,其中所述目標寄存器是第一源寄存器,所述第一源寄存器的一部分被所述第一和第二拆開數(shù)據(jù)元覆蓋。
30.根據(jù)權(quán)利要求26的微處理器,其中所述拆開指令具有包含三個或者更多個字節(jié)的整數(shù)操作碼的格式,所述三個或者更多個字節(jié)的第三個字節(jié)允許用于識別第一源寄存器的一個第一3字節(jié)源寄存器地址。
31.根據(jù)權(quán)利要求30的微處理器,其中所述第一3字節(jié)源寄存器地址還識別目標寄存器。
32.一個包含機器可讀媒質(zhì)的物體,所述媒質(zhì)包含表示一個指令的數(shù)據(jù),所述指令在被所述機器執(zhí)行時使所述機器執(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的物體,其中所述多個操作包括產(chǎn)生第二N比特結(jié)果,包括A2和B2;和將所述第一和第二N比特結(jié)果存儲在M×N比特的目標中作為壓縮數(shù)據(jù)。
34.根據(jù)權(quán)利要求33的物體,其中所述多個操作還包括從所述指令標明結(jié)構(gòu)寄存器訪問第一M×N比特數(shù)據(jù)源;用第一和第二N比特結(jié)果覆蓋所述指令識別的結(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;存儲所述第三和第四N比特結(jié)果作為M×N比特目標的壓縮數(shù)據(jù)元。
36.一種計算機系統(tǒng),適于處理數(shù)字運動視頻信號,包括一個存儲器,用于存儲由第一組M個壓縮N比特數(shù)據(jù)元構(gòu)成的M×N比特的第一M×N比特數(shù)據(jù),和由第二組M個壓縮N比特數(shù)據(jù)元構(gòu)成的M×N比特的第二M×N比特數(shù)據(jù);一個與所述存儲器耦接的處理器,用于訪問是第一和第二M×N比特數(shù)據(jù),和響應于具有第一格式的指令產(chǎn)生第三組M/2個壓縮的2N比特結(jié)果,所述第一格式可操作以識別對應于第一M×N比特數(shù)據(jù)的第一源和對應于第二M×N比特數(shù)據(jù)的第二源,對應于來自對應的第一和第二組M個N比特數(shù)據(jù)的M/2串聯(lián)的數(shù)據(jù)對的第三組M/2個壓縮的2N比特結(jié)果;一個與所述處理器耦接的總線,用于發(fā)送輸入信號到處理器和從處理器發(fā)送輸出信號;一個將所述總線與一個或者多個視頻裝置耦接的接口,所述視頻裝置選自由視頻數(shù)字化裝置、視頻采集裝置、網(wǎng)絡(luò)電纜和視頻記錄裝置組成的組中;和一個與所述總線耦接的光盤驅(qū)動器,用于接收能存儲數(shù)字運動視頻數(shù)據(jù)的光盤。
37.一種計算機系統(tǒng),適于處理數(shù)字靜態(tài)視頻信號,包括一個存儲器,用于存儲由第一組M個壓縮N比特數(shù)據(jù)元構(gòu)成的M×N比特的第一M×N比特數(shù)據(jù),和由第二組M個壓縮N比特數(shù)據(jù)元構(gòu)成的M×N比特的第二M×N比特數(shù)據(jù);一個與所述存儲器耦接的處理器,用于訪問是第一和第二M×N比特數(shù)據(jù),和響應于具有第一格式的指令產(chǎn)生第三組M/2個壓縮的2N比特結(jié)果,所述第一格式可操作以識別對應于第一M×N比特數(shù)據(jù)的第一源和對應于第二M×N比特數(shù)據(jù)的第二源,對應于來自對應的第一和第二組M個N比特數(shù)據(jù)的M/2串聯(lián)的數(shù)據(jù)對的第三組M/2個壓縮的2N比特結(jié)果;一個與所述處理器耦接的總線,用于發(fā)送輸入信號到處理器和從處理器發(fā)送輸出信號;一個將所述總線與一個或者多個圖象裝置耦接的接口,所述圖象裝置選自由圖象再現(xiàn)裝置、筆、靜態(tài)圖象采集裝置、硬拷貝裝置和觸摸屏顯示裝置組成的組中;和一個與所述總線耦接的盤片驅(qū)動器,用于接收可拆卸的盤片,所述盤片選自能存儲數(shù)字靜態(tài)圖象數(shù)據(jù)的光盤和磁盤組成的組中。
全文摘要
一個處理器包括用于存儲第一壓縮數(shù)據(jù)的第一寄存器(209),解碼器(202)和功能單元(203)。解碼器有一個控制信號輸入(207),用以接收第一控制信號和第二控制信號。第一控制信號用以指示壓縮操作,而第二控制信號用以指示拆開操作。功能單元連接到解碼器(202)和寄存器(209)上。功能單元除執(zhí)行移動操作外還使用第一壓縮數(shù)據(jù)執(zhí)行壓縮操作和拆開操作。
文檔編號G06F9/302GK1492315SQ0212616
公開日2004年4月28日 申請日期1995年12月1日 優(yōu)先權(quán)日1994年12月2日
發(fā)明者A·皮萊格, A 皮萊格, Y·雅列, 斬 , M·米陶爾, 門納梅爾, L·M·門納梅爾, B·艾坦 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
友谊县| 剑河县| 盈江县| 武宁县| 临邑县| 斗六市| 大埔区| 华池县| 太和县| 通许县| 富顺县| 兖州市| 芷江| 清涧县| 开平市| 香港 | 巩留县| 慈利县| 辽阳市| 安泽县| 峡江县| 恩平市| 海丰县| 宜君县| 黎平县| 厦门市| 舟山市| 公安县| 通化县| 太仆寺旗| 剑河县| 来安县| 崇信县| 浦县| 木里| 福州市| 太湖县| 荔浦县| 赤峰市| 武夷山市| 丹阳市|