国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于不對稱雙重路徑處理的設(shè)備和方法

      文檔序號:6655945閱讀:303來源:國知局
      專利名稱:用于不對稱雙重路徑處理的設(shè)備和方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種計算機(jī)處理器、一種用于操作同樣計算機(jī)處理器的方法以及一種包括用于計算機(jī)的指令集的計算機(jī)程序產(chǎn)品。
      背景技術(shù)
      為了增加計算機(jī)處理器的速度,現(xiàn)有技術(shù)體系結(jié)構(gòu)已經(jīng)使用了雙重執(zhí)行路徑來執(zhí)行指令。雙重執(zhí)行路徑處理器可以使用并行操作來增加處理器速度依照單指令多數(shù)據(jù)(single instruction multiple dataSIMD)原理來操作。
      然而,盡管使用雙重執(zhí)行路徑和SIMD處理,還需要增加處理器速度。典型的雙重執(zhí)行路徑處理器使用兩個基本上完全相同的通道(channel),以致每個通道都處理控制代碼和數(shù)據(jù)路徑代碼。雖然已知的處理器支持32比特標(biāo)準(zhǔn)編碼和16比特“密集”編碼的組合,然而這種配置具有幾個缺點,包括在16比特格式中可用的較少比特中缺乏語義內(nèi)容。
      此外,常規(guī)的通用數(shù)字信號處理器對于許多目的來說不能匹配應(yīng)用特定的算法,包括執(zhí)行諸如卷積、快速傅里葉變換、Trellis/Viterbi編碼、相關(guān)、有限脈沖響應(yīng)濾波及其它操作之類的專門操作。

      發(fā)明內(nèi)容
      在依照本發(fā)明的一個實施例中,提供了一種計算機(jī)處理器。所述計算機(jī)處理器包括譯碼部件,用于譯碼從用來保持指令分組序列的存儲器中所取出的指令分組;和第一和第二處理通道,每個通道包括多個功能部件,其中第一處理通道能夠執(zhí)行控制操作并且包括具有相對較窄比特寬度的控制寄存器堆,并且第二處理通道能夠執(zhí)行數(shù)據(jù)處理操作,所述數(shù)據(jù)處理操作的至少一個輸入是向量并且包括具有相對較寬比特寬度的數(shù)據(jù)寄存器堆;其中所述譯碼部件可操作來檢測每個指令分組該指令分組是定義了(i)要在第一處理通道上順序執(zhí)行的多個控制指令,還是定義了(ii)要在第二執(zhí)行通道上同時執(zhí)行的、包括至少一個數(shù)據(jù)處理指令的多個指令,并且根據(jù)所述檢測來控制所述第一和第二通道。
      在進(jìn)一步相關(guān)的實施例中,第一處理通道還可以包括分支部件和控制執(zhí)行部件。第二處理通道還可以包括固定的數(shù)據(jù)執(zhí)行部件和可配置的數(shù)據(jù)執(zhí)行部件。固定的數(shù)據(jù)執(zhí)行部件和可配置的數(shù)據(jù)執(zhí)行部件都可以依照單指令多數(shù)據(jù)格式來操作。第一和第二處理通道可以共享加載存儲部件。加載存儲部件可以使用由第一處理通道所提供的控制信息和由第二處理通道所提供的數(shù)據(jù)。指令分組可以都具有相等的比特長度,諸如64比特長度??刂浦噶羁梢远季哂性?8比特和24比特之間的比特長度,諸如21比特長度。至少可以從控制指令、數(shù)據(jù)指令和存儲器訪問指令中選擇指令分組中每個指令的性質(zhì)。每個數(shù)據(jù)指令的比特長度例如可以是34比特;并且每個存儲器訪問指令的比特長度例如可以是28比特。
      在進(jìn)一步相關(guān)的實施例中,當(dāng)譯碼部件檢測到指令分組定義了三個控制指令時,所述譯碼部件可操作來向第一處理通道提供所述三個控制指令,借此順序地執(zhí)行所述三個控制指令。當(dāng)所述譯碼部件檢測到指令分組定義了包括至少一個數(shù)據(jù)指令的兩個指令時,所述譯碼部件還可操作來向第二處理通道提供所述至少一個數(shù)據(jù)指令,借此同時執(zhí)行兩個指令。譯碼部件可操作來在序列的每個指令分組中的預(yù)定比特位置讀取一組指定比特的值,以便確定a)所述指令分組是定義了多個控制指令還是其中至少一個是數(shù)據(jù)指令的多個指令;以及b)其中所述指令分組定義了其中至少一個是數(shù)據(jù)指令的多個指令,從以下指令中選擇兩個指令中的每個指令的性質(zhì)控制指令;數(shù)據(jù)指令和存儲器訪問指令??膳渲玫臄?shù)據(jù)執(zhí)行部件可以在向目的寄存器堆返回結(jié)果之前對由單個發(fā)布指令所提供的數(shù)據(jù)執(zhí)行兩個以上的連續(xù)操作。
      在依照本發(fā)明的另一實施例中,提供了一種用于操作計算機(jī)處理器的方法,所述計算機(jī)處理器包括第一和第二處理通道,每個處理通道包括多個功能部件,其中所述第一處理通道包括具有相對較窄比特寬度的控制寄存器堆并且所述第二處理通道包括具有相對較寬比特寬度的數(shù)據(jù)寄存器堆。所述方法包括譯碼指令分組以便檢測所述指令分組是定義了相等長度的多個控制指令還是定義了包括至少一個數(shù)據(jù)指令的兩個指令,其中至少一個是向量;當(dāng)所述指令分組定義了相等長度的多個控制指令時,向第一處理通道提供所述控制指令借此順序地執(zhí)行所述控制指令;并且當(dāng)所述指令分組定義了包括至少一個數(shù)據(jù)指令的多個指令時,至少向第二處理通道提供所述數(shù)據(jù)指令借此同時執(zhí)行多個指令。
      在依照本發(fā)明的另一實施例中,提供了一種包括程序代碼裝置的計算機(jī)程序產(chǎn)品,所述程序代碼裝置包括指令分組序列,所述指令分組包括具有相等長度的多個控制指令的第一類型指令分組和包括具有至少一個數(shù)據(jù)指令的多個指令的第二類型指令分組,其中所述計算機(jī)程序產(chǎn)品適于在計算機(jī)上運行以致由專用控制處理通道執(zhí)行第一類型指令分組,并且由專用數(shù)據(jù)處理通道執(zhí)行第二指令分組的至少一個數(shù)據(jù)指令,所述專用控制處理通道比所述專用數(shù)據(jù)處理通道具有相對較窄的比特寬度。
      在依照本發(fā)明的另一實施例中,提供了一種用于操作計算機(jī)處理器的方法,所述計算機(jī)處理器包括第一和第二處理通道,每個處理通道包括多個功能部件,其中所述第一處理通道包括具有相對較窄比特寬度的控制寄存器堆并且所述第二處理通道包括具有相對較寬比特寬度的數(shù)據(jù)寄存器堆。所述方法包括從程序存儲器中取出指令分組序列,該指令分組的全部在預(yù)定的比特位置都包含一組指定的比特;譯碼每個指令分組,所述譯碼步驟包括讀取所述指定比特的值以便確定a)所述指令分組是定義了多個控制指令還是定義了其中至少一個是數(shù)據(jù)指令的多個指令;并且b)在所述指令分組定義了其中至少一個是數(shù)據(jù)指令的多個指令的情況下,至少從以下指令中選擇兩個指令中的每個的性質(zhì)控制指令;數(shù)據(jù)指令和存儲器訪問指令。
      在依照本發(fā)明的另一實施例中,提供了一種包括程序代碼裝置的計算機(jī)程序產(chǎn)品,所述程序代碼裝置包括指令分組序列,所述指令分組包括具有基本上相等長度的多個控制指令的第一類型指令分組和包括具有至少一個數(shù)據(jù)指令的第一和第二指令的第二類型指令分組,所述指令分組在所述指令分組內(nèi)的指定比特位置包括至少一個指示比特,其中所述計算機(jī)程序產(chǎn)品適于在計算機(jī)上運行以致所述指示比特適于與計算機(jī)的譯碼部件合作來指定a)指令分組定義了多個控制指令還是定義了其中至少一個是數(shù)據(jù)指令的多個指令;和b)在存在包括至少一個數(shù)據(jù)指令的多個指令的情況下,從以下指令中選擇兩個指令中的每個的性質(zhì)控制指令;數(shù)據(jù)指令和存儲器訪問指令。
      本發(fā)明的附加優(yōu)點和新穎特征在隨后的描述中將部分地得到闡明,并且在檢查以下描述和附圖之后對那些本領(lǐng)域技術(shù)人員來說將變得更加清楚,或者可以通過實施本發(fā)明來學(xué)習(xí)。


      為了更好地理解本發(fā)明,并且為了示出可以怎樣實現(xiàn),現(xiàn)在舉例來說明參考附圖,其中圖1是依照本發(fā)明實施例的不對稱的雙重執(zhí)行路徑計算機(jī)處理器的框圖;圖2依照本發(fā)明實施例示出了用于圖1的處理器的指令類;和圖3是用于依照本發(fā)明實施例示出可配置的深度執(zhí)行部件的組件。
      具體實施例方式
      圖1是依照本發(fā)明實施例的不對稱的雙重路徑計算機(jī)處理器的框圖。圖1的處理器在以下兩個不同的硬件執(zhí)行路徑之間劃分單指令流100的處理專用于處理控制代碼的控制執(zhí)行路徑102和專用于處理數(shù)據(jù)代碼的數(shù)據(jù)執(zhí)行路徑103。兩個執(zhí)行路徑102、103的數(shù)據(jù)寬度、操作符及其它特性依照控制代碼和數(shù)據(jù)路徑代碼的不同特性而不同。典型情況下,控制代碼喜歡較少、較窄的寄存器,很難并行化,一般(而并不排除其它情況)用C代碼或另一高級語言來編寫,其代碼密度通常比其速度性能更為重要。相比之下,數(shù)據(jù)路徑代碼一般喜歡大的寬寄存器堆,可高度并行化,用匯編語言編寫,并且其性能比其代碼密度更為重要。在圖1的處理器中,兩個不同的執(zhí)行路徑102和103專用于處理兩種不同類型的代碼,每一端具有其自己的體系結(jié)構(gòu)寄存器堆,諸如控制寄存器堆104和數(shù)據(jù)寄存器堆105,差別在于寄存器的寬度和數(shù)目不同;控制寄存器具有較窄寬度,以比特來計數(shù)(在一個例子中為32比特),并且數(shù)據(jù)寄存器具有較寬寬度(在一個例子中為64比特)。因此,處理器是不對稱的,不對稱之處在于由于它的兩個執(zhí)行路徑執(zhí)行不同的、專門的功能這一事實而使得它們具有不同的比特寬度。
      在圖1的處理器中,指令流100由一系列指令分組組成。所提供的每個指令分組由指令譯碼部件101來譯碼,所述指令譯碼部件101把控制指令與數(shù)據(jù)指令相分離,如下面所進(jìn)一步描述。控制執(zhí)行路徑102使用分支部件106、執(zhí)行部件107和加載存儲部件108來處理用于指令流的控制流操作并且管理機(jī)器的狀態(tài)寄存器,在此實施例中,所述加載存儲部件108與數(shù)據(jù)執(zhí)行路徑103共享。只有處理器的控制端需要對編譯器來說可見,所述編譯器諸如用于C、C++或Java語言的編譯器或其它高級語言的編譯器。在控制端內(nèi),分支部件106和執(zhí)行部件107的操作是依照為那些本領(lǐng)域普通技術(shù)人員已知的常規(guī)處理器設(shè)計的。
      數(shù)據(jù)執(zhí)行路徑103在固定的執(zhí)行部件109和可配置的深度執(zhí)行部件110中使用SIMD(單指令多數(shù)據(jù))并行機(jī)制。如下面所進(jìn)一步描述,可配置的深度執(zhí)行部件110除由常規(guī)的SIMD處理器所使用的寬維度(width dimension)之外提供了深維度(depth dimension)的處理,以便增加每個指令的工作。
      如果所譯碼的指令定義了控制指令,那么它被應(yīng)用于機(jī)器的控制執(zhí)行路徑上的適當(dāng)功能部件(例如分支部件106、執(zhí)行部件107和加載/存儲部件108)。如果所譯碼的指令定義了具有固定或可配置的數(shù)據(jù)處理操作的指令,那么它被提供到數(shù)據(jù)處理執(zhí)行路徑。在指令分組的數(shù)據(jù)指令部分內(nèi),所指定的比特表明所述指令是固定的還是可配置的數(shù)據(jù)處理指令,并且在可配置的指令的情況下,進(jìn)一步指定的比特定義了配置信息。根據(jù)所譯碼數(shù)據(jù)處理指令的子類型,數(shù)據(jù)被提供到機(jī)器的數(shù)據(jù)處理路徑的固定或可配置的執(zhí)行子路徑。
      這里,“可配置”表示從多個預(yù)定義的(“偽靜態(tài)的”)操作符配置之中選擇操作符配置的能力。偽靜態(tài)的操作符配置有效地使操作符(i)執(zhí)行確定類型的操作或(ii)依照確定方式與關(guān)聯(lián)的部件相互連接或者(iii)上述(i)或(ii)的組合。在實踐中,所選擇的偽靜態(tài)配置可以一次確定許多操作符部件的行為和互連性。它還可以控制與數(shù)據(jù)路徑相關(guān)聯(lián)的切換配置。在優(yōu)選實施例中,多個偽靜態(tài)操作符配置中的至少一些可由數(shù)據(jù)處理指令的操作代碼部分來選擇,如下面所進(jìn)一步圖示。同樣依照這里的實施例,“可配置的指令”允許所定制的操作的性能處于多比特值的級別;例如,在四個或更多比特的多比特值的級別或處于字的級別。
      應(yīng)當(dāng)指出在各自不同的機(jī)器端上所執(zhí)行的控制和數(shù)據(jù)處理指令可以定義存儲器訪問(加載/存儲)和基本的算術(shù)運算??梢酝涤诳刂萍拇嫫鞫?04提供用于控制操作的輸入/操作數(shù),而往返于寄存器堆105提供用于數(shù)據(jù)處理操作的數(shù)據(jù)/操作數(shù)。
      依照本發(fā)明實施例,每個數(shù)據(jù)處理操作的至少一個輸入可以是向量。在這方面,可配置數(shù)據(jù)路徑的切換電路和/或可配置的操作符可以被認(rèn)為是可配置來借助于所執(zhí)行操作的性質(zhì)和/或它們之間的互連性來執(zhí)行向量操作。例如,用于數(shù)據(jù)處理操作的64比特向量輸入可以包括四個16比特的標(biāo)量操作數(shù)。這里,“向量”是標(biāo)量操作數(shù)的集合。向量運算可以對多個標(biāo)量操作數(shù)來執(zhí)行,并且可以包括轉(zhuǎn)向、移動和置換標(biāo)量元素。并非向量運算的所有操作數(shù)都必須是向量;例如向量運算可以兼有標(biāo)量和至少一個向量作為輸入;l和是標(biāo)量或向量的輸出結(jié)果。
      這里,“控制指令”包括專用于程序流、分支和地址生成的指令,但不用于數(shù)據(jù)處理?!皵?shù)據(jù)處理指令”包括用于邏輯操作或算術(shù)操作的指令,對于算術(shù)操作來說至少一個輸入是向量。數(shù)據(jù)處理指令例如可以在SIMD處理中或在處理較寬、較短的數(shù)據(jù)元素向量中對多個數(shù)據(jù)指令操作。剛剛所提及的控制指令和數(shù)據(jù)指令的必需功能并不重疊;然而,通用性在于兩類代碼都具有邏輯和標(biāo)量運算能力。
      圖2示出了用于圖1的處理器的三種類型的指令分組。每種類型的指令分組是64比特長。指令分組211是用于密集控制代碼的3標(biāo)量類型并且包括三個21比特的控制指令(c21)。指令分組212和213是用于并行執(zhí)行數(shù)據(jù)路徑代碼的LIW(long instruction word長指令字)類型。在此例子中,每個指令分組212、213包括兩個指令,但是如果希望的話,可以包括不同數(shù)目的指令。指令分組212包括34比特的數(shù)據(jù)指令(d34)和28比特的存儲器指令(m28);并且用于利用數(shù)據(jù)端加載-存儲操作(m28指令)來并行執(zhí)行數(shù)據(jù)端運算(d34指令)??梢允褂脕碜钥刂贫说牡刂窂奶幚砥鞯目刂贫嘶驍?shù)據(jù)端讀取或向其寫入存儲器類指令(m28)。指令分組213包括34比特的數(shù)據(jù)指令(d34)和21比特的控制指令(c21);并且用于利用控制端操作(c21指令)來并行執(zhí)行數(shù)據(jù)端運算(d34指令),所述控制端操作諸如控制端運算、分支或加載-存儲操作。
      圖1的實施例的指令譯碼部件101使用每個指令分組的初始標(biāo)識比特或在預(yù)定比特位置另外指定的標(biāo)識比特來確定正在譯碼哪種類型的分組。例如圖2所示,初始指示比特“1”表示指令分組屬于標(biāo)量控制指令類型,具有三個控制指令;而初始指示比特“01”和“00”表示類型為212和213的指令分組,在分組212中具有數(shù)據(jù)和存儲器指令或者在分組213中具有數(shù)據(jù)和控制指令。如果已經(jīng)譯碼了每個指令分組的初始比特,那么圖1的譯碼部件101依照指令分組的類型向控制執(zhí)行路徑102或數(shù)據(jù)執(zhí)行路徑103適當(dāng)?shù)貍鬟f每個分組的指令。
      為了執(zhí)行圖2的指令分組,圖1的實施例的處理器的指令譯碼部件101從存儲器中順序地取出程序分組;并且所述程序分組被順序地執(zhí)行。在指令分組內(nèi),分組211的指令被順序地執(zhí)行,在64比特字的最低有效端的21比特控制指令被首先執(zhí)行,然后,下一21比特控制指令被執(zhí)行,繼而是在最高有效端的21比特控制指令。在指令分組212和213內(nèi),可以同時執(zhí)行指令(盡管在依照本發(fā)明的實施例中這并非是必須的情況)。因而,在圖1的實施例的處理器的程序次序中,順序地執(zhí)行程序分組;而是對于分組類型211來說可以順序地執(zhí)行分組內(nèi)的指令,或者對于分組類型212和213來說可以同時執(zhí)行分組內(nèi)的指令。下面,類型為212和213的指令分組分別被簡寫為MD和CD分組(分別包含一個存儲器和一個數(shù)據(jù)指令;以及一個控制指令和一個數(shù)據(jù)指令)。
      在使用21比特控制指令中,圖1的實施例克服了在具有其它長度指令的處理器中、并且尤其是在支持用于數(shù)據(jù)指令的32比特標(biāo)準(zhǔn)編碼和用于控制代碼的16比特“密集”編碼的組合的處理器中所發(fā)現(xiàn)的許多缺點。在這種雙重16/32比特處理器中,對每個指令使用雙重編碼或者借助分支、取出地址或其它裝置在編碼模式之間切換使用兩個獨立的譯碼器,來形成冗余。依照本發(fā)明實施例,通過對所有控制指令來說使用單個21比特長度來消除此冗余。此外,使用21比特控制指令消除了源于在16比特的“密集”編碼模式中沒有足夠語義內(nèi)容的缺點。由于沒有足夠的語義內(nèi)容,所以使用16比特配置的處理器典型情況下要求某些設(shè)計混合的折中,諸如使用兩個操作數(shù)的破壞性操作,相應(yīng)的代碼由于拷貝而膨脹;使用對寄存器堆子集的窗口訪問,代碼由于溢出/填充或窗口指針操作而膨脹;或頻繁地恢復(fù)到32比特格式,這是因為并非所有操作都可以用16比特格式中的非常少可用的操作碼比特來表示。在本發(fā)明的實施例中,通過使用21比特控制指令來緩解這些缺點。
      依照本發(fā)明實施例,可以使用多種類型的指令。例如,指令簽名可以是以下中的任何一個,其中C格式、M格式和D格式分別表示控制、存儲器訪問和數(shù)據(jù)格式

      另外,依照本發(fā)明的一個實施例,C格式指令也都提供了SISD(single instruction single data單指令單數(shù)據(jù))操作,而M格式和D格式指令提供了SISD或SIMD操作。例如,控制指令可以提供通用的運算、比較和邏輯指令;控制流指令;存儲器加載和存儲指令等。數(shù)據(jù)指令可以提供通用的運算、移位、邏輯和比較指令;混洗、分類、字節(jié)擴(kuò)展和置換指令;線性反饋移位寄存器指令;以及經(jīng)由可配置的深度執(zhí)行部件110(下面進(jìn)一步描述)的用戶定義的指令。存儲器指令可以提供存儲器加載和存儲;把所選擇的數(shù)據(jù)寄存器拷貝到控制寄存器;把所廣播的控制寄存器拷貝到數(shù)據(jù)寄存器;以及直接到寄存指令。
      依照本發(fā)明實施例,圖1的處理器特征在于第一固定的數(shù)據(jù)執(zhí)行路徑和第二可配置的數(shù)據(jù)執(zhí)行路徑。第一數(shù)據(jù)路徑具有固定的SIMD執(zhí)行部件,其依照與常規(guī)的SIMD處理設(shè)計類似的方式被拆分成道(lane)。第二數(shù)據(jù)路徑具有可配置的深度執(zhí)行部件110?!吧疃葓?zhí)行”指的是處理器在向寄存器堆返回結(jié)果之前對由單個發(fā)布指令所提供的數(shù)據(jù)執(zhí)行多個連續(xù)操作的能力。在常規(guī)的MAC操作(相乘和累積)中發(fā)現(xiàn)了深度執(zhí)行的一個例子,所述MAC操作對來自單指令的數(shù)據(jù)執(zhí)行兩個操作(乘法和相加),由此具有階二的深度。深度執(zhí)行還可以由等于結(jié)果輸出數(shù)的操作數(shù)輸入數(shù)目來表征;或者等效地,價輸入(valency-in)等于價輸出(valency-out)。因而,例如常規(guī)的兩個操作數(shù)相加(具有一個結(jié)果)并非是此類深度執(zhí)行的例子,這是因為操作數(shù)的數(shù)目不等于結(jié)果的數(shù)目;而依照優(yōu)選實施例,卷積、快速傅里葉變換、Trellis/Viterbi編碼、相關(guān)器、有限脈沖響應(yīng)濾波器及其它信號處理算法是深度執(zhí)行的例子。應(yīng)用特定的數(shù)字信號處理(DSP)算法典型情況下在比特級并且依照存儲映像的方式來進(jìn)行深度執(zhí)行。然而在MAC操作中,常規(guī)的寄存器映像的通用DSP不進(jìn)行深度執(zhí)行,作為替代至多以階二的深度來執(zhí)行指令。相比之下,圖1的處理器提供了寄存器映像的通用處理器,其能夠以大于二的階來深度執(zhí)行動態(tài)可配置的字級別的指令值。在圖1的處理器中,可以借助指令自身中的配置信息來調(diào)整/定制深度執(zhí)行指令的性質(zhì)(要執(zhí)行的數(shù)學(xué)函數(shù)的圖形)。在優(yōu)選實施例中,數(shù)據(jù)格式指令包含被分配給配置信息的比特位置。為了提供此能力,深度執(zhí)行部件110具有可配置的執(zhí)行資源,這意味著可以上傳操作符模式、互連和常量以便適合每個應(yīng)用。深度執(zhí)行向執(zhí)行的并行機(jī)制添加了深維度,所述深維度與由較早的SIMD和LIW處理的原理所表現(xiàn)出的寬維度正交;因此它表示附加維度來增加通用處理器的每個指令的工作。
      圖3依照本發(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把多比特代碼擴(kuò)展為一組相對復(fù)雜的配置信號,用于配置深度執(zhí)行部件的操作符??刂朴诚?16例如可以被具體化為查找表,其中指令的不同可能的多比特位碼被映射到深度執(zhí)行部件的不同可能的操作符配置。根據(jù)查閱控制映像316的查找表的結(jié)果,交叉互連317配置一組操作符318-321,在任何配置中有必要執(zhí)行由多比特指令代碼所表明的操作符配置。操作符例如可以包括乘操作符318、算術(shù)邏輯部件(arithmeticlogic unit ALU)操作符319、狀態(tài)操作符320或交叉道換碼器321。在一個實施例中,深度執(zhí)行部件包含十五個操作符一個乘操作符318、八個ALU操作符319、四個狀態(tài)操作符320和兩個交叉道換碼器321;不過其它數(shù)目的操作符也是可能的。關(guān)于單個32比特操作數(shù)來說,被提供到深度執(zhí)行部件的操作數(shù)315例如可以是兩個16比特操作數(shù)、四個8比特操作數(shù);這些操作數(shù)被提供到第二交叉互連322,所述第二交叉互連322可以向適當(dāng)?shù)牟僮鞣?18-321提供操作數(shù)。第二交叉互連322還從操作符318-321接收中間結(jié)果的反饋324,其隨后還被第二交叉互連322提供到適當(dāng)?shù)牟僮鞣?18-321。第三交叉互連323多路復(fù)用來自操作符318-321的結(jié)果并且輸出最終結(jié)果325。可以使用各個控制信號來配置操作符;例如圖3的實施例的控制映像316不必被具體化為單個查找表,而是可以被具體化為一系列兩個或多個級聯(lián)的查找表。第一查找表中的條目可以從給定的多比特指令代碼指向第二查找表,由此減少了在每個查找表中針對復(fù)雜操作符配置所需要的存儲量。例如,第一查找表可以被組織成配置類別庫,以便多個多比特指令代碼在第一查找表中被分組在一起,每個組指向隨后的查找表,所述查找表向所述組的每個多比特位碼提供特定配置。
      依照圖3的實施例,操作符被有益地預(yù)先配置為各個操作符類。在實踐中,這由硬接線的策略級別來實現(xiàn),此方法的優(yōu)點在于它意味著需要存儲較少的預(yù)定義配置,并且控制電路可以更簡單。例如,操作符318被預(yù)先配置為在乘操作符類中;操作符319被預(yù)先配置為ALU操作符;操作符320被預(yù)先配置為狀態(tài)操作符;并且操作符321被預(yù)先配置為交叉道換碼器;并且其它預(yù)先配置的操作符類也是可以的。然而,盡管操作符的類是預(yù)先配置的,然而用于指令的運行期靈活性能夠至少布置(i)每個類內(nèi)操作符的連接;(ii)與來自其它類的操作符的連接;(iii)任何相關(guān)切換裝置的連接;用于實現(xiàn)給定算法的特定配置的最終布置。
      有經(jīng)驗的讀者應(yīng)當(dāng)理解,雖然上面已經(jīng)描述了什么被認(rèn)為是最佳模式并且其中適于執(zhí)行本發(fā)明的其它模式,然而本發(fā)明不應(yīng)當(dāng)被限于在此具體實施方式
      中所公開的具體設(shè)備配置或方法步驟。本領(lǐng)域技術(shù)人員還應(yīng)當(dāng)認(rèn)識到本發(fā)明具有廣泛的應(yīng)用,而且在不脫離發(fā)明原理的情況下實施例允許各種各樣的不同實現(xiàn)方式和修改。特別地是,這里所提及的示例性比特寬度并不意在進(jìn)行限制,也并非是被認(rèn)為是半字、字長字等的任意比特寬度選擇。
      權(quán)利要求
      1.一種計算機(jī)處理器,所述處理器包括譯碼部件,用于譯碼從保持指令分組序列的存儲器中所取出的指令分組;和第一和第二處理通道,每個處理通道包括多個功能部件,其中所述第一處理通道能夠執(zhí)行控制操作并且包括具有相對較窄比特寬度的控制寄存器堆,并且所述第二處理通道能夠執(zhí)行其中至少一個輸入為向量的數(shù)據(jù)處理操作并且包括具有相對較寬比特寬度的數(shù)據(jù)寄存器堆;其中所述譯碼部件可操作來對每個指令分組檢測所述指令分組定義了(i)要在所述第一處理通道上順序執(zhí)行的多個控制指令還是定義了(ii)要在所述第二執(zhí)行通道上同時執(zhí)行的、包括至少一個數(shù)據(jù)處理指令的多個指令,并且可操作來根據(jù)所述檢測來控制所述第一和第二通道。
      2.如權(quán)利要求1所述的計算機(jī)處理器,其中所述第一處理通道還包括分支部件和控制執(zhí)行部件。
      3.如權(quán)利要求1或2所述的計算機(jī)處理器,其中所述第二處理通道還包括固定的數(shù)據(jù)執(zhí)行部件和可配置的數(shù)據(jù)執(zhí)行部件。
      4.如權(quán)利要求3所述的計算機(jī)處理器,其中所述固定的數(shù)據(jù)執(zhí)行部件和可配置的數(shù)據(jù)執(zhí)行部件都依照單指令多數(shù)據(jù)格式來操作。
      5.如先前權(quán)利要求中任何一個所述的計算機(jī)處理器,其中所述第一和第二處理通道共享加載存儲部件。
      6.如權(quán)利要求5所述的計算機(jī)處理器,其中所述加載存儲部件使用由所述第一處理通道所提供的控制信息和由所述第二處理通道所提供的數(shù)據(jù)。
      7.如先前權(quán)利要求中任何一個所述的計算機(jī)處理器,其中所述指令分組都具有相等的比特長度。
      8.如權(quán)利要求7所述的計算機(jī)處理器,其中所述指令分組都具有64比特長度。
      9.如先前權(quán)利要求中任何一個所述的計算機(jī)處理器,其中所述控制指令都具有在18比特和24比特之間的比特長度。
      10.如權(quán)利要求9所述的計算機(jī)處理器,其中所述控制指令都具有21比特長度。
      11.如權(quán)利要求7所述的計算機(jī)處理器,其中至少從控制指令、數(shù)據(jù)指令和存儲器訪問指令中選擇指令分組中每個指令的性質(zhì)。
      12.如權(quán)利要求11所述的計算機(jī)處理器,其中每個數(shù)據(jù)指令的比特長度是34比特。
      13.如權(quán)利要求11所述的計算機(jī)處理器,其中每個存儲器訪問指令的比特長度是28比特。
      14.如先前權(quán)利要求中任何一個所述的計算機(jī)處理器,其中當(dāng)所述譯碼部件檢測到所述指令分組定義了三個控制指令時,所述譯碼部件可操作來向所述第一處理通道提供所述三個控制指令,借此順序地執(zhí)行所述三個控制指令。
      15.如先前權(quán)利要求中任何一個所述的計算機(jī)處理器,其中當(dāng)所述譯碼部件檢測到所述指令分組定義了包括至少一個數(shù)據(jù)指令的兩個指令時,所述譯碼部件可操作來至少向所述第二處理通道提供所述數(shù)據(jù)指令,借此同時執(zhí)行所述兩個指令。
      16.如先前權(quán)利要求中任何一個所述的計算機(jī)處理器,其中所述譯碼部件可操作來在所述序列的每個指令分組中的預(yù)定比特位置讀取一組指定比特的值,以便確定a)所述指令分組定義了多個控制指令還是其中至少一個是數(shù)據(jù)指令的多個指令;并且b)在所述指令分組定義了其中至少一個是數(shù)據(jù)指令的多個指令的情況下,從以下指令中選擇兩個指令中的每個的性質(zhì)控制指令、數(shù)據(jù)指令和存儲器訪問指令。
      17.如權(quán)利要求3-16中任何一個所述的計算機(jī)處理器,其中可配置的數(shù)據(jù)執(zhí)行部件能夠在向目的寄存器堆返回結(jié)果之前對由單個發(fā)布指令所提供的數(shù)據(jù)執(zhí)行兩個以上的連續(xù)操作。
      18.一種用于操作計算機(jī)處理器的方法,所述計算機(jī)處理器包括第一和第二處理通道,每個處理通道包括多個功能部件,其中所述第一處理通道包括具有相對較窄比特寬度的控制寄存器堆并且所述第二處理通道包括具有相對較寬比特寬度的數(shù)據(jù)寄存器堆,所述方法包括譯碼指令分組以便檢測所述指令分組是定義了相等長度的多個控制指令還是包括至少一個數(shù)據(jù)指令的兩個指令,其中至少一個是向量;當(dāng)所述指令分組定義了相等長度的多個控制指令時,向所述第一處理通道提供所述控制指令,借此順序地執(zhí)行所述控制指令;并且當(dāng)所述指令分組定義了包括至少一個數(shù)據(jù)指令的多個指令時,至少向所述第二處理通道提供所述數(shù)據(jù)指令,借此同時執(zhí)行所述多個指令。
      19.一種包括程序代碼裝置的計算機(jī)程序產(chǎn)品,所述程序代碼裝置包括指令分組序列,所述指令分組包括具有相等長度的多個控制指令的第一類型指令分組和包括具有至少一個數(shù)據(jù)指令的多個指令的第二類型指令分組,其中所述計算機(jī)程序產(chǎn)品適于在計算機(jī)上運行以致第一類型指令分組由專用控制處理通道執(zhí)行,并且第二指令分組的至少一個數(shù)據(jù)指令由專用數(shù)據(jù)處理通道來執(zhí)行,所述專用控制處理通道比所述專用數(shù)據(jù)處理通道具有相對較窄的比特寬度。
      20.一種用于操作計算機(jī)處理器的方法,所述計算機(jī)處理器包括第一和第二處理通道,每個處理通道包括多個功能部件,其中所述第一處理通道包括具有相對較窄比特寬度的控制寄存器堆并且所述第二處理通道包括具有相對較寬比特寬度的數(shù)據(jù)寄存器堆,所述方法包括從程序存儲器中取出指令分組序列,所述指令分組全部在預(yù)定的比特位置包含一組指定比特;譯碼每個指令分組,所述譯碼步驟包括讀取所述指定比特的值以便確定a)所述指令分組定義了多個控制指令還是其中至少一個是數(shù)據(jù)指令的多個指令;并且b)在所述指令分組定義了其中至少一個是數(shù)據(jù)指令的多個指令的情況下,從以下指令中選擇至少兩個指令中的每個的性質(zhì)控制指令、數(shù)據(jù)指令和存儲器訪問指令。
      21.一種包括程序代碼裝置的計算機(jī)程序產(chǎn)品,所述程序代碼裝置包括指令分組序列,所述指令分組包括具有基本上相等長度的多個控制指令的第一類型指令分組和包括具有至少一個數(shù)據(jù)指令的第一和第二指令的第二類型指令分組,所述指令分組在所述指令分組內(nèi)指定的比特位置包括至少一個指示比特,其中所述計算機(jī)程序產(chǎn)品適于在計算機(jī)上運行以致所述指示比特適于與所述計算機(jī)的譯碼部件合作以用于指定a)所述指令分組定義了多個控制指令還是其中至少一個是數(shù)據(jù)指令的多個指令;并且b)在存在包括至少一個數(shù)據(jù)指令的多個指令的情況下,從以下指令中選擇兩個指令中的每個的性質(zhì)控制指令、數(shù)據(jù)指令和存儲器訪問指令。
      全文摘要
      依照本發(fā)明的實施例,公開了一種計算機(jī)處理器體系結(jié)構(gòu);并且尤其公開了一種計算機(jī)處理器、一種操作相同計算機(jī)處理器的方法以及利用該計算機(jī)的指令集的計算機(jī)程序產(chǎn)品。在依照本發(fā)明的一個實施例中,提供了一種計算機(jī)處理器,所述處理器包括譯碼部件,用于譯碼從保持指令分組序列的存儲器中所取出的指令分組;和第一和第二處理通道,每個處理通道包括多個功能部件,其中所述第一處理通道能夠執(zhí)行控制操作并且包括具有相對較窄比特寬度的控制寄存器堆,并且所述第二處理通道能夠執(zhí)行其中至少一個輸入為向量的數(shù)據(jù)處理操作并且包括具有相對較寬比特寬度的數(shù)據(jù)寄存器堆。所述譯碼部件可操作來對每個指令分組檢測所述指令分組是定義了(i)要在所述第一處理通道上順序執(zhí)行的多個控制指令還是定義了(ii)要在所述第二執(zhí)行通道上同時執(zhí)行的、包括至少一個數(shù)據(jù)處理指令的多個指令,并且可操作來根據(jù)所述檢測來控制所述第一和第二通道。
      文檔編號G06F9/38GK1973260SQ200580017666
      公開日2007年5月30日 申請日期2005年3月22日 優(yōu)先權(quán)日2004年3月31日
      發(fā)明者S·諾勒斯 申請人:艾色拉公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1