專利名稱:一種多維交換結(jié)構(gòu)中的無死鎖自適應(yīng)路由方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信系統(tǒng)、并行計算機(jī)系統(tǒng)中的交換結(jié)構(gòu)技術(shù)領(lǐng)域,特別涉及采用多維交換結(jié)構(gòu)的路山器/分組交換機(jī)、多處理器系統(tǒng)的交換結(jié)構(gòu)中的路由技術(shù)。
背景技術(shù):
交換結(jié)構(gòu)是路由/交換設(shè)備(路由器、交換機(jī))與多處理器系統(tǒng)(multi-processor system)的核心部件。對于前者而言,交換結(jié)構(gòu)把路由器/分組交換機(jī)的各個端口連接起來,將從源端口來的分組傳輸?shù)侥康亩丝?,從而完成分組的存儲轉(zhuǎn)發(fā)或交換。對于后者而言,交換結(jié)構(gòu)把多個處理器連接起來,從而實現(xiàn)各個處理器之間的通信。
交換結(jié)構(gòu)主要由鏈路與節(jié)點構(gòu)成,其中節(jié)點上可以帶有緩存、交換單元與端口等。按照其拓?fù)浣Y(jié)構(gòu),常見的交換結(jié)構(gòu)可以分為兩類一類的端口與交換單元在拓?fù)渖鲜欠蛛x的,分別屬于不同節(jié)點;另一類則在每一節(jié)點上都同時集成了端口與交換單元。多維交換結(jié)構(gòu)屬于后者。圖1是典型的多維交換結(jié)構(gòu)的拓?fù)渑c節(jié)點結(jié)構(gòu)。一個多維交換結(jié)構(gòu)一般可以用四個方面的特性來描述拓?fù)?、路由算法、流控制、交換技術(shù)。目前多維交換結(jié)構(gòu)通常都采用有虛通道(virtual channel)的流控制技術(shù)(見文獻(xiàn)W.J.Dally,″Virtual-Channel Flow Control″,IEEE Trans.Parallel and Distributed Systems,Vol.3,No.2,pp.194-205,Mar.1992),分組以蟲孔路由(wormhole routing,見文獻(xiàn)L.M.Ni and P.K.McKinley,″a survey of wormholerouting techniques in direct networks″,Computer,Vol.26,No.2,pp.62-76,F(xiàn)eb.1993)或虛穿通(virtual cut-through)的交換技術(shù)在節(jié)點間傳輸,不同多維交換結(jié)構(gòu)之間的差異主要在拓?fù)浜吐酚伤惴ㄉ稀?br>
近年來,用戶對路由器/分組交換機(jī)的容量的要求,對多處理器系統(tǒng)的計算能力的要求在不斷增長,從而對交換結(jié)構(gòu)的性能提出很高的要求。多維交換結(jié)構(gòu)(包括n維mesh/torus網(wǎng)絡(luò)、超立方體、k元n方體)具有容量大、擴(kuò)展性好、可靠性高等特點。在多處理器系統(tǒng)領(lǐng)域,多維交換結(jié)構(gòu)已有10多年的深入研究,并得到廣泛應(yīng)用例如Touchstone Delta,Cray T3D,Intel公司的iPSC,麻省理工學(xué)院的J-Machine,斯坦福大學(xué)的DASH等。在太比特級路由器/分組交換機(jī)領(lǐng)域,現(xiàn)有路由器/分組交換機(jī)所普遍采用的多級交換結(jié)構(gòu)具有系統(tǒng)擴(kuò)展代價高、可靠性低、維護(hù)復(fù)雜等缺點,因而業(yè)界一直在研究新的交換結(jié)構(gòu)技術(shù),以尋求突破。由于多維交換結(jié)構(gòu)具有上述固有的優(yōu)點,滿足太比特級路由器/分組交換機(jī)的要求,同時技術(shù)相對成熟,因此成為了頗具前景的熱點技術(shù)之一(見文獻(xiàn)W.J.Dally,″Scalable Switching Fabrics for Internet Routers″,Whitepaper,Avici Systems,Inc.)。
多維交換結(jié)構(gòu)不是自路由的交換結(jié)構(gòu),因而路由問題是其核心問題之一。與其他網(wǎng)絡(luò)(如IP網(wǎng)絡(luò)或光網(wǎng)絡(luò))相似,多維交換結(jié)構(gòu)中的路由問題也可以抽象為在連通圖上尋找路徑的數(shù)學(xué)問題,但是由于其自身的特點,多維交換結(jié)構(gòu)中的路由問題具有不同于其他網(wǎng)絡(luò)的特殊性多維交換結(jié)構(gòu)的交換節(jié)點上的緩存資源有限,每一個分組在占用某一節(jié)點的緩存資源的同時請求下一跳節(jié)點的緩存資源,這樣多個分組可能形成對若干節(jié)點的緩存資源的成環(huán)請求(如圖2所示),卷入成環(huán)請求的分組能成功請求到下一跳緩存資源的前提條件是必須首先釋放自己當(dāng)前所占用的緩存資源,因此該分組實際上無法請求到所需緩存資源,從而無法傳輸。這就是路由死鎖(deadlock)問題。多維交換結(jié)構(gòu)中路由算法的重點就在于解決死鎖問題,即計算無死鎖路由(deadlock-free routing),同時需要考慮提高交換結(jié)構(gòu)的吞吐量,增強(qiáng)容錯性等。解決死鎖問題具有多種思路,但本質(zhì)上都是對路由進(jìn)行一定限制,然而提高吞吐量和增強(qiáng)容錯性則需要減少對路由的限制,增強(qiáng)路由的靈活性,所以這兩個要求之間存在固有的矛盾,必須進(jìn)行折衷處理??紤]到多維交換結(jié)構(gòu)的易擴(kuò)展性,路由算法也必須有良好的擴(kuò)展能力。同時,不管是應(yīng)用于太比特級路由器/分組交換機(jī)領(lǐng)域,還是多處理器領(lǐng)域,對交換結(jié)構(gòu)傳輸速率的要求都很高,因此路由算法必須簡單高效,便于硬件實現(xiàn)。所以路由技術(shù)不僅僅是多維交換結(jié)構(gòu)技術(shù)的重點之一,也是其難點所在。
從路由死鎖的成因可以看出要解決死鎖問題就必須破除對緩存資源的成環(huán)請求。按照破除成環(huán)資源請求的策略的不同,目前業(yè)界所采用的以及文獻(xiàn)中所提出的對死鎖問題的解決方案可以分為如下兩類●死鎖避免(deadlock-avoidance)對路由進(jìn)行較強(qiáng)的限制,規(guī)定一部分路由是不能使用的,從而保證在交換結(jié)構(gòu)中始終不會出現(xiàn)對緩存資源的成環(huán)請求。如C.J.Glass與L.M.Ni提出了拐角模型(turn model,見文獻(xiàn)C.J.Glass and L.M.Ni,“The Turn Model for Adaptive Routing,”J.ACM,pp.874-902,Sept.1994),分析所有分組的路由可能包含的拐角以及這些拐角可能形成的環(huán),然后禁止某些拐角以打破所有的環(huán),從而只包含剩下那些拐角的路由就是無死鎖的。例如著名的2維mesh交換結(jié)構(gòu)上的XY路由算法(屬于維序路由算法,dimension-order routing,DOR),分組按照最短路徑先沿X維傳輸,再沿Y維傳輸,就可以看作是禁止了8個可能的拐角中的4個所得到的,如圖3所示。
●死鎖恢復(fù)(deadlock-recovery,見文獻(xiàn)T.M.Pinkston,″Flexible andEfficient Routing Based on Progressive Deadlock Recovery″,IEEE Trans.Computers,Vol.48,No.7,pp.649-669,July 1999)每個節(jié)點的所有緩存資源劃分為普通緩存與逃逸緩存,這種緩存的劃分也可以視為把網(wǎng)絡(luò)分為兩層普通層與逃逸層。所有分組首先進(jìn)入普通層,在這一層中采用可能發(fā)生死鎖的路由算法傳輸。同時運行某種死鎖檢測機(jī)制,一旦檢測到有死鎖發(fā)生,則有選擇性的把發(fā)生死鎖的分組接入到逃逸層,在這一層以某種絕對無死鎖的路由算法傳輸?shù)侥康墓?jié)點。只要滿足以下條件,就絕對可以解決所有死鎖a)所有死鎖都會被檢測到;b)如果若干個分組,P1,P2,P3,…,Pn構(gòu)成一個死鎖,則這n個分組中,至少有一個可以被接入到逃逸層;c)逃逸層的路由算法絕對無死鎖。
從對路由的限制的角度來比較上述兩種策略死鎖避免策略可以視為在所有緩存資源上路由的靈活性都受到限制;而死鎖恢復(fù)策略則是把全體緩存資源分為兩部分普通緩存與逃逸緩存,在普通緩存上路由不受限制,而只在逃逸緩存上路由的靈活性才受到限制。由于逃逸緩存占所有緩存資源的比例很小,所以總體上看,死鎖恢復(fù)策略對路由靈活性的限制要小得多,采用死鎖恢復(fù)策略的路由算法可以具有更好的自適應(yīng)性、路由分散特性和容錯性,這正是其相對于死鎖避免的優(yōu)點所在。然而另一方面,死鎖恢復(fù)路由算法的性能在相當(dāng)大程度上受到其死鎖檢測機(jī)制的性能的影響。如果檢測機(jī)制不夠靈敏,可能導(dǎo)致某些死鎖的分組不能及時接入到逃逸層;如果檢測機(jī)制過于靈敏,可能把普通的擁塞認(rèn)為是死鎖,從而把大量沒有死鎖的分組接入到逃逸層,使得逃逸緩存資源被大量占用,也會導(dǎo)致真正死鎖的分組不能及時接入到逃逸層。這兩種情況都會使路由算法性能下降。此外,當(dāng)業(yè)務(wù)負(fù)載較輕時,死鎖發(fā)生的概率較小,當(dāng)業(yè)務(wù)負(fù)載較重時,死鎖發(fā)生的概率將大大增加,這就要求死鎖檢測機(jī)制對不同負(fù)載量都要有較好的適應(yīng)能力。同時,一些設(shè)計參數(shù)(如逃逸緩存的數(shù)量)的確定也就比較困難。這些都使得路由算法變得復(fù)雜,不利于硬件實現(xiàn)。正是由于現(xiàn)有的死鎖避免與死鎖恢復(fù)策略各有優(yōu)缺點,都不夠完美,尋找解決路由死鎖問題的新途徑也就成為目前多維交換結(jié)構(gòu)領(lǐng)域的研究熱點之一。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種多維交換結(jié)構(gòu)中的無死鎖自適應(yīng)路由方法,按照本發(fā)明的路由方法得到的路由絕對無死鎖,且具有較強(qiáng)的靈活性,并且本發(fā)明的路由方法簡單易實現(xiàn)。本發(fā)明的路由方法適用于采用n維mesh/torus網(wǎng)絡(luò)拓?fù)涞亩嗑S交換結(jié)構(gòu),對方法細(xì)節(jié)進(jìn)行不大的修改之后也可用于采用其他拓?fù)涞亩嗑S交換結(jié)構(gòu)。
為方便描述,先給出定義如下對于一個n維交換結(jié)構(gòu),每個節(jié)點x可用n維向量(x1,x2,...,xn)來表示,其中xi表示該節(jié)點在第i維上的坐標(biāo)。令所有節(jié)點的集合為V。每條鏈路a可表示為二元組(n1,n2),n1,n2∈V,節(jié)點n1,n2是鏈路a的兩個端點。令所有鏈路的集合為E。
棱稱滿足如下條件的節(jié)點、鏈路交替組成的序列(x0,a1,x1,a2,...,xk-1,ak,xk),xi∈V,ai∈E為n維交換結(jié)構(gòu)的一條棱1.ai=(xi-1,xi),即ai以xi-1與xi為端點;2.對于n維mesh網(wǎng)絡(luò)拓?fù)洌琸=n-1,且節(jié)點不重復(fù)出現(xiàn),即對i≠j,xi≠xj;對于n維torus網(wǎng)絡(luò)拓?fù)?,k=n,且除了x0=xk之外,節(jié)點不重復(fù)出現(xiàn);3.所有節(jié)點只有一個維度i上的坐標(biāo)不同,其他所有維度上的坐標(biāo)都相同。此時稱這條棱為一條沿維度i的棱。
正方向?qū)δ骋痪S,稱節(jié)點在該維的坐標(biāo)遞增的方向為該維的正方向,簡稱為該維的正向。
負(fù)方向相對應(yīng)的,稱節(jié)點在該維的坐標(biāo)遞減的方向為該維的負(fù)方向,簡稱為該維的負(fù)向。
環(huán)回鏈路(wraparound link)對于torus網(wǎng)絡(luò)拓?fù)渲械囊粭l沿維度i的棱,為方便描述,我們定義連接第i維坐標(biāo)最大的節(jié)點與第i維坐標(biāo)最小的節(jié)點的鏈路為環(huán)回鏈路。實際上,由于torus網(wǎng)絡(luò)拓?fù)渚哂腥W(wǎng)對稱性,因而任何一條鏈路都可以被視為某一維上的環(huán)回鏈路,圖4給出了上述定義的一個例子。
層將多維交換結(jié)構(gòu)的每個節(jié)點上的緩存按照相同的分類方法分為若干類,每一類緩存的全體構(gòu)成該多維交換結(jié)構(gòu)的一個層。由于每個節(jié)點上的緩存的分類方法都相同,所以每一層都具有與該多維交換結(jié)構(gòu)物理拓?fù)渫耆嗤奶撏負(fù)洹?br>
本發(fā)明所提供的無死鎖路由方法在應(yīng)用于mesh網(wǎng)絡(luò)拓?fù)鋾r與應(yīng)用于torus網(wǎng)絡(luò)拓?fù)鋾r有細(xì)微的差別。
本發(fā)明提供一種多維交換結(jié)構(gòu)中的無死鎖自適應(yīng)路由方法,其特征是它采用以下步驟實現(xiàn)步驟1初始化步驟。
初始化步驟在分組進(jìn)入多維交換結(jié)構(gòu)之前進(jìn)行,對多維交換結(jié)構(gòu)進(jìn)行配置,包括以下三個子步驟首先,劃分象限。
對任意源、目的節(jié)點對,以源節(jié)點為原點,以源節(jié)點所在的棱為坐標(biāo)軸,把整個n維交換結(jié)構(gòu)劃分為2n個象限。
對于n維mesh網(wǎng)絡(luò)拓?fù)?,每個象限延伸到mesh的邊界,且只有唯一一個象限(記為象限A)內(nèi)部存在從源節(jié)點到目的節(jié)點的完整路由。
對于torus網(wǎng)絡(luò)拓?fù)?,每個象限延伸到目的節(jié)點所在的棱(即目的節(jié)點所在的棱是兩個相鄰象限的分界線),且任意一個象限內(nèi)部都存在從源節(jié)點到目的節(jié)點的完整路由。
對于一個象限,用Di表示該象限在第i維的方向,Di∈{+,-},若在該象限內(nèi)部,從源節(jié)點到目的節(jié)點的最短路由是沿著第i維的正向,則Di為正;反之Di為負(fù)。于是一個象限可以表示為(D1,D2,...,Dn)的形式。圖5以2維torus網(wǎng)絡(luò)拓?fù)錇槔o出了劃分象限的示意圖。
然后,規(guī)定路由的合法性。
合法路由必須滿足以下條件整條路由在任一維度上只能沿一個方向前進(jìn)。任意一條合法路由都始終位于某個象限的內(nèi)部或邊界上,即不會出現(xiàn)跨象限的路由,而且路由在任一維度上的方向與其所屬象限在該維度上的方向是一致的。圖6給出了2維torus網(wǎng)絡(luò)拓?fù)渖系囊粭l合法路由。
最后,確定路由與緩存資源的類別。
對于torus網(wǎng)絡(luò)拓?fù)?,對任一維度,任一合法路由必然屬于以下四類中的一類
●第0類沿該維正向,且經(jīng)過環(huán)回鏈路,記為W+;●第1類沿該維負(fù)向,且經(jīng)過環(huán)回鏈路,記為W-;●第2類沿該維正向,且不經(jīng)過環(huán)回鏈路,記為NW+;●第3類沿該維負(fù)向,且不經(jīng)過環(huán)回鏈路,記為NW-。
對于mesh網(wǎng)絡(luò)拓?fù)?,對任一維度,任一合法路由必然屬于以下兩類中的一類●第0類沿該維正向,記為+;●第1類沿該維負(fù)向,記為-。
對于n維torus網(wǎng)絡(luò)拓?fù)洌肅i表示路由在第i維上的類型,Ci∈{0,1,2,3},所有合法路由可以分為4n類,每一類可表示為(C1,C2,...,Cn)。相應(yīng)的,把每個節(jié)點上的緩存資源平均分為4n類,即把整個多維交換結(jié)構(gòu)分為4n層。
對于n維mesh網(wǎng)絡(luò)拓?fù)洌泻戏酚煽梢苑譃?n類,每一類可表示為(C1,C2,...,Cn),C1∈{0,1}。相應(yīng)的,每個節(jié)點上的緩存資源平均分為2n類,整個多維交換結(jié)構(gòu)分為2n層。
每一層承載一類路由;每一條路由只能在一層上傳輸,即只能使用自己所屬的那一類的緩存資源。對任意源、目的節(jié)點對,同一象限內(nèi)的所有路由都屬于同一類型。
初始化步驟結(jié)束以后,分組進(jìn)入多維交換結(jié)構(gòu)。
步驟2對于torus網(wǎng)絡(luò)拓?fù)?,在源?jié)點處給分組隨機(jī)選擇一個在初始化劃分象限步驟中所劃分的象限;對于mesh網(wǎng)絡(luò)拓?fù)?,則使用在初始化劃分象限步驟中所唯一確定的象限A。
步驟3按照初始化確定路由與緩存資源的類別步驟中的分類方法,確定在步驟2中所選的象限內(nèi)的路由的類別,以及該類路由應(yīng)該使用的緩存資源的層號。
步驟4在步驟3中所確定的緩存資源的層上,分組以自適應(yīng)路由的方式,選擇符合初始化規(guī)定路由合法性步驟中的規(guī)定的合法路由,傳輸至目的節(jié)點。
經(jīng)過以上步驟后,就可以得到多維交換結(jié)構(gòu)中的無死鎖自適應(yīng)路由(圖7是本發(fā)明的流程圖)。
下面給出本發(fā)明所提供的路由方法無死鎖的證明概要
如果路由發(fā)生死鎖,即出現(xiàn)緩存資源的成環(huán)請求,這首先就要求存在若干路由P1,P2,...Pk,它們或它們的部分能首尾相接構(gòu)成路由環(huán)。對于torus網(wǎng)絡(luò)拓?fù)涠裕@意味著這些路由必須至少滿足下列兩個條件中的一個●至少在一個維度上,存在兩條路由Pi,Pj,它們的方向相反;●至少在一個維度上,存在兩條路由Pi,Pj,其中一條經(jīng)過該維的環(huán)回鏈路,另一條不經(jīng)過。
對于mesh網(wǎng)絡(luò)拓?fù)涠裕瑒t第一個條件一定成立。根據(jù)本發(fā)明對路由與緩存資源的分類方法,上述的Pi,Pj必屬于不同類型,分別由不同的層承載,即它們各自所占用的緩存資源是完全獨立的,因而不會出現(xiàn)對緩存資源的成環(huán)請求。
從以上描述可以看出,本發(fā)明所提供的路由方法與現(xiàn)有的采用死鎖避免、死鎖恢復(fù)策略的路由算法在設(shè)計思路上完全不同。本發(fā)明所提供的路由方法的設(shè)計思路如下●把節(jié)點上的緩存資源劃分為若干類型(從而把交換結(jié)構(gòu)分為若干層);●相應(yīng)地,所有可用路由也被劃分為若干類型;●每一類緩存資源(即交換結(jié)構(gòu)的每一層)只承載一定類型的路由,通過良好的設(shè)計保證路由無死鎖;●每一個分組在進(jìn)入交換結(jié)構(gòu)時隨機(jī)選擇自己所使用的路由的類別,也就是隨機(jī)選擇使用哪一類緩存資源(即哪一層),然后按照自適應(yīng)路由的方式在所選擇的緩存資源中傳輸。
按照本發(fā)明所提供的路由方法的設(shè)計思路,設(shè)計重點在于對緩存資源與路由進(jìn)行適當(dāng)?shù)膭澐?,并且在各類緩存資源與路由之間進(jìn)行合理的綁定。好的劃分與綁定應(yīng)該滿足如下幾條原則a)對每個節(jié)點上的緩存資源進(jìn)行相同的劃分,所有同一類的緩存資源構(gòu)成一層,每一層與整個多維交換結(jié)構(gòu)具有相同的拓?fù)洹?br>
b)每條路由只能使用自己所在層的緩存資源,即不允許出現(xiàn)跨層的路由;在每一層內(nèi),路由無死鎖。
c)屬于不同層的任意多條路由之間不會形成死鎖。其中,原則a)保證了多維交換結(jié)構(gòu)拓?fù)涞倪B通性與對稱性;原則b)與原則c)保證了路由無死鎖。
本發(fā)明的實質(zhì)是路由死鎖是由于路由對緩存資源的成環(huán)請求引起的,傳統(tǒng)的死鎖避免策略通過限制路由本身,以避免出現(xiàn)路由環(huán)的方式來避免對緩存資源的成環(huán)請求;而本發(fā)明所提供的路由方法允許出現(xiàn)路由環(huán),但是通過對緩存資源的巧妙劃分,使得構(gòu)成環(huán)的若干路由必然使用不同的緩存資源,這樣也就避免了對緩存資源的成環(huán)請求,從而避免了死鎖的發(fā)生。由于允許出現(xiàn)路由環(huán),本發(fā)明所提供的路由方法對路由的限制較小,分組可以選擇任意一條合法路由,雖然并不是全自適應(yīng)的(fully adaptive),但路由仍然具有很強(qiáng)的靈活性。
由于需要對緩存資源進(jìn)行分類,本發(fā)明所提供的路由方法需要在交換結(jié)構(gòu)節(jié)點上集成較多數(shù)量的緩存。以當(dāng)前業(yè)界的技術(shù)水平,做到這一點從技術(shù)角度與成本角度來看都不算太大的困難,所以本發(fā)明所提供的路由方法是完全可行的。
與現(xiàn)有的采用死鎖避免、死鎖恢復(fù)策略的路由算法相比較,本發(fā)明所提供的路由方法具有以下優(yōu)點●對路由靈活性的限制較小雖然就交換結(jié)構(gòu)的某一層而言,為了保證在該層路由無死鎖,需要對路由進(jìn)行較嚴(yán)格的限制,但由于分組在進(jìn)入交換結(jié)構(gòu)時隨機(jī)選擇使用哪一層的緩存資源,相同源、目的節(jié)點對之間的多個分組可以選擇多條不同的路由,因此就整個交換結(jié)構(gòu)而言,對路由靈活性的限制較小。
●不需要死鎖檢測,方法簡單、易實現(xiàn)只需要在分組進(jìn)入交換結(jié)構(gòu)時隨機(jī)選擇所使用的路由與緩存資源的類別,然后就以自適應(yīng)路由的方式,在所選擇的緩存資源中傳輸。與死鎖恢復(fù)策略相比較,對路由方法復(fù)雜度的增加較小,也沒有死鎖檢測機(jī)制設(shè)計參數(shù)上的困難,性能對業(yè)務(wù)量的增長也相對不敏感。
可見本發(fā)明所提供的路由方法在相當(dāng)程度上兼有死鎖避免路由算法與死鎖恢復(fù)路由算法的優(yōu)點,并避免了二者的不足。
綜上所述,本發(fā)明提供了一種多維交換結(jié)構(gòu)中的無死鎖自適應(yīng)路由方法,采用對緩存資源與路由進(jìn)行適當(dāng)?shù)膭澐?,并且在各類緩存資源與路由之間進(jìn)行合理綁定的方法,實現(xiàn)了無死鎖路由。與現(xiàn)有的死鎖避免路由算法相比,對路由靈活性的限制較小,有利于減小分組傳輸?shù)臅r延,提高交換結(jié)構(gòu)的吞吐量,有更好的容錯能力;與現(xiàn)有的死鎖恢復(fù)路由算法相比,不需要死鎖檢測機(jī)制,方法簡單,易于實現(xiàn)。此外,由于每個節(jié)點上的緩存資源分類方式只與交換結(jié)構(gòu)的維數(shù)有關(guān),與每維的節(jié)點數(shù)無關(guān),因此當(dāng)每維節(jié)點數(shù)增加時,并不需要改變節(jié)點上緩存資源的分類方式,所以方法具有良好的可擴(kuò)展性。
附圖及
圖1是典型多維交換結(jié)構(gòu)拓?fù)渑c節(jié)點結(jié)構(gòu)示意2是死鎖的形成過程示意圖其中, 是緩存; 是分組1占用的緩存; 是分組2占用的緩存; 是分組3占用的緩存; 是分組4占用的緩存; 是分組傳輸路線; 是分組請求下一跳緩存的路線。
圖3是分析死鎖的拐角模型示意圖其中,圖(a)是2維mesh結(jié)構(gòu)上可能的8個拐角;圖(b)是XY路由算法允許的4個拐角。
圖4是多維交換結(jié)構(gòu)某一維度的正方向、負(fù)方向、環(huán)回鏈路示意5是2維torus網(wǎng)絡(luò)拓?fù)渖系南笙迍澐质疽鈭D其中, 是節(jié)點; 是源節(jié)點; 是目的節(jié)點。
圖6是2維torus網(wǎng)絡(luò)拓?fù)渖系暮戏酚墒疽鈭D其中, 是節(jié)點; 是源節(jié)點; 是目的節(jié)點。
是合法路由; 是非法路由。
圖7是應(yīng)用于n維torus網(wǎng)絡(luò)拓?fù)涞穆酚煞椒鞒虉D具體實施方式
本發(fā)明所提供的路由方法可直接應(yīng)用于n維mesh/torus網(wǎng)絡(luò)拓?fù)涞亩嗑S交換結(jié)構(gòu),保留方法框架,對方法細(xì)節(jié)進(jìn)行必要修改之后,也可應(yīng)用于由上述兩種拓?fù)溲苌龅钠渌負(fù)?。下面以一個采用8×8的2維torus網(wǎng)絡(luò)拓?fù)涞亩嗑S交換結(jié)構(gòu)為例,給出本發(fā)明的一個實施實例。
步驟1初始化步驟。
首先,劃分象限。對于2維torus網(wǎng)絡(luò)拓?fù)?,整個交換結(jié)構(gòu)劃分為4個象限,分別是象限(+,+),即在X維為正向,在Y維為正向;象限(+,-),即在X維為正向,在Y維為負(fù)向;象限(-,+),即在X維為負(fù)向,在Y維為正向;象限(-,-),即在X維為負(fù)向,在Y維為負(fù)向。
然后,規(guī)定路由的合法性。合法路由必須始終位于某個象限內(nèi)部或邊界上,而且在象限(+,+)內(nèi),在X維只沿正向前進(jìn),在Y維只沿正向前進(jìn);在象限(+,-)內(nèi),在X維只沿正向前進(jìn),在Y維只沿負(fù)向前進(jìn);在象限(-,+)內(nèi),在X維只沿負(fù)向前進(jìn),在Y維只沿正向前進(jìn);在象限(-,-)內(nèi),在X維只沿負(fù)向前進(jìn),在Y維只沿負(fù)向前進(jìn)。
最后,確定路由與緩存資源的類別。所有合法路由分為16類,每個節(jié)點上的緩存資源平均分為16類,從而整個交換結(jié)構(gòu)分為16層,每一層承載一類路由。類型與層依次編號為第0類/層(0,0),X維為W+,Y維為W+;第1類/層(0,1),X維為W+,Y維為W-;第2類/層(0,2),X維為W+,Y維為NW+;第3類/層(0,3),X維為W+,Y維為NW-;第4類/層(1,0),X維為W-,Y維為W+;
第5類/層(1,1),X維為W-,Y維為W-;第6類/層(1,2),X維為W-,Y維為NW+;第7類/層(1,3),X維為W-,Y維為NW-;第8類/層(2,0),X維為NW+,Y維為W+;第9類/層(2,1),X維為NW+,Y維為W-;第10類/層(2,2),X維為NW+,Y維為NW+;第11類/層(2,3),X維為NW+,Y維為NW-;第12類/層(3,0),X維為NW-,Y維為W+;第13類/層(3,1),X維為NW-,Y維為W-;第14類/層(3,2),X維為NW-,Y維為NW+;第15類/層(3,3),X維為NW-,Y維為NW-。
步驟2當(dāng)一個分組進(jìn)入交換結(jié)構(gòu),不失一般性,設(shè)其源節(jié)點為(4,5),目的節(jié)點為(8,2)。為該分組隨機(jī)選擇一個象限,不失一般性,設(shè)為象限(+,-),即沿X維的正向、Y維的負(fù)向。
步驟3根據(jù)源、目的節(jié)點的坐標(biāo),在象限(+,-)中的合法路由在X維與Y維都不會經(jīng)過環(huán)回鏈路,即在X維為NW+,在Y維為NW-,于是確定該分組可以使用的合法路山屬于第11類,占用第11層的緩存資源。
步驟4分組在第11層以合法的自適應(yīng)路由的方式傳輸?shù)侥康墓?jié)點。即每次從X維的正向與Y維的負(fù)向中隨機(jī)選擇一個作為下一跳的前進(jìn)方向,若當(dāng)前所在節(jié)點的X維坐標(biāo)已經(jīng)等于8,或者Y維坐標(biāo)已經(jīng)等于2,則沿另外一維傳輸,直到到達(dá)目的節(jié)點(8,2)。
如上所述,任意源、目的節(jié)點對的分組都可以成功傳輸,而且通常情況下,一個源、目的節(jié)點對之間存在多條不同的路由供分組選擇。
權(quán)利要求
1.一種多維交換結(jié)構(gòu)中的無死鎖自適應(yīng)路由方法,其特征是它采用以下步驟實現(xiàn)步驟1初始化步驟初始化步驟在分組進(jìn)入多維交換結(jié)構(gòu)之前進(jìn)行,對多維交換結(jié)構(gòu)進(jìn)行配置,包括以下三個子步驟首先,劃分象限;對任意源、目的節(jié)點對,以源節(jié)點為原點,以源節(jié)點所在的棱為坐標(biāo)軸,把整個n維交換結(jié)構(gòu)劃分為2n個象限;對于n維mesh網(wǎng)絡(luò)拓?fù)?,每個象限延伸到mesh的邊界,且只有唯一一個象限A內(nèi)部存在從源節(jié)點到目的節(jié)點的完整路由;對于torus網(wǎng)絡(luò)拓?fù)洌總€象限延伸到目的節(jié)點所在的棱,即目的節(jié)點所在的棱是兩個相鄰象限的分界線,且任意一個象限內(nèi)部都存在從源節(jié)點到目的節(jié)點的完整路由;對于一個象限,用Di表示該象限在第i維的方向,Di∈{+,-},若在該象限內(nèi)部,從源節(jié)點到目的節(jié)點的最短路由是沿著第i維的正向,則Di為正;反之Di為負(fù);于是一個象限可以表示為(D1,D2,...,Dn)的形式;然后,規(guī)定路由的合法性;合法路由必須滿足以下條件整條路由在任一維度上只能沿一個方向前進(jìn);任意一條合法路由都始終位于某個象限的內(nèi)部或邊界上,即不會出現(xiàn)跨象限的路由,而且路由在任一維度上的方向與其所屬象限在該維度上的方向是一致的;最后,確定路由與緩存資源的類別;對于torus網(wǎng)絡(luò)拓?fù)洌瑢θ我痪S度,任一合法路由必然屬于以下四類中的一類●第0類沿該維正向,且經(jīng)過環(huán)回鏈路,記為W+;●第1類沿該維負(fù)向,且經(jīng)過環(huán)回鏈路,記為W-;●第2類沿該維正向,且不經(jīng)過環(huán)回鏈路,記為NW+;●第3類沿該維負(fù)向,且不經(jīng)過環(huán)回鏈路,記為NW-;對于mesh網(wǎng)絡(luò)拓?fù)?,對任一維度,任一合法路由必然屬于以下兩類中的一類●第0類沿該維正向,記為+;●第1類沿該維負(fù)向,記為-;對于n維torus網(wǎng)絡(luò)拓?fù)洌肅i表示路由在第i維上的類型,Ci∈{0,1,2,3},所有合法路由可以分為4n類,每一類可表示為(C1,C2,...,Cn);相應(yīng)的,把每個節(jié)點上的緩存資源平均分為4n類,即把整個多維交換結(jié)構(gòu)分為4n層;對于n維mesh網(wǎng)絡(luò)拓?fù)?,所有合法路由可以分?n類,每一類可表示為(C1,C2,...,Cn),Ci∈{0,1};相應(yīng)的,每個節(jié)點上的緩存資源平均分為2n類,整個多維交換結(jié)構(gòu)分為2n層;每一層承載一類路由;每一條路由只能在一層上傳輸,即只能使用自己所屬的那一類的緩存資源;對任意源、目的節(jié)點對,同一象限內(nèi)的所有路由都屬于同一類型;初始化步驟結(jié)束以后,分組進(jìn)入多維交換結(jié)構(gòu);步驟2對于torus網(wǎng)絡(luò)拓?fù)?,在源?jié)點處給分組隨機(jī)選擇一個在初始化劃分象限步驟中所劃分的象限;對于mesh網(wǎng)絡(luò)拓?fù)?,則使用在初始化劃分象限步驟中所唯一確定的象限A;步驟3按照初始化確定路由與緩存資源的類別步驟中的分類方法,確定在步驟2中所選的象限內(nèi)的路由的類別,以及該類路由應(yīng)該使用的緩存資源的層號;步驟4在步驟3中所確定的緩存資源的層上,分組以自適應(yīng)路由的方式,選擇符合初始化規(guī)定路由合法性步驟中的規(guī)定的合法路由,傳輸至目的節(jié)點;經(jīng)過以上步驟后,就可以得到多維交換結(jié)構(gòu)中的無死鎖自適應(yīng)路由。
全文摘要
本發(fā)明公開了一種多維交換結(jié)構(gòu)中的無死鎖自適應(yīng)路由方法,它是采用對緩存資源與路由進(jìn)行劃分,并且在各類緩存資源與路由之間進(jìn)行綁定的方法,實現(xiàn)了無死鎖路由。與現(xiàn)有的死鎖避免路由算法相比,對路由靈活性的限制較小,有利于減小分組傳輸?shù)臅r延,提高交換結(jié)構(gòu)的吞吐量,有更好的容錯能力;與現(xiàn)有的死鎖恢復(fù)路由算法相比,本發(fā)明具有不需要死鎖檢測機(jī)制、算法簡單、易于實現(xiàn)等特點。此外,由于每個節(jié)點上的緩存資源分類方式只與交換結(jié)構(gòu)的維數(shù)有關(guān),當(dāng)每維節(jié)點數(shù)增加時,并不需要改變節(jié)點上緩存資源的分類方式,所以本發(fā)明具有良好的可擴(kuò)展性。
文檔編號H04L29/06GK1787478SQ200410081428
公開日2006年6月14日 申請日期2004年12月9日 優(yōu)先權(quán)日2004年12月9日
發(fā)明者王宏, 朱旭東, 許都, 李樂民 申請人:電子科技大學(xué)