專利名稱:基于通道交疊的容錯(cuò)mesh網(wǎng)避免死鎖的路由方法
基于通道交疊的容錯(cuò)mesh網(wǎng)避免死鎖的路由方法技術(shù)領(lǐng)域基于通道交疊的容錯(cuò)mesh網(wǎng)死鎖避免方法屬于分布式高性能容錯(cuò)計(jì)算技術(shù)領(lǐng)域。
技術(shù)背景在當(dāng)今的實(shí)驗(yàn)用及商用的多計(jì)算機(jī)系統(tǒng)中,mesh網(wǎng)是一種被廣泛利用的拓?fù)浣Y(jié)構(gòu)。A元 "維mesh網(wǎng)是指一個(gè)n維的網(wǎng)格結(jié)構(gòu),在每一維上有k個(gè)結(jié)點(diǎn)。其中二維和三維的mesh網(wǎng) 是多處理器網(wǎng)絡(luò)最為常用的拓?fù)浣Y(jié)構(gòu)。多計(jì)算機(jī)系統(tǒng)的性能在最大程度上取決于系統(tǒng)中點(diǎn)到 點(diǎn)的通訊方法的性能。因此,很有必要提出一些應(yīng)用于mesh網(wǎng)的高性能的容錯(cuò)路由方法。對(duì)于自適應(yīng)的容錯(cuò)路由方法,通常需要將每條物理通道劃分為一定數(shù)量的虛擬通道來(lái)實(shí) 現(xiàn)死鎖避免方法,通道上的物理資源(如緩存、帶寬)會(huì)分配到各個(gè)虛擬通道之上。因此, 實(shí)現(xiàn)死鎖避免所需要虛擬通道個(gè)數(shù)成為影響路由方法資源利用效率的重要因素,使用更少的 虛擬通道,可以使每條虛擬通道分配到更多的資源,提高方法效率,尤其是在物理資源比較 有限的情況下;但是,更少的虛擬通道也會(huì)使得設(shè)計(jì)死鎖避免方法的難度增加。Under和Harden將虛擬通道的概念擴(kuò)展為虛擬子網(wǎng),并將其用于實(shí)現(xiàn)自適性、容錯(cuò)性以 及死鎖避免。不同的虛擬子網(wǎng)中分配不同的虛擬通道,對(duì)于高維的mesh網(wǎng)所需的虛擬通道個(gè) 數(shù)就變得相當(dāng)大。Wu改進(jìn)了 mesh網(wǎng)中的虛擬子網(wǎng)方法,虛擬通道的個(gè)數(shù)等于mesh網(wǎng)的維 數(shù)。相比前面的方法,虛擬通道個(gè)數(shù)已經(jīng)人為減少。Bappana禾[]Chalasani提出了一種基于e-cube方法以及塊狀故障模型的容錯(cuò)路由方法。這 種方法只需四條虛擬通道就可以實(shí)現(xiàn)mesh網(wǎng)中的完全自適應(yīng)容錯(cuò)路由。然而,這幾種方法的 在建立故障塊的時(shí)候都需要使一些非故障點(diǎn)失效,這樣在三維以及更高維的網(wǎng)絡(luò)中會(huì)導(dǎo)致很 嚴(yán)重的計(jì)算能力的損失。Puente等提出了一種名為氣泡流控的容錯(cuò)路由方法,可以處理連通網(wǎng)絡(luò)中任意數(shù)量的故 障點(diǎn),在出現(xiàn)故障的情況下,此方法對(duì)可用資源實(shí)行自動(dòng)的重新配置。肖燦文等提出了一種 將此流控方法改進(jìn)為維度氣泡流控方法,通過(guò)分析端口信約值和路由信息實(shí)現(xiàn)點(diǎn)點(diǎn)間的流控。 Gomez等提出了一種通過(guò)選擇中間節(jié)點(diǎn)而實(shí)現(xiàn)的兩階段容錯(cuò)路由方法,從源節(jié)點(diǎn)到中間節(jié)點(diǎn) 和從中間節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)分別使用不同的虛擬子網(wǎng),在每一子網(wǎng)內(nèi)部使用Duato的完全自適 應(yīng)協(xié)議,兩個(gè)子網(wǎng)使用相同的自適應(yīng)虛擬通道,但使用不同的逃逸通道,在逃逸通道中的使 用維序路由或者氣泡流控,這種方法共需要三條虛擬通道。最近,Mejia等提出了一種用于 mesh/torus網(wǎng)的確定性容錯(cuò)路由方法,這種方法采用了類似于不規(guī)則網(wǎng)絡(luò)中的upVdowi^路由 的方法。預(yù)置路徑的方法最早應(yīng)用于電路交換網(wǎng)中,消息在發(fā)送之前首先為之預(yù)留路徑上的物理 通道,這樣做可以避免死鎖的產(chǎn)生,但是會(huì)造成帶寬的浪費(fèi)以及延時(shí)的增加。吳潔提出了一 種基于擴(kuò)展安全級(jí)別的無(wú)死鎖自適應(yīng)容錯(cuò)方法,此方法在發(fā)送消息之前需要建立一個(gè)最短路 徑的區(qū)域,這是第一個(gè)基于有限全局安全性測(cè)度的容錯(cuò)路由方法。塊狀故障模型是一樣最為常用的故障模型,但是這種模型會(huì)使一些非故障節(jié)點(diǎn)失效。少 數(shù)的故障節(jié)點(diǎn)可能會(huì)使很多甚至全部的非故障節(jié)點(diǎn)失效,這種現(xiàn)象在高維的網(wǎng)絡(luò)中更為明顯。 Wang提出了最小連網(wǎng)部件故障模型的概念,對(duì)于平面的最小連網(wǎng)部件故障模型,每個(gè)節(jié)點(diǎn)在 其所在每個(gè)平面內(nèi)兩份安全性信息。最小連網(wǎng)部件故障模型比塊狀模型使更少的非故障節(jié)點(diǎn) 失效,可以更有效指導(dǎo)最短路徑路由。三維的最小連網(wǎng)部件故障模型比平面最小連網(wǎng)部件故 障模型使更少的非故障節(jié)點(diǎn)失效,但是對(duì)于本文中所使用的平面fi適應(yīng)路由,平面最小連網(wǎng) 部件故障模型更為適用。向東等在每個(gè)平面內(nèi)建立故障塊,并使用擴(kuò)展的局部可靠性信息,大大提高了路由方法的容錯(cuò)性能。對(duì)于有故障的mesh網(wǎng)中非故障節(jié)點(diǎn)的安全性分類,許多方法都采用了如下的方法 一個(gè)節(jié)點(diǎn)如果有兩個(gè)或兩個(gè)以上的不同的維上有故障或不安全的鄰居節(jié)點(diǎn),則該節(jié)點(diǎn)被標(biāo)記為不安全節(jié)點(diǎn);否則,該節(jié)點(diǎn)為安全節(jié)點(diǎn)。節(jié)點(diǎn)一旦被標(biāo)記為不安全,則會(huì)像故障節(jié)點(diǎn)一樣完全 失效,這樣就會(huì)在很大程度上導(dǎo)致系統(tǒng)計(jì)算能力的降低。由以上方法建立的故障塊是一系列 的由故障點(diǎn)和失效的不安全節(jié)點(diǎn)構(gòu)成的矩形區(qū)域,但實(shí)際上故障塊內(nèi)部的不安全節(jié)點(diǎn)在某些 平面內(nèi)仍然是具有路由能力的,可以作為消息的源結(jié)點(diǎn)或目標(biāo)節(jié)點(diǎn)或者其它消息路由路徑上 的中間節(jié)點(diǎn)。在本文中,如果源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的路由路徑長(zhǎng)度等于兩點(diǎn)之間的距離,并且 路徑上的節(jié)點(diǎn)均為非故障點(diǎn),那么我們稱此路徑為最短可用路徑。Mesh網(wǎng)中的節(jié)點(diǎn)根據(jù)其安全性可以分為故障節(jié)點(diǎn)、不安全節(jié)點(diǎn)與安全節(jié)點(diǎn)三類。如果一 個(gè)網(wǎng)絡(luò)系統(tǒng)內(nèi)所有的節(jié)點(diǎn)均為不安全點(diǎn)或故障點(diǎn),那么稱這個(gè)網(wǎng)絡(luò)系統(tǒng)為不安全的。二維 mesh網(wǎng)中故障點(diǎn)與不安全點(diǎn)集合F構(gòu)成的故障塊具有如下特點(diǎn)(1)在矩型區(qū)域的邊界處沒(méi) 有故障點(diǎn);(2)矩型區(qū)域的內(nèi)部包含所有的集合F中的故障點(diǎn)與不安全點(diǎn);(3)矩型區(qū)域的 內(nèi)部不包含任何集合F之外的節(jié)點(diǎn)。三維以及更高維的mesh網(wǎng)中的故障塊可以用類似的方 法建立。需要強(qiáng)調(diào)的是,己有的大多數(shù)方法都將不安全節(jié)點(diǎn)標(biāo)記為失效,己失效的節(jié)點(diǎn)不能作為 消息的源節(jié)點(diǎn)或目標(biāo)節(jié)點(diǎn)。而在本文中,不安全節(jié)點(diǎn)仍然可以作為源節(jié)點(diǎn)或目標(biāo)節(jié)點(diǎn)使用, 這也使得路由方法的性能有了很大的提高。用于二維mesh網(wǎng)的最小連網(wǎng)部件故障模型的建立無(wú)需讓節(jié)點(diǎn)知道全局的故障分布信息。 每個(gè)節(jié)點(diǎn)只需根據(jù)鄰近節(jié)點(diǎn)的情況存儲(chǔ)兩份安全性信息, 一份標(biāo)記在x+y+ (x-y-)方向上的 安全性信息,另一份標(biāo)記在x+ (x-y+)方向上的安全性信息。我們以x+y+ (x-y-)方向?yàn)槔f(shuō)明安全性信息的標(biāo)記過(guò)程。初始狀態(tài)時(shí),所有非故障點(diǎn) 都被標(biāo)記為安全節(jié)點(diǎn);如果一個(gè)安全點(diǎn)在x+方向和y+方向上的鄰居節(jié)點(diǎn)都為故障點(diǎn)或不安全 點(diǎn),或者在x-方向和y-方向上的鄰居節(jié)點(diǎn)都為故障點(diǎn)或不安全點(diǎn),那么該節(jié)點(diǎn)就被標(biāo)記為不 安全節(jié)點(diǎn);反復(fù)進(jìn)行以上標(biāo)記過(guò)程,直到所有節(jié)點(diǎn)的安全性達(dá)到穩(wěn)定狀態(tài)不再改變。最小連網(wǎng)部件故障模型被擴(kuò)展到三維mesh網(wǎng)。我們以x+y+z十(x-y-z-)方向?yàn)槔f(shuō)明其 標(biāo)記過(guò)程。初始狀態(tài)時(shí),所有非故障點(diǎn)都被標(biāo)記為安全;如果一個(gè)安全點(diǎn)在x+, y+, z+三個(gè) 方向(或x-, y-, z-)的鄰居節(jié)點(diǎn)均故障點(diǎn)或不安全節(jié)點(diǎn),那么,該節(jié)點(diǎn)就被標(biāo)記為不安全 節(jié)點(diǎn);反復(fù)進(jìn)行以上過(guò)程直至所有點(diǎn)安全狀態(tài)穩(wěn)定。三維的最小連網(wǎng)部件故障模型會(huì)將更少 的點(diǎn)標(biāo)記為不安全節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)需要保存的安全性信息為一個(gè)四元組(a,b, c,d),對(duì)應(yīng)于 三維mesh網(wǎng)4條不同的體對(duì)角線的方向,x+y+z+(x-y-z-), x+y-z-(x-y+z+), x+y+z-(x-y-z+), x+y-z+ (x-y+z-)。 a, b, c, d的值可以為安全、不安全或故障。 發(fā)明內(nèi)容該發(fā)明的目的在于設(shè)計(jì)了一種基于通道交疊的mesh網(wǎng)避免死鎖的路由方法。在虛擬通道 分配上,允許不同虛擬子網(wǎng)之間共享某些虛擬通道。本發(fā)明的特征在于,所述方法是二維在mesh網(wǎng)各節(jié)點(diǎn)上進(jìn)行的,依次含有以下步驟 步驟(l):初始化一個(gè)二維的mesh網(wǎng)劃分為如下四個(gè)虛擬子網(wǎng)x-y-、 x-y+、 x+y-、 x+y+, x+、 x-即表示在 x軸上的正、負(fù)方向的路由,對(duì)于y軸同理;我們把每條物理通道中分為兩條虛擬通道,用c,表示,i=l,2;把虛擬子網(wǎng)x-y-、 x-y+合并,得到虛擬子網(wǎng)乂^* (g-,。),括號(hào)中的標(biāo)號(hào)表示分配到每個(gè) 虛擬子網(wǎng)中的虛擬通道,"+"和"一"表示消息傳輸?shù)恼?fù)方向,"*"表示正負(fù)任意方向, 其中x-y^ (cr,c;)表示對(duì)于所有在虛擬子網(wǎng)x-y-、 x-y+上路由的消息,在x方向上都使用c;-通道,在y方向上使用c/通道;把虛擬子網(wǎng)x+y-、 x+y+合并,得到虛擬子網(wǎng)乂+7* (q+, c2),其中x+y* (C/+,c2)表示對(duì)于所有在虛擬子網(wǎng)x+y-、 x+y+上路由的消息,在x方向上都使用c;+通道,在y方向上使用 對(duì)于在y方向上繞行路由的消息,使用不同于原分配虛擬通道(o或c2)的另外一條虛擬通道(c2或c/),當(dāng)恢復(fù)最短路徑路由時(shí)再換回到原分配虛擬通道,對(duì)于在x方向上繞行路由 的消息,由于在x方向上q為空閑通道;步驟(2):按以下步驟在步驟(l)所選的虛擬通道分配下進(jìn)行二維mesh網(wǎng)的完全自適應(yīng)路由;步驟(2.1):計(jì)算當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向和y方向上的距離,按不同情況分步驟處理; 步驟(2,2):如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向和y方向上的距離和為O,則路由完成; 步驟(2.3):如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向和y方向上的距離和為1,則消息直接路由 到目的節(jié)點(diǎn);步驟(2.4):如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向和y方向上的距離和大于或等于2,且當(dāng)前 節(jié)點(diǎn)與目的節(jié)點(diǎn)僅在一個(gè)方向上的距離不為零,則消息在此維度方向上路由;步驟(2.5):如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向和y方向上的距離均不為零,則消息優(yōu)先選 擇x方向上路由。對(duì)于三維mesh網(wǎng),上述方法在mesh網(wǎng)各節(jié)點(diǎn)上進(jìn)行的,依次含有以下步驟 步驟(l):初始化一個(gè)三維的mesh網(wǎng)劃分為以下八個(gè)虛擬子網(wǎng)x+y+z+、 x+y+z-、 x+y-z+、 x+y-z-、 x-y+z+、 x-y+z-、 x-y-z+、 x-y-z-, x+、 x-即表示在x軸上的正、負(fù)方向的路由,對(duì)于y軸、z軸同理; 我們把每條物理通道中分為兩條虛擬通道,用c,表示,i=l,2;把上述八個(gè)虛擬子網(wǎng)兩兩合并,從而得到以下四個(gè)虛擬子網(wǎng)x+y+z* c,+, c/), x+y-z* (C,c廣,c》,x-y*z+ (c廠,c2, c2+), x-y*z- (cr,Q,c2-),括號(hào)中的標(biāo)號(hào)表示分配到每個(gè)虛擬 子網(wǎng)中的虛擬通道,"+"和"一"表示消息傳輸?shù)恼?fù)方向,"*"表示正負(fù)任意方向,x+y+z* 和x+y-z^在z方向上共享c;通道,x-y*z+和x-y+z-在y方向上共享q通道,從而在x, y, z 三個(gè)方向上,每條物理通道都只用到了兩條虛擬通道,當(dāng)消息從y+方向到z方向轉(zhuǎn)彎時(shí),消 息跳轉(zhuǎn)到不同于原分配通道的另外一條虛擬通道,已避免死鎖;把三維mesh網(wǎng)劃分為xy、 yz和zx三個(gè)二維平面;步驟(2):按以下步驟在歩驟(l)所選的虛擬通道分配下進(jìn)行三維mesh網(wǎng)的完全自適應(yīng)路由;步驟(2.1):計(jì)算3前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向、y方向和z方向上的距離,按不同情況分 步驟處理;步驟(2.2):若當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向、y方向、z方向上的距離和為0,則路由完成; 步驟(2.3):如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向、y方向和z方向上的距離和為1,則消息 直接路由到目的節(jié)點(diǎn);步驟(2.4):如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向、y方向和z方向上的距離和大于或等于2, 且當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)僅在一個(gè)方向上的距離不為零,則消息在此維度方向上路由;步驟(2.5):如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向、y方向和z方向上的距離均不為零,貝U消 息優(yōu)先選擇z方向上路由。上述方法使用為每個(gè)二維平面建立的最小連網(wǎng)部件故障模型而擴(kuò)展為一種容錯(cuò)的mesh網(wǎng) 避免死鎖的路由方法,其步驟如下步驟(l):在所選xy、 yz或者xy、 yz、 zx平面內(nèi)分別建立最小連網(wǎng)部件故障模型,在所選 各個(gè)平面內(nèi),節(jié)點(diǎn)在x+y+和x-y-, y+z+和y-z-, z+x+和z-x-各自在兩條對(duì)角線方向上分別計(jì) 算安全性信息,若一個(gè)節(jié)點(diǎn)在兩個(gè)與對(duì)角線成對(duì)稱關(guān)系的方向存在故障或不安全節(jié)點(diǎn),那么 此節(jié)點(diǎn)被標(biāo)記為不安全節(jié)點(diǎn),經(jīng)過(guò)多輪計(jì)算,直至各節(jié)點(diǎn)安全性達(dá)到穩(wěn)定狀態(tài);步驟(2):計(jì)算當(dāng)前節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)在二維方向上的距離;步驟(3):根據(jù)步驟(2)計(jì)算的結(jié)果按不同情況分別處理; 若當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)的距離為O,則路由完成;若當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)的在各維的距離和為1,則將消息路由到目標(biāo)節(jié)點(diǎn); 若當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)的在各維的距離和大于或等于2,且當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)僅在一個(gè)維上距離不為零且路由方向上為故障節(jié)點(diǎn),則路由失敗,否則在此維度方向上路由;若當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)僅在兩維上距離不為零,則考査該平面內(nèi)建立的二維最小連網(wǎng)部件故障模型;如若兩個(gè)維度方向上下一節(jié)點(diǎn)均為故障點(diǎn)或不安全點(diǎn)則路由失敗,否則選擇兩個(gè)維度方 向中的一個(gè)可用方向進(jìn)行路由,優(yōu)先選擇z方向;若當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在三維上距離均不為零,則考查xy、 yz、 zx三個(gè)方向上的最小連 網(wǎng)部件故障模型在x方向使用xy或zx最小連網(wǎng)部件故障模型,y方向使用yz或xy最小連 網(wǎng)部件故障模型,z方向使用yz或zx最小連網(wǎng)部件故障模型;若三個(gè)維度方向上下一節(jié)點(diǎn)均為故障點(diǎn)或不安全點(diǎn),則路由失??;否則選擇三個(gè)維度方向中的一個(gè)進(jìn)行路由,優(yōu)先選擇z方向進(jìn)行路由。采用我們的方法在mesh網(wǎng)格中進(jìn)行容錯(cuò)路由,與傳統(tǒng)的PAR方法和Gomez方法相比, 當(dāng)標(biāo)準(zhǔn)化輸入負(fù)載提高時(shí),我們的方法明顯可以提高網(wǎng)絡(luò)實(shí)際流量,并降低傳輸延遲,從而 提高整個(gè)網(wǎng)絡(luò)的傳輸性能。
圖1繞行路由消息的死鎖避免。圖2實(shí)現(xiàn)無(wú)死鎖完全自適應(yīng)路由的虛擬通道交疊。圖3無(wú)故障網(wǎng)絡(luò)中標(biāo)準(zhǔn)化輸入負(fù)載對(duì)性能的影響節(jié)點(diǎn)緩存216微片故障個(gè)數(shù)0。 圖4無(wú)故障網(wǎng)絡(luò)中節(jié)點(diǎn)緩存大小對(duì)性能的影響-輸入負(fù)載0.4故障個(gè)數(shù)0。 圖5容錯(cuò)網(wǎng)絡(luò)中故障點(diǎn)個(gè)數(shù)對(duì)性能的影響-輸入負(fù)載0.4節(jié)點(diǎn)緩存234微片。 圖6容錯(cuò)網(wǎng)絡(luò)中標(biāo)準(zhǔn)化輸入負(fù)載對(duì)性能的影響節(jié)點(diǎn)緩存234微片故障個(gè)數(shù)10。圖7基于通道交疊的mesh網(wǎng)避免死鎖的路由方法流程圖。
具體實(shí)施方式
一個(gè)物理網(wǎng)絡(luò)可以被劃分為若干個(gè)虛擬子網(wǎng)。插入網(wǎng)絡(luò)的消息被限制在某一個(gè)虛擬子網(wǎng) 中進(jìn)行路tij。只要在每一個(gè)虛擬子網(wǎng)中不存在死鎖,并且各虛擬子網(wǎng)間不會(huì)形成死鎖,就可 以保證整個(gè)網(wǎng)絡(luò)中不會(huì)出現(xiàn)死鎖。本文中提出的劃分方法主要針對(duì)二維與三維的mesh網(wǎng),這 種方法也可以被擴(kuò)展而用于更高維的網(wǎng)絡(luò)。一個(gè)二維的mesh網(wǎng)可以劃分為如下四個(gè)虛擬子網(wǎng)l.x-y-, 2.x-y+, 3. x+y-, 4. x+y+。 我們用c,表示一條物理通道中的第/條虛擬通道。在上述四個(gè)虛擬子網(wǎng)中,l和2、 3和4可 以兩兩合并,從而得到兩個(gè)虛擬子網(wǎng),x-y* (C/-, 和x+yf (c,+, c2)。括號(hào)中的標(biāo)號(hào)表示 分配到每個(gè)虛擬子網(wǎng)中的虛擬通道,例如,x+y* (。十,c2)表示對(duì)于所有第3類和第4類的 消息,在x方向上都使用o+通道,在y方向上使用^通道。"+ "和"一"表示消息傳輸?shù)?正負(fù)方向,"*"表示正負(fù)任意方向。下面我們將提出在二維mesh網(wǎng)中,使用兩條虛擬通道就 可以實(shí)現(xiàn)無(wú)死鎖自適應(yīng)路由的方法以及相關(guān)定理的證明。對(duì)于二維mesh網(wǎng),如果不允許繞行路由(deroute),根據(jù)前面提到的虛擬子網(wǎng)劃分方法, 任何一個(gè)虛擬子網(wǎng)內(nèi)都不可能存在通道的環(huán)相關(guān)。繞行路由的消息有形成死鎖的可能性,我們通過(guò)這樣的方法來(lái)避免這種死鎖對(duì)于在y方向上繞行路由的消息,使用不同于原分配虛 擬通道(c;或c2)的另外一條虛擬通道(q或c;),當(dāng)恢復(fù)最短路徑路由時(shí)再換回到原分配虛 擬通道;對(duì)于在x方向上繞行路由的消息,由于在x方向上c2為空閑通道,所以繞行路由消息均使用G通道即可實(shí)現(xiàn)死鎖避免。如圖l所示,(a)和(b)為兩種可能形成的環(huán)相關(guān),箭頭上標(biāo)記的數(shù)字表示路由消息的不同轉(zhuǎn)彎類型。從圖中可以看出,正常路由消息與繞行路由消息之間也可能產(chǎn)生環(huán)相關(guān),需要與之相應(yīng)的死鎖避免方法。以圖l (a)中的環(huán)相關(guān)為例,我們可以將第1類和第4類繞行 路由消息分配到x方向的c2通道,將第2類與第3類繞行路由消息分配到與當(dāng)前虛擬子網(wǎng)不 同的另一個(gè)虛擬子網(wǎng)的虛擬通道。通過(guò)這樣的處理,就可以避免圖中的通道環(huán)相關(guān)的產(chǎn)生。三維的mesh網(wǎng)可以被劃分為以下八個(gè)虛擬子網(wǎng)(1)x+y+z+, (2) x+y+z-, (3) x+y-z+, (4) x+y-z-, (5) x-y+z+, (6) x-y+z-, (7) x-y-z+, (8) x-y-z-。這八個(gè)虛擬子網(wǎng)可以兩兩 合并,從而得到以下四個(gè)虛擬子網(wǎng)x+y+z* "/+,0+,0), x+y-z* (c2+, c,-, c,), x-y*z+ (c,-, q, c2+), x-y*z- (c2-, c2, q-)。在這四個(gè)虛擬子網(wǎng)中,x+y+z"n x+y-z+在z方向上共享c;通道, x-y*z+和x-ytz-在y方向上共享Q通道。不難看出,在x, y, z三個(gè)方向上,每條物理通道 都只用到了兩條虛擬通道。如圖2所示,轉(zhuǎn)彎箭頭上的數(shù)字表示消息的路由類型,網(wǎng)絡(luò)中的路由消息根據(jù)其源節(jié)點(diǎn) 與目標(biāo)節(jié)點(diǎn)的相對(duì)位置關(guān)系可以分為八類,分別對(duì)應(yīng)前面所述的八個(gè)虛擬子網(wǎng)。從圖中可以 看出,1、 2、 3、 4四類消息可能形成圖1 (a)中所示環(huán)相關(guān),5、 6、 7、 8四類消息可能形 成圖l (c)中所示的環(huán)相關(guān)。不難看出,環(huán)相關(guān)只可能產(chǎn)生在y方向與z方向之間,x方向 與y方向之間以及x方向與z方向之間都不可能產(chǎn)生環(huán)相關(guān)。對(duì)于圖l (a)與圖l (c)中的 環(huán)相關(guān)的消除,我們可以通過(guò)限制某些消息轉(zhuǎn)彎來(lái)實(shí)現(xiàn),即圖中用虛線畫出的消息轉(zhuǎn)彎。限 制虛線轉(zhuǎn)彎的方法,對(duì)第l類消息,當(dāng)其由y方向轉(zhuǎn)向z方向時(shí),使用C通道而不是原分配 的。+通道;類似的,當(dāng)?shù)?類消息由y方向轉(zhuǎn)向z方向時(shí),使用《,-通道。標(biāo)為虛線的第5 類與第6類消息也可以通過(guò)同樣的方法實(shí)現(xiàn)轉(zhuǎn)彎限制。傳統(tǒng)的平面自適應(yīng)路由方法中將路由分為多個(gè)階段,每個(gè)階段內(nèi)只能在一個(gè)特定的平面 內(nèi)路由,這樣就限制了路由的自適應(yīng)性。與平面自適應(yīng)路由不同,本文提出的方法在路由時(shí) 并不把消息局限在某一個(gè)平面內(nèi),路由消息可以選擇在最短路徑上的任意方向進(jìn)行路由,這 樣就增強(qiáng)了路由的自適應(yīng)性,從而帶來(lái)性能上的提高。對(duì)圖2中需要做特別處理的由y方向 到z方向的消息轉(zhuǎn)彎,我們可以通過(guò)這樣一個(gè)啟發(fā)方法來(lái)盡可能的減小其出現(xiàn)的概率對(duì)于 落入任何子網(wǎng)的路由消息,在路由時(shí)可能的情況下,優(yōu)先選擇z方向做下一跳路由。用于二維mesh網(wǎng)的最小連網(wǎng)部件故障模型的建立無(wú)需讓節(jié)點(diǎn)知道全局的故障分布信息。 我們以x+y+ (x-y-)方向?yàn)槔f(shuō)明安全性信息的標(biāo)記過(guò)程。初始狀態(tài)時(shí),所有非故障點(diǎn)都被 標(biāo)記為安全節(jié)點(diǎn);如果 一個(gè)安全點(diǎn)在x+方向和y+方向上的鄰居節(jié)點(diǎn)都為故障點(diǎn)或不安全點(diǎn), 或者在x-方向和y-方向上的鄰居節(jié)點(diǎn)都為故障點(diǎn)或不安全點(diǎn),那么該節(jié)點(diǎn)就被標(biāo)記為不安全 節(jié)點(diǎn);反復(fù)進(jìn)行以上標(biāo)記過(guò)程,直到所有節(jié)點(diǎn)的安全性達(dá)到穩(wěn)定狀態(tài)不再改變。最小連網(wǎng)部件故障模型被擴(kuò)展到三維mesh網(wǎng)。我們以x+y+z十(x-y-z-)方向?yàn)槔f(shuō)明其 標(biāo)記過(guò)程。初始狀態(tài)時(shí),所有非故障點(diǎn)都被標(biāo)記為安全;如果一個(gè)安全點(diǎn)在x+, y+, z+三個(gè) 方向(或x-, y-, z-)的鄰居節(jié)點(diǎn)均故障點(diǎn)或不安全節(jié)點(diǎn),那么,該節(jié)點(diǎn)就被標(biāo)記為不安全 節(jié)點(diǎn);反復(fù)進(jìn)行以上過(guò)程直至所有點(diǎn)安全狀態(tài)穩(wěn)定。三維的最小連網(wǎng)部件故障模型會(huì)將更少 的點(diǎn)標(biāo)記為不安全節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)需要保存的安全性信息為一個(gè)四元組&, &, c, J義對(duì)應(yīng)于 三維mesh網(wǎng)4條不同的體對(duì)角線的方向,x+y+z+(x-y-z-), x+y-z-(x-y+z+) , x+y+z-(x-y-z+), x+y-z+ (x-y+z-)。 a, 6, c, c/的值可以為安全、不安全或故障。本發(fā)明應(yīng)用一種新的方法來(lái)標(biāo)記節(jié)點(diǎn)的安全性信息。節(jié)點(diǎn)的安全性在其所在的三個(gè)平面 內(nèi)(x-y, y-z, z-x)分別計(jì)算,每個(gè)平面內(nèi)計(jì)算二維最小連網(wǎng)部件故障模型,節(jié)點(diǎn)保存平面 內(nèi)兩個(gè)方向上的兩份安全性信息。這樣,每個(gè)節(jié)點(diǎn)總共需要保存六份安全性信息。8基于上述的虛擬子網(wǎng)劃分以及虛擬通道分配策略,下面給出三維mesh網(wǎng)中的無(wú)死鎖完全 自適應(yīng)路由方法。該路由方法也可以擴(kuò)展到更高維的網(wǎng)絡(luò)中。以下敘述三維mesh網(wǎng)的完全自 適應(yīng)路由方法輸入為當(dāng)前點(diǎn)^欽蘿點(diǎn),目標(biāo)點(diǎn)^游,j,先計(jì)算當(dāng)M花點(diǎn)與^游武雜各個(gè)方向上的 距離,如果當(dāng)薪氛d與^游資A的距離為0,將路由完成,并將消息在當(dāng)前節(jié)點(diǎn)消化;如果 苦^貧^與^游夢(mèng)A的距離為1,將消息路由到目標(biāo)節(jié)點(diǎn)。如果i^,乾點(diǎn)與^游,點(diǎn)的距離 不小于2:如果當(dāng)yf^:點(diǎn)與^游夢(mèng)點(diǎn)僅在一個(gè)維度上距離不為零,則在此維度方向上路由; 如果請(qǐng)求通道被其它消息占用,則等待至通道被釋放;如果^i貧/^與^游夢(mèng)^"僅在兩個(gè)維 度上距離不為零,則選擇兩個(gè)維度方向中的一個(gè)進(jìn)行路由,優(yōu)先選擇Z方向;如果ji乾點(diǎn) 與^游蘿/^在三維上均距離均不為零,則選擇三個(gè)維度方向中的一個(gè)進(jìn)行路由,優(yōu)先選擇Z 方向。本文基于通道交疊技術(shù)實(shí)現(xiàn)了一種新的無(wú)死鎖自適應(yīng)的容錯(cuò)路由方法。這種方法不需要 進(jìn)行通道預(yù)留,并且在每條物理通道只需要兩條虛擬通道就可以實(shí)現(xiàn)完全自適應(yīng)的路由。此 路由方法使用二維最小連網(wǎng)部件故障模型,方法過(guò)程描述如下所示輸入為當(dāng)前點(diǎn)i^i貧點(diǎn),目標(biāo)點(diǎn)^游夢(mèng)點(diǎn)先計(jì)算當(dāng)薪夢(mèng)點(diǎn)與^游化^在各個(gè)方向上的 距離,如果r與^游乾^的距離為0,則將路由完成,并將消息在當(dāng)前節(jié)點(diǎn)消化;如果當(dāng)說(shuō)節(jié) A與^游夢(mèng)A的距離為1,則將消息路由到目標(biāo)節(jié)點(diǎn)。如果^薪貧4與^游乾d的距離不小 于2:如果^薪花4與^游夢(mèng)^"僅在一個(gè)維上距離不為零且路由方向上為故障節(jié)點(diǎn),則路由 失敗,否則在此維度方向上路由;如果請(qǐng)求通道被其它消息占用,則等待至通道被釋放;如 果^^^^:點(diǎn)與^W勞;點(diǎn)僅在兩維上距離不為零則考察該平面內(nèi)建立的二維最小連網(wǎng)部件故 障模型安全性信息如果兩個(gè)維度方向上下一節(jié)點(diǎn)均為故障點(diǎn)或不安全點(diǎn)則路由失敗,否則 選擇兩個(gè)維度方向中的一個(gè)可用方向進(jìn)行路由,優(yōu)先選擇Z方向。如果^薪—蘿,點(diǎn)與^游貧.點(diǎn) 在三維上距離均不為零,則考察X, y, Z三個(gè)方向上的最小連網(wǎng)部件故障模型安全性信息對(duì)于x方向使用xy或zx平面內(nèi)安全性信息,y方向使用yz或xy平面內(nèi)安全性信息,z方向 使用yz或zx平面內(nèi)安全性信息;如果三個(gè)維度方向上下一節(jié)點(diǎn)均為故障點(diǎn)或不安全點(diǎn),則 路由失?。环駝t選擇三個(gè)維度方向中的一個(gè)進(jìn)行路由,優(yōu)先選擇z方向。9
權(quán)利要求
1. 基于通道交疊的mesh網(wǎng)避免死鎖的路由方法,其特征在于,在虛擬通道分配上,允許不同虛擬子網(wǎng)之間共享某些虛擬通道,對(duì)于二維mesh網(wǎng),上述方法在mesh網(wǎng)各節(jié)點(diǎn)上進(jìn)行的,依次含有以下步驟步驟(1)初始化一個(gè)二維的mesh網(wǎng)劃分為如下四個(gè)虛擬子網(wǎng)x-y-、x-y+、x+y-、x+y+,x+、x-即表示在x軸上的正、負(fù)方向的路由,對(duì)于y軸同理;我們把每條物理通道中分為兩條虛擬通道,用ci表示,i=1,2;把虛擬子網(wǎng)x-y-、x-y+合并,得到虛擬子網(wǎng)x-y*(c1-,c1),括號(hào)中的標(biāo)號(hào)表示分配到每個(gè)虛擬子網(wǎng)中的虛擬通道,“+”和“-”表示消息傳輸?shù)恼?fù)方向,“*”表示正負(fù)任意方向,其中x-y*(c1-,c1)表示對(duì)于所有在虛擬子網(wǎng)x-y-、x-y+上路由的消息,在x方向上都使用c1-通道,在y方向上使用c1通道;把虛擬子網(wǎng)x+y-、x+y+合并,得到虛擬子網(wǎng)x+y*(c1+,c2),其中x+y*(c1+,c2)表示對(duì)于所有在虛擬子網(wǎng)x+y-、x+y+上路由的消息,在x方向上都使用c1+通道,在y方向上使用c2通道;對(duì)于在y方向上繞行路由的消息,依次分別使用不同于原分配虛擬通道c1或c2的另外一條虛擬通道c2或c1,當(dāng)恢復(fù)最短路徑路由時(shí)再換回到原分配虛擬通道,對(duì)于在x方向上繞行路由的消息,由于在x方向上c2為空閑通道;步驟(2)按以下步驟在步驟(1)所選的虛擬通道分配下進(jìn)行二維mesh網(wǎng)的完全自適應(yīng)路由;步驟(2.1)計(jì)算當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向和y方向上的距離,按不同情況分步驟處理;步驟(2.2)如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向和y方向上的距離和為0,則路由完成;步驟(2.3)如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向和y方向上的距離和為1,則消息直接路由到目的節(jié)點(diǎn);步驟(2.4)如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向和y方向上的距離和大于或等于2,且當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)僅在一個(gè)方向上的距離不為零,則消息在此維度方向上路由;步驟(2.5)如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向和y方向上的距離均不為零,則消息優(yōu)先選擇x方向上路由。
2、 基于通道交疊的mesh網(wǎng)避免死鎖的路由方法,其特征在于,在虛擬通道分配上,允許不 同虛擬子網(wǎng)之間共享某些虛擬通道,對(duì)于三維mesh網(wǎng),上述方法在mesh網(wǎng)各節(jié)點(diǎn)上進(jìn)行的, 依次含有以下步驟步驟(l):初始化 . 一個(gè)三維的mesh網(wǎng)劃分為以下八個(gè)虛擬子網(wǎng)x+y+z+、 x+y+z-、 x+y-z+、 x+y-z-、 x-y+z+、 x-y+z-、 x-y-z+、 x-y-z-, x+、 x-即表示在x軸上的正、負(fù)方向的路由,對(duì)于y軸、z軸同理; 我們把每條物理通道中分為兩條虛擬通道,用q表示,i=l,2;把上述八個(gè)虛擬子網(wǎng)兩兩合并,從而得到以下四個(gè)虛擬子網(wǎng)x+y+z*(C;+,C;+, c7), x+y-z* (q+,。-,c;), x-y*z+ (c/-,q,c2+), x-y*z- (c2-, c2, c2-),括號(hào)中的標(biāo)號(hào)表示分配到每個(gè)虛擬 子網(wǎng)中的虛擬通道,"+"和"一"表示消息傳輸?shù)恼?fù)方向,"*"表示正負(fù)任意方向,x+y+z* 和x+y-z4在z方向上共享c;通道,x-y*z+和x-ygz-在y方向上共享Q通道,從而在x, y, z 三個(gè)方向上,每條物理通道都只用到了兩條虛擬通道,當(dāng)消息從y+方向到z方向轉(zhuǎn)彎時(shí),消息跳轉(zhuǎn)到不同于原分配通道的另外一條虛擬通道,已避免死鎖; 把三維mesh網(wǎng)劃分為xy、 yz和zx三個(gè)二維平面;步驟(2):按以下步驟在步驟(l)所選的虛擬通道分配下進(jìn)行三維mesh網(wǎng)的完全自適應(yīng)路由;步驟(2.1):計(jì)算當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向、y方向和z方向上的距離,按不同情況分 步驟處理;步驟(2.2):如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向、y方向和z方向上的距離和為O,則路由 完成;步驟(2.3):如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向、y方向和z方向上的距離和為1,則消息 直接路由到目的節(jié)點(diǎn);步驟(2.4):如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向、y方向和z方向上的距離和大于或等于2, 且當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)僅在一個(gè)方向上的距離不為零,則消息在此維度方向上路由;步驟(2.5):如果當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在x方向、y方向和z方向上的距離均不為零,則消 息優(yōu)先選擇z方向上路由。
3、對(duì)于權(quán)利要求1或權(quán)利要求2中的任何一項(xiàng)權(quán)利要求所述的基于通道交疊的容錯(cuò)mesh網(wǎng) 避免死鎖的路由方法,其特征在于,所述方法使用為每個(gè)二維平面建立的最小連網(wǎng)部件故障 模型而擴(kuò)展為一種容錯(cuò)的mesh網(wǎng)避免死鎖的路由方法,其步驟如下步驟(l):在所選xy、 yz或者xy、 yz、 zx平面內(nèi)分別建立最小連網(wǎng)部件故障模型,在所選 各個(gè)平面內(nèi),節(jié)點(diǎn)在x+y+和x-y-, y+z+和y-z-, z+x+和z-x-各自在兩條對(duì)角線方向上分別計(jì) 算安全性信息,若一個(gè)節(jié)點(diǎn)在兩個(gè)與對(duì)角線成對(duì)稱關(guān)系的方向存在故障或不安全節(jié)點(diǎn),那么 此節(jié)點(diǎn)被標(biāo)記為不安全節(jié)點(diǎn),經(jīng)過(guò)多輪計(jì)算,直至各節(jié)點(diǎn)安全性達(dá)到穩(wěn)定狀態(tài);步驟(2):計(jì)算當(dāng)前節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)在二維方向上的距離;步驟(3):根據(jù)步驟(2)計(jì)算的結(jié)果按不同情況分別處理; 若當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)的距離為O,則路由完成;若當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)的在各維的距離和為1,則將消息路由到目標(biāo)節(jié)點(diǎn); 若當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)的在各維的距離和大于或等于2,且當(dāng)前節(jié)點(diǎn)與冃的節(jié)點(diǎn)僅在一個(gè)維上距離不為零且路由方向上為故障節(jié)點(diǎn),則路由失敗,否則在此維度方向上路由;若當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)僅在兩維上距離不為零,則考查該平面內(nèi)建立的二維最小連網(wǎng)部件故障模型;如若兩個(gè)維度方向上下一節(jié)點(diǎn)均為故障點(diǎn)或不安全點(diǎn)則路由失敗,否則選擇兩個(gè)維度方向中的一個(gè)可用方向進(jìn)行路由,優(yōu)先選擇Z方向;若當(dāng)前節(jié)點(diǎn)與目的節(jié)點(diǎn)在三維上距離均不為零,則考查xy、 yz、 zx三個(gè)方向上的最小連 網(wǎng)部件故障模型在x方向使用xy或zx最小連網(wǎng)部件故障模型,y方向使用yz或xy最小連 網(wǎng)部件故障模型,z方向使用yz或zx最小連網(wǎng)部件故障模型;若三個(gè)維度方向上下一節(jié)點(diǎn)均為故障點(diǎn)或不安全點(diǎn),則路由失敗;否則選擇三個(gè)維度方向中的一個(gè)進(jìn)行路由,優(yōu)先選擇z方向進(jìn)行路由。
全文摘要
基于通道交疊的mesh網(wǎng)避免死鎖的路由方法,屬于分布式高性能系統(tǒng)路由容錯(cuò)技術(shù),其特征在于,把每條物理通道中分為兩條虛擬通道,允許不同虛擬子網(wǎng)之間共享某些虛擬通道,在二維mesh網(wǎng)中,在x方向上都使用c<sub>1</sub>-通道,在y方向上使用c<sub>1</sub>通道;在三維mesh網(wǎng)中,虛擬子網(wǎng)x+y+z*和x+y-z*在z方向上共享c<sub>1</sub>通道,虛擬子網(wǎng)x-y*z+和x-y*z-在y方向上共享c<sub>2</sub>通道,其中“+”和“-”表示消息傳輸?shù)恼?fù)方向,“*”表示正負(fù)任意方向,從而完成無(wú)死鎖平面自適應(yīng)路由;同時(shí),在三維各平面內(nèi)分別建立最小連網(wǎng)部件故障模型,利用其中各條對(duì)角線上的安全信息,從而實(shí)現(xiàn)容錯(cuò)的避免死鎖路由方法。與之前的PAR和GOMEZ方法相比,當(dāng)標(biāo)準(zhǔn)化輸入負(fù)載提高時(shí),該發(fā)明提高了整個(gè)網(wǎng)絡(luò)的傳輸性能。
文檔編號(hào)H04L12/56GK101262444SQ20081010160
公開日2008年9月10日 申請(qǐng)日期2008年3月10日 優(yōu)先權(quán)日2008年3月10日
發(fā)明者東 向, 張躍鯉 申請(qǐng)人:清華大學(xué)