專利名稱::數(shù)據(jù)訪問和置換單元的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及用于計(jì)算機(jī)處理器的數(shù)據(jù)處理單元、操作該數(shù)據(jù)處理單元的方法、利用用于計(jì)算機(jī)處理器的指令組的計(jì)算機(jī)程序產(chǎn)品、和指令。兆旦數(shù)字信號(hào)處理應(yīng)用代碼典型地通常把數(shù)據(jù)向量與系數(shù)向量組合在一起來對(duì)向量執(zhí)行算術(shù)處理。一個(gè)普通的例子是巻積處理,但其它向量處理也共享類似的特性。數(shù)據(jù)與系數(shù)向量的大小是變化的,并且常常是相當(dāng)長的,所以,由機(jī)器嚴(yán)格完成向量功能通常是不實(shí)際的。已經(jīng)發(fā)現(xiàn),代之以由機(jī)器直接對(duì)較小的向量塊進(jìn)行運(yùn)算的方法是實(shí)際的。在一個(gè)已知的方法中,單指令多數(shù)據(jù)(SIMD)技術(shù)把被包含在指令中的單個(gè)運(yùn)算施加到一個(gè)或多個(gè)短數(shù)據(jù)向量的每個(gè)元素上。SIMD機(jī)器的寄存器被設(shè)計(jì)成保持這樣的短的數(shù)據(jù)向量;例如,64比特寄存器可以包含四個(gè)16比特?cái)?shù)據(jù)單元,它們形成短向量或較長向量的一部分。SIMD技術(shù)通過提高處理器的每個(gè)周期的運(yùn)算,成為提高數(shù)字信號(hào)處理器性能的有效的方式。所以,數(shù)字信號(hào)處理程序典型地使用短向量SIMD機(jī)器來執(zhí)行長向量運(yùn)算。為了做到這一點(diǎn),程序結(jié)構(gòu)常常必須把算術(shù)運(yùn)算與向量置換運(yùn)算相交織。例如,為了從算法中較長的向量收集元素以作為運(yùn)算對(duì)象而提供到機(jī)器的短向量數(shù)據(jù)通道;或?yàn)榱税褋碜远滔蛄窟\(yùn)算的最終得到的元素分配到長向量結(jié)果中的不同的位置,向量置換可能是必須的。概要按照本發(fā)明的一方面,提供了用于計(jì)算機(jī)處理器的數(shù)據(jù)處理單元,該數(shù)據(jù)處理單元包括寄存器訪問裝置,它能夠響應(yīng)于數(shù)據(jù)訪問指令對(duì)從計(jì)算機(jī)處理器的寄存器文件中所訪問的至少一個(gè)數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行置換運(yùn)算,置換運(yùn)算與用于數(shù)據(jù)運(yùn)算對(duì)象的寄存器訪問和對(duì)數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行數(shù)據(jù)處理操作串行地執(zhí)行。優(yōu)選地,數(shù)據(jù)處理單元能夠?qū)蝹€(gè)向量寄存器運(yùn)算對(duì)象執(zhí)行置換運(yùn)算。優(yōu)選地,它還能夠?qū)Χ鄠€(gè)向量寄存器運(yùn)算對(duì)象執(zhí)行組合置換運(yùn)算。更優(yōu)選地,對(duì)所述多個(gè)向量寄存器運(yùn)算對(duì)象的組合置換運(yùn)算可以與對(duì)單個(gè)向量寄存器運(yùn)算對(duì)象的置換運(yùn)算同時(shí)發(fā)生。在優(yōu)選實(shí)施例中,數(shù)據(jù)處理單元因此能夠?qū)Φ谝缓偷诙\(yùn)算對(duì)象或運(yùn)算對(duì)象組執(zhí)行不同的置換運(yùn)算。寄存器訪問裝置優(yōu)選地能夠根據(jù)被發(fā)布到計(jì)算機(jī)處理器的單個(gè)程序指令執(zhí)行與寄存器訪問串行的置換運(yùn)算。在優(yōu)選實(shí)施例中,數(shù)據(jù)處理單元能夠?qū)蝹€(gè)數(shù)據(jù)處理指令的數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行多個(gè)接連的運(yùn)算。在所公開的實(shí)施例中,置換運(yùn)算在數(shù)據(jù)處理運(yùn)算之前執(zhí)行。然而,本領(lǐng)域技術(shù)人員將會(huì)看到,按照本發(fā)明的數(shù)據(jù)處理單元可以代之以在數(shù)據(jù)處理運(yùn)算執(zhí)行之后執(zhí)行置換運(yùn)算。在某些實(shí)施例中,硬件提供第一置換運(yùn)算,它在執(zhí)行數(shù)據(jù)處理運(yùn)算之前執(zhí)行,以及提供第二置換運(yùn)算,它在執(zhí)行數(shù)據(jù)處理運(yùn)算之后執(zhí)行。優(yōu)選地,置換運(yùn)算的類型是根據(jù)數(shù)據(jù)處理指令的運(yùn)算碼部分從多個(gè)置換運(yùn)算類型中選擇的。所執(zhí)行的數(shù)據(jù)處理運(yùn)算可以從一個(gè)或多個(gè)算術(shù)運(yùn)算、邏輯運(yùn)算、隨后的置換運(yùn)算、和處理器存儲(chǔ)器讀出或?qū)懭氩僮髦羞M(jìn)行選擇。在所公開的實(shí)施例中,寄存器訪問裝置包括寄存器文件讀出級(jí)和縱橫復(fù)接器級(jí)(這里也稱為縱橫開關(guān)級(jí))。在這種情形下,寄存器訪問裝置包括一組縱橫控制輸入,用于確定從多種置換運(yùn)算的類型中選擇的置換運(yùn)算的類型。多種置換運(yùn)算的類型可包括滾動(dòng)置換、分類置換、改組(shuffle)置換、廣播(broadcast)置換、選擇置換、和另一種類型的置換。置換運(yùn)算的類型可以根據(jù)指令的運(yùn)算碼部分從多種置換運(yùn)算類型中進(jìn)行選擇。即,在指令中的置換運(yùn)算碼由譯碼器進(jìn)行譯碼,譯碼器把一組控制輸入提供到寄存器訪問裝置的相關(guān)的輸入端。在某些實(shí)施例中,執(zhí)行通道包括SIMD(單指令多數(shù)據(jù))電路。寄存器訪問裝置典型地能夠?qū)Φ谝粚?duì)源運(yùn)算對(duì)象執(zhí)行第一種類型的置換運(yùn)算,和對(duì)至少一個(gè)第二源運(yùn)算對(duì)象執(zhí)行第二種類型的置換運(yùn)算。在優(yōu)選實(shí)施例中,執(zhí)行單元能夠?qū)嵤﹩沃噶疃鄶?shù)據(jù)執(zhí)行。例如,第一種類型的置換運(yùn)算可包括來自包含滾動(dòng)置換、分類置換、和改組置換的組中的置換,第二種類型的置換運(yùn)算可包括廣播置換,而第一和第二種置換運(yùn)算的結(jié)果都被提供到SMID執(zhí)行通道。優(yōu)選實(shí)施例在以下方面找到具體的應(yīng)用,即需要數(shù)據(jù)處理單元執(zhí)行來自一個(gè)包含快速傅利葉變換、Viterbi編碼、Turbo編碼、有限沖擊響應(yīng)濾波器算法或另一種通信算法的組的算法的至少一部分。雖然不打算作為限制,但公開的實(shí)施例的第一和第二種類型的置換運(yùn)算包括具有一個(gè)或兩個(gè)64比特?cái)?shù)據(jù)寄存器源變元的運(yùn)算。例如第一種類型的置換運(yùn)算允許滾動(dòng)運(yùn)算,以便從兩個(gè)64比特源數(shù)值形成單個(gè)64比特結(jié)果,該64比特結(jié)果相應(yīng)于向左滾動(dòng)整數(shù)個(gè)16比特半字段的源數(shù)值。在另一個(gè)例子中,第一種類型的置換運(yùn)算允許分類運(yùn)算,以便從兩個(gè)64比特源數(shù)值形成單個(gè)64比特結(jié)果,該64比特結(jié)果是可被選擇作為分類結(jié)果的最高位或最低位64比特。第二種類型的置換運(yùn)算可以允許廣播運(yùn)算,該運(yùn)算能夠在64比特結(jié)果中在四個(gè)16比特的通路(lane)上重復(fù)所選擇的16比特的半個(gè)字。按照本發(fā)明的另一方面,提供了用于對(duì)計(jì)算機(jī)處理器數(shù)據(jù)處理單元進(jìn)行操作的方法,該方法包括響應(yīng)于數(shù)據(jù)訪問指令對(duì)由計(jì)算機(jī)處理器的寄存器文件所訪問的多個(gè)數(shù)據(jù)運(yùn)算對(duì)象中至少一個(gè)數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行置換運(yùn)算,置換運(yùn)算與(i)訪問寄存器以得到數(shù)據(jù)運(yùn)算對(duì)象和(ii)對(duì)數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行數(shù)據(jù)處理運(yùn)算串行地執(zhí)行。按照本發(fā)明的另一方面,提供了計(jì)算機(jī)程序產(chǎn)品,它包括程序代碼裝置,后者包括指令序列,其中該計(jì)算機(jī)程序產(chǎn)品適合于在計(jì)算機(jī)上運(yùn)行,以使得可執(zhí)行單個(gè)數(shù)據(jù)訪問指令,從而使得對(duì)于所訪問的至少一個(gè)數(shù)據(jù)運(yùn)算對(duì)象,執(zhí)行由數(shù)據(jù)訪問指令的至少一個(gè)部分所確定的那種類型的置換運(yùn)算,該置換運(yùn)算與(i)訪問寄存器以得到數(shù)據(jù)運(yùn)算對(duì)象和(ii)對(duì)于數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行數(shù)據(jù)處理運(yùn)算是串行地執(zhí)行的。按照本發(fā)明的另一方面,提供了一種方法,包括響應(yīng)于單個(gè)指令而執(zhí)行串行化的寄存器訪問、向量置換和數(shù)據(jù)處理運(yùn)算的執(zhí)行。按照本發(fā)明的另一方面,提供了計(jì)算機(jī)處理器,包括,以串行連接方式的寄存器訪問單元、向量置換能力、和至少一個(gè)執(zhí)行通道,該設(shè)備還包括譯碼單元,用來響應(yīng)單個(gè)指令以控制訪問至少一個(gè)向量運(yùn)算對(duì)象,有選擇地置換至少一個(gè)向量運(yùn)算對(duì)象,以及執(zhí)行至少一個(gè)另外的運(yùn)按照本發(fā)明的另一方面,提供了指令,其中包括數(shù)據(jù)訪問運(yùn)算碼部分,它規(guī)定一種類型的數(shù)據(jù)訪問;置換運(yùn)算碼部分,它規(guī)定一種類型的置換運(yùn)算;執(zhí)行運(yùn)算碼部分,它規(guī)定另一個(gè)運(yùn)算;以及至少一個(gè)數(shù)據(jù)運(yùn)算對(duì)象源指定。按照本發(fā)明的另一方面,提供了用于計(jì)算機(jī)的數(shù)據(jù)處理單元,它包括寄存器文件;寄存器訪問與置換裝置,它能夠根據(jù)數(shù)據(jù)訪問指令訪問在所述寄存器文件中的至少一個(gè)數(shù)據(jù)運(yùn)算對(duì)象,所述寄存器訪問與置換裝置包括置換電路,用來根據(jù)所述指令的置換運(yùn)算碼部分而選擇地置換所述所訪問的數(shù)據(jù)運(yùn)算對(duì)象;以及數(shù)據(jù)執(zhí)行通道,它被安排成與所述寄存器訪問與置換裝置串聯(lián),所述數(shù)據(jù)執(zhí)行通道用來根據(jù)所述指令的執(zhí)行運(yùn)算碼部分以便對(duì)所述選擇地置換的數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行運(yùn)算。在優(yōu)選實(shí)施例中,所述寄存器訪問與置換裝置包括被連接在所述寄存器文件與所述執(zhí)行通道之間的譯碼器寄存器文件讀出(和寫入)級(jí)。優(yōu)選地,所述寄存器訪問與置換裝置包括被連接在所述譯碼器寄存器文件讀出級(jí)與所述執(zhí)行通道之間的至少一個(gè)復(fù)接器級(jí)。典型地,所述寄存器訪問與置換裝置還包括被連接在所述譯碼器寄存器文件讀出級(jí)與所述執(zhí)行通道之間的列復(fù)接器級(jí)。更優(yōu)選地,所述寄存器訪問與置換裝置還包括被連接在所述譯碼器寄存器文件讀出級(jí)與所述執(zhí)行通道之間的縱橫復(fù)接器級(jí)。在優(yōu)選實(shí)施例中,縱橫復(fù)接器級(jí)被連接在所述列復(fù)接器級(jí)與所述執(zhí)行通道之間。按照本發(fā)明的另一方面,置換控制輸入被提供到一個(gè)或多個(gè)所述譯碼器寄存器文件讀出級(jí)、所述復(fù)接器級(jí)、所述列復(fù)接器級(jí)、和所述縱橫復(fù)接器級(jí)。按照本發(fā)明的另一方面,旁路電路被連4矣在所述執(zhí)行通路的輸出端與所述寄存器訪問與置換裝置的輸入端之間。在具體的優(yōu)選實(shí)施例中,數(shù)據(jù)處理單元包括第一和第二寄存器訪問與置換裝置。第一寄存器訪問與置換裝置可被安排成訪問第一和第二運(yùn)算對(duì)象和執(zhí)行從一個(gè)或多個(gè)滾動(dòng)、分類和改組中選擇的置換。第二寄存器訪問與置換裝置可被安排成訪問至少一個(gè)另外的運(yùn)算對(duì)象和執(zhí)行廣播置換。在以上的實(shí)施例中,第一和第二寄存器訪問與置換裝置每個(gè)包括以碼器寄存Jl文件讀出級(jí)';以及(ll)連接在所述譯碼器寄存器文件讀出級(jí)與所述執(zhí)行通道之間的至少一個(gè)復(fù)接器級(jí)。優(yōu)選地,復(fù)接器級(jí)包括以下的個(gè)或多個(gè)級(jí)(i)i的列復(fù)接器級(jí);以及(ii)連接在所述列復(fù)接器級(jí)與所述執(zhí)行通道之間的縱橫復(fù)接器級(jí)。本發(fā)明的另一方面提供數(shù)據(jù)訪問和置換電路,它能夠響應(yīng)單個(gè)指令而訪問和選擇地置換數(shù)據(jù)運(yùn)算對(duì)象并把所述選擇地置換的運(yùn)算對(duì)象提供到SIMD執(zhí)行通道。本發(fā)明的附加優(yōu)點(diǎn)和新穎的特性,部分地將在接著的說明中闡述,和部分地對(duì)于本領(lǐng)域技術(shù)人員在閱讀下面的說明和附圖后將變得很明白;或通過本發(fā)明的實(shí)踐而學(xué)到。附圖簡述為了更好地了解本發(fā)明,和為了顯示本發(fā)明可以如何付諸實(shí)踐,現(xiàn)在將參考僅僅作為例子的附圖,圖上圖1顯示包括置換單元的現(xiàn)有技術(shù)設(shè)備的基本結(jié)構(gòu);圖2顯示按照本發(fā)明的實(shí)施例成行置換的寄存器訪問的基本體系結(jié)構(gòu);圖3A到3C顯示按照本發(fā)明的實(shí)施例可用于執(zhí)行可以"成行"執(zhí)行的、所謂的"滾動(dòng)"或"滑動(dòng)窗口"置換的示例性操作;圖4A和4B顯示按照本發(fā)明的實(shí)施例可用于"成行"執(zhí)行廣播置換的示例性操作;圖5到8顯示按照本發(fā)明的實(shí)施例可以"成行"執(zhí)行的示例性的所謂的"改組"或"交織"的操作;圖9到11顯示按照本發(fā)明的實(shí)施例可以"成行"執(zhí)行的示例性的所謂的"分類"或"去交織"的操作;圖12A-12C和13顯示按照本發(fā)明的實(shí)施例支持圖5A到8的改組操作的子寄存器訪問模式子組;圖14顯示按照本發(fā)明的實(shí)施例支持圖9A到11的分類操作的子寄存器訪問模式和其它類似的模式。圖15顯示按照本發(fā)明的實(shí)施例其中可以使用成行置換的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)性框圖16顯示按照本發(fā)明的實(shí)施例能夠成行置換的處理器數(shù)據(jù)通道的框圖;圖17和18顯示按照本發(fā)明的實(shí)施例用于實(shí)施圖16的寄存器訪問功能的示例性硬件;圖19是顯示按照本發(fā)明的實(shí)施例實(shí)現(xiàn)各種類型的置換的圖17上可能的復(fù)接器控制輸入的表;以及圖20顯示可以按照本發(fā)明的實(shí)施例使用的通用指令格式。詳細(xì)i兌明在按照本發(fā)明的實(shí)施例中,SIMD處理器通過使用由單個(gè)指令驅(qū)動(dòng)的兩級(jí)數(shù)據(jù)通道,在寄存器訪問期間以算術(shù)運(yùn)算來順序執(zhí)行某些類型的向量置換。這種類型的操作在這里被稱為"成行(mlme)"操作。因此處理器消除了或減小了對(duì)于被包括在程序中與SIMD存儲(chǔ)器訪問、邏輯、和算術(shù)指令并列的明顯置換指令的需要。相反,每個(gè)指令可以規(guī)定SIMD操作和要在SIMD操作之前所施加的相關(guān)運(yùn)算對(duì)象的置換(如果需要的話)。所以,程序的大小被減小,而設(shè)備性能提高。與按照本發(fā)明的實(shí)施例中SIMD處理器在寄存器訪問期間以算術(shù)運(yùn)算執(zhí)行成行置換相對(duì)比,現(xiàn)有技術(shù)的SIMD處理器需要被包括在程序中的與相關(guān)的算術(shù)運(yùn)算并列的明顯置換指令?,F(xiàn)有技術(shù)SIMD處理器的基體體系結(jié)構(gòu)與按照本發(fā)明的實(shí)施例之間的對(duì)比可以從圖l和2看到。圖1顯示現(xiàn)有技術(shù)SIMD處理器的基本體系結(jié)構(gòu),其中來自寄存器文件101的數(shù)據(jù)由互相并行地排列的置換單元102或執(zhí)行單元103使用。正如可以看到的,由置換單元102置換的數(shù)據(jù)在它以后可被執(zhí)行單元10!3作為運(yùn)算對(duì)象使用之前,必須沿通道104被反饋到寄存器文件。相反,圖2顯示按照本發(fā)明的實(shí)施例的體系結(jié)構(gòu),其中來自寄存器文件201的運(yùn)算對(duì)象被傳送通過被置換單元202,然后置換單元202把所置換的運(yùn)算對(duì)象直接饋送到執(zhí)行單元203。在本發(fā)明的實(shí)施例中,在把所置換的運(yùn)算對(duì)象提供到執(zhí)行單元之前,不需要把所置換的運(yùn)算對(duì)象送回到寄存器文件。圖1的現(xiàn)有技術(shù)處理器的并行體系結(jié)構(gòu)102-103因此由圖2的實(shí)施例的串行體系結(jié)構(gòu)202-203替代,正如在下面看到的,該串行體系結(jié)構(gòu)可以通過使用圖16-18的硬件實(shí)施。按照本發(fā)明的實(shí)施例的串行體系結(jié)構(gòu)具有許多性能優(yōu)點(diǎn),特別是對(duì)信號(hào)處理算法,這種算法使用數(shù)據(jù)運(yùn)算對(duì)象的經(jīng)常的置換,以便把機(jī)器硬件的短向量寬度與在處理器存儲(chǔ)器或寄存器文件中較長的向量寬度匹配。在流水線處理器中,可能有由于置換與SIMD執(zhí)行的串行化造成的附加滯后的代價(jià),但信號(hào)處理程序可被組織成使得這種附加滯后不會(huì)抵消本發(fā)明的實(shí)施例的性能優(yōu)點(diǎn)。寄存器訪問、向量置換和執(zhí)行(尤其是SIMD執(zhí)行)的串行化在這里有時(shí)被稱為"深度寄存器訪問"。在按照本發(fā)明的實(shí)施例中,成行向量置換可被施加到可以是數(shù)據(jù)處理指令的指令的一個(gè)或多個(gè)運(yùn)算對(duì)象。在使用具有兩個(gè)源運(yùn)算對(duì)象和一個(gè)結(jié)果運(yùn)算對(duì)象的指令的SIMD設(shè)備中,把某些類型的置換加到一個(gè)源運(yùn)算對(duì)象而把不同類型的置換加到另一個(gè)源運(yùn)算對(duì)象是特別有利的。按照本發(fā)明的實(shí)施例,發(fā)現(xiàn)有三類順序置換對(duì)數(shù)字信號(hào)處理是特別有用的廣播、滾動(dòng)和分類。第四類置換,被稱為改組置換,可以經(jīng)常用作為分類的替代(要對(duì)發(fā)布的算法或它的數(shù)據(jù)作某些重新安排),但最終比起分類置換還是不太有利的因?yàn)樗枰`活的寄存器文件訪問能力。無論如何,改組這種類型有時(shí)可以在本發(fā)明的實(shí)施例中找到應(yīng)用。在第一類順序置換中,按照本發(fā)明的實(shí)施例提供成行的廣播置換。這個(gè)實(shí)施例對(duì)于執(zhí)行諸如有限沖擊響應(yīng)(FIR)濾波器那樣的巻積處理是特別有用,它典型地把單個(gè)系數(shù)單元與長數(shù)據(jù)向量的每個(gè)單元相組合。為了有效地使用機(jī)器的短向量(例如,SIMD)寄存器,每個(gè)寄存器裝入了幾個(gè)這樣的系數(shù)單元。所以,廣播置換的目的是從短向量寄存器運(yùn)算對(duì)象中提取單個(gè)元素,并把它復(fù)制到被傳送到SIMD執(zhí)行單元的短向量的所有元素中。在第二類順序置換中,按照本發(fā)明的實(shí)施例提供成行的滾動(dòng)置換。這個(gè)實(shí)施例對(duì)于執(zhí)行諸如某些FIR濾波器那樣的"滑動(dòng)窗口"算法是特別有用的。在這樣的濾波器中,兩個(gè)長向量按元素被成對(duì)組合;然后一個(gè)向量移動(dòng)一個(gè)元素的位置,并重復(fù)進(jìn)行按元素成對(duì)的運(yùn)算;然后,向量再次被移位,并重復(fù)進(jìn)行按元素成對(duì)的運(yùn)算;依此類推。在常規(guī)的設(shè)備中,當(dāng)系數(shù)的數(shù)目很大和要被濾波的數(shù)據(jù)向量很大時(shí),系數(shù)和數(shù)據(jù)向量必須存放在處理器的外部存儲(chǔ)器中,而不是在寄存器中。對(duì)于SIMD設(shè)備,這樣的"滑動(dòng)窗口"算法通常是指處理器能夠按任意向量元素對(duì)準(zhǔn)("非對(duì)準(zhǔn)"訪問)從存儲(chǔ)器裝載短向量,例如,按16比特對(duì)準(zhǔn)的64比特字。在傳統(tǒng)的設(shè)備中,這意味著,隨著滑動(dòng)窗口移過短向量的寬度,每個(gè)元素必須從外部存儲(chǔ)器被裝載多次(例如,對(duì)于64比特字以16比特對(duì)準(zhǔn)四次)。因?yàn)橥獠看鎯?chǔ)器裝載數(shù)量很大,所以,在功率和存儲(chǔ)器帶寬方面常規(guī)的技術(shù)是昂貴的。而且,要設(shè)計(jì)能夠進(jìn)行非對(duì)準(zhǔn)訪問的存儲(chǔ)器系統(tǒng)通常是更困難和昂貴的。作為對(duì)比,按照本發(fā)明的實(shí)施例的滾動(dòng)置換允許重復(fù)的和系統(tǒng)的非對(duì)準(zhǔn)訪問外部存儲(chǔ)器被少得多的對(duì)準(zhǔn)的存儲(chǔ)器訪問所替代。在滾動(dòng)置換實(shí)施例中,短向量運(yùn)算對(duì)象是從寄存器文件中兩個(gè)相鄰短向量的級(jí)聯(lián)中提取的。所以,這種類型的置換運(yùn)算需要讀出兩個(gè)相鄰的寄存器值,然后施加置換,以便提取單個(gè)短向量,后者被傳送到執(zhí)行單元。例如,兩個(gè)64比特寄存器值(每個(gè)包含4個(gè)元素向量,每個(gè)元素16比特)可以一起滾動(dòng),以便使用圖3A-C所示的變換之一來形成64比特的單個(gè)4元素向量。代替重復(fù)處理外部存儲(chǔ)器,這時(shí)處理器訪問寄存器文件,它通常有更多的可用帶寬,以及每次訪問的功耗較低。而且,因?yàn)樗恍枰С址菍?duì)準(zhǔn)訪問,處理器存儲(chǔ)器系統(tǒng)可以被簡化。在第三類順序置換中,按照本發(fā)明的實(shí)施例提供成行的分類和或改組置換。在改組置換中,兩個(gè)向量的元素被交織;而在分類置換中,偶數(shù)和奇數(shù)元素被分開(去交織)。這些類型的置換在快速傅利葉變換、Viterbi、和Turbo碼算法、以及其它通用算法中找到應(yīng)用。通常,編程員可以選擇安排一種算法以便主要或全部使用分類而不用改組,或反之亦然。在按照本發(fā)明的實(shí)施例的成行分類置換中,一個(gè)長向量的兩個(gè)短向量段從兩個(gè)相鄰的寄存器讀出,并應(yīng)用分類運(yùn)算以便把它們組合成一個(gè)短向量運(yùn)算對(duì)象,以用于以后的SIMD算術(shù)運(yùn)算。無論被分類的長向量的有效長度是多少,要被組合的兩個(gè)短向量段總是可以方便地被安排在相鄰的寄存器中。這個(gè)特性不會(huì)自然地適用于改組,正如通過比較圖14與圖12A-13而可以看到的。所以,改組通常需要讀出兩個(gè)非相鄰的寄存器值(分開的程度取決于長向量的大小),使得分類更優(yōu)于改組,如前所述。但是,它可以簡化編程員的工作,使其能夠使用改組和分類的自由混合,這樣,訪問非相鄰的寄存器對(duì)的外加復(fù)雜性在本發(fā)明的某些實(shí)施例中可以#皮證明是正當(dāng)?shù)?。按照本發(fā)明的實(shí)施例,把數(shù)據(jù)寄存器作為源運(yùn)算對(duì)象使用的數(shù)據(jù)處理指令使用成行置換運(yùn)算(被稱為深度寄存器訪問運(yùn)算),以便對(duì)當(dāng)寄存器被讀出時(shí)產(chǎn)生的數(shù)值執(zhí)行選擇的置換運(yùn)算。在優(yōu)選實(shí)施例中,專門的匯編語言語義被用來表示由深度寄存器訪問執(zhí)行的置換和表示它使用哪些寄存器。深度寄存器訪問有兩種形式,對(duì)被發(fā)送到執(zhí)行單元的每個(gè)數(shù)據(jù)運(yùn)算對(duì)象具有一種形式;第一種形式被表示為DRAo訪問,以及第二種形式被表示為DRA!訪問。每個(gè)數(shù)據(jù)寄存器源可被看作為由多個(gè)通路寬度元素組成的短向量,例如4行,每行16比特,包括一個(gè)64比特寄存器源。寄存器源及其組成單元都可被稱為"運(yùn)算對(duì)象",這取決于上下文。在DRAo訪問中,置換運(yùn)算對(duì)于寄存器源的元素的改組和分類、以及多倍的元素(通路)寬度的元素滾動(dòng),都是可用的。改組和分類分別是指來自一個(gè)或兩個(gè)寄存器源的通路寬度元素的交織與去交織。滾動(dòng)是指來自兩個(gè)寄存器源的級(jí)聯(lián)的通路寬度元素的相鄰的寄存器寬度組的選擇。在DRA!訪問中,對(duì)于把從選擇的通路中挑選的元素廣播到寄存器運(yùn)算對(duì)象的所有的通路,置換運(yùn)算是可用的。表1詳細(xì)列出按照本發(fā)明的實(shí)施例的DRAo運(yùn)算的例子,它可被用于對(duì)第一數(shù)據(jù)寄存器源變元執(zhí)行滾動(dòng)和分類置換。在表1上,用于第一個(gè)64比特?cái)?shù)值,ValueO,的寄存器通路被標(biāo)號(hào)為O,],2,3,其中通路0表示Value0的最低位比特0到15,通路1表示比特16到31,通路2表示比特32到47,通路3表示比特48到63;而用于第二個(gè)64比特?cái)?shù)值Value1的寄存器通路被標(biāo)號(hào)為A,B,C,D,其中通路A表示Valuel的最低位比特0到15,通路B表示比特16到31,通路C表示比特32到47,通路D表示比特48到63。所顯示的置換組利用寄存器Sdi和Sdj,其中產(chǎn)0..63以及」=((1+1)%64)。表1的各列顯示對(duì)于DRA。運(yùn)算的匯編語義、意義、通路、和操作。表1:DRA。運(yùn)算<table>tableseeoriginaldocumentpage17</column></row><table>圖3A到3C顯示按照本發(fā)明的實(shí)施例的表1的置換運(yùn)算。如圖3A到3C所示,表1上的Roll3Half,Roll2Half,和RolllHalf運(yùn)算取兩個(gè)64比特值,和形成相應(yīng)于源數(shù)值(分別)向左滾動(dòng)三個(gè)、兩個(gè)、或一個(gè)16比特字段的單個(gè)64比特結(jié)果。術(shù)語半(或半個(gè)字)按慣例是指16比特值。在表1上的Sort4Mhalf和Sort4Lhalf運(yùn)算把兩個(gè)64比特值組合成一個(gè)64比特結(jié)果,從而(分別)產(chǎn)生最高位或最低位64比特結(jié)果。表1的分類置換以圖9的方式用圖形表示。下面的表2詳細(xì)列出按照本發(fā)明的實(shí)施例的DRA!運(yùn)算的例子,它可被用于對(duì)于第二數(shù)據(jù)寄存器源變元執(zhí)行廣播置換。在表2上,用于64比特?cái)?shù)值value的寄存器通路的標(biāo)號(hào)為0,1,2,和3,其中通路0表示value的最低位比特0到15,通路1表示比特16到31,通路2表示比特32到47,通路3表示比特48到63。所顯示的置換組利用寄存器Sdi,其中產(chǎn)O...63。表2的各列顯示對(duì)DRAi運(yùn)算的匯編語義、意義、通路、和操作。表2:DRAj運(yùn)算<table>tableseeoriginaldocumentpage18</column></row><table>圖4A和4B顯示按照本發(fā)明的實(shí)施例的表2的置換運(yùn)算。如圖4A所示,在表2上的BCastHalf運(yùn)算選擇四個(gè)可能的16比特半字源數(shù)值中的一個(gè)數(shù)值,以及把它復(fù)制到結(jié)果中的四個(gè)16比特通路中。如圖4B所示,在表2上的BCastWord運(yùn)算選擇兩個(gè)可能的字源數(shù)值中的一個(gè)數(shù)值,以及把它復(fù)制成橫跨結(jié)果中的兩個(gè)32比特通路。通過擴(kuò)展表1和2的運(yùn)算,圖5A到11顯示可以按照本發(fā)明的實(shí)施例執(zhí)行的成行的改組和分類置換的例子。圖5A到8顯示對(duì)被存儲(chǔ)在64比特寄存器的陣列中的16比特元素的向量的改組,它可以按照本發(fā)明的實(shí)施例"成行"地執(zhí)行。圖5A顯示用于對(duì)兩個(gè)向量進(jìn)4亍交織的改組,每個(gè)向量包含兩個(gè)16比特元素;圖5B和5C顯示用于對(duì)兩個(gè)向量進(jìn)行交織的改組的替換的表示,每個(gè)向量包含四個(gè)16比特元素;圖6A和6B顯示用于對(duì)兩個(gè)向量進(jìn)行交織的改組的替換的表示,每個(gè)向量包含八個(gè)16比特元素;圖7顯示用于對(duì)兩個(gè)向量進(jìn)行交織的改組,每個(gè)向量包含十六個(gè)16比特元素;以及圖8顯示用于對(duì)兩個(gè)向量進(jìn)行交織的改組,每個(gè)向量包含三十二個(gè)16比特元素。圖9A到11顯示對(duì)被存儲(chǔ)在64比特寄存器的陣列中的16比特元素的向量的分類,它可以按照本發(fā)明的實(shí)施例"成行"地執(zhí)行。圖9A顯示用于對(duì)兩個(gè)向量進(jìn)行去交織的分類,每個(gè)向量包含兩個(gè)16比特元素;圖9B和9C顯示用于對(duì)兩個(gè)向量進(jìn)行去交織的分類的替換的表示,每個(gè)向量包含四個(gè)16比特元素;圖IOA和10B顯示用于對(duì)兩個(gè)向量進(jìn)行去交織的分類的替換的表示,每個(gè)向量包含八個(gè)16比特元素;以及圖11顯示用于對(duì)兩個(gè)向量進(jìn)行去交織的分類,每個(gè)向量包含十六個(gè)16比特元素。圖12A-12C和13顯示按照本發(fā)明的實(shí)施例的支持圖5A到8的改組運(yùn)算的子寄存器訪問模式組。圖12A顯示用于改組具有兩個(gè)16比特元素的向量的子寄存器訪問模式,如圖5A所示;圖12B顯示用于改組具有四個(gè)16比特元素的向量的子寄存器訪問模式,如圖5B和5C所示;圖12C顯示用于改組具有八個(gè)16比特元素的向量的子寄存器訪問模式,如圖6A和6B所示;以及圖13顯示用于改組具有十六個(gè)16比特元素的向量的子寄存器訪問模式,如圖7所示。在圖12A到13的每個(gè)圖上,需要訪問在每個(gè)圖的左半部分上表示的兩個(gè)寄存器中的四個(gè)寄存器單元(即,圖12A上的單元1218-1221,圖12B上的單元1201-1204,圖12C上的單元1210-1213,和圖13上的單元1314-1:317),或需要訪問在每個(gè)圖的右半部分上表示的、兩個(gè)寄存器中的四個(gè)寄存器單元(即,圖12A上的單元1222-1225,圖12B上的單元1205-1208,圖12C上的單元1226-1229,和圖13上的單元1330-1333)。另外,在每個(gè)圖上的箭頭1209、1234和1335表示相對(duì)于陣列基元的對(duì)每個(gè)子寄存器訪問模式的對(duì)準(zhǔn)范圍。圖14顯示按照本發(fā)明的實(shí)施例的支持圖9A到11的分類運(yùn)算的子寄存器訪問模式。對(duì)于圖9A到11的所有的分類運(yùn)算,只需要一種模式。只需要訪問四個(gè)單元1401-14(H,或訪問四個(gè)單元1405-1408。因?yàn)樵醇拇嫫骺偸鞘窍噜彽?,與一個(gè)跨越的寄存器對(duì)(諸如上面提到的改組所要求的)情形相比,相關(guān)性檢驗(yàn)是更簡單的,寄存器訪問也是這樣。圖15顯示按照本發(fā)明的實(shí)施例的可以使用成行置換的計(jì)算機(jī)系統(tǒng)的體系結(jié)構(gòu)性框圖。取指令單元1502從指令存儲(chǔ)器1501得到指令,并把它們傳送到指令譯碼單元1503。指令譯碼單元1503譯碼指令的各個(gè)分量,包括與該或每個(gè)運(yùn)算對(duì)象有關(guān)的位置信息,并據(jù)此提供控制輸出。指令譯碼單元1503從指令中得到將要供該指令的操作使用的至少一個(gè)運(yùn)算對(duì)象的地址;并且該地址被用來1508從寄存器文件1504得到相應(yīng)的數(shù)據(jù)。指令譯碼單元1503還從指令中得到置換操作碼,它可被用來1507確定由置換單元1505對(duì)于由同一個(gè)指令從寄存器文件1504得到的數(shù)據(jù)所執(zhí)行的置換運(yùn)算的性質(zhì)。指令譯碼單元1503還從指令中得到一個(gè)執(zhí)行操作碼,它可被用來1509確定由SIMD執(zhí)行單元1506對(duì)經(jīng)由置換單元1505提供的向量運(yùn)算對(duì)象的每個(gè)元素所執(zhí)行的運(yùn)算的性質(zhì)。因此,數(shù)據(jù)訪問的類型和位置、在訪問的向量元素上置換的特性、和對(duì)置換過的向量的元素隨后執(zhí)行的SIMD運(yùn)算的性質(zhì)在單個(gè)指令中被規(guī)定。圖16顯示按照本發(fā)明的實(shí)施例的其中可以使用成行的置換的、相應(yīng)于圖15上的寄存器文件1504、置換單元1505、和執(zhí)行單元1506的組合的處理器數(shù)據(jù)通道1610的框圖。在本實(shí)施例中,使用數(shù)據(jù)寄存器作為源運(yùn)算對(duì)象的數(shù)據(jù)處理指令可使用深度寄存器訪問設(shè)備1646A,B來對(duì)在寄存器被讀出時(shí)產(chǎn)生的數(shù)值執(zhí)行選擇的置換運(yùn)算。在本例中,圖16的實(shí)施例的處理器數(shù)據(jù)通道1610被形成流水線,以使得在由環(huán)路包圍的每個(gè)通道上有至少一組流水線寄存器,該環(huán)路經(jīng)由旁路復(fù)接器1647通過深度寄存器訪問塊1646A和1646B以及通過執(zhí)行通路1626-1629從執(zhí)行通路傳送輸出Z0-Z3。本領(lǐng)域技術(shù)人員將會(huì)看到,可以使用任何適當(dāng)?shù)牧魉€方案。在圖16的實(shí)施例的讀出單元1632中,三個(gè)64比特短向量寄存器數(shù)值從數(shù)據(jù)寄存器文件1638被讀出,并由按照指令中的置換操作碼實(shí)施上述各種成行的置換運(yùn)算的深度寄存器訪問單元1646A和1646B來對(duì)其進(jìn)行置換,以便形成兩個(gè)64比特向量運(yùn)算對(duì)象1639和1640。這兩個(gè)被置換的向量運(yùn)算對(duì)象按通路方式被傳遞到三個(gè)SIMD執(zhí)行通路1626-1629,以用于按照在指令中的執(zhí)行操作碼進(jìn)一步處理。按通路方式的結(jié)果Z0-Z3共同形成單個(gè)64比特結(jié)果向量,它經(jīng)由寫通道1641被返回而寫入到寄存器文件1638,以及可以任選地被直接旁路到深度寄存器訪問單元1646A和1646B,以用于立即執(zhí)行隨后的流水線操作。按照本發(fā)明的實(shí)施例,將會(huì)看到可以對(duì)于圖16的數(shù)據(jù)處理單元作出修改。例如,可以使用任何數(shù)目的SIMD執(zhí)行通路1626-1629;這些通路可以對(duì)任何寬度的運(yùn)算對(duì)象進(jìn)行運(yùn)算;而且置換單元可以對(duì)對(duì)象子組進(jìn)行置換運(yùn)算,而不一定需要置換所有的運(yùn)算對(duì)象。另外,置換不一定必須是所顯示的那些,而也可以是它們的組合;或這樣的置換的選擇和集合;或其它類型的置換。另外,置換運(yùn)算可以由處在執(zhí)行行1626-1629下面的單元執(zhí)行。這樣的"后執(zhí)行"置換單元可以單獨(dú)地使用或除了在數(shù)據(jù)執(zhí)行(諸如借助深度寄存器訪問裝置1646)之前被執(zhí)行的、至今描述的"預(yù)執(zhí)行"置換以外被使用。在由"后執(zhí)行"置換單元置換后,運(yùn)算對(duì)象然后被寫回到寄存器文件1638,或經(jīng)由復(fù)接器1647被旁路。此外,用于成行置換單元的控制信息可以從所存儲(chǔ)的"配置"數(shù)據(jù)中部分地或全部地得到,而不是從逐個(gè)周期地發(fā)布的指令中載送的信息得到。這樣的配置信息可以在例如程序控制下被上載到處理器控制寄存器,以及然后可以在多個(gè)處理器周期內(nèi)把靜態(tài)"偽指令"提供到置換單元,直至新的配置被上載為止,或直至可以超過靜態(tài)配置信息的特定指令被發(fā)布為止。圖17和18顯示按照本發(fā)明的實(shí)施例的用于實(shí)施圖16的深度寄存器訪問功能1626A和1646B和用于讀出圖16的寄存器1638的示例性硬件。圖17顯示使用深度寄存器訪問以便從數(shù)據(jù)寄存器文件1638獲取示例性64比特向量SRCO的硬件;而圖18顯示使用深度寄存器訪問以便從數(shù)據(jù)寄存器文件16468獲取示例性64比特向量SRC1的石更件。在圖17和18中,在1773,1774的IndexO和在1875,1876的Index1,每個(gè)指向數(shù)據(jù)寄存器文件1638中的64比特向量。數(shù)據(jù)寄存器文件1638包含64個(gè)向量(在本例中),這才羊,IndexO和Indexl的每個(gè)包^舌6比凈爭,其在圖17和18上編號(hào)為0到5。圖17和18的i,碼器1777和1878是簡單的32行輸出1行的譯碼器,而訪問64個(gè)16比特的字是安排成成對(duì)的32行。譯碼器1777和1878是寄存器文件讀出級(jí)1779,1880的一部分,它們后面是列復(fù)接器級(jí)1781,1882以及運(yùn)算對(duì)象縱橫開關(guān)級(jí)1783,1884,后者分別具有64或32根交叉線。圖17的輸入端1785提供深度寄存器訪問的使能信號(hào),這些訪問使用對(duì)所訪問數(shù)據(jù)向量的滾動(dòng)和分類置換;附加的縱橫控制輸入端1787必須適當(dāng)?shù)卦O(shè)置,以便按照?qǐng)D19的表確定所使用的深度寄存器訪問的類型。按照本發(fā)明的實(shí)施例,輸入Xbar0_ctl3,XbarO—ctl2,和XbarO—ctll,XbarO—ctlO以及控制輸入1785的數(shù)值確定深度寄存器訪問是否為正常的訪問,或深度寄存器訪問是否涉及到諸如滾動(dòng)或分類置換那樣的置換。圖18的輸入端1886為使用對(duì)訪問的數(shù)據(jù)向量的廣播置換的深度寄存器訪問提供使能信號(hào),并為正常的寄存器訪問(即,不用置換的訪問)提供使能信號(hào)。圖17和18的輸出1788和1889分別是64比特向量SRCO和SRC1的4個(gè)通路。這些輸出通常被表示為圖16上的置換的輸出1639和1640,其顯示每個(gè)四元素向量的一個(gè)元素如何按通路方式提供到SIMD電路。在圖17的輸入另外地顯示一個(gè)單元1796,它只是一個(gè)5比特加法器,用來執(zhí)行以32為模的算術(shù)運(yùn)算并在溢出事件時(shí)能夠返繞(Wrapping);以及顯示一個(gè)被連接到列復(fù)接器級(jí)的控制輸入邏輯級(jí)1799,該級(jí)支持對(duì)第一深度寄存器訪問單元1646A中可得到的不同類型的置換運(yùn)算進(jìn)行選擇。在所公開的實(shí)施例的功能方面在圖17與18之間的這些和其它最小差別是本領(lǐng)域技術(shù)人員容易理解的。按照本發(fā)明的實(shí)施例,由圖17和]8的硬件使用來控制要被使用的深度寄存器訪問類型的輸入的數(shù)值(諸如圖19的XbarO輸入的數(shù)值,或用于控制圖17和18的復(fù)接器的其它輸入),可以由指令中預(yù)定位置處的代碼值確定。即,在指令分組中預(yù)定的比特位置處的指定的比特可被使用來確定在指令中要被使用的深度寄存器訪問的類型。因此,例如,圖15的實(shí)施例的指令譯碼單元1503可以使用在指令的特定的字段中找到的或與其它指令信息相組合地被編碼的置換運(yùn)算碼的值,來控制圖17或18的縱橫中的復(fù)接器選擇。指定的比特的數(shù)值可被譯碼,并可能與被存儲(chǔ)在處理器中的其它配置信息相組合,以便來確定圖19的XbarO輸入的數(shù)值,從而確定該指令要使用深度寄存器訪問的哪種形式,諸如要施加的分類、滾動(dòng)、廣播、或改組的類型。例如,圖20顯示可以按照本發(fā)明的實(shí)施例所使用的通用指令格式,不過將會(huì)看到,也可以使用其它的指令格式。指令2001包括字段2002,它包括規(guī)定執(zhí)行操作的類型(例如,裝載、存儲(chǔ)、SIMD加法、SIMD乘法等)的比特;字段2003,它包括規(guī)定要施加的置換的類型(例如,分類、滾動(dòng)、廣播等)的比特;以及字段2004,規(guī)定源在寄存器文件中運(yùn)算對(duì)象和結(jié)果的位置。因此可以看到,圖16到19的實(shí)施例顯示在寄存器文件、置換單元、和執(zhí)行單元之間的串行的、成行連接;這與圖2的實(shí)施例上所顯示的方式是類似的。具體地,參照?qǐng)D16到18,相應(yīng)于圖2的寄存器文件201的圖16的數(shù)據(jù)寄存器文件讀出1638,與相應(yīng)于圖2的置換單元202的深度寄存器訪問裝置1646A和1646B串行地放置;它又與一起相應(yīng)于圖2的執(zhí)行單元203的SIMD執(zhí)行行1626-1629串聯(lián)。本領(lǐng)域技術(shù)人員將會(huì)看到,雖然以上描述了被認(rèn)為是最好的模式以及執(zhí)行本發(fā)明的其它適當(dāng)?shù)哪J?,但本發(fā)明不應(yīng)當(dāng)限于在優(yōu)選實(shí)施例的說明中公開的具體的設(shè)備配置或方法。本領(lǐng)域技術(shù)人員將會(huì)看到,本發(fā)明具有寬廣的應(yīng)用范圍,以及實(shí)施例允許在不背離本發(fā)明概念下的各種各樣的修改。權(quán)利要求1.一種用于計(jì)算機(jī)處理器的數(shù)據(jù)處理單元,該數(shù)據(jù)處理單元包括寄存器訪問電路,能夠響應(yīng)數(shù)據(jù)訪問指令而訪問一個(gè)或多個(gè)數(shù)據(jù)運(yùn)算對(duì)象;置換電路,能夠響應(yīng)所述數(shù)據(jù)訪問指令而執(zhí)行置換運(yùn)算;以及執(zhí)行電路,所述電路被安排成使得在使用時(shí),置換運(yùn)算與(i)寄存器訪問和(ii)對(duì)該或每個(gè)所訪問的運(yùn)算對(duì)象執(zhí)行數(shù)據(jù)處理運(yùn)算是串行地執(zhí)行的。2.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中所述電路能夠訪問單個(gè)向量寄存器運(yùn)算對(duì)象和對(duì)所述單個(gè)向量寄存器運(yùn)算對(duì)象執(zhí)行置換運(yùn)3.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中所述電路能夠訪問多個(gè)向量寄存器運(yùn)算對(duì)象和對(duì)所述多個(gè)向量寄存器運(yùn)算對(duì)象執(zhí)行組合置換運(yùn)算。4.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中所述電路能夠?qū)τ诘谝缓偷诙\(yùn)算對(duì)象或運(yùn)算對(duì)象組執(zhí)行不同的置換運(yùn)算。5.按照權(quán)利要求1的數(shù)據(jù)處理單元,包括譯碼器,能夠?qū)碜詥蝹€(gè)程序指令的寄存器訪問信息和置換信息進(jìn)行譯碼。6.按照權(quán)利要求5的數(shù)據(jù)處理單元,包括譯碼器,能夠?qū)碜运鰡蝹€(gè)程序指令的數(shù)據(jù)處理信息進(jìn)行譯碼。7.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中所述電路可配置成對(duì)單個(gè)指令的數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行多個(gè)相繼的數(shù)據(jù)處理運(yùn)算。8.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中所述置換電路可連接在提供到所述執(zhí)行電路之前被提供到所述置換電路。9.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中所述執(zhí)行電路可連接在所述寄存器訪問電路與所述置換電路之間,以使得所訪問的運(yùn)算對(duì)象在傳送通過所述執(zhí)行電路之后被提供到所述置換電路。10.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中所述置換電路和所述執(zhí)行電路是可連接的,以使得在使用時(shí),第一置換運(yùn)算在數(shù)據(jù)處理運(yùn)算執(zhí)行之前進(jìn)行,和第二置換運(yùn)算在數(shù)據(jù)處理運(yùn)算執(zhí)行之后進(jìn)行。11.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中所述電路能夠執(zhí)行從以下的一個(gè)或多個(gè)運(yùn)算中選擇的數(shù)據(jù)處理運(yùn)算算術(shù)運(yùn)算、邏輯運(yùn)算、隨后的置換運(yùn)算、和處理器存儲(chǔ)器讀出或?qū)懭氩僮鳌?2.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中寄存器訪問電路包括寄存器文件讀電路。13.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中寄存器訪問電路包括寄存器文件寫電路。14.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中寄存器訪問電路包括一組控制輸入,用于確定從多個(gè)訪問操作中選擇的訪問操作的類型。15.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中所述置換電路包括一個(gè)或多個(gè)的(i)列復(fù)接器級(jí)和(ii)縱橫復(fù)接器級(jí)。16.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中置換電路包括一組控制輸入,用于確定從多種置換運(yùn)算中選擇的置換運(yùn)算的類型。17.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中置換電路支持從一個(gè)或多個(gè)以下的置換中選擇的置換運(yùn)算類型滾動(dòng)置換、分類置換、改組置換、廣播置換、選擇置換、和另外的類型的置換。18.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中執(zhí)行電路能夠單指令多數(shù)據(jù)執(zhí)行。19.按照權(quán)利要求1的數(shù)據(jù)處理單元,其中置換電路能夠?qū)Φ谝辉催\(yùn)算對(duì)象對(duì)執(zhí)行第一類型的置換運(yùn)算和對(duì)第二源運(yùn)算對(duì)象執(zhí)行第二類型的置換運(yùn)算。20.按照權(quán)利要求19的數(shù)據(jù)處理單元,其中第一類型的置換運(yùn)算包括來自包含滾動(dòng)置換和分類置換的組的置換。21.按照權(quán)利要求19的數(shù)據(jù)處理單元,其中第二類型的置換運(yùn)算包括廣播置換。22.按照權(quán)利要求19的數(shù)據(jù)處理單元,其中用于對(duì)所述第一源運(yùn)算對(duì)象對(duì)執(zhí)行所述第一類型置換的所述置換電路的一部分可連接成接收第一和第二64比特源運(yùn)算對(duì)象。23.按照權(quán)利要求22的數(shù)據(jù)處理單元,其中所述置換電路的所述部分可連接成提供滾動(dòng)的輸出,包括從兩個(gè)64比特源值得到的單個(gè)64比特結(jié)果,該64比特結(jié)果相應(yīng)于源數(shù)值滾動(dòng)了16比特的半字段的一個(gè)整數(shù)。24.按照權(quán)利要求22的數(shù)據(jù)處理單元,其中用于執(zhí)行所述第一類型的置換的所述置換電路的一部分可連接成提供分類輸出,包括從兩個(gè)64比特源數(shù)值得到的單個(gè)64比特結(jié)果,該64比特結(jié)果可選擇成為分類的結(jié)果的最高位或最低位64比特。25.按照權(quán)利要求19的數(shù)據(jù)處理單元,其中用于執(zhí)行所述第二類型的置換的所述置換電路的一部分可連接成提供廣播輸出,該輸出在64比特結(jié)果中在多個(gè)16比特通路上重復(fù)所選擇的16比特的半個(gè)字。26.—種操作用于計(jì)算機(jī)處理器的數(shù)據(jù)處理單元的方法,該方法包括響應(yīng)數(shù)據(jù)訪問指令,對(duì)從計(jì)算機(jī)處理器的寄存器文件訪問的至少一個(gè)數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行置換運(yùn)算,置換運(yùn)算是與(i)訪問寄存器以得到所述至少一個(gè)數(shù)據(jù)運(yùn)算對(duì)象和(ii)對(duì)所述至少一個(gè)數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行數(shù)據(jù)處理運(yùn)算串行地執(zhí)行的。27.按照權(quán)利要求26的方法,其中置換運(yùn)算是對(duì)單個(gè)向量寄存器運(yùn)算對(duì)象執(zhí)行的。28.按照權(quán)利要求26的方法,其中置換運(yùn)算是對(duì)多個(gè)向量寄存器運(yùn)算對(duì)象執(zhí)行的。29.按照權(quán)利要求26的方法,還包括根據(jù)單個(gè)程序指令執(zhí)行與訪問寄存器串行的置換運(yùn)算。30.按照權(quán)利要求26的方法,還包括對(duì)單個(gè)指令的數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行多個(gè)接連的數(shù)據(jù)處理運(yùn)算。31.按照權(quán)利要求26的方法,其中置換運(yùn)算在執(zhí)行數(shù)據(jù)處理運(yùn)算之前執(zhí)行。32.按照權(quán)利要求26的方法,其中置換運(yùn)算在執(zhí)行數(shù)據(jù)處理運(yùn)算之后執(zhí)行。33.按照權(quán)利要求26的方法,其中第一置換運(yùn)算在執(zhí)行數(shù)據(jù)處理運(yùn)算之前執(zhí)行和第二置換運(yùn)算在執(zhí)行數(shù)據(jù)處理運(yùn)算之后執(zhí)行。34.按照權(quán)利要求26的方法,還包括根據(jù)所述指令的操作碼部分從多個(gè)置換運(yùn)算類型中選擇置換運(yùn)算的類型。35.按照權(quán)利要求26的方法,還包括從以下的運(yùn)算中選擇執(zhí)行的數(shù)據(jù)處理運(yùn)算算術(shù)運(yùn)算、邏輯運(yùn)算、隨后的置換運(yùn)算、和處理器存儲(chǔ)器讀出或?qū)懭氩僮鳌?6.按照權(quán)利要求26的方法,還包括使用一組置換控制輸入以便至少部分地確定從多個(gè)置換運(yùn)算類型中選擇的置換運(yùn)算的類型。37.按照權(quán)利要求36的方法,其中可用的多個(gè)置換運(yùn)算類型包括從以下置換中選擇的一個(gè)或多個(gè)滾動(dòng)置換、分類置換、改組置換、廣播置換、選擇置換、和另外的類型的置換。38.按照權(quán)利要求26的方法,還包括根據(jù)數(shù)據(jù)處理指令的操作碼部分來確定一組置換控制輸入的數(shù)值。39.按照權(quán)利要求26的方法,其中數(shù)據(jù)處理單元實(shí)施單指令多數(shù)據(jù)執(zhí)行。40.按照權(quán)利要求26的方法,其中執(zhí)行置換和數(shù)據(jù)處理運(yùn)算,包括執(zhí)行來自一個(gè)組中的算法的至少一個(gè)部分,該組包括快速傅利葉變換;Viterbi編碼;Turbo編碼;有限沖擊響應(yīng)濾波器算法;另一個(gè)通信算法。41.按照權(quán)利要求26的方法,其中第一類型的置換運(yùn)算是對(duì)于第一源運(yùn)算對(duì)象對(duì)執(zhí)行的,和第二類型的置換運(yùn)算是對(duì)于第二源運(yùn)算對(duì)象執(zhí)行的。42.按照權(quán)利要求41的方法,其中執(zhí)行第一類型的置換運(yùn)算包括執(zhí)行來自一個(gè)包含滾動(dòng)置換和分類置換的組的置換。43.按照權(quán)利要求41的方法,其中執(zhí)行第二類型的置換運(yùn)算包括執(zhí)行廣播置換。44.按照權(quán)利要求41的方法,其中執(zhí)行一個(gè)或多個(gè)的、該第一和第二類型的置換運(yùn)算,包括使用64比特?cái)?shù)據(jù)寄存器源變元。45.按照權(quán)利要求44的方法,其中執(zhí)行第一類型的置換運(yùn)算允許執(zhí)行滾動(dòng)運(yùn)算,以便從兩個(gè)64比特源數(shù)值形成單個(gè)64比特結(jié)果,該64比特結(jié)果相應(yīng)于源數(shù)值滾動(dòng)了16比特元素的一個(gè)整數(shù)。46.按照權(quán)利要求44的方法,其中執(zhí)行第一類型的置換運(yùn)算允許執(zhí)行分類運(yùn)算,以便從兩個(gè)64比特源數(shù)值形成單個(gè)64比特結(jié)果,該64比特結(jié)果可選擇為最高位或最低位64比特分類結(jié)果。47.按照權(quán)利要求44的方法,其中執(zhí)行第一類型的置換運(yùn)算包括執(zhí)行改組運(yùn)算,以用于交織兩個(gè)向量,每個(gè)向量包含16比特元素的一個(gè)整數(shù)。48.按照權(quán)利要求47的方法,其中16比特元素的整數(shù)是2的整數(shù)麥。49.按照權(quán)利要求44的方法,其中執(zhí)行第二類型的置換運(yùn)算允許執(zhí)行廣播運(yùn)算,該運(yùn)算能夠在64比特結(jié)果中在多個(gè)16比特通路上重復(fù)16比特的半字。50.計(jì)算機(jī)程序產(chǎn)品,包括程序代碼裝置,它包括指令序列,其中計(jì)算機(jī)程序產(chǎn)品適合于在計(jì)算機(jī)上運(yùn)行,以使得由該序列的數(shù)據(jù)訪問指令的至少一部分確定的置換運(yùn)算是對(duì)從寄存器文件訪問的一個(gè)或多個(gè)數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行的,該置換運(yùn)算是與(i)對(duì)數(shù)據(jù)運(yùn)算對(duì)象的寄存器訪問和(ii)對(duì)數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行數(shù)據(jù)處理運(yùn)算串行地執(zhí)行的。51.—種用于計(jì)算機(jī)的數(shù)據(jù)處理單元,包括寄存器文件;寄存器訪問和置換設(shè)備,它能夠根據(jù)數(shù)據(jù)訪問指令而訪問在所述寄存器文件中的至少一個(gè)數(shù)據(jù)運(yùn)算對(duì)象,所述寄存器訪問和置換設(shè)備包括置換電路,用來根據(jù)所述指令的置換操作碼部分而選擇地置換所述訪問的數(shù)據(jù)運(yùn)算對(duì)象;以及數(shù)據(jù)執(zhí)行通道,被安排成與所述寄存器訪問和置換設(shè)備串聯(lián),所述數(shù)據(jù)執(zhí)行通道用來根據(jù)所述指令的執(zhí)行操作碼部分對(duì)所述選擇地置換的數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行運(yùn)算。52.如在權(quán)利要求51中的數(shù)據(jù)處理單元,其中所述寄存器訪問和置換設(shè)備包括被連接在所述寄存器文件與所述執(zhí)行通道之間的譯碼器寄存器文件讀出級(jí)。53.如在權(quán)利要求52中的數(shù)據(jù)處理單元,其中所述寄存器訪問和置換設(shè)備包括被連接在所述譯碼器寄存器文件讀出級(jí)與所述執(zhí)行通道之間的至少一個(gè)復(fù)接器級(jí)。54.如在權(quán)利要求52中的數(shù)據(jù)處理單元,其中所述寄存器訪問和道之間的列復(fù)接器級(jí)。55.如在權(quán)利要求52中的數(shù)據(jù)處理單元,其中所述寄存器訪問和置換設(shè)備包括被連接在所述譯碼器寄存器文件讀出級(jí)與所述執(zhí)行通道之間的縱橫復(fù)4妄器級(jí)。56.如在權(quán)利要求52中的數(shù)據(jù)處理單元,其中置換控制輸入被提供到所述譯碼器寄存器文件讀出級(jí)。57.如在權(quán)利要求53中的數(shù)據(jù)處理單元,其中置換控制輸入被提供到所述復(fù)接器級(jí)。58.如在權(quán)利要求54中的數(shù)據(jù)處理單元,其中置換控制輸入被提供到所述列復(fù)接器級(jí)。59.如在權(quán)利要求55中的數(shù)據(jù)處理單元,其中置換控制輸入被提供到所述縱橫復(fù)接器級(jí)。60.如在權(quán)利要求51中的數(shù)據(jù)處理單元,包括被連接在所述執(zhí)行通道的輸出端與所述寄存器文件訪問和置換設(shè)備的輸入端之間的旁路電路。61.如在權(quán)利要求51中的數(shù)據(jù)處理單元,包括第一和第二寄存器訪問和置換電路。62.如在權(quán)利要求61中的數(shù)據(jù)處理單元,其中所述第一寄存器訪問和置換電路被安排成訪問第一和第二運(yùn)算對(duì)象,以及執(zhí)行從一個(gè)或多個(gè)滾動(dòng)、分類、改組中選擇的置換。63.如在權(quán)利要求61中的數(shù)據(jù)處理單元,其中所述第二寄存器訪問和置換電路被安排成訪問至少一個(gè)運(yùn)算對(duì)象,以及執(zhí)行廣播置換。64.如在權(quán)利要求61中的數(shù)據(jù)處理單元,其中所述第一和第二寄存器訪問和置換電路的每個(gè)包括以下的一個(gè)或多個(gè)(i)被連接在所述寄存器文件與所述執(zhí)行通道之間的譯碼器寄存器文件讀出級(jí);(ii)被連接在所述譯碼器寄存器文件讀出級(jí)與所述執(zhí)行通道之間的至少一個(gè)復(fù)接器級(jí)。65.如在權(quán)利要求64中的數(shù)據(jù)處理單元,其中所述至少一個(gè)復(fù)接器級(jí)包括以下的一個(gè)或多個(gè)(i)被連接在所述譯碼器寄存器文件讀出級(jí)與執(zhí)行通道之間的列復(fù)接器級(jí);(ii)被連接在所述列復(fù)接器級(jí)與所述執(zhí)行通道之間的縱橫復(fù)接器級(jí)。66.如在權(quán)利要求51中的數(shù)據(jù)處理單元,其中所述執(zhí)4亍通道包括SIMD電路。67.—種指令,包括(i)規(guī)定數(shù)據(jù)訪問的類型的數(shù)據(jù)訪問操作碼部分;(ii)規(guī)定置換運(yùn)算的類型的置換操作碼部分;(iii)規(guī)定另外的操作的執(zhí)行操作碼部分;以及至少一個(gè)數(shù)據(jù)運(yùn)算對(duì)象源的指示。68.—種用于計(jì)算機(jī)處理器的數(shù)據(jù)處理單元,包括以串聯(lián)連接方式的寄存器訪問單元、向量置換電路、和至少一個(gè)執(zhí)行通道;該設(shè)備還包括譯碼單元,用來響應(yīng)單個(gè)指令而控制對(duì)至少一個(gè)向量運(yùn)算對(duì)象的訪問、選擇置換至少一個(gè)向量運(yùn)算對(duì)象、以及執(zhí)行至少一個(gè)另外的操作。全文摘要按照本發(fā)明的實(shí)施例,公開了數(shù)據(jù)處理單元、操作數(shù)據(jù)處理單元的方法、計(jì)算機(jī)程序產(chǎn)品和指令。在按照本發(fā)明的一個(gè)實(shí)施例中,提供了用于計(jì)算機(jī)處理器的數(shù)據(jù)處理單元,數(shù)據(jù)處理單元包括深度寄存器訪問機(jī)制,它能夠?qū)λL問的計(jì)算機(jī)處理器的寄存器文件中至少一個(gè)數(shù)據(jù)運(yùn)算對(duì)象執(zhí)行置換運(yùn)算,置換運(yùn)算是與(i)用于數(shù)據(jù)運(yùn)算對(duì)象的寄存器訪問和(ii)對(duì)運(yùn)算對(duì)象執(zhí)行數(shù)據(jù)處理運(yùn)算串行地執(zhí)行的。文檔編號(hào)G06F9/30GK101208658SQ200680011240公開日2008年6月25日申請(qǐng)日期2006年4月6日優(yōu)先權(quán)日2005年4月8日發(fā)明者S·菲利克斯,S·諾爾斯申請(qǐng)人:艾色拉公司