亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多處理器系統(tǒng)中的類型轉(zhuǎn)換單元的制作方法

文檔序號:6479510閱讀:163來源:國知局
專利名稱:多處理器系統(tǒng)中的類型轉(zhuǎn)換單元的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種處理器,該處理器包括多個執(zhí)行單元,一個可由執(zhí)行單元訪問的寄存器堆以及一個用于連接執(zhí)行單元和寄存器堆的通信網(wǎng)絡(luò)。
背景技術(shù)
對高性能計算不斷增長的需求已經(jīng)導(dǎo)致出現(xiàn)了幾個解決方案,在這些方案中,一些并行處理(concurrent processing)的形式(例如并行(parallelism))已經(jīng)被引入處理器體系結(jié)構(gòu)。一種實現(xiàn)高性能的廣泛使用的概念是引入指令級并行,其中,處理器體系結(jié)構(gòu)中出現(xiàn)許多執(zhí)行單元,用于同時執(zhí)行或多或少的許多指令。兩個主要概念已經(jīng)被采用多線程的概念,在該概念中,一個程序的多個線程可由執(zhí)行單元訪問;以及超長指令字(VLIW)的概念,在該概念中,與執(zhí)行單元的功能性一致的多組指令在指令集中出現(xiàn)。
在超長指令字(VLIW)處理器的情況中,多個指令被打包為一個長指令,稱為VLIW指令。VLIW處理器使用多個獨立的執(zhí)行單元來并行地執(zhí)行這些指令。處理器允許在程序中使用指令級并行并且從而同時執(zhí)行多個指令。為了使軟件程序能在VLIW處理器上運行,它必須被轉(zhuǎn)化成一組VLIW指令。編譯器通過優(yōu)化并行以試圖最小化執(zhí)行程序所需的時間。根據(jù)分配給單個VLIW指令的多個指令可以被并行執(zhí)行的約束以及數(shù)據(jù)獨立性的約束,編譯器將多個指令組合到一個VLIW指令。對于數(shù)據(jù)固定的VLIW處理器或?qū)τ跁r間固定的VLIW處理器,多個指令的編碼可以分別用兩種不同的方法完成。在數(shù)據(jù)固定的VLIW處理器的情況下,所有涉及將在給定的數(shù)據(jù)項上執(zhí)行的運算的給定的流水線的信息都被編碼進(jìn)一個單獨的VLIW指令中。對于時間固定的VLIW處理器,涉及將在給定的數(shù)據(jù)項上執(zhí)行的運算的流水線的信息被分散在不同VLIW指令中的多個指令,因此在程序中曝露了處理器的所述流水線。
在大多數(shù)高級編程語言中,可以使用多種數(shù)據(jù)類型。在使用C語言作為編程語言的程序中,數(shù)據(jù)類型經(jīng)常被隱式地轉(zhuǎn)換或顯式地轉(zhuǎn)換為另一種數(shù)據(jù)類型。當(dāng)執(zhí)行程序時,可以在VLIW處理器的網(wǎng)絡(luò)中或在執(zhí)行單元的輸出執(zhí)行實際的類型轉(zhuǎn)換。在特定用途VLIW處理器的情況下,即,在VLIW處理器被設(shè)計用于處理特定的應(yīng)用程序范圍的情況下,VLIW處理器的網(wǎng)絡(luò)或執(zhí)行單元可能不為所有的數(shù)據(jù)類型轉(zhuǎn)換提供所需的類型轉(zhuǎn)換硬件。因此,結(jié)果是不能為將在這種VLIW處理器上運行的一些應(yīng)用程序執(zhí)行某個數(shù)據(jù)類型轉(zhuǎn)換。
US 6,460,135描述了一種微處理器,其包括輸入/輸出執(zhí)行單元,計算執(zhí)行單元,多個數(shù)據(jù)寄存器,指令控制器以及互連結(jié)構(gòu)。指令控制器譯碼指令字并將操作碼發(fā)送給輸入/輸出執(zhí)行單元或計算執(zhí)行單元。類型信息寄存器與數(shù)據(jù)寄存器相結(jié)合,并且信息寄存器保存指示存儲在相應(yīng)數(shù)據(jù)寄存器中的數(shù)據(jù)的數(shù)據(jù)類型和有效位寬度的類型信息。獨立于用于計算的數(shù)據(jù)的類型信息,指令字指明執(zhí)行結(jié)果的類型信息,即數(shù)據(jù)類型和有效位寬度。在需要兩個操作數(shù)的操作的執(zhí)行期間,計算執(zhí)行單元比較兩個操作數(shù)的類型信息,并且當(dāng)存在不一致時產(chǎn)生中斷,隨后數(shù)據(jù)被轉(zhuǎn)換為正確的類型,并且這個轉(zhuǎn)換是在軟件中進(jìn)行的。在輸入/輸出執(zhí)行單元必須執(zhí)行輸入/輸出指令的情況下,它將存儲在類型信息寄存器中的類型信息與指令字的類型信息進(jìn)行比較。若不一致,也產(chǎn)生一個中斷并且隨后數(shù)據(jù)同樣被轉(zhuǎn)換為正確的類型,并且該轉(zhuǎn)換是在軟件中進(jìn)行的。
現(xiàn)有技術(shù)的處理器的缺點在于,為了啟動類型轉(zhuǎn)換必須產(chǎn)生一個中斷,所述的類型轉(zhuǎn)換隨后必須在軟件中執(zhí)行。結(jié)果,處理器的總體性能會大大降低。

發(fā)明內(nèi)容
本發(fā)明的一個目的是增大能在特定用途多處理器系統(tǒng)中執(zhí)行的數(shù)據(jù)類型轉(zhuǎn)換的范圍,尤其是在特定用途VLIW處理器中,提高那些系統(tǒng)的適應(yīng)性。
這個目的是通過一種處理器來完成的,其特征在于該處理器還包括一個轉(zhuǎn)換設(shè)備,用于當(dāng)在多個執(zhí)行單元中的一個執(zhí)行單元與寄存器堆之間傳送所述數(shù)據(jù)時轉(zhuǎn)換數(shù)據(jù)類型。在通信網(wǎng)絡(luò)不支持所需的數(shù)據(jù)類型轉(zhuǎn)換的情況下,類型轉(zhuǎn)換可以由轉(zhuǎn)換設(shè)備來執(zhí)行。通過允許轉(zhuǎn)換設(shè)備執(zhí)行廣大范圍的類型轉(zhuǎn)換,可以提高特定用途多處理器系統(tǒng)的適應(yīng)性,因為不同的應(yīng)用程序,即在最初的應(yīng)用程序范圍之外的應(yīng)用程序,也可以在該多處理器系統(tǒng)上運行。
本發(fā)明的一個實施例的特征在于寄存器堆是一個分布式的寄存器堆,并且通信網(wǎng)絡(luò)是一個用于連接執(zhí)行單元和分布式寄存器堆的選中部分的部分連接的通信網(wǎng)絡(luò)。分布式寄存器堆的優(yōu)點在于,每個寄存器堆段需要更少的讀和寫端口,從而導(dǎo)致更小的寄存器堆帶寬。此外,與中央寄存器堆相比,分布式寄存器堆中的寄存器的尋址需要更少的比特。與完全連接的通信網(wǎng)絡(luò)相比,部分連接的通信網(wǎng)絡(luò)在編碼大小和能量消耗方面也更節(jié)省,尤其是在有大量執(zhí)行單元的情況下。
本發(fā)明的一個實施例的特征在于轉(zhuǎn)換設(shè)備包括一個轉(zhuǎn)換寄存器堆和一個轉(zhuǎn)換單元,轉(zhuǎn)換寄存器堆可由轉(zhuǎn)換單元訪問。在執(zhí)行單元的結(jié)果必須被寫入寄存器堆的多個寄存器并且結(jié)果具有不同的數(shù)據(jù)類型的情況下,數(shù)據(jù)可以被寫入轉(zhuǎn)換寄存器堆。隨后,對于每個請求,轉(zhuǎn)換單元可以從轉(zhuǎn)換寄存器堆讀取數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)換為所需的類型并將結(jié)果寫入適當(dāng)?shù)募拇嫫鳌?br> 本發(fā)明的一個實施例的特征在于處理器還包括一個通信設(shè)備,用于連接執(zhí)行單元、轉(zhuǎn)換單元、分布式寄存器堆,以及轉(zhuǎn)換寄存器堆。在部分連接的通信網(wǎng)絡(luò)的情況中,不能保證從每個執(zhí)行單元或類型轉(zhuǎn)換單元的輸出到每個執(zhí)行單元或類型轉(zhuǎn)換單元的輸入都存在一個通信路徑。結(jié)果,執(zhí)行單元可能不能夠向轉(zhuǎn)換單元傳送數(shù)據(jù)。倘若不能通過通信網(wǎng)絡(luò)來傳送數(shù)據(jù),則通信設(shè)備允許從執(zhí)行單元的輸出向轉(zhuǎn)換單元,以及從轉(zhuǎn)換單元向執(zhí)行單元的輸入傳送數(shù)據(jù)。
本發(fā)明的一個實施例的特征在于通信設(shè)備支持編程語言的所有數(shù)據(jù)類型。本實施例的一個優(yōu)點是所有數(shù)據(jù)都可以傳送給轉(zhuǎn)換設(shè)備用于數(shù)據(jù)類型轉(zhuǎn)換,而不依賴于它的類型也不需要通過通信網(wǎng)絡(luò)或通信設(shè)備自身進(jìn)行任何中間轉(zhuǎn)換。
本發(fā)明的一個實施例的特征在于通信設(shè)備連接所有的執(zhí)行單元、轉(zhuǎn)換單元、分布式寄存器堆的所有部分,以及轉(zhuǎn)換寄存器堆。本實施例的一個優(yōu)點是所有執(zhí)行單元都可以通過通信設(shè)備向轉(zhuǎn)換寄存器堆傳送數(shù)據(jù),并且轉(zhuǎn)換單元可以通過通信設(shè)備一直向所有寄存器堆堆段傳送數(shù)據(jù)。
本發(fā)明的一個實施例的特征在于轉(zhuǎn)換單元是多個執(zhí)行單元中的一個執(zhí)行單元的一部分。本實施例的一個優(yōu)點是不需要單獨的轉(zhuǎn)換單元,節(jié)省了額外的硅面積和通信連接。


圖1示出了根據(jù)本發(fā)明的處理器,其包括多個執(zhí)行單元。
具體實施例方式
參照圖1,一個示意性的方框圖說明了一個VLIW處理器,其包括多個執(zhí)行單元101,103和105,以及一個分布式寄存器堆,包括寄存器堆段109,111,113。該處理器還有一個轉(zhuǎn)換設(shè)備135。轉(zhuǎn)換設(shè)備135包括轉(zhuǎn)換寄存器堆115和類型轉(zhuǎn)換單元107。寄存器堆段109可以由執(zhí)行單元101和103訪問,寄存器堆段111和113可以由執(zhí)行單元105訪問,并且轉(zhuǎn)換寄存器堆115可以由類型轉(zhuǎn)換單元107訪問。
該處理器還具有一個部分連接的網(wǎng)絡(luò)117,用于連接執(zhí)行單元101,103和105,以及分布式寄存器堆段109、111、113的選集和轉(zhuǎn)換寄存器堆115。部分連接網(wǎng)絡(luò)117還將轉(zhuǎn)換設(shè)備135與選中的分布式寄存器堆段109,111和113相連。部分連接的網(wǎng)絡(luò)117包括多路復(fù)用器119,121,123,125和127。處理器處理特定的應(yīng)用程序范圍,并且部分連接的網(wǎng)絡(luò)117為這個目的而設(shè)計,即,如果該執(zhí)行單元必須在那個范圍內(nèi)的應(yīng)用程序執(zhí)行期間將數(shù)值寫入那個寄存器堆段,那么在處理器設(shè)計期間,通過部分連接的網(wǎng)絡(luò)建立從執(zhí)行單元到分布式寄存器堆段的連接。尤其是在有大量執(zhí)行單元的情況下,就硅面積和多路復(fù)用的開銷而言,通過直接連接將所有執(zhí)行單元連接到所有分布式寄存器堆段將會非常昂貴。在設(shè)計期間,在執(zhí)行單元101,103和105與轉(zhuǎn)換寄存器堆115之間的部分連接的網(wǎng)絡(luò)117的一部分連接,以及在類型轉(zhuǎn)換單元107和分布式寄存器堆段109,111和113之間的部分連接的網(wǎng)絡(luò)117的一部分連接都被固定。部分連接的網(wǎng)絡(luò)117本身還支持許多數(shù)據(jù)類型轉(zhuǎn)換,并且在處理器設(shè)計期間固定了支持哪些類型轉(zhuǎn)換。
在處理器執(zhí)行應(yīng)用程序期間,數(shù)據(jù)類型轉(zhuǎn)換必須由處理器來執(zhí)行。例如,執(zhí)行單元101產(chǎn)生一個無符號定點數(shù)類型的輸出,其包括16比特,其中15比特被置于小數(shù)點后面,必須通過部分連接的網(wǎng)絡(luò)117將其寫入寄存器堆段111。執(zhí)行單元105將使用這個數(shù)據(jù)輸出作為運算的輸入,但是這個輸入要求是一個包括32比特,其中31比特被置于小數(shù)點之后的無符號的定點數(shù)。因此,該數(shù)據(jù)的類型必須轉(zhuǎn)換。在這種情況下,部分連接的網(wǎng)絡(luò)支持這種數(shù)據(jù)類型轉(zhuǎn)換,并且包含16比特的無符號定點數(shù)被多路復(fù)用器123隱式地轉(zhuǎn)換為包含32比特的無符號定點數(shù)。
當(dāng)執(zhí)行在處理器最初設(shè)計范圍之外的應(yīng)用程序時,可能出現(xiàn)所需的數(shù)據(jù)類型轉(zhuǎn)換不能由處理器隱式地執(zhí)行。例如,執(zhí)行單元103產(chǎn)生一個無符號定點數(shù)類型的數(shù)據(jù)輸出,其包含16比特,應(yīng)該通過部分連接的網(wǎng)絡(luò)117將其寫入寄存器堆段113。執(zhí)行單元105需要包含32比特的浮點數(shù)數(shù)據(jù)作為運算的輸入數(shù)據(jù)。然而,多路復(fù)用器125不能進(jìn)行從無符號定點數(shù)到浮點數(shù)的數(shù)據(jù)類型轉(zhuǎn)換。在這種情況下,執(zhí)行單元103通過部分連接的網(wǎng)絡(luò)117將該數(shù)據(jù)寫入轉(zhuǎn)換寄存器堆115。類型轉(zhuǎn)換單元107從寄存器堆段115讀取該數(shù)據(jù),并且這個單元通過執(zhí)行一個專用的指令,將數(shù)據(jù)類型從無符號定點數(shù)轉(zhuǎn)換為浮點數(shù)。隨后,通過部分連接的網(wǎng)絡(luò)117,類型轉(zhuǎn)換單元107將浮點數(shù)形式的數(shù)據(jù)寫入寄存器堆段113?,F(xiàn)在具有正確數(shù)據(jù)類型的數(shù)據(jù)對于執(zhí)行單元105是可用的。
另一種可能性是在一個在處理器最初設(shè)計的范圍之外的應(yīng)用程序的執(zhí)行期間,一個執(zhí)行結(jié)果被多于一個執(zhí)行單元用作輸入數(shù)據(jù),但是這些執(zhí)行單元需要不同的數(shù)據(jù)類型。如果執(zhí)行單元包括一個內(nèi)部狀態(tài),那么執(zhí)行兩次同樣的操作并產(chǎn)生不同類型的輸出結(jié)果是不可能的。例如,對于具有內(nèi)部累加寄存器的乘加運算單元的情況,使用同樣的輸入數(shù)據(jù)相繼執(zhí)行兩次同樣的運算將導(dǎo)致不同的輸出結(jié)果。例如,執(zhí)行單元105產(chǎn)生包含32比特的無符號定點數(shù)類型的輸出數(shù)據(jù),這些數(shù)據(jù)必須通過部分連接的網(wǎng)絡(luò)117寫入寄存器堆段109兩次,一次作為包含16比特的無符號定點數(shù),一次作為包含32比特的浮點數(shù)。隨后,這些數(shù)據(jù)分別被執(zhí)行單元101和103作為輸入數(shù)據(jù)所需要。然而,部分連接的網(wǎng)絡(luò)117不能執(zhí)行兩種所需數(shù)據(jù)類型的轉(zhuǎn)換。執(zhí)行單元105通過部分連接的網(wǎng)絡(luò)117將輸出數(shù)據(jù)寫入轉(zhuǎn)換寄存器堆115。執(zhí)行單元107從轉(zhuǎn)換寄存器堆115讀取該數(shù)據(jù),將該數(shù)據(jù)從包含32比特的無符號定點數(shù)轉(zhuǎn)換為包含16比特的無符號定點數(shù),并通過部分連接的網(wǎng)絡(luò)117將轉(zhuǎn)換后的數(shù)據(jù)寫入寄存器堆段109。接著,執(zhí)行單元115再次從轉(zhuǎn)換寄存器堆115讀數(shù)據(jù),將該數(shù)據(jù)從包含32比特的無符號定點數(shù)轉(zhuǎn)換為包含32比特的浮點數(shù),并通過部分連接的網(wǎng)絡(luò)117將轉(zhuǎn)換后的數(shù)據(jù)寫入寄存器堆段109。隨后,這些數(shù)據(jù)可以由執(zhí)行單元101和103從寄存器堆段109中讀取,并用于進(jìn)一步的處理。
對于一些在該處理器上執(zhí)行的應(yīng)用程序,從執(zhí)行單元101,103和105向轉(zhuǎn)換寄存器堆115寫數(shù)據(jù)或從類型轉(zhuǎn)換單元107向寄存器堆段109,111和113寫數(shù)據(jù)可能需要多于一個步驟。例如,執(zhí)行單元101產(chǎn)生浮點數(shù)類型的輸出數(shù)據(jù),并且這個數(shù)據(jù)必須被作為無符號定點數(shù)寫入寄存器堆段111,被用作將由執(zhí)行單元105執(zhí)行的運算的輸入數(shù)據(jù)。然而,部分連接的網(wǎng)絡(luò)不支持這種類型轉(zhuǎn)換。類型轉(zhuǎn)換可以由類型轉(zhuǎn)換單元107來進(jìn)行,但是執(zhí)行單元101不能直接通過部分連接的網(wǎng)絡(luò)117將它的輸出數(shù)據(jù)寫到寄存器堆段115,而只能通過選擇的路徑。一種可能的供選擇的路徑是執(zhí)行單元101通過部分連接的網(wǎng)絡(luò)117將它的輸出數(shù)據(jù)寫入寄存器堆段111,而不進(jìn)行隱式數(shù)據(jù)類型轉(zhuǎn)換。執(zhí)行單元105從寄存器堆段111讀取所述輸出數(shù)據(jù),并通過部分連接的網(wǎng)絡(luò)117將這些輸出數(shù)據(jù)寫入寄存器堆段115。隨后,類型轉(zhuǎn)換單元107從寄存器堆段115讀取所述輸出數(shù)據(jù)并執(zhí)行所需的數(shù)據(jù)類型轉(zhuǎn)換。類型轉(zhuǎn)換單元107不能通過部分連接的網(wǎng)絡(luò)117將數(shù)據(jù)直接寫入寄存器堆段111,而只能通過選擇的路徑。一種可能性是類型轉(zhuǎn)換單元107通過部分連接的網(wǎng)絡(luò)117將數(shù)據(jù)寫入寄存器堆段109。隨后,由將數(shù)據(jù)寫入寄存器堆段111的執(zhí)行單元101通過部分連接的網(wǎng)絡(luò)117從寄存器堆段109讀取數(shù)據(jù)。倘若在程序編譯期間,編譯器檢測到數(shù)據(jù)不能由執(zhí)行單元直接寫入轉(zhuǎn)換寄存器堆,或者不能由類型轉(zhuǎn)換單元直接寫入寄存器堆段,那么它將確定一條可供選擇的路徑并將所需的額外的指令插入程序中。
倘若部分連接的網(wǎng)絡(luò)117不能執(zhí)行期望的類型轉(zhuǎn)換,那么類型轉(zhuǎn)換單元107能夠執(zhí)行這個類型轉(zhuǎn)換并通過部分連接的網(wǎng)絡(luò)將轉(zhuǎn)換后的數(shù)據(jù)寫入適當(dāng)?shù)募拇嫫鞫讯巍=Y(jié)果,處理器仍舊能夠有效地執(zhí)行處理器最初設(shè)計的范圍之外的應(yīng)用程序,提高了處理器的適應(yīng)性。在這類應(yīng)用程序的編譯期間,編譯器將檢測到所需的數(shù)據(jù)類型轉(zhuǎn)換不能由網(wǎng)絡(luò)隱式地執(zhí)行,并在程序中引入額外的指令用于通過部分連接的網(wǎng)絡(luò)117向類型轉(zhuǎn)換單元107發(fā)送數(shù)據(jù),由類型轉(zhuǎn)換單元107將該數(shù)據(jù)轉(zhuǎn)換到所需的數(shù)據(jù)類型,并通過部分連接的網(wǎng)絡(luò)117將轉(zhuǎn)換后的數(shù)據(jù)發(fā)送到所需的寄存器堆段。由類型轉(zhuǎn)換單元107執(zhí)行的顯式類型轉(zhuǎn)換可以通過一個或多個運算來實現(xiàn),如同本領(lǐng)域技術(shù)人員所知的那樣。例如,當(dāng)只使用無符號定點類型時,左移運算、右移運算和AND運算就足夠了。在有符號定點類型的情況下,在右移運算中,應(yīng)該能加入比特作為最高位的比特,以便防止符號比特的改變。
在另一實施例中通信網(wǎng)絡(luò)117可以是一個完全連接的通信網(wǎng)絡(luò),即,所有執(zhí)行單元101,103和105,以及類型轉(zhuǎn)換單元107被連接到所有分布式寄存器堆段109,111和113,以及轉(zhuǎn)換寄存器堆115。在相對少量的執(zhí)行單元的情況下,完全連接的通信網(wǎng)絡(luò)的開銷也相對較小。
在可選實施例中,處理器還包括一個通信設(shè)備129,用于將功能單元101、103和105,類型轉(zhuǎn)換單元107以及所有分布式寄存器堆段109、111和113,以及轉(zhuǎn)換寄存器堆115連接起來。通信設(shè)備129與部分連接的網(wǎng)絡(luò)117共享多路復(fù)用器119,121,123,125和127。通信設(shè)備支持所有的用于編寫將要執(zhí)行的應(yīng)用程序所用的編程語言的數(shù)據(jù)類型。
在一些情況下,可能出現(xiàn)以下情況部分連接的網(wǎng)絡(luò)117不能隱式地執(zhí)行所需的類型轉(zhuǎn)換。另外,用于向類型轉(zhuǎn)換單元107的轉(zhuǎn)換寄存器堆115寫數(shù)據(jù)的,或從類型轉(zhuǎn)換單元107向寄存器堆段109,111和113寫數(shù)據(jù)的可供選擇的路徑可能需要很多步驟或甚至根本不存在。在這些情況下,倘若通過部分連接的網(wǎng)絡(luò)117不能傳送數(shù)值,那么通信設(shè)備129允許在執(zhí)行單元101、103和105,類型轉(zhuǎn)換單元107,分布式寄存器堆段109、111和113,以及轉(zhuǎn)換寄存器堆115之間傳送數(shù)值。通過這種方式,保證在執(zhí)行單元101,103和105以及類型轉(zhuǎn)換單元107的每個輸出與執(zhí)行單元101,103,105和類型轉(zhuǎn)換單元107的每個輸入之間存在通信路徑。例如,執(zhí)行單元101不直接通過部分連接的網(wǎng)絡(luò)117連接到寄存器堆段115,但是僅僅存在通過通信設(shè)備129的直接相連。然而,如果可能,通過部分連接的網(wǎng)絡(luò)117在執(zhí)行單元、類型轉(zhuǎn)換單元和寄存器堆之間進(jìn)行直接通信是優(yōu)選的。
例如,執(zhí)行單元101產(chǎn)生作為包含32比特的無符號定點數(shù)的結(jié)果數(shù)據(jù),這些數(shù)據(jù)必須被寫入寄存器堆段111,用于執(zhí)行單元105的后續(xù)使用,執(zhí)行單元105需要浮點數(shù)數(shù)據(jù)作為輸入數(shù)據(jù)。執(zhí)行單元101不能通過部分連接的網(wǎng)絡(luò)117直接將該數(shù)據(jù)寫到寄存器堆段111,因為它不支持這種類型的數(shù)據(jù)轉(zhuǎn)換。執(zhí)行單元101也不能通過部分連接的網(wǎng)絡(luò)117直接將輸出數(shù)據(jù)寫到寄存器堆段115,因為這個連接不存在。另外,類型轉(zhuǎn)換單元107也不能通過部分連接的網(wǎng)絡(luò)117直接將數(shù)據(jù)寫到寄存器堆段111,因為這個連接也不存在。編譯器在程序編譯期間檢測到這些問題,決定通過通信設(shè)備129傳送數(shù)據(jù),并將用于執(zhí)行這些數(shù)據(jù)傳送的適當(dāng)?shù)闹噶畈迦氤绦蛑?。?zhí)行單元101通過通信設(shè)備129向寄存器堆段115寫入輸出數(shù)據(jù)。隨后,類型轉(zhuǎn)換單元107從轉(zhuǎn)換寄存器堆115讀取該數(shù)據(jù)并將數(shù)據(jù)類型轉(zhuǎn)換為浮點數(shù)。隨后,類型轉(zhuǎn)換單元107通過通信設(shè)備129將該數(shù)據(jù)寫入寄存器堆段111。在可選實施例中,數(shù)據(jù)可以通過部分連接的網(wǎng)絡(luò)117從執(zhí)行單元101,103和105寫入轉(zhuǎn)換寄存器堆115,并且隨后通過通信設(shè)備129從類型轉(zhuǎn)換單元107寫入寄存器堆段109,111和113。在另一實施例中,數(shù)據(jù)可以通過通信設(shè)備129從執(zhí)行單元101,103和105寫入轉(zhuǎn)換寄存器堆115,并且隨后通過部分連接的網(wǎng)絡(luò)117從類型轉(zhuǎn)換單元107寫入寄存器堆段109,111和113。
優(yōu)選地,安排通信設(shè)備129用于與第一等待時間(latency)進(jìn)行通信,安排部分連接的通信網(wǎng)絡(luò)117用于與第二等待時間進(jìn)行通信,所述第一等待時間超過所述第二等待時間。這個實施例的一個優(yōu)點是它防止通過通信設(shè)備129的通信成為限速步驟,所以它允許處理器在最大時鐘頻率運行。此外,實現(xiàn)了較高的吞吐量。通常,通信設(shè)備129包括一個共享的通信機(jī)制的形式。因此,通過通信設(shè)備129的通信可能會由于它的控制邏輯而減慢,尤其是在有大量執(zhí)行單元的情況下。將通過通信設(shè)備的通信分成多個連續(xù)的步驟,每個步驟發(fā)生在一個時鐘周期內(nèi),保持一個通信步驟的等待時間較低。這防止通過通信設(shè)備的通信限制處理器的時鐘頻率。通過通信設(shè)備的通信的總等待時間,即所有單獨步驟的等待時間之和,將會比通過部分連接的通信網(wǎng)絡(luò)的通信的等待時間要高。然而,通過通信設(shè)備129的通信的更高的等待時間幾乎不會影響處理器的總體性能,因為通信的主要部分將通過部分連接的通信網(wǎng)絡(luò)117來發(fā)生。
在一個優(yōu)選實施例中,通信設(shè)備129包括一個多路復(fù)用器131和一個全局總線133,安排多路復(fù)用器用于將功能單元101、103和105,類型轉(zhuǎn)換單元107以及全局總線133連接,安排全局總線133將多路復(fù)用器131和所有的分布式寄存器堆段109、111和113,以及轉(zhuǎn)換寄存器堆115連接。全局總線133與部分連接的通信網(wǎng)絡(luò)117的不同在于多個功能單元101、103和105,以及類型轉(zhuǎn)換單元107與全局總線133相連,而且這些功能單元和類型轉(zhuǎn)換單元時分復(fù)用全局總線,然而,部分連接的通信網(wǎng)絡(luò)117將一個執(zhí)行單元或轉(zhuǎn)換單元連接到一個寄存器堆段或轉(zhuǎn)換寄存器堆。全局總線的一個優(yōu)點是與完全連接的通信網(wǎng)絡(luò)相比,就硅面積的開銷而言使相對較低的。
執(zhí)行單元或類型轉(zhuǎn)換單元可以與一個寄存器堆段相連,例如在類型轉(zhuǎn)換單元107的情況下;或者與多個寄存器堆段相連,例如在執(zhí)行單元105的情況下;或者多個功能單元可以與一個寄存器堆段相連,例如在功能單元101和103的情況下。寄存器堆段可以與一個執(zhí)行單元相連,例如在轉(zhuǎn)換寄存器堆115的情況下;或者與多個執(zhí)行單元相連,例如在寄存器堆段109的情況下。寄存器堆段和執(zhí)行單元之間的連接程度依賴于執(zhí)行單元必須執(zhí)行的操作的類型。
在圖1所示的實施例中,部分連接的網(wǎng)絡(luò)117和通信設(shè)備129共享一些資源,如多路復(fù)用器119、121、123、125和127。在其他實施例中,甚至更多的資源可以被共享,或者沒有資源被共享。
在其他實施例中,類型轉(zhuǎn)換單元107可以是執(zhí)行單元101、103和105中之一的一部分,并且寄存器堆段115可以是那個執(zhí)行單元的對應(yīng)的寄存器堆段的一部分。
一個超標(biāo)量體系結(jié)構(gòu)處理器還包括多個能夠并行地執(zhí)行多個運算的發(fā)射槽(issue slot),例如在VLIW處理器的情況下。然而,在運行時,處理器硬件自己確定存在哪些操作依賴,并且基于這些依賴決定并行地執(zhí)行哪些運算,同時保證不出現(xiàn)資源沖突。這些在這個部分中所描述的用于VLIW處理器的實施例的原理,也適用于超標(biāo)量體系結(jié)構(gòu)處理器。通常,VLIW處理器可以比超標(biāo)量體系結(jié)構(gòu)處理器具有更多的執(zhí)行單元。VLIW處理器的硬件不如超標(biāo)量體系結(jié)構(gòu)處理器的復(fù)雜,這導(dǎo)致了更好的可擴(kuò)展的體系結(jié)構(gòu)。在各種因素中,執(zhí)行單元的數(shù)量和每個執(zhí)行單元的復(fù)雜度將決定使用本發(fā)明所能獲得的好處的多少。
應(yīng)該注意上述的實施例說明而不是限制本發(fā)明,本領(lǐng)域的技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可以設(shè)計許多可選實施例。在權(quán)利要求中,任意放在圓括號之間的標(biāo)號不應(yīng)理解為限制該權(quán)利要求。詞語“包括”并不排除權(quán)利要求中所列之外的成分或步驟的存在性。成分之前的詞語“一個”并不排除多個這種成分的存在。在設(shè)備權(quán)利要求中列舉了幾個模塊,這些模塊中的許多可以通過一個相同硬件來實現(xiàn)。某些措施在相互不同的從屬權(quán)利要求中被列舉的事實并不表示這些措施的組合不能產(chǎn)生便利。
權(quán)利要求
1.一種處理器,包括多個執(zhí)行單元(101,103,105);寄存器堆(109,111,113),可由所述執(zhí)行單元訪問;通信網(wǎng)絡(luò)(117),用于連接所述執(zhí)行單元和所述寄存器堆,特征在于所述處理器還包括轉(zhuǎn)換設(shè)備(135),用于當(dāng)在所述多個執(zhí)行單元中的一個執(zhí)行單元與所述寄存器堆之間傳送數(shù)據(jù)時轉(zhuǎn)換所述數(shù)據(jù)的類型。
2.如權(quán)利要求1所述的處理器,其中所述寄存器堆(109,111,113)是分布式寄存器堆;所述通信網(wǎng)絡(luò)(117)是部分連接的通信網(wǎng)絡(luò),用于連接所述執(zhí)行單元和所述分布式寄存器堆的選中的部分。
3.如權(quán)利要求2所述的處理器,其中所述轉(zhuǎn)換設(shè)備(135)包括轉(zhuǎn)換寄存器堆(115)和轉(zhuǎn)換單元(107),所述轉(zhuǎn)換寄存器堆可由所述轉(zhuǎn)換單元訪問。
4.如權(quán)利要求3所述的處理器,其特征在于所述處理器還包括通信設(shè)備(129),用于連接所述執(zhí)行單元(101,103,105)、所述轉(zhuǎn)換單元(107)、所述分布式寄存器堆(109,111,113)、以及所述轉(zhuǎn)換寄存器堆(115)。
5.如權(quán)利要求4所述的處理器,其特征在于所述通信設(shè)備(129)支持編程語言的所有數(shù)據(jù)類型。
6.如權(quán)利要求4所述的處理器,其特征在于所述通信設(shè)備(129)連接所有的執(zhí)行單元(101,103,105)、所述轉(zhuǎn)換單元(107)、所述分布式寄存器堆(109,11,113)的所有部分、以及所述轉(zhuǎn)換寄存器堆(115)。
7.如權(quán)利要求6所述的處理器,其特征在于所述轉(zhuǎn)換單元(107)是所述多個執(zhí)行單元(101,103,105)中的一個執(zhí)行單元的一部分。
全文摘要
本發(fā)明涉及一種超長指令字(VLIW)處理器,包括多個執(zhí)行單元(101,103,105),寄存器堆(109,111,113)以及一個用于連接執(zhí)行單元和寄存器堆的通信網(wǎng)絡(luò)(117)。在一種特定用途VLIW處理器的情況下,即,在一種VLIW處理器被設(shè)計用于處理特定的應(yīng)用程序范圍的情況下,VLIW處理器的通信網(wǎng)絡(luò)可能不支持所有類型的數(shù)據(jù)轉(zhuǎn)換。因此,結(jié)果是對于一些運行在這樣的VLIW處理器上的應(yīng)用程序,不能進(jìn)行某種數(shù)據(jù)類型的轉(zhuǎn)換。通過在VLIW處理器的體系結(jié)構(gòu)中并入一個類型轉(zhuǎn)換單元(107),可以保證能夠進(jìn)行任何期望的數(shù)據(jù)類型轉(zhuǎn)換。在部分連接的通信網(wǎng)絡(luò)(117)的情況下,還可以在該體系結(jié)構(gòu)中并入一個通信設(shè)備(129),允許每個執(zhí)行單元向類型轉(zhuǎn)換單元傳送數(shù)值,并允許類型轉(zhuǎn)換單元向分布式寄存器堆的任意堆段傳送數(shù)值。
文檔編號G06F9/30GK1761941SQ200480007180
公開日2006年4月19日 申請日期2004年3月17日 優(yōu)先權(quán)日2003年3月19日
發(fā)明者馬爾科·J·G·貝庫伊吉 申請人:皇家飛利浦電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1