專利名稱:在集群式指令級并行性處理器中訪問總線的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種集群(clustered)式指令級并行性處理器,以及一種用于在集群式指令級并行性處理器中訪問總線的方法。
在指令級并行性(Instruction Level Parallelism ILP)處理器領(lǐng)域中一個主要問題是寄存器堆資源的可擴(kuò)展性。過去,圍繞集中式資源已經(jīng)設(shè)計了ILP體系結(jié)構(gòu)以便涵蓋對大量用于保持當(dāng)前正在執(zhí)行的所有并行操作的結(jié)果的寄存器的需求。使用集中式寄存器堆易于在功能單元之間共享數(shù)據(jù)并且簡化了寄存器的分配和調(diào)度。然而,這種單一集中式寄存器的可擴(kuò)展性是受限制的,這是因為具有大量端口的、巨大單片寄存器堆難于構(gòu)建并限制處理器的周期時間。
近來在VLSI技術(shù)和計算機(jī)體系結(jié)構(gòu)領(lǐng)域內(nèi)的發(fā)展建議在某些領(lǐng)域,分散結(jié)構(gòu)可能更好。據(jù)預(yù)測,未來處理器的性能將受到通信約束而不是計算約束的限制。該問題的一個解決辦法是劃分資源并且在物理上把這些資源分布在處理器上,以便避免長線路,這樣對通信速度以及等待時間都具有消極影響。這可以通過集群來實現(xiàn)。在集群式處理器中,像功能單元和寄存器堆之類的幾種資源被分布在獨立的集群上。特別是對于集群式ILP體系結(jié)構(gòu),每個集群包括一組功能單元和局部寄存器。在集群式處理器后的主要思想是在相同的集群上分配那些頻繁交互的計算部分,而在不同的集群上分配那些很少通信或通信并不重要的部分。然而,所述問題是怎樣在硬件級(線路與邏輯)上以及在軟件級(把變量分配到寄存器并且調(diào)度)上處理集群間通信ICC(Inter-Cluster-Communication)。
最廣泛使用的ICC模式是完全點對點連接拓?fù)洌疵績蓚€集群具有允許交換數(shù)據(jù)的專用配線。一方面,具有完全連接的點對點ICC簡化了指令調(diào)度,但是另一方面由于需要配線的數(shù)量N(N-1)的原因,其中N是集群的數(shù)目,使得可擴(kuò)展性受到了限制。據(jù)此,配線的平方增長把可擴(kuò)展性限制為2-10個集群。
此外,對于點對點ICC,還可以使用部分連接網(wǎng)絡(luò)。這里,不把集群連接到所有其它集群(完全連接),而例如只是連接到相鄰的集群。盡管配線的復(fù)雜性得以減小,但是用于編程處理器的問題將增加,這些問題用現(xiàn)有的自動調(diào)度以及分配工具并沒有令人滿意地得以解決。
又一ICC模式是全局總線連接。經(jīng)由總線把集群彼此完全地連接,同時與上述完全點對點連接拓?fù)銲CC模式相比較只要求更少的硬件資源。另外,該模式允許值的多點傳送,即可以把相同的值同時發(fā)送到幾個集群,或者換句話說幾個集群通過同時讀取總線可以獲取相同的值。此外所述模式是基于靜態(tài)調(diào)度的,從而仲裁器或任何控制信號都是不必要的。由于所述總線構(gòu)成共享資源,所以每個周期只可以執(zhí)行一次轉(zhuǎn)送,這把通信帶寬限制得非常低。此外,由于總線的傳播延遲的原因,ICC的等待時間將增加。隨著集群數(shù)目的增加,所述等待時間將進(jìn)一步增加,這限制了具有這種ICC模式的處理器的可擴(kuò)展性。
通過使用多總線,其中把兩條總線而不是一條用于ICC,可以部分克服受限通信帶寬的問題。盡管這將增加通信帶寬,但是在不減少所述總線等待時間的情況下還將增加硬件開銷。
在另一ICC通信模式中使用局部總線。這種ICC模式是一種部分地連接的通信模式。因此,所述局部總線一次僅僅連接一定量而不是所有的集群。該模式的缺點是更難編程,這是因為例如如果在連接到不同局部總線的集群之間發(fā)送值,那么該值就不能在一個周期內(nèi)直接發(fā)送而是至少需要兩個周期。
綜上所述,可以把已知ICC模式的優(yōu)點和缺點概括如下。點對點拓?fù)渚哂懈邘挘桥渚€的復(fù)雜性隨集群數(shù)目的平方而增加。不可以多點傳送,即把一個值發(fā)送到幾個其它集群。另一方面,總線拓?fù)渚哂休^低的復(fù)雜性,這是因為所述復(fù)雜性隨集群的數(shù)目而線性增加,并且允許多點傳送,但是其具有較低的帶寬。ICC模式可以是完全連接或部分連接的。完全連接模式具有較高帶寬以及較低的軟件復(fù)雜性,但是存在較高的配線復(fù)雜性并且難以擴(kuò)展。部分連接模式把良好的可擴(kuò)展性和較低的硬件復(fù)雜性聯(lián)合起來,但是具有較低的帶寬以及較高的軟件復(fù)雜性。
因此本發(fā)明的目的是在用于集群式處理器的ICC模式內(nèi)改進(jìn)總線的帶寬,同時在不過于增加基本編程系統(tǒng)復(fù)雜性的情況下,減少所述總線的等待時間。
由依照權(quán)利要求1的ILP處理器以及依照權(quán)利要求5的、用于在集群式指令級并行性處理器中訪問總線的方法來解決該問題。
本發(fā)明的基本思想是沿著總線添加開關(guān),以便通過斷開/閉合所述開關(guān)來整齊地把所述總線劃分為較小的獨立段。
依照本發(fā)明,集群式指令級并行性處理器包括多個集群C1-C4;具有多個總線段100a、100b、100c的總線裝置100;和安排在相鄰總線段100a、100b、100c之間的開關(guān)裝置200a、200b。所述總線裝置100用于連接所述集群C1-C4,所述集群均包括至少一個寄存器堆RF(register file)和至少一個功能單元FU(functional unit)。所述開關(guān)裝置200用于連接或拆接相鄰的總線段100a、100b、100c。
通過把所述總線拆分為不同的段,改進(jìn)了在一個總線段內(nèi)所述總線的等待時間。盡管整個總線的總體等待時間—即所有開關(guān)閉合時—仍然隨集群的數(shù)目而線性增加,但是在局部或相鄰集群之間的數(shù)據(jù)移動可以比在不同總線段上-即在不同的開關(guān)上的移動具有較低的等待時間。通過斷開開關(guān)可以避免由于總線ICC的全局互連要求所導(dǎo)致局部通信即在鄰接集群之間的通信的減慢,以便可以實現(xiàn)具有較低等待時間的短總線,即總線段。此外,并入所述開關(guān)是低廉且易于實現(xiàn),同時在不放棄完全連接ICC的情況下,增加了總線的可用帶寬并且改善了由長總線所引起的等待時間問題。
依照本發(fā)明的一個方面,所述總線裝置100是包括至少兩條總線的多總線,這將提高所述通信帶寬。
本發(fā)明還涉及一種用于在集群式指令級并行性處理器中訪問總線100的方法。所述總線100沿著所述總線100包括至少一個開關(guān)裝置200。集群C1-C4能夠基于源寄存器和轉(zhuǎn)送字執(zhí)行發(fā)送操作,或者基于目的源寄存器和轉(zhuǎn)送字執(zhí)行接收操作。然后依照所述轉(zhuǎn)送字來斷開/閉合所述開關(guān)裝置200。
從軟件觀點來看,調(diào)度拆分或分段的總線并不比全局總線ICC更加復(fù)雜,而只是需要幾個邏輯門來控制開關(guān)即可。
依照本發(fā)明更進(jìn)一步的方面,所述轉(zhuǎn)送字表示所述發(fā)送操作的發(fā)送方向和所述接收操作的接收方向,其允許依照數(shù)據(jù)移動的方向來控制開關(guān)。
現(xiàn)在參考附圖將更詳細(xì)地描述本發(fā)明,其中
圖1示出了點對點集群間通信ICC模式;圖2示出了經(jīng)由總線的ICC模式;
圖3示出了經(jīng)由多總線的ICC模式;圖4示出了經(jīng)由局部總線的ICC模式;圖5依照第一實施例示出了經(jīng)由分段總線的ICC模式;圖6依照第二實施例示出了經(jīng)由分段總線的ICC模式;和圖7依照第三實施例示出了經(jīng)由分段總線的ICC模式。
最廣泛使用的ICC模式是完全點對點連接拓?fù)?,即每兩個集群具有允許交換數(shù)據(jù)的專用配線。在圖1中示出了具有四個集群的典型ILP處理器。
圖2示出了具有全局總線連接的另一ICC模式。經(jīng)由總線把所述集群彼此完全連接,同時與圖1所示的ICC模式相比較只要求更少的硬件資源。另外,該模式允許值的多點傳送,即可以把相同的值同時發(fā)送到幾個集群,或者換句話說幾個集群通過同時讀取總線可以獲取相同的值。
如圖3所示通過使用多總線,其中把兩條總線而不是一條總線用于ICC,可以部分克服有限通信帶寬的問題。盡管這將增加通信帶寬,但是在不減少總線等待時間的情況下還將增加硬件開銷。
圖4示出了使用局部總線的另一ICC通信模式。該ICC模式是一種部分地連接的通信模式。因此,所述局部總線一次僅僅連接一定量的集群而并非所有集群,例如把集群1到3連接到一個局部總線而把集群2到4連接到第二局部總線。該模式的缺點是更難編程,這是因為例如如果一個值將被從集群1發(fā)送到集群4,那么不能在一個周期內(nèi)直接發(fā)送該值而是至少需要兩個周期。
圖5依照第一實施例示出了經(jīng)由分段總線的集群間通信ICC模式??梢园阉鯥CC模式并入VLIW處理器。所述模式包括彼此經(jīng)由總線100和把所述總線分段的一個開關(guān)200連接的4個集群C1-C4。當(dāng)開關(guān)200斷開時,可以在一個周期內(nèi)在集群1C1和集群2C2之間執(zhí)行一次數(shù)據(jù)移動,和/或在集群3C3和集群4C4之間執(zhí)行另一次數(shù)據(jù)移動。另一方面,當(dāng)開關(guān)200閉合時,可以在一個周期內(nèi)把數(shù)據(jù)從集群1C1或集群2C2移動到集群3C3或集群4C4。
利用該模式,像集群和開關(guān)的數(shù)目之類的硬件資源的可擴(kuò)展性就如圖2所示的已知ICC那樣,是線性的。
盡管依照第一實施例的ICC模式只示出了單總線100,但是可以很容易地把本發(fā)明的原理應(yīng)用于如圖3所示的多總線ICC模式以及如圖4所示的使用局部總線的ICC模式。為了實現(xiàn)拆分或分段總線,只需要把某些開關(guān)200并入所述多總線或局部總線即可。
圖6依照第二實施例示出了經(jīng)由分段總線的集群間通信ICC模式。這里更詳細(xì)地示出了集群C1-C4以及開關(guān)控制。每個集群C1-C4包括寄存器堆RF和功能單元FU,每個集群經(jīng)由接口連接到一位總線100,所述接口每位只由3個或(OR)門G構(gòu)成。作為選擇,與(AND)、與非(NAND)或者或非(NOR)門G也可用作接口。然而,顯然每個集群C1-C4可以包括不止一個寄存器堆RF和一個功能單元FU。功能單元FU可以是專用于任何總線操作的專門的功能單元FU。此外,可以有幾個功能單元寫入所述總線。
省略所述寄存器堆的旁路邏輯的表示,這是因為該表示對于理解依照本發(fā)明的拆分或分段總線來說是不必要的。盡管只示出了一位總線字,然而顯然所述總線可以具有任何想要的字大小。此外,用每位兩條線路來實現(xiàn)依照第二實施例的總線。一個線路攜帶左到右值,而另一條線路攜帶所述總線的從右到左值。然而,所述總線的其它實施方式也是可以的。
對于每個總線線路可以只用幾個MOS晶體管M1、M2來實現(xiàn)總線拆分開關(guān)。
可以由集群C1-C4通過發(fā)布local_mov或global_mov操作來執(zhí)行總線的訪問控制。這些操作的自變量是源寄存器和目標(biāo)寄存器。local_mov操作僅僅通過斷開總線拆分開關(guān)來使用所述總線的一段,而global_mov通過閉合所述總線拆分開關(guān)200來使用整個總線100。
作為選擇,為了允許多點傳送,用于移動數(shù)據(jù)的操作可以接受不止一個目標(biāo)寄存器,即一列目標(biāo)寄存器,其屬于不同的集群C1-C4。這還可以由在一位向量中的寄存器/集群掩碼來實現(xiàn)。
圖7依照本發(fā)明第三實施例示出了經(jīng)由分段總線的集群間通信ICC模式。圖7描述了六個集群C1-C6,具有三個段100a、100b、100c和兩個開關(guān)200a、200b的總線100,即把兩個集群與每個總線段相關(guān)聯(lián)。顯然,集群、開關(guān)和總線段的數(shù)目可以不同于該例子。集群C1-C6,如參考圖6在第二實施例中所描述,可以使所述集群和總線100以及開關(guān)200的接口具體化。在第三實施例中,缺省狀態(tài)下,這些開關(guān)被視為是閉合的。
可以由集群C1-C6通過發(fā)送操作或接收操作來執(zhí)行總線訪問。在那些集群需要經(jīng)由總線把數(shù)據(jù)發(fā)送到另一集群—即執(zhí)行數(shù)據(jù)移動的情況中,所述集群執(zhí)行發(fā)送操作,其中所述發(fā)送操作具有兩個自變量,即源寄存器和發(fā)送方向,即發(fā)送所述數(shù)據(jù)的方向。發(fā)送方向可以是‘左’或‘右’,并且規(guī)定多點傳送,其還可以是‘全向’,即‘左’和‘右’。
例如,如果集群3C3需要把數(shù)據(jù)移動到集群1C1,那么它將發(fā)布把源寄存器和發(fā)送方向作為自變量的發(fā)送操作,所述源寄存器即其中存儲將要移動數(shù)據(jù)的寄存器之一,所述發(fā)送方向表明移動所述數(shù)據(jù)的方向。這里,發(fā)送方向是左。因此,將要斷開在集群4C4和集群5C5之間的開關(guān)200b,這是因為對于該數(shù)據(jù)移動不要求具有集群5和6C5、C6的總線段200b。或者在其它更多通用字中,當(dāng)所述集群發(fā)布一發(fā)送操作時,斷開安排在最接近所述發(fā)送方向相反側(cè)的開關(guān),借此只把使用所述總線限制到那些執(zhí)行數(shù)據(jù)移動實際上所要求的分段,即那些在發(fā)送和接收集群之間的分段。
如果所述集群3C3需要把相同的數(shù)據(jù)發(fā)送到集群1和6C1、C6,即多點傳送,那么發(fā)送方向?qū)⑹恰颉?。因此,在集?和集群1之間的所有開關(guān)200a以及在集群3和6之間的所有開關(guān)200b仍保持閉合態(tài)。
依照進(jìn)一步的例子,如果集群3C3需要從集群1C1接收數(shù)據(jù),那么它將發(fā)布把目的寄存器和接收方向作為參數(shù)的接收操作,所述目的寄存器即其中將要存儲所接收數(shù)據(jù)的寄存器之一,所述接收方向表明接收所述數(shù)據(jù)的方向。這里,所述接收方向是左。因此,將要斷開在集群4和集群5C4、C5之間的開關(guān)200b,這是因為對于該數(shù)據(jù)移動不要求具有集群5和6C5、C6的總線段100c?;蛘咴谄渌嗤ㄓ米种校?dāng)所述集群發(fā)布一接收操作時,斷開被安排在接近所述接收方向相反側(cè)的開關(guān),借此只把使用所述總線限制到那些實際上要求執(zhí)行數(shù)據(jù)移動的段,即那些在接收和接收集群之間的段。
對于規(guī)定的多點傳送,也可以不指定接收方向。因此,所有開關(guān)仍將保持閉合狀態(tài)。
依照第四實施例,其是基于第三實施例的,所述開關(guān)不具有任何缺省狀態(tài)。此外,提供開關(guān)配置字來編程所述開關(guān)200。所述開關(guān)配置字確定哪些開關(guān)200是斷開的以及哪些開關(guān)是閉合的??梢韵裾2僮饕粯釉诿總€周期發(fā)布,所述正常操作像發(fā)送/接收操作。因此,由發(fā)送/接收操作和開關(guān)配置字來執(zhí)行總線訪問,與如依照第三實施例所描述的、由把發(fā)送/接收方向作為自變量的發(fā)送/接收操作來執(zhí)行總線訪問形成對比。
權(quán)利要求
1.一種集群式指令級并行性處理器,包括多個集群,每個集群都包括至少一個寄存器堆和至少一個功能單元;總線裝置,用于連接所述集群,所述總線包括多個總線段,和開關(guān)裝置,安排在相鄰的總線段之間,用于連接或拆接相鄰的總線段。
2.如權(quán)利要求1所述的處理器,其中每個集群與至少一個總線段耦合。
3.如權(quán)利要求1或2所述的處理器,其中兩個或更多集群與相同的總線段耦合。
4.如權(quán)利要求1、2或3所述的處理器,其中所述總線裝置是包括至少兩條總線的多總線。
5.一種用于在集群式指令級并行性處理器中訪問總線的方法,其中所述總線沿著所述總線包括至少一個開關(guān)裝置,所述方法包括如下步驟基于源寄存器和轉(zhuǎn)送字來執(zhí)行發(fā)送操作,和/或基于目的源寄存器和轉(zhuǎn)送字來執(zhí)行接收操作;依照所述轉(zhuǎn)送字來斷開/閉合所述開關(guān)裝置。
6.如權(quán)利要求5所述的方法,其中所述轉(zhuǎn)送字表示所述發(fā)送操作的發(fā)送方向和所述接收操作的接收方向。
7.如權(quán)利要求6所述的方法,其中所述開關(guān)裝置的缺省狀態(tài)是閉合的。
8.如權(quán)利要求7所述的方法,其中所述開關(guān)裝置中的一個是斷開的,所述開關(guān)裝置中的這一個最靠近于在與所述發(fā)送或接收方向相反的方向上執(zhí)行所述發(fā)送操作或所述接收操作的集群。
9.如權(quán)利要求6所述的方法,其中所述發(fā)送方向或所述接收方向是左、右或全向。
10.如權(quán)利要求9所述的方法,其中如果所述發(fā)送方向或接收方向是全向的話,那么任何開關(guān)裝置都不被斷開。
11.如權(quán)利要求5所述的方法,其中所述轉(zhuǎn)送字表示開關(guān)配置字,其中依照所述配置字來斷開/閉合所述開關(guān)裝置。
全文摘要
本發(fā)明的基本思想是沿著總線添加開關(guān),以便通過斷開/閉合所述開關(guān)來整齊地把所述總線劃分為較小的獨立段。集群式指令級并行性處理器包括多個集群(C1-C6)、總線裝置(100)和開關(guān)裝置(200),其中每個集群包括至少一個寄存器堆(RF)和至少一個功能單元(FU),所述總線裝置(100)用于連接所述集群(C1-C6),其中所述總線(100)包括多個總線段(100a,100b,100c),所述開關(guān)裝置(200)安排在相鄰的總線段(100a,100b,100c)之間。所述開關(guān)裝置(200)用于連接或拆接相鄰的總線段(100a,100b,100c)。此外,示出了一種用于在集群式指令級并行性處理器中訪問總線(100)的方法。所述總線(100)沿著所述總線(100)包括至少一個開關(guān)裝置(200)。集群能夠基于源寄存器和轉(zhuǎn)送字來執(zhí)行發(fā)送操作,或者基于目的源寄存器和轉(zhuǎn)送字來執(zhí)行接收操作。然后,依照所述轉(zhuǎn)送字?jǐn)嚅_/閉合所述開關(guān)裝置。
文檔編號G06F13/40GK1732436SQ200380107941
公開日2006年2月8日 申請日期2003年11月28日 優(yōu)先權(quán)日2002年12月30日
發(fā)明者O·M·皮雷斯多斯雷斯莫雷拉, A·特雷奇科, V·M·G·范阿赫特 申請人:皇家飛利浦電子股份有限公司