專利名稱:采用ilp和tlp的可重構處理器陣列的制作方法
技術領域:
本發(fā)明的技術領域是處理器體系結構,尤其涉及多處理器系統(tǒng)、用于編程所述處理器的方法以及用于實現(xiàn)所述方法的編譯器。
背景技術:
超長指令字(VLIW)處理器能夠在一個時鐘周期內執(zhí)行多個操作。通常,編譯器把程序指令簡化成為處理器能夠同時執(zhí)行的基本操作。將被同時執(zhí)行的這些操作被組合成為超長指令字(VLIW)。VLIW處理器的指令譯碼器譯碼VLIW中包含的基本操作并且發(fā)射每個給相應的處理器數(shù)據(jù)通路單元。作為選擇,VLIW處理器沒有指令譯碼器,并且VLIW中包含的每一操作被直接發(fā)射給相應的處理器數(shù)據(jù)通路單元。隨后,這些處理器數(shù)據(jù)通路單元并行執(zhí)行VLIW中的操作。正如能夠在例如媒體處理中所發(fā)現(xiàn)的那樣,這種也被稱為指令級并行(ILP)的并行性特別適合于涉及大量相同計算的應用程序。包括更多面向控制的操作例如用于伺服控制目的那樣的其他應用程序不適合于編程為VLIW程序。然而,通常這類程序能夠簡化為彼此之間能夠獨立執(zhí)行的多個程序線程。所述線程的并行執(zhí)行也稱為線程級并行(TLP)。然而,VLIW處理器不適合于使用線程級并行來執(zhí)行程序。采用后者類型的并行需要處理器數(shù)據(jù)通路單元的子集具有獨立的控制流,也就是它們能夠以彼此獨立的順序訪問它們自己的程序,例如它們能夠獨立地執(zhí)行條件轉移。然而,VLIW處理器中的數(shù)據(jù)通路單元都以相同的順序執(zhí)行指令序列。因此VLIW處理器僅能夠執(zhí)行一個線程。
為控制VLIW處理器的數(shù)據(jù)流水線中的操作,通常使用兩種不同的機制數(shù)據(jù)固定(data-stationary)和時間固定。在數(shù)據(jù)固定編碼的情況中,當作為處理器的指令集的一部分的每一指令遍歷數(shù)據(jù)流水線時,其控制將在特定數(shù)據(jù)項上必須執(zhí)行的整個操作序列。一旦從程序存儲器獲取并譯碼該指令時,處理器控制器硬件將確保在正確的機器周期中執(zhí)行組合操作。在時間固定編碼的情況中,作為處理器的指令集的一部分的每一指令控制將在單個機器周期中必須執(zhí)行的整個操作集。這些操作可以應用到遍歷數(shù)據(jù)流水線的若干不同的數(shù)據(jù)項。在該情況中,編程器或編譯器的職責是建立并保持數(shù)據(jù)流水線。在機器代碼程序中,所產生的流水線調度是完全可見的。在專用處理器中經(jīng)常使用時間固定編碼,因為它以較大代碼尺寸的代價,節(jié)省了用于延遲在指令中存在的控制信息所必需的硬件開銷。
發(fā)明內容
本發(fā)明的目的是提供一種在執(zhí)行應用程序期間能夠采用指令級并行和線程級并行或它們的組合的處理器。
為此目的,根據(jù)本發(fā)明的處理器包括多個處理單元,所述多個處理單元包括第一組處理單元和至少第二組處理單元;其中第一組的每一處理單元包括寄存器文件和至少一個指令發(fā)射槽(issue slot),該指令發(fā)射槽包括至少一個功能單元,并且設置處理單元以執(zhí)行在公共線程控制下的指令;其中第二組的每一處理單元包括寄存器文件和多個指令發(fā)射槽,每一指令發(fā)射槽包括至少一個功能單元,并且設置處理單元以執(zhí)行在公共線程控制下的指令;并且其中第二組處理單元中指令發(fā)射槽的數(shù)量基本上高于第一組處理單元中指令發(fā)射槽的數(shù)量;以及其中所述處理系統(tǒng)進一步包括被設置以在所述多個處理單元的處理單元之間進行通信的處理器間通信裝置。計算裝置可以包括加法器,乘法器,用于執(zhí)行諸如AND、OR、XOR等之類的邏輯操作、查找表操作、存儲器訪問等的裝置。
根據(jù)本發(fā)明的處理器允許在一個應用程序中采用指令級并行和線程級并行,以及它們的組合。在程序具有很大程度的指令級并行的情況中,可以將所述應用程序映射到第二組處理單元的一個或多個處理單元上。這些處理單元具有允許在一個線程控制下并行執(zhí)行多個指令的多個發(fā)射槽,并且因此適合于采用指令級并行。如果程序具有很大程度的線程級并行,但具有低程度的指令級并行,那么可以將所述應用程序映射到第一組處理單元的處理單元上。這些處理單元具有允許在一個線程控制下主要順序執(zhí)行指令序列的相對較少量的發(fā)射槽。通過將每一線程映射到所述處理單元,若干控制線程能夠并行存在。在程序具有很大程度的線程級并行和一個或多個線程具有很大程度的指令級并行的情況中,可以將應用程序映射到第一組處理單元和第二組的處理單元的組合上。第一組處理單元允許執(zhí)行由主要為順序的指令序列組成的線程,而第二組處理單元允許執(zhí)行具有能夠并行執(zhí)行的指令的線程。結果,根據(jù)必須執(zhí)行的應用程序的類型,按照本發(fā)明的處理器能夠采用指令級并行和線程級并行。
Colwell等人在Proc.of Supercomputing 1990,p.p.910-919中的“Architecture and Implementation of a VLIW Supercomputer”描述了一種VLIW處理器,該處理器既能夠被配置為兩個14-運算-寬度(14-operations-wide)處理器,其中每一14-運算-寬度處理器單獨受控于相應的控制器,也能夠被配置為受控于一個控制器的一個28-運算-寬度處理器。EP0962856公開了一種超長指令字處理器,其包括多個程序計數(shù)器,并且選擇性地操作于第一或第二模式。在第一模式中,數(shù)據(jù)處理器執(zhí)行單個指令流。在第二模式中,數(shù)據(jù)處理器同時執(zhí)行兩個獨立的程序指令流。然而,所述文獻既沒有公開具有并行執(zhí)行線程的多個處理單元的處理器陣列的原理,所述線程從不具有指令級并行變化到具有很大程度的指令級并行,也沒有公開如何能夠實現(xiàn)所述處理器陣列。
本發(fā)明一個實施例的特征在于以網(wǎng)絡形式設置所述多個處理單元的處理單元,其中設置第一組處理單元以經(jīng)由處理器間通信裝置僅與第二組處理單元進行直接通信;并且其中設置第二組處理單元以經(jīng)由處理器間通信裝置僅與第一組處理單元進行直接通信。在實際的應用程序中,具有很大程度指令級并行的功能與具有低程度指令級并行的功能將被交錯。通過選擇第一類型和第二類型的處理單元同樣被交錯的一種體系結構,允許將應用程序有效地映射到處理系統(tǒng)上。
本發(fā)明一個實施例的特征在于處理器間通信裝置包括數(shù)據(jù)驅動同步通信裝置。通過使用數(shù)據(jù)驅動同步機制來管理處理單元之間的通信,能夠保證在通信期間無數(shù)據(jù)丟失。
本發(fā)明一個實施例的特征在于設置所述多個處理單元的處理單元以被處理器間通信裝置所旁路。該實施例的優(yōu)點在于它增加了將應用程序映射到處理系統(tǒng)的靈活性。根據(jù)應用程序的指令級并行以及任務級并行的程度,在執(zhí)行所述應用程序期間可以不使用一個或多個處理單元。
在獨立權利要求中描述了本發(fā)明另外的實施例。根據(jù)本發(fā)明,同樣要求了以下內容的權利,即一種用于對所述處理系統(tǒng)編程的方法,以及一種編譯器程序產品,當所述編譯器程序產品在計算機系統(tǒng)上運行時,其被設置為執(zhí)行所述用于編程處理系統(tǒng)的方法的所有步驟。
圖1示出了根據(jù)本發(fā)明的處理系統(tǒng)的示意圖。
圖2更詳細地示出了第二組處理單元的處理單元的實例。
圖3更詳細地示出了第一組處理單元的處理單元的實例。
圖4更詳細地示出了處理單元之間的數(shù)據(jù)通路連接的實例。
圖5示出了要由根據(jù)本發(fā)明的處理系統(tǒng)執(zhí)行的應用程序的應用程序圖(application graph)。
具體實施例方式
圖1示意性示出了根據(jù)本發(fā)明的處理系統(tǒng)。該處理系統(tǒng)包括多個處理單元PE1-PE23,其具有第一組處理單元PE1-PE15和第二組處理單元PE17-PE23。所述處理單元可以經(jīng)由數(shù)據(jù)通路連接DPC來交換數(shù)據(jù)。在圖1所示的優(yōu)選實施例中,設置處理單元使得在第一組的兩個處理單元之間存在第二組的一個處理單元,以及反之亦然,并且數(shù)據(jù)通路連接提供相鄰處理單元之間的數(shù)據(jù)交換。非相鄰處理單元可以經(jīng)由一連串相互鄰近的處理單元來傳遞數(shù)據(jù)以進行數(shù)據(jù)交換。作為選擇或者另外,處理器系統(tǒng)可以包括跨越多個處理單元的子集的一個或多個全局總線,或任一對處理單元之間的點對點連接。作為選擇,處理系統(tǒng)可以包括或多或少的處理單元,或兩個以上不同組的處理單元,從而在不同組中的處理單元包括不同數(shù)量的發(fā)射槽,所以支持每一組的指令級并行的不同級別。
圖2更詳細地示出了第二組處理單元PE17-PE23的處理單元的實例。第二組處理單元的每一處理單元包括兩個或更多發(fā)射槽(IS)以及一個或多個寄存器文件(RF),每一發(fā)射槽包括一個或多個功能單元。圖2中的處理單元包括五個發(fā)射槽IS1-IS5;以及六個功能單元兩個算術邏輯單元(ALU),兩個累積乘法單元(MAC),一個專用單元(ASU),以及一個加載/存儲單元(LD/ST)。處理單元也包括五個寄存器文件RF1-RF5。發(fā)射槽S1包括兩個功能單元一個ALU和一個MAC。公共發(fā)射槽中的功能單元共享來自寄存器文件的讀端口和到互連網(wǎng)IN的寫端口。在可選實施例中,能夠在寄存器文件和操作發(fā)射槽之間使用第二互連網(wǎng)。發(fā)射槽中的功能單元可以使用與所述發(fā)射槽相關的至少一個寄存器文件。在圖2中,存在與每一發(fā)射槽相關的一個寄存器文件。作為選擇,一個以上的發(fā)射槽能夠被連接到單個寄存器文件。還有另一種可能的情況是多個獨立的寄存器文件被連接到單個發(fā)射槽,例如,一個不同的RF用于發(fā)射槽中功能單元的每一單獨的讀端口。優(yōu)選地,根據(jù)相應處理單元中的加載/存儲單元(LD/ST)來驅動不同處理單元之間的數(shù)據(jù)通路連接DPC,以便處理單元之間的通信能夠作為存儲器事務而進行管理。優(yōu)選地,與連接所述處理單元到其他處理單元的不同數(shù)據(jù)通路連接(DPC)相關聯(lián)地使用不同的加載/存儲單元(LD/ST)。這樣,如果所述處理單元直接連接到例如四個其它的處理單元,那么四個不同的加載/存儲單元優(yōu)選地用于與這些處理單元的通信,這在圖2中未示出。另外,另外的加載/存儲單元能夠被添加到處理單元的數(shù)據(jù)通路,并且與數(shù)據(jù)存儲器(例如RAM)相關聯(lián),所述數(shù)據(jù)存儲器既可以是所述處理單元的局部存儲器,也可以是系統(tǒng)級存儲器,這在圖2中未示出。通過可以使用指令存儲器IM的控制器CT來控制功能單元。程序計數(shù)器PC確定指令存儲器IM中的當前指令地址。由所述當前地址所指向的指令首先被載入到控制器中的內部指令寄存器IR。然后控制器CT控制數(shù)據(jù)通路單元(功能單元、寄存器文件、互連網(wǎng))以執(zhí)行由指令寄存器IR中存儲的指令所規(guī)定的操作。為此,控制器經(jīng)由操作碼總線OB而與功能單元通信,例如向功能單元提供操作碼;控制器經(jīng)由地址總線AB與寄存器文件通信,例如為讀寫寄存器文件中的寄存器而提供地址;以及控制器經(jīng)由路由總線RB而與互連網(wǎng)IN通信,例如向互連多路復用器提供路由信息。第二組處理單元包括多個發(fā)射槽,該發(fā)射槽允許在一個線程內采用指令級并行。例如,具有固有指令級并行的應用功能諸如快速傅里葉變換、離散余弦變換和有限脈沖響應濾波器能夠被映射到第二組處理單元上。
圖3更詳細地示出了第一組處理單元PE1-PE15的處理單元的實例。與第二組處理單元的處理單元相比,第一組處理單元的處理單元包括相對較少數(shù)量的發(fā)射槽。第一組處理單元進一步包括一個或多個寄存器文件和一個控制器。所述發(fā)射槽包括一個或多個功能單元,例如算術邏輯單元、累積乘法單元或專用單元。圖3中的處理單元包括兩個發(fā)射槽IS6和IS7,以及兩個寄存器文件RF6和RF7。發(fā)射槽IS6包括兩個功能單元ALU和MAC。公共發(fā)射槽中的功能單元共享來自寄存器文件的讀端口和到互連網(wǎng)IN的寫端口。發(fā)射槽IS7包括加載/存儲單元(LD/ST),其驅動連接所述處理單元與其它處理單元的數(shù)據(jù)通路連接(DPC)。優(yōu)選地,與直接連接所述處理單元到其它處理單元的數(shù)據(jù)通路連接(DPC)相關聯(lián)地使用不同的加載/存儲單元(LD/ST)。這樣,如果所述處理單元直接連接到例如四個其它的處理單元,那么四個不同的加載/存儲單元優(yōu)選地用于與這些處理單元的通信,這在圖3中未示出。另外,另外的加載/存儲(LD/ST)單元能夠被添加到處理單元的數(shù)據(jù)通路,并且與數(shù)據(jù)存儲器(例如RAM)相關聯(lián),所述數(shù)據(jù)存儲器既可以是所述處理單元的局部存儲器,也可以是系統(tǒng)級存儲器,這在圖3中未示出。在可選的實施例中,能夠在寄存器文件和操作發(fā)射槽之間使用第二互連網(wǎng)。發(fā)射槽中的功能單元可以使用與所述發(fā)射槽相關聯(lián)的至少一個寄存器文件。在圖3中,存在與發(fā)射槽IS6相關聯(lián)的一個寄存器文件,以及與發(fā)射槽IS7相關聯(lián)的另一寄存器文件。作為選擇,獨立的寄存器文件被連接到發(fā)射槽,例如一個不同的RF用于發(fā)射槽中功能單元的每一單獨的讀端口。通過可以使用指令存儲器IM的控制器CT來控制功能單元。程序計數(shù)器PC確定指令存儲器IM中的當前指令地址。由所述當前地址所指向的指令首先被載入到控制器中的內部指令寄存器IR。然后控制器CT控制數(shù)據(jù)通路單元(功能單元、寄存器文件、互連網(wǎng))以執(zhí)行由指令寄存器IR中存儲的指令所規(guī)定的操作。為此,控制器經(jīng)由操作碼總線OB而與功能單元通信,例如向功能單元提供操作碼;控制器經(jīng)由地址總線AB與寄存器文件通信,例如為讀寫寄存器文件中的寄存器而提供地址;以及控制器經(jīng)由路由總線RB而與互連網(wǎng)IN通信,例如向互連多路復用器提供路由信息。第一組處理單元具有相對較低數(shù)量的發(fā)射槽,并且因此適合于計算內在順序的功能,例如霍夫曼編碼。
圖4更詳細地示出了處理單元之間的數(shù)據(jù)通路連接DPC的實例。在優(yōu)選實施例中,數(shù)據(jù)通路連接使用數(shù)據(jù)驅動同步機制,以便防止在處理單元之間通信期間丟失數(shù)據(jù)。圖4所示的處理單元PE2和PE4之間的數(shù)據(jù)通路連接包括兩組(blocking)先進先出(FIFO)緩沖器BF。該FIFO緩沖器BF受控于控制信號hold_w和hold_r。如果處理單元PE2或PE4試圖向滿的FIFO緩沖器BF寫數(shù)據(jù),那么啟動信號hold_w,暫停整個處理單元直到另一處理單元從該FIFO緩沖器讀取至少一個數(shù)據(jù)單元,釋放在該FIFO緩沖器中的存儲空間。在那種情況下,hold_w信號被無效。只要FIFO緩沖器為滿,則通過使用hold_w信號,時鐘選通機制就能夠用于暫停處理單元向滿的FIFO緩沖器寫數(shù)據(jù)。如果處理單元PE2或PE4試圖從空的FIFO緩沖器中讀取數(shù)值,那么啟動hold_r信號,暫停整個處理單元直到另一處理單元向FIFO緩沖器寫入至少一個數(shù)據(jù)單元。在該時刻,hold_r信號被無效,并且被暫停的處理單元能夠再一次啟動從所述FIFO緩沖器中讀取數(shù)據(jù)。只要FIFO緩沖器為空,則通過使用hold_r信號,時鐘選通機制就能夠用于暫停處理單元從空的FIFO緩沖器中讀取數(shù)據(jù)。
在優(yōu)選實施例中,兩組中的處理單元是VLIW處理器,其中第二組處理單元是寬VLIW處理器,也就是具有許多發(fā)射槽的VLIW處理器,同時第一組處理單元是窄VLIW處理器,也就是具有小數(shù)量發(fā)射槽的VLIW處理器。在可選的實施例中,第二組處理單元是具有許多發(fā)射槽的寬VLIW處理器,并且第一組處理單元是單個發(fā)射槽精簡指令集計算機(RISC)處理器。具有許多發(fā)射槽的寬VLIW處理器允許在該處理器上運行的線程中采用指令級并行,同時能夠設計單個發(fā)射槽RISC處理器或具有少數(shù)發(fā)射槽的窄VLIW處理器以有效地順序執(zhí)行指令序列。實際上,應用程序通常包括能夠并行執(zhí)行的一系列線程,其中一些線程在指令級并行方面非常差,而一些線程內在地具有很大程度的指令級并行。在編譯所述應用程序期間,分析所述應用程序并識別能夠并行執(zhí)行的不同線程。而且,同樣確定線程內指令級并行的程度。如下能夠將該應用程序映射到根據(jù)本發(fā)明的處理系統(tǒng)。具有很大程度的指令級并行的線程被映射到寬VILW處理器,同時在指令級并行方面非常差或根本不具有指令級并行的線程被映射到單個發(fā)射槽RISC處理器或窄VLIW處理器。如圖1所示,不同線程之間的通信被映射到數(shù)據(jù)通路連接DPC。結果,允許有效地執(zhí)行應用程序并行執(zhí)行多個線程,而能夠同時采用線程內的指令級并行。因此,根據(jù)本發(fā)明的處理系統(tǒng)能夠采用應用程序中存在的指令級并行和線程級并行。另外,本發(fā)明具有以下優(yōu)點,即允許線程的計算特征與該線程所映射到的處理單元的計算特征之間的適當匹配。這樣,類似于霍夫曼譯碼那樣的內在順序的功能沒有被映射到寬VILW處理器,從而浪費了由于缺少指令級并行而未使用的體系結構資源,但其被代替地映射到適合其計算模式的小RISC處理器,所述寬VLIW處理器保持對其它功能可用。
圖5示出了必須由圖1所示的處理系統(tǒng)執(zhí)行的應用程序的應用程序圖。參考圖5,所述應用程序包括五個線程TA、TB、TC、TD和TE。這五個線程能夠并行執(zhí)行。線程TA、TB、TC和TE具有很大程度的指令級并行,而線程TD不具有指令級并行。所述線程經(jīng)由數(shù)據(jù)流DS來交換數(shù)據(jù),并且這些數(shù)據(jù)流由數(shù)據(jù)緩沖器DB緩沖。當將所述應用程序映射到處理系統(tǒng)時,線程TA、TB、TC和TE的每一個分別被映射到處理單元PE17-PE23之一,并且線程TD被映射到處理單元PE1-PE15之一。一種可選的方案是將線程TA映射到處理單元PE17,將線程TB映射到處理單元PE19,將線程TC映射到處理單元PE21,將線程TD映射到處理單元PE15,以及將線程TE映射到處理單元PE23。在該情況中,線程TC、TD和TE被映射到經(jīng)由數(shù)據(jù)通路連接DPC直接連接的處理單元上,也就是處理單元PE21直接與處理單元PE15通信,并且處理單元PE15直接與處理單元PE23通信。對于線程TA和TB來說,情況不是這樣的,因為處理單元PE17不得不與分別經(jīng)由PE7和PE9而與其間接耦合的處理單元PE19和PE21通信。同樣,處理單元PE19不得不與處理單元PE23通信,處理單元PE23經(jīng)由PE11而間接耦合到PE19。在這些情況中,能夠旁路處理單元PE7、PE9和PE11,以便允許處理單元之間的直接通信。如圖4所示,數(shù)據(jù)流DS被映射到數(shù)據(jù)通路連接DPC,并且數(shù)據(jù)緩沖器DB被映射到FIFO緩沖器BF。在不同的實施例中,應用程序圖可以包括或多或少的線程,以及在具有很大程度指令級并行的線程與具有低程度指令級并行的線程之間的不同比率。
在優(yōu)選實施例中,如圖1所示,第一和第二組的處理單元相交錯,也就是設置第一組的處理單元僅與第二組的處理單元直接通信,并且設置第二組的處理單元僅與第一組的處理單元直接通信。結果,決不存在用于不同處理單元上執(zhí)行的兩個線程之間通信的一個以上被旁路的處理單元的損失。
能夠采用的指令級并行和線程級并行的程度在從一個應用程序到另一個應用程序時將改變,在從其中每一線程具有高程度指令級并行并且其具有低程度線程級并行的應用程序到其中每一線程不具有指令級并行且其具有很大程度線程級并行的應用程序時改變。通過對沒有線程映射到其上的處理單元進行旁路,如圖1所示處理系統(tǒng)的靈活性允許將整個范圍的應用程序映射到處理系統(tǒng)。
參考圖2,互連網(wǎng)IN是一種完全連接的網(wǎng)絡,也就是所有的功能單元被耦合到所有的寄存器文件RF1、RF2、RF3、RF4和RF5。作為選擇,互連網(wǎng)IN可以是部分連接的網(wǎng)絡,也就是不是每一功能單元都被耦合到所有的寄存器文件。如果存在大量的功能單元,那么完全連接的網(wǎng)絡在硅面積和功耗方面的開銷將是相當大的。在設計VLIW處理器期間,根據(jù)處理系統(tǒng)必須執(zhí)行的應用程序的范圍,決定功能單元被耦合到寄存器文件部分的程度。
再一次參考圖2,所述處理單元包括分布式寄存器文件,也就是寄存器文件RF1、RF2、RF3、RF4和RF5。作為選擇,處理單元可以包括單個寄存器文件以用于所有的功能單元。在VLIW處理器的功能單元的數(shù)量相對較小的情況下,單個寄存器文件的開銷也相對較小。
在可選實施例中,第二組的處理單元包括超標量處理器。當在VLIW處理器的情況中,超標量處理器也包括能夠并行執(zhí)行多個操作的多個執(zhí)行單元。然而,處理器硬件本身確定在運行時間上存在哪些操作相關性,并且基于這些相關性來確定并行執(zhí)行哪些操作,同時確保將不會出現(xiàn)資源沖突。在本部分中所描述的用于VLIW處理器的實施例的原理也適用于超標量處理器。通常,與超標量處理器相比,VLIW處理器可以具有更多的執(zhí)行單元。與超標量處理器相比,VLIW處理器的硬件的復雜度更小,這樣產生較好的可伸縮的體系結構。尤其是執(zhí)行單元的數(shù)量和每一執(zhí)行單元的復雜度將確定使用本發(fā)明所能夠達到的益處總量。
在根據(jù)本發(fā)明的處理系統(tǒng)的其它實施例中,處理系統(tǒng)可以包括與圖1所示處理系統(tǒng)相比較或多或少的處理單元。作為選擇,可以以不同方式來設置處理單元,例如以一維網(wǎng)絡的方式,或不以交錯的方式,也就是在第一組的兩個處理單元之間定位第二組的一個以上的處理單元,以及反之亦然。處理系統(tǒng)的體系結構可以取決于希望在所述處理系統(tǒng)上執(zhí)行的應用程序的范圍,例如應用程序的范圍相對于指令級并行的量所具有的線程級并行的量。
應該指出,上述實施例是說明而非限制本發(fā)明,并且本領域技術人員將能夠設計許多可選實施例而不脫離所附權利要求書的范圍。在權利要求書中,括弧之間放置的參考符號不應被解釋為限制權利要求。詞語“包括”不排除除了權利要求中所列單元或步驟之外的單元或步驟的存在。位于單元之前的詞語“一個”或“一種”不排除多個所述單元的存在。在列舉了若干裝置的設備權利要求中,能夠通過同一硬件項來實現(xiàn)這些裝置中的若干。僅僅在相互不同的獨立權利要求中所敘述的確定的措施的事實并不表示這些措施的組合不能被有利地使用。
權利要求
1.一種包括多個處理單元的處理系統(tǒng),所述多個處理單元包括第一組處理單元和至少第二組處理單元,其中第一組的每一處理單元包括寄存器文件和至少一個指令發(fā)射槽,該指令發(fā)射槽包括至少一個功能單元,并且設置處理單元以執(zhí)行在公共線程控制下的指令,其中第二組的每一處理單元包括寄存器文件和多個指令發(fā)射槽,每一指令發(fā)射槽包括至少一個功能單元,并且設置處理單元以執(zhí)行在公共線程控制下的指令,并且其中第二組處理單元中指令發(fā)射槽的數(shù)量基本上高于第一組處理單元中指令發(fā)射槽的數(shù)量,以及其中所述處理系統(tǒng)進一步包括被設置以在所述多個處理單元的處理單元之間進行通信的處理器間通信裝置。
2.根據(jù)權利要求1的處理系統(tǒng),其特征在于以網(wǎng)絡形式設置所述多個處理單元的處理單元,其中設置第一組的處理單元以經(jīng)由處理器間通信裝置僅與第二組的處理單元進行直接通信,并且其中設置第二組的處理單元以經(jīng)由處理器間通信裝置僅與第一組的處理單元進行直接通信。
3.根據(jù)權利要求1的處理系統(tǒng),其特征在于在第二組處理單元的處理單元中組織的多個發(fā)射槽共享用于控制指令執(zhí)行的至少一個公共控制信號。
4.根據(jù)權利要求1的處理系統(tǒng),其特征在于設置第一組處理單元的處理單元以每周期僅發(fā)射一個操作。
5.根據(jù)權利要求1的處理系統(tǒng),其特征在于第二組處理單元的處理單元是超長指令字處理器,其中寄存器文件通過相應的功能單元對于所述處理單元是可訪問的,并且其中所述處理單元進一步包括用于耦合寄存器文件和相應功能單元的局部通信網(wǎng)絡。
6.根據(jù)權利要求1的處理系統(tǒng),其特征在于第一組處理單元的處理單元是超長指令字處理器,其中寄存器文件通過相應的功能單元對于所述處理單元是可訪問的,并且其中所述處理單元進一步包括用于耦合寄存器文件和相應功能單元的局部通信網(wǎng)絡。
7.根據(jù)權利要求5或6的處理系統(tǒng),其特征在于對應于處理單元的寄存器文件是一種分布式寄存器文件。
8.根據(jù)權利要求5或6的處理系統(tǒng),其特征在于對應于處理單元的局部通信網(wǎng)絡是一種部分連接的通信網(wǎng)絡。
9.根據(jù)權利要求1的處理系統(tǒng),其特征在于處理器間通信裝置包括數(shù)據(jù)驅動同步通信裝置。
10.根據(jù)權利要求9的處理系統(tǒng),其特征在于數(shù)據(jù)驅動同步通信裝置包括一組先進先出緩沖器。
11.根據(jù)權利要求1的處理系統(tǒng),其特征在于設置所述多個處理單元的處理單元以被處理器間通信裝置所旁路。
12.一種用于對處理系統(tǒng)編程的方法,其中所述處理系統(tǒng)包括多個處理單元,所述多個處理單元包括第一組處理單元和至少第二組處理單元,其中第一組的每一處理單元包括寄存器文件和至少一個指令發(fā)射槽,該指令發(fā)射槽包括至少一個功能單元,并且設置處理單元以執(zhí)行在公共線程控制下的指令,其中第二組的每一處理單元包括寄存器文件和多個指令發(fā)射槽,每一指令發(fā)射槽包括至少一個功能單元,并且設置處理單元以執(zhí)行在公共線程控制下的指令,并且其中第二組處理單元中指令發(fā)射槽的數(shù)量基本上高于第一組處理單元中指令發(fā)射槽的數(shù)量,并且其中所述處理系統(tǒng)進一步包括被設置以在多個處理單元的處理單元之間進行通信的處理器間通信裝置,以及其中對所述處理系統(tǒng)編程的方法包括以下步驟-識別應用程序圖中的第一組功能,其中每一功能內在地包含主要順序地執(zhí)行的指令,-識別應用程序圖中的第二組功能,其中每一功能內在地包含指令級并行,-將第一組功能映射到第一組處理單元的處理單元,-將第二組功能映射到第二組處理單元的處理單元。
13.根據(jù)權利要求12的用于對處理系統(tǒng)編程的方法,其特征在于所述方法進一步包括以下步驟-通過處理器間通信裝置來旁路所述多個處理單元的處理單元。
14.一種編譯器程序產品,當所述編譯器程序產品在計算機系統(tǒng)上運行時,其被設置以實施根據(jù)權利要求12或13的用于對處理系統(tǒng)編程的方法的所有步驟。
全文摘要
根據(jù)本發(fā)明的一種處理系統(tǒng)包括多個處理單元,并且所述多個處理單元包括第一組處理單元和至少第二組處理單元。第一組的每一處理單元包括寄存器文件和至少一個指令發(fā)射槽,并且指令發(fā)射槽包括至少一個功能單元。該類型的處理單元專用于執(zhí)行不具有或具有非常低程度的指令級并行的線程。第二組的每一處理單元包括寄存器文件和多個指令發(fā)射槽,并且每一指令發(fā)射槽包括至少一個功能單元。該類型的處理單元專用于執(zhí)行具有很大程度的指令級并行的線程。設置所有的處理單元以執(zhí)行在公共線程控制下的指令。所述處理系統(tǒng)進一步包括被設置用于處理單元之間通信的通信裝置。這樣,處理系統(tǒng)能夠在應用程序中采用線程級并行和指令級并行,或采用它們的組合。
文檔編號G06F9/38GK1833222SQ200480009994
公開日2006年9月13日 申請日期2004年4月8日 優(yōu)先權日2003年4月15日
發(fā)明者B·德奧里維拉卡斯特魯普佩 申請人:皇家飛利浦電子股份有限公司