專利名稱:用于在雙通道處理器中控制處理的裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機處理器、操作所述處理器的方法以及包含用于所述計算機的指令集合的計算機程序產(chǎn)品。
背景技術(shù):
為了提高計算機處理器的速度,現(xiàn)有技術(shù)中的結(jié)構(gòu)已經(jīng)使用了雙執(zhí)行通道來執(zhí)行指令。雙執(zhí)行通道處理器能依據(jù)單指令多數(shù)據(jù)(SIMD)的原則進行操作,利用并行操作來提高處理器的速度。
然而,盡管使用了雙執(zhí)行通道和SIMD處理,現(xiàn)在仍存在提高處理器速度的需求。典型的雙執(zhí)行通道處理器使用兩個基本上相同的通道,所以每個通道都處理控制代碼和數(shù)據(jù)路徑(data path)代碼。雖然已知的處理器支持32位標準編碼和16位“緊湊”編碼的組合,但這樣的方案存在幾個缺點,包括在16位格式中可用的少數(shù)幾位信息中缺乏語義內(nèi)容。
此外,常規(guī)的通用數(shù)字信號處理器不能匹配在很多場合下的應(yīng)用程序?qū)S盟惴?,其中包括?zhí)行例如卷積、快速傅立葉變換、Trellis/Viterbi編碼、相關(guān)和有限脈沖響應(yīng)濾波的特殊操作以及其它操作。
發(fā)明內(nèi)容
在根據(jù)本發(fā)明的一個實施例中,提供了一計算機處理器。所述計算機處理器包括(a)解碼單元,用于解碼來自于存儲器的一串指令包,其中每個指令包包括多條指令;(b)第一處理通道,其包括多個功能單元并可操作用于執(zhí)行控制處理操作;以及(c)第二處理通道,其包括多個功能單元并可操作用于執(zhí)行數(shù)據(jù)處理操作;其中所述解碼單元可操作用于接收一指令包,并檢測所述指令包是否定義了(i)多個控制指令或(ii)其中的一個或多個指令為數(shù)據(jù)處理指令的多個指令,并且其中當所述解碼單元檢測到所述指令包包括多個控制指令時,所述控制指令被提供給所述第一處理通道以按照程序的順序執(zhí)行。
在相關(guān)的實施例中,所述計算機處理器的解碼單元可操作用于檢測包含三個控制指令的指令包以及用于控制執(zhí)行所述三個控制指令中的每一個的控制過程,所述執(zhí)行以所述指令在所述指令包中出現(xiàn)的順序進行。所述解碼單元也可操作用于檢測包含多個長度相等的控制指令的指令包,或用于檢測在指令包中的位長(bit length)在18位到24位之間的控制指令,以及特別用于檢測每個均具有21位位長的多個控制指令。所述解碼單元可操作用于接收并解碼位長為64位的指令包。
在進一步的相關(guān)實施例中,所述解碼單元可操作用于檢測何時在所述指令包中存在至少一數(shù)據(jù)處理指令,并且作為響應(yīng),使相關(guān)的數(shù)據(jù)被提供給所述數(shù)據(jù)處理通道。所述解碼單元也可操作用于檢測所述指令包包括至少一數(shù)據(jù)處理指令以及從一個或多個存儲器存取指令、控制指令以及數(shù)據(jù)處理指令中選出的一個進一步的指令。所述至少一數(shù)據(jù)處理指令和所述進一步的指令可被同時執(zhí)行。所述第二處理通道可專門用于數(shù)據(jù)處理操作的執(zhí)行,并且數(shù)據(jù)處理指令可以匯編語言的形式提供。所述控制處理操作可基于直到第一預定義位寬的操作數(shù)執(zhí)行,而所述數(shù)據(jù)處理操作可基于直到第二預定義位寬的數(shù)據(jù)執(zhí)行,所述第二預定義位寬大于所述第一預定義位寬。
在進一步的相關(guān)實施例中,所述第一處理通道可包括從一個或多個控制寄存器文件,控制執(zhí)行單元,分支執(zhí)行單元和裝載/存儲單元中選出的單元。所述第二處理通道可包括數(shù)據(jù)執(zhí)行路徑,所述路徑包括可配置的數(shù)據(jù)執(zhí)行單元。所述第二處理通道也可包括數(shù)據(jù)執(zhí)行路徑,所述路徑包括固定的數(shù)據(jù)執(zhí)行單元。在使用中,一個或多個所述可配置的和固定的數(shù)據(jù)執(zhí)行單元可根據(jù)單指令多數(shù)據(jù)的原則進行操作。所述數(shù)據(jù)處理通道可包括一個或多個數(shù)據(jù)寄存器文件和裝載/存儲單元。一單個的裝載/存儲單元可被所述控制處理通道和所述數(shù)據(jù)處理通道通過各自的端口進行存取。
在進一步的相關(guān)實施例中,所述解碼單元可操作用于檢測包含至少一數(shù)據(jù)處理指令的指令包,其中所述至少一數(shù)據(jù)處理指令的位長在30至38位之間,例如,所述位長可為34位。所述解碼單元也可操作用于檢測包含數(shù)據(jù)處理操作和存儲器存取指令的指令包。所述存儲器存取指令的位長可為,例如28位。所述解碼單元也可操作用于檢測包含數(shù)據(jù)處理指令和控制處理指令的指令包。所述控制處理指令可以是C代碼或其變型。所述解碼單元也可操作用于檢測匯編語言形式的數(shù)據(jù)處理指令。
在根據(jù)本發(fā)明的另一個實施例中,提供了一操作計算機處理器的方法,所述計算機處理器包括第一和第二處理通道,每一個處理通道具有多個功能單元,其中所述第一處理通道可操作用于執(zhí)行控制處理操作而所述第二處理通道可操作用于執(zhí)行數(shù)據(jù)處理操作。所述方法包括(a)從存儲器中接收一系列指令包,每一個所述指令包包括多個定義操作的指令;(b)通過確定所述指令包是否定義了(i)多個控制指令或(ii)至少一個數(shù)據(jù)處理指令,來依次解碼每一個指令包;并且其中當所述解碼單元檢測到所述指令包包括多個控制指令時,提供所述多個控制指令給所述第一處理通道以按照序列執(zhí)行。
在根據(jù)本發(fā)明的另一個實施例中,提供了一計算機程序產(chǎn)品,其中包括用于使計算機按照前述的方法進行操作的程序代碼裝置。
在根據(jù)本發(fā)明的進一步的實施例中,提供了計算機程序代碼,其中包括用于使計算機按照前述的方法進行操作的一系列指令。
在根據(jù)本發(fā)明的另一個實施例中,提供了一計算機指令集合,其中包括第一類指令包和第二類指令包,所述第一類指令包中的每一個指令包包括順序執(zhí)行的多個控制指令,所述第二類指令包中的每一個指令包包括同時執(zhí)行的至少一數(shù)據(jù)處理指令和一進一步的指令,所述進一步的指令從一個或多個存儲器存取指令、控制指令和數(shù)據(jù)處理指令中選擇得出。
本發(fā)明的其它優(yōu)點和新穎的特征部分地將在下面的描述中闡明,并且部分地通過下面的說明和附圖的檢驗,對本領(lǐng)域的技術(shù)人員變得顯而易見,或者可以通過實踐本發(fā)明而被了解。
為了更好地理解本發(fā)明,以及說明可以怎樣實現(xiàn)上述內(nèi)容,將通過舉例的方式參考附圖進行說明,其中圖1是根據(jù)本發(fā)明的一個實施例的非對稱雙執(zhí)行通道計算機處理器的結(jié)構(gòu)圖;圖2顯示了根據(jù)本發(fā)明的一個實施例的用于圖1中的處理器的典型的指令類;以及圖3是顯示了根據(jù)本發(fā)明的一個實施例的可配置的深度(deep)執(zhí)行單元的部件的示意圖。
具體實施例方式
圖1是根據(jù)本發(fā)明的一個實施例的非對稱雙通道計算機處理器的結(jié)構(gòu)圖。圖1中的處理器在兩個不同的硬件執(zhí)行通道之間分割一單指令流100的處理專門用于處理控制代碼的控制執(zhí)行通道102和專門用于處理數(shù)據(jù)代碼的數(shù)據(jù)執(zhí)行通道103。依照控制代碼和數(shù)據(jù)路徑代碼的不同特征,所述兩個執(zhí)行通道102、103的數(shù)據(jù)寬度、操作符和其它特征也不同。典型地,控制代碼可能使用更少、更窄的寄存器,難以并行,典型地(但非排他地)被編寫為C代碼或另一高級語言的格式,以及其代碼密度通常比其速度性能更重要。相反地,數(shù)據(jù)路徑代碼典型地可能使用寬的寄存器的大文件,高度并行,被編寫為匯編語言的格式,以及其性能比其代碼密度更重要。在圖1中的處理器中,所述兩個不同的執(zhí)行通道102和103專門用于處理所述兩種不同類型的代碼,每一側(cè)具有由寄存器的寬度和數(shù)目所區(qū)分的其固有結(jié)構(gòu)的寄存器文件,例如控制寄存器文件104和數(shù)據(jù)寄存器文件105;所述控制寄存器按照位數(shù)計算,寬度較窄(在一個例子中,32位),而所述數(shù)據(jù)寄存器寬度較寬(在一個例子中,64位)。因此所述處理器是非對稱的,由于其兩個執(zhí)行通道執(zhí)行不同的專用功能的事實,其兩個執(zhí)行通道的位寬不同。
在圖1中的處理器中,所述指令流100由一系列指令包組成。提供的每一個指令包被指令解碼單元101解碼,所述指令解碼單元101將控制指令與數(shù)據(jù)指令分開,這一點將在下面被進一步地描述。所述控制執(zhí)行通道102使用分支單元106、執(zhí)行單元107和裝載存儲單元108來對所述指令流進行控制流操作的處理,并管理所述機器的狀態(tài)寄存器,所述裝載存儲單元108在該實施例中被所述數(shù)據(jù)執(zhí)行通道103所共享。對于C、C++或Java語言的編譯器,或另一高級語言編譯器而言,只有所述處理器的控制側(cè)需要是可見的。在所述控制側(cè)中,分支單元106和執(zhí)行單元107的操作與本領(lǐng)域普通技術(shù)人員所知的常規(guī)的處理器設(shè)計是一致的。
所述數(shù)據(jù)執(zhí)行通道103在固定的執(zhí)行單元109和可配置的深度執(zhí)行單元110中均使用SIMD(單指令多數(shù)據(jù))并行操作。如下面將進一步描述的,所述可配置的深度執(zhí)行單元110除了常規(guī)的SIMD處理器所使用的寬度維,還提供處理的深度維(depth dimension),以增加每條指令的工作量。
如果所述解碼的指令定義了一控制指令,其被應(yīng)用于所述機器的控制執(zhí)行通道上的適當?shù)墓δ軉卧?例如,分支單元106、執(zhí)行單元107和裝載/存儲單元108)。如果所述解碼的指令定義了具有固定的或者可配置的數(shù)據(jù)處理操作的指令,其被提供給所述數(shù)據(jù)處理執(zhí)行通道。在所述指令包的數(shù)據(jù)指令部分中,指定的位指示出所述指令是否是固定的或者可配置的數(shù)據(jù)處理指令,并且在可配置的指令的情況下,指定的位進一步定義配置信息?;诮獯a的數(shù)據(jù)處理指令的子類型,數(shù)據(jù)被提供給所述機器的數(shù)據(jù)處理通道中的固定的或者可配置的執(zhí)行子通道。
在這里,“可配置的”表示從多個預定義的(“偽靜態(tài)的”)操作符配置中選擇一操作符配置的能力。操作符的偽靜態(tài)配置能使操作符(i)執(zhí)行特定類型的操作,或(ii)以特定的方式與相關(guān)聯(lián)的元素互連,或(iii)上面所述的(i)或(ii)的組合。在實踐中,一選定的偽靜態(tài)配置可同時確定許多操作符元素的行為和互連。也能控制與所述數(shù)據(jù)通道相關(guān)的切換配置。在一更佳的實施例中,至少所述多個偽靜態(tài)操作符配置中的某些配置由數(shù)據(jù)處理指令的操作碼部分進行選擇,這一點將在下面被進一步地描述。依照這里的實施例,“可配置的指令”允許在多位值的級別執(zhí)行定制的操作,例如在4位或更多位的多位值的級別或在字的級別。
應(yīng)該指出,在所述機器的各自不同端執(zhí)行的控制和數(shù)據(jù)處理指令能定義存儲器存取(裝載/存儲)和基本的算術(shù)操作。控制操作的輸入/操作數(shù)可被提供給/提供自控制寄存器文件104,然而,數(shù)據(jù)處理操作的數(shù)據(jù)/操作數(shù)可被提供給/提供自寄存器文件105。
依照本發(fā)明的實施例,每個數(shù)據(jù)處理操作的至少一個輸入可以是向量。在這方面,所述可配置操作符和/或可配置的數(shù)據(jù)包的切換電路能被認為是可配置用于借助所執(zhí)行的操作和/或其中的互連的特性執(zhí)行向量操作。例如,數(shù)據(jù)處理操作的一個64位向量輸入可包括4個16位標量操作數(shù)。其中,“向量”是標量操作數(shù)的組合。向量算術(shù)可在多個標量操作數(shù)上執(zhí)行,并可包括標量元素的操縱、移動和置換。不是向量操作的所有操作數(shù)都需要是向量,例如向量操作可以同時具有標量和至少一個向量作為輸入,并且輸出一個不是標量就是向量的結(jié)果。
在這里,“控制指令”包括專門用于程序流、分支和地址生成的指令,但不包括用于數(shù)據(jù)處理的指令?!皵?shù)據(jù)處理指令”包括用于邏輯操作或算術(shù)操作的指令,所述算術(shù)操作的至少一個輸入是向量。數(shù)據(jù)處理指令可對多個數(shù)據(jù)指令進行操作,例如在SIMD處理中,或在處理更寬的、短的數(shù)據(jù)元素的向量過程中。剛剛提到的控制指令和數(shù)據(jù)指令的基本功能并不重疊,但是一個共同的性質(zhì)是兩種類型的代碼都具有邏輯和標量算術(shù)的能力。
圖2顯示了用于圖1中的處理器的三種類型的指令包。每種類型的指令包為64位長。指令包211是用于緊湊的控制代碼的3標量類型,并包括三個21位的控制指令(c21)。指令包212和213是用于并行執(zhí)行數(shù)據(jù)路徑代碼的LIW(長指令字)類型。在該實施例中每個指令包212和213包括兩個指令,但如果需要可以包括不同數(shù)目的指令。指令包212包括一個34位的數(shù)據(jù)指令(d34)和一個28位的存儲器指令(m28);并且其被用于和數(shù)據(jù)端的裝載-存儲操作(所述m28指令)一起并行執(zhí)行數(shù)據(jù)端的算術(shù)操作(所述d34指令)。使用來自于所述控制端的地址,存儲器類的指令(m28)能被讀取自,或被寫到,所述處理器的或者控制端或者數(shù)據(jù)端。指令包213包括一個34位的數(shù)據(jù)指令(d34)和一個21位的控制指令(c21);并且其被用于并行執(zhí)行數(shù)據(jù)端的算術(shù)操作(所述d34指令)和控制端的操作(所述c21指令),例如控制端的算術(shù)、分支或裝載-存儲操作。
圖1中實施例的指令解碼單元101使用每個指令包的初始標識位、或在預定義的比特位置的一些其它的指定標識位來確定哪一種類型的包正在被解碼。例如如圖2中所示,初始位“1”指明指令包是具有三個控制指令的標量控制指令類型;然而初始位“01”和“00”指明了指令包的類型212和213,其中包212中有數(shù)據(jù)和存儲器指令,或者在包213中有數(shù)據(jù)和控制指令。解碼每個指令包的初始位后,圖1中的解碼單元101根據(jù)指令包的類型,將每個包中的指令適當?shù)貍魉偷剿隹刂茍?zhí)行通道102或所述數(shù)據(jù)執(zhí)行通道103。
為了執(zhí)行圖2中的指令包,所述圖1的實施例中的處理器的指令解碼單元101從存儲器順序地取出程序包,并且所述程序包被順序執(zhí)行。在一指令包中,包211的指令被順序執(zhí)行,其中在所述64位字中最低端處的21位控制指令被首先執(zhí)行,然后是下一個21位的控制指令,接著是在最高端處的21位控制指令。在指令包212和213中,所述指令被同時執(zhí)行(盡管在根據(jù)本發(fā)明的實施例中,這不是必需的)。因而,按照圖1的實施例中的處理器的程序順序,所述程序包被順序執(zhí)行,但在一個包中的指令可以被順序執(zhí)行,如包類型211,也可以同時執(zhí)行,如包類型212和213。下面,212和213類型的指令包分別簡寫為MD和CD包(分別為包含一個存儲器指令和一個數(shù)據(jù)指令,以及一個控制指令和一個數(shù)據(jù)指令)。
使用21位的控制指令,圖1中的實施例克服了在具有其它長度的指令的處理器中發(fā)現(xiàn)的許多缺點,所述處理器特別是指支持用于數(shù)據(jù)指令的32位標準編碼和用于控制代碼的16位“緊湊”編碼的處理器。在這樣的雙16/32位處理器中,存在由于對每一條指令使用雙編碼,或者由于使用兩個分離的解碼器而產(chǎn)生冗余,其中所述的兩個分離的解碼器具有在分支編碼模式和取地址之間進行切換的裝置,或其它裝置。根據(jù)本發(fā)明的實施例,該冗余可通過對所有控制指令使用一個單一的21位長度來消除。進一步地,21位控制指令的使用消除了由于在16位“緊湊”編碼模式中語義內(nèi)容不足而引起的缺點。由于語義內(nèi)容不足,使用16位模式的處理器典型地需要混合一些設(shè)計的折衷,例如使用兩操作數(shù)的破壞操作,導致相應(yīng)的副本的代碼膨脹;使用對寄存器文件子集的窗口式訪問,導致代碼膨脹溢出/裝滿或窗口指針操作;或頻繁地恢復為32位格式,因為不是所有操作都能被表示在16位格式中的非常少的可用操作代碼位中。在根據(jù)本發(fā)明的實施例中,這些缺點通過使用21位的控制指令被緩解了。
根據(jù)本發(fā)明的實施例,可以使用各種各樣的指令。例如,指令的識別標志可以是下面中的任何一種,其中C格式、M格式和D格式分別表示控制格式、存儲器存取格式和數(shù)據(jù)格式
同樣根據(jù)本發(fā)明的實施例,C格式指令都提供SISD(單指令單數(shù)據(jù))操作,然而M格式和D格式指令提供SISD或SIMD操作。例如,控制指令可提供通用算術(shù)、比較和邏輯指令,控制流指令,存儲器裝載和存儲指令,以及其它指令。數(shù)據(jù)指令可提供常規(guī)的算術(shù)、移位、邏輯和比較指令,混洗、排序、字節(jié)擴展和排列指令,線性反饋移位寄存器指令,以及通過可配置的深度執(zhí)行單元110(下面進一步描述)的用戶定義的指令。存儲器指令可以提供存儲器裝載和存儲,復制選定的數(shù)據(jù)寄存器到控制寄存器,復制廣播控制寄存器到數(shù)據(jù)寄存器,以及緊接著寄存器指令。
根據(jù)本發(fā)明的一個實施例,圖1的處理器的特征在于第一固定的數(shù)據(jù)執(zhí)行通道和第二可配置的數(shù)據(jù)執(zhí)行通道。所述第一數(shù)據(jù)通道具有固定的SIMD執(zhí)行單元,所述單元被分割為具有與常規(guī)的SIMD處理設(shè)計相似的樣式的通道。所述第二數(shù)據(jù)通道具有可配置的深度執(zhí)行單元110?!吧疃葓?zhí)行”涉及處理器在返回結(jié)果給寄存器文件之前對由一單個的發(fā)出的指令提供的數(shù)據(jù)執(zhí)行多個連續(xù)操作的能力。深度執(zhí)行的一個例子可在常規(guī)的MAC操作(乘法和累加)中找到,所述MAC操作對來自于一單個指令的數(shù)據(jù)進行兩個操作(乘法和加法),因此具有兩級的深度。深度執(zhí)行的特征在于操作數(shù)輸入的數(shù)目等于結(jié)果輸出的數(shù)目,或者同義地,入價(valency-in)等于出價(valency-out)。這樣,例如常規(guī)的只有一個結(jié)果的兩操作數(shù)加法不是深度執(zhí)行的例子,因為操作數(shù)的數(shù)目不等于結(jié)果的數(shù)目,但是卷積、快速傅立葉變換、Trellis/Viterbi編碼、相關(guān)、有限脈沖響應(yīng)濾波和其它信號處理算法是深度執(zhí)行的例子。專用數(shù)字信號處理(DSP)算法典型地在比特級和存儲器映射方式中執(zhí)行深度執(zhí)行。然而,常規(guī)的寄存器映射通用DSP不執(zhí)行深度執(zhí)行,改為在MAC操作中在至多兩次的深度執(zhí)行指令。作為對比,圖1的處理器提供能夠在大于兩次的深度來深度執(zhí)行動態(tài)配置的字級指令的寄存器映射通用處理器。在圖1的處理器中,所述深度執(zhí)行指令(將被執(zhí)行的數(shù)學函數(shù)的圖表)的性質(zhì)能被指令本身中的配置信息調(diào)整/定制。在更佳的實施例中,格式指令包含分配給配置信息的比特位置。為了提供該能力,所述深度執(zhí)行單元110具有可配置的執(zhí)行資源,其意味著操作符模式、互連和常量能被加載以匹配每個應(yīng)用程序。深度執(zhí)行為并行執(zhí)行增加了一個深度維,所述深度維與早期的SIMD和LIW處理的概念所提供的寬度維正交,因此這表示了用于增加通用處理器的每條指令的工作量的一個附加維。
圖3顯示了根據(jù)本發(fā)明實施例的一個可配置的深度執(zhí)行單元310的組件。如圖1中所示,所述可配置的深度執(zhí)行單元110是數(shù)據(jù)執(zhí)行通道103的一部分,并且因此可以被來自于圖2中的MD和CD指令包212和213中的數(shù)據(jù)端指令所指示。在圖3中,指令314和操作數(shù)315被從圖1中的指令解碼單元101和數(shù)據(jù)寄存器文件105中提供給所述深度執(zhí)行單元310。在指令314中的多位配置代碼被用于訪問控制映射316,所述控制映射316擴展所述多位代碼到用于配置所述深度執(zhí)行單元的操作符的一組相對復雜的配置信號中。所述控制映射316可以例如被具體表現(xiàn)為查找表,在所述查找表中所述指令的不同的可能存在的多位代碼被映射到所述深度執(zhí)行單元的不同的可能存在的操作符配置中?;诓殚喫隹刂朴成?16的查找表的結(jié)果,交叉開關(guān)互連317配置了一組操作符318-321,在所有的方案中,都必須執(zhí)行由所述多位指令代碼所指示的操作符配置。所述操作符可包括,例如乘法操作符318、算術(shù)邏輯部件(ALU)操作符319、狀態(tài)操作符320或交叉-通道序列改變器(cross-lane permuter)321。在一個實施例中,所述深度執(zhí)行單元包含15個操作符一個乘法操作符318、8個ALU操作符319、4個狀態(tài)操作符320和兩個交叉-通道序列改變器321;雖然其它數(shù)目的操作符也是可能的。提供給所述深度執(zhí)行單元的操作數(shù)315可以是,例如兩個16位的操作數(shù),這些操作數(shù)被提供給第二交叉開關(guān)互連322,所述第二交叉開關(guān)互連322可提供所述操作數(shù)給適當?shù)牟僮鞣?18-321。所述第二交叉開關(guān)互連322也從所述操作符318-321接收中間結(jié)果的反饋324,所述反饋324也可接著由所述第二交叉開關(guān)互連322依次提供給適當?shù)牟僮鞣?18-321。第三交叉開關(guān)互連323多路復用來自于所述操作符318-321的結(jié)果,并輸出一最終結(jié)果325。多種控制信號能被用于配置所述操作符,例如,圖3的實施例中的控制映射316不是必須實現(xiàn)為單個查找表的形式,而是可以實現(xiàn)為一系列兩個或多個串聯(lián)的查找表。第一查找表中的條目可以從給定的多位指令代碼指向第二查找表,從而減少用于復雜的操作符配置中的每個查找表所需的存儲量。例如,第一查找表可以被組織為配置類別的庫,因此多個多位指令代碼被一起分組在所述第一查找表中,其中每一組指向一隨后的查找表,所述隨后的查找表為該組中每一個多位代碼提供專用配置。
根據(jù)圖3的實施例,所述操作符被有利地預先設(shè)置進不同的操作符類中。實際上,這可通過戰(zhàn)略層次的硬連線而實現(xiàn)。這種方法的一個優(yōu)點是其意味著更少的預定義配置需要被存儲,并且所述控制電路能更簡單。例如,操作符318被預配置在乘法操作符類中,操作符319被預配置為ALU操作符,操作符320被預配置為狀態(tài)操作符,以及操作符321被預配置為交叉-通道序列改變器,而其它預配置操作符類也是可能的。然而,即使預先配置了操作符的類,仍存在運行時靈活性使指令為了實現(xiàn)一給定算法的專用配置的最終布置,能夠至少布置(i)每一類中操作符的連接性;(ii)與其它類中的操作符的連接性;(iii)任一相關(guān)切換裝置間的連接性。
有技術(shù)的讀者將認識到,雖然前述內(nèi)容描述了被認為是最佳方式的內(nèi)容以及執(zhí)行本發(fā)明的其它適當?shù)姆绞?,本發(fā)明不應(yīng)當被限制為在所述較佳的實施例的說明中公開的特定裝置配置或方法步驟。本領(lǐng)域的技術(shù)人員也將認識到本發(fā)明具有寬闊的應(yīng)用范圍,并且所述實施例容許不偏離于本發(fā)明概念的不同實現(xiàn)和修改的極大的變化范圍。特別地,其中提到的示例的位寬不是用來限制,涉及如半字、字、長整型等的位寬的任意選擇也不是用來限制。
權(quán)利要求
1.一種計算機處理器,所述處理器包括(a)解碼單元,用于解碼來自于一存儲器的一串指令包,其中每個指令包包括多條指令;(b)第一處理通道,其包括多個功能單元并可操作用于執(zhí)行控制處理操作;(c)第二處理通道,其包括多個功能單元并可操作用于執(zhí)行數(shù)據(jù)處理操作;其中所述解碼單元可操作用于接收指令包,并檢測所述指令包是否定義了(i)多個控制指令或(ii)其中的一個或多個指令為數(shù)據(jù)處理指令的多個指令,以及其中當所述解碼單元檢測到所述指令包包括多個控制指令時,所述控制指令被提供給所述第一處理通道以按照程序的順序執(zhí)行。
2.根據(jù)權(quán)利要求1的計算機處理器,其中所述解碼單元可操作用于檢測包含三個控制指令的指令包,并且可操作用于控制以所述指令在所述指令包中出現(xiàn)的順序來執(zhí)行所述三個控制指令中的每一個的控制過程。
3.根據(jù)權(quán)利要求1或2的計算機處理器,其中所述解碼單元可操作用于檢測包含多個長度相等的控制指令的指令包。
4.根據(jù)權(quán)利要求3的計算機處理器,其中所述解碼單元可操作用于檢測在指令包中的位長在18位到24位之間的控制指令。
5.根據(jù)權(quán)利要求4的計算機處理器,其中所述解碼單元可操作用于檢測在指令包中的每個指令均具有21位位長的多個控制指令。
6.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述解碼單元可操作用于接收并解碼位長為64位的指令包。
7.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述解碼單元可操作用于檢測何時在所述指令包中存在至少一數(shù)據(jù)處理指令,并且作為相應(yīng),導致相關(guān)的數(shù)據(jù)被提供給所述數(shù)據(jù)處理通道。
8.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述解碼單元可操作用于檢測所述指令包包括至少一數(shù)據(jù)處理指令以及從一個或多個存儲器存取指令、控制指令以及數(shù)據(jù)處理指令中選出的進一步的指令。
9.根據(jù)權(quán)利要求8的計算機處理器,其中至少一數(shù)據(jù)處理指令和所述進一步的指令被同時執(zhí)行
10.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述第二處理通道專門用于數(shù)據(jù)處理操作的執(zhí)行,并且數(shù)據(jù)處理指令被以匯編語言的形式提供。
11.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述控制處理操作基于直到第一預定義位寬的操作數(shù)執(zhí)行,而所述數(shù)據(jù)處理操作基于直到第二預定義位寬的數(shù)據(jù)執(zhí)行,所述第二預定義位寬大于所述第一預定義位寬。
12.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述第一處理通道包括從一個或多個控制寄存器文件,控制執(zhí)行單元,分支執(zhí)行單元和裝載/存儲單元中選出的單元。
13.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述第二處理通道包括數(shù)據(jù)執(zhí)行路徑,所述路徑包括可配置的數(shù)據(jù)執(zhí)行單元。
14.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述第二處理通道包括數(shù)據(jù)執(zhí)行路徑,所述路徑包括固定的數(shù)據(jù)執(zhí)行單元。
15.根據(jù)權(quán)利要求13的計算機處理器,其中在使用中,所述可配置的數(shù)據(jù)執(zhí)行單元根據(jù)單指令多數(shù)據(jù)的原則進行操作。
16.根據(jù)權(quán)利要求14的計算機處理器,其中在使用中,所述固定的數(shù)據(jù)執(zhí)行單元根據(jù)單指令多數(shù)據(jù)的原則進行操作。
17.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述數(shù)據(jù)處理通道包括一個或多個數(shù)據(jù)寄存器文件和裝載/存儲單元。
18.根據(jù)前述任一權(quán)利要求的計算機處理器,其中單個的裝載/存儲單元被所述控制處理通道和所述數(shù)據(jù)處理通道通過各自的端口進行存取。
19.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述解碼單元可操作用于檢測包含至少一數(shù)據(jù)處理指令的指令包,其中所述至少一數(shù)據(jù)處理指令的位長在30至38位之間。
20.根據(jù)權(quán)利要求19的計算機處理器,其中所述解碼單元可操作用于檢測包含至少一數(shù)據(jù)處理指令的指令包,其中所述至少一數(shù)據(jù)處理指令的位長為34位。
21.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述解碼單元可操作用于檢測包含數(shù)據(jù)處理操作和存儲器存取指令的指令包。
22.根據(jù)權(quán)利要求21的計算機處理器,其中所述存儲器存取指令的位長為28位。
23.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述解碼單元可操作用于檢測包含數(shù)據(jù)處理指令和控制處理指令的指令包。
24.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述解碼單元可操作用于檢測形式為C代碼或其變型的控制處理指令。
25.根據(jù)前述任一權(quán)利要求的計算機處理器,其中所述解碼單元可操作用于檢測匯編語言形式的數(shù)據(jù)處理指令。
26.一種操作計算機處理器的方法,所述計算機處理器包括第一和第二處理通道,每一個處理通道具有多個功能單元,其中所述第一處理通道能夠執(zhí)行控制處理操作而所述第二處理通道能夠執(zhí)行數(shù)據(jù)處理操作,所述方法包括(a)從存儲器中接收一系列指令包,每一個所述指令包包括多個定義操作的指令;(b)依次解碼每一個指令包,通過確定所述指令包是否定義了(i)多個控制指令;或(ii)至少一個數(shù)據(jù)處理指令;以及其中當所述解碼單元檢測到所述指令包包括多個控制指令時,提供所述多個控制指令給所述第一處理通道以按照序列執(zhí)行。
27.一種計算機程序產(chǎn)品,包括用于使計算機根據(jù)權(quán)利要求26的方法進行操作的程序代碼裝置。
28.一種計算機程序代碼,包括用于使計算機根據(jù)權(quán)利要求26的方法進行操作的一系列指令。
29.一種計算機指令集合,包括第一類指令包和第二類指令包,所述第一類指令包中的每一個指令包包括順序執(zhí)行的多個控制指令,所述第二類指令包中的每一個指令包包括同時執(zhí)行的至少一數(shù)據(jù)處理指令和進一步的指令,所述進一步的指令從一個或多個存儲器存取指令、控制指令和數(shù)據(jù)處理指令中選擇得出。
全文摘要
根據(jù)本發(fā)明的實施例,公開了一計算機處理器結(jié)構(gòu);尤其是公開了一種計算機處理器、一種操作所述處理器的方法以及一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品利用用于所述計算機的指令集合。在根據(jù)本發(fā)明的一個實施例中,提供了一種計算機處理器,包括解碼單元,用于解碼來自于存儲器的一串指令包,其中每個指令包包括多條指令;第一處理通道,其包括多個功能單元并可操作用于執(zhí)行控制處理操作;第二處理通道,其包括多個功能單元并可操作用于執(zhí)行數(shù)據(jù)處理操作;其中所述解碼單元可操作用于接收指令包,并檢測所述指令包是否定義了(i)多個控制指令或(ii)其中的一個或多個指令為數(shù)據(jù)處理指令的多個指令,以及其中當所述解碼單元檢測到所述指令包包括多個控制指令時,所述控制指令被提供給第一處理通道以按照程序順序執(zhí)行。
文檔編號G06F9/38GK1950795SQ200580010660
公開日2007年4月18日 申請日期2005年3月22日 優(yōu)先權(quán)日2004年3月31日
發(fā)明者S·諾勒斯 申請人:艾色拉公司