專利名稱:多處理器系統(tǒng)的節(jié)點(diǎn)路由方法、控制器及多處理器系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技木,尤其涉及一種多處理器系統(tǒng)的節(jié)點(diǎn)路由方法、路由策略控制器及多處理器系統(tǒng)。
背景技術(shù):
大規(guī)模的多處理器系統(tǒng)中,容錯(cuò)是指在部件失效情況下系統(tǒng)內(nèi)處理器聯(lián)網(wǎng)運(yùn)作的能力,容錯(cuò)實(shí)現(xiàn)技術(shù)往往是以多處理器系統(tǒng)通信性能的大大降低為代價(jià)的。通常,多處理器系統(tǒng)內(nèi)的節(jié)點(diǎn)通信時(shí),由路由策略控制器制定路由策略提供給待發(fā)送信息的節(jié)點(diǎn),使得待發(fā)送信息的節(jié)點(diǎn)沿最短路由轉(zhuǎn)發(fā)報(bào)文。報(bào)文在從ー個(gè)節(jié)點(diǎn)發(fā)送另ー個(gè)節(jié)點(diǎn)的過程中,在到達(dá)目的節(jié)點(diǎn)之前通常要經(jīng)過多個(gè)中間節(jié)點(diǎn),由于路由策略控制器制定的路由策略,只允許報(bào)文使用最短路由轉(zhuǎn)發(fā),當(dāng)最短路由中的某一鏈路發(fā)生故障時(shí),報(bào)文就以循環(huán)的方式互相等待從而發(fā)生死鎖。這樣,包含在死鎖配置內(nèi)的所有報(bào)文將永遠(yuǎn)被阻塞。
發(fā)明內(nèi)容
本發(fā)明提供一種多處理器系統(tǒng)的節(jié)點(diǎn)路由方法、控制器及多處理器系統(tǒng),用于實(shí)現(xiàn)容錯(cuò)路由。本發(fā)明的第一個(gè)方面是提供一種多處理器系統(tǒng)的節(jié)點(diǎn)路由方法,包括獲知多處理器系統(tǒng)內(nèi)節(jié)點(diǎn)之間的可用鏈路的狀態(tài),所述多處理器系統(tǒng)包括第一子網(wǎng),所述第一子網(wǎng)包括相連的至少兩個(gè)節(jié)點(diǎn);當(dāng)所述第一子網(wǎng)中至少有ー個(gè)鏈路發(fā)生故障時(shí),重新選定所述第一子網(wǎng)中所有節(jié)點(diǎn)之間的可用鏈路,以使所述第一子網(wǎng)中的節(jié)點(diǎn)利用所述重新選定的可用鏈路路由報(bào)文;重新選定的可用鏈路為所述第一子網(wǎng)中,每個(gè)節(jié)點(diǎn)上除去與故障鏈路的維度序號(hào)相同的鏈路之后剰余的鏈路,其中,維度序號(hào)為一條鏈路在兩端節(jié)點(diǎn)的編號(hào),一條鏈路在兩端節(jié)點(diǎn)的編號(hào)相同。本發(fā)明的另ー個(gè)方面是提供一種多處理器系統(tǒng)的路由策略控制器,包括狀態(tài)獲知模塊,用于獲知多處理器系統(tǒng)內(nèi)節(jié)點(diǎn)之間的可用鏈路的狀態(tài),所述多處理器系統(tǒng)包括第一子網(wǎng),所述第一子網(wǎng)包括相連的至少兩個(gè)節(jié)點(diǎn);鏈路選定模塊,用于當(dāng)所述第一子網(wǎng)中至少有ー個(gè)鏈路發(fā)生故障時(shí),重新選定所述第一子網(wǎng)中所有節(jié)點(diǎn)之間的可用鏈路,以使所述第一子網(wǎng)中的節(jié)點(diǎn)利用所述重新選定的可用鏈路路由報(bào)文;重新選定的可用鏈路為所述第一子網(wǎng)中,每個(gè)節(jié)點(diǎn)上除去與故障鏈路的維度序號(hào)相同的鏈路之后剰余的鏈路,其中,維度序號(hào)為一條鏈路在兩端節(jié)點(diǎn)的編號(hào),一條鏈路在兩端節(jié)點(diǎn)的編號(hào)相同。本發(fā)明的又ー個(gè)方面是提供一種多處理器系統(tǒng),包括上述多處理器系統(tǒng)的路由策略控制器和至少兩個(gè)節(jié)點(diǎn)。本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的節(jié)點(diǎn)路由方法、控制器及多處理器系統(tǒng)的技術(shù)效果是通過獲知多處理器系統(tǒng)內(nèi)節(jié)點(diǎn)之間的可用鏈路的狀態(tài),并當(dāng)至少有ー個(gè)鏈路發(fā)生故障時(shí),從每個(gè)節(jié)點(diǎn)上除去與故障鏈路的維度序號(hào)相同的鏈路之后剰余的鏈路中重新選定可用鏈路,利用重新選定的可用鏈路重新組織起新的路由,恢復(fù)系統(tǒng)通信,實(shí)現(xiàn)了容錯(cuò)路由。
圖I為本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的節(jié)點(diǎn)路由方法的流程圖;圖2為本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的節(jié)點(diǎn)路由方法中多個(gè)子網(wǎng)的示意圖;圖3為本發(fā)明實(shí)施例一提供的多處理器系統(tǒng)的節(jié)點(diǎn)路由方法中的網(wǎng)絡(luò)連接示意圖; 圖4為本發(fā)明實(shí)施例一提供的多處理器系統(tǒng)的節(jié)點(diǎn)路由方法中鏈路故障后的可用鏈路^^意圖;圖5為本發(fā)明實(shí)施例ニ提供的多處理器系統(tǒng)的節(jié)點(diǎn)路由方法中的網(wǎng)絡(luò)連接示意圖;圖6為本發(fā)明實(shí)施例ニ提供的多處理器系統(tǒng)的節(jié)點(diǎn)路由方法中鏈路故障后的可用鏈路^^意圖;圖7為本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的路由策略控制器的結(jié)構(gòu)示意圖;圖8為本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式圖I為本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的節(jié)點(diǎn)路由方法的流程圖。本實(shí)施例中路由策略控制器為執(zhí)行主體,如圖I所示,該方法包括步驟11、獲知多處理器系統(tǒng)內(nèi)節(jié)點(diǎn)之間的可用鏈路的狀態(tài),該多處理器系統(tǒng)包括第一子網(wǎng),該第一子網(wǎng)包括相連的至少兩個(gè)節(jié)點(diǎn)。如路由策略控制器可監(jiān)測(cè)得到多處理器系統(tǒng)內(nèi)節(jié)點(diǎn)之間的可用鏈路的狀態(tài)?;蛘叨嗵幚砥飨到y(tǒng)內(nèi)節(jié)點(diǎn)之間的可用鏈路的狀態(tài)由專門的模塊進(jìn)行監(jiān)控,路由策略控制器通過該專門的模塊獲知多處理器系統(tǒng)內(nèi)節(jié)點(diǎn)之間的可用鏈路的狀態(tài),如正常、故障等。其中,一個(gè)節(jié)點(diǎn)可包括兩個(gè)CPU。步驟12、當(dāng)該第一子網(wǎng)中至少有ー個(gè)鏈路發(fā)生故障時(shí),重新選定該第一子網(wǎng)中所有節(jié)點(diǎn)之間的可用鏈路,以使該第一子網(wǎng)中的節(jié)點(diǎn)利用該重新選定的可用鏈路路由報(bào)文;重新選定的可用鏈路為該第一子網(wǎng)中,每個(gè)節(jié)點(diǎn)上除去與故障鏈路的維度序號(hào)相同的鏈路之后剰余的鏈路,其中,維度序號(hào)為一條鏈路在兩端節(jié)點(diǎn)的編號(hào),一條鏈路在兩端節(jié)點(diǎn)的編號(hào)相同。上述步驟11、步驟12可由路由策略控制器執(zhí)行。其中,該多處理器系統(tǒng)還可包括第二子網(wǎng),所述第二子網(wǎng)中的鏈路數(shù)量及其維度序號(hào)與所述第一子網(wǎng)中的鏈路數(shù)量及維度序號(hào)相同,該第一子網(wǎng)與該第二子網(wǎng)通過第n+1維的鏈路相連,其中,η為該第一子網(wǎng)和第二子網(wǎng)中鏈路的最大維度;當(dāng)?shù)谝蛔泳W(wǎng)與該第二子網(wǎng)之間只有ー個(gè)n+1維的鏈路時(shí),第一子網(wǎng)的節(jié)點(diǎn)均通過該條第n+1維的鏈路與第二子網(wǎng)相連;當(dāng)?shù)谝蛔泳W(wǎng)與該第二子網(wǎng)之間有η個(gè)第n+1維的鏈路時(shí),第一子網(wǎng)的每個(gè)節(jié)點(diǎn)分別均通過一條n+1維的鏈路與第二子網(wǎng)相連。相應(yīng)地,本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的節(jié)點(diǎn)路由方法還可包括選定該第一子網(wǎng)中的節(jié)點(diǎn)到該第二子網(wǎng)的可用鏈路,以使該第一子網(wǎng)中的節(jié)點(diǎn)將該報(bào)文路由到該第二子網(wǎng);該第一子網(wǎng)中的節(jié)點(diǎn)到該第二子網(wǎng)的可用鏈路,包括第n+1維的鏈路及該第二子網(wǎng)中的可用鏈路,該第二子網(wǎng)中的可用鏈路為該第二子網(wǎng)中,各節(jié)點(diǎn)除去與該第一子網(wǎng)路由該報(bào)文所使用的鏈路維度序號(hào)相同的鏈路后,剰余的鏈路。優(yōu)選地,第n+1維的鏈路,為該報(bào)文的發(fā)送節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的路由的中間鏈路,以進(jìn)ー步提高容錯(cuò)能力。從發(fā)送節(jié)點(diǎn)經(jīng)過ー些中間節(jié)點(diǎn),再到達(dá)目的節(jié)點(diǎn)有多跳,通常大于等于3跳,這些中間節(jié)點(diǎn)的鏈路就稱為中間鏈路。優(yōu)選地,該第一子網(wǎng)路由該報(bào)文使用的鏈路為前n/2維的鏈路,該第二子網(wǎng)路由該報(bào)文使用的鏈路為后n/2維的鏈路,以進(jìn)ー步提高容錯(cuò)能力。 如圖2所示,本實(shí)施例中,多處理器系統(tǒng)可包括子網(wǎng)A和子網(wǎng)B。假設(shè)子網(wǎng)A、子網(wǎng)B均是η維網(wǎng)絡(luò),即有η個(gè)維度,兩個(gè)子網(wǎng)之間通過第n+1維,即維度Dn+Ι,也即維度序號(hào)為n+1的鏈路連接。子網(wǎng)A、子網(wǎng)B分別具有維度Dl,D2 "Dn,Dn+l,如果維度Dn+Ι的所有鏈路,即維度序號(hào)為n+1的鏈路,也即第n+1維鏈路全部斷開,則兩個(gè)子網(wǎng)不可互相通信。任何一個(gè)維度如維度Dn+Ι,即維度序號(hào)為n+1的鏈路,也即第n+1維鏈路上發(fā)生鏈路損壞,但只要保持相同維度下的任一根鏈路可用,就可以構(gòu)造無(wú)死鎖容錯(cuò)路由。要構(gòu)造無(wú)死鎖容錯(cuò)路由,維度為Dn+Ι的鏈路,即維度序號(hào)為n+1的鏈路,也即第n+1維鏈路必須位于維度編號(hào)路由的中間。其中,維度編號(hào)路由即用鏈路的維度來(lái)表示路由。如Dl — D2 —…Dn — Dn+1,即表不從維度序號(hào)為I的鏈路到維度序號(hào)為n+1的鏈路組成的路由。如果按照n+1維的維度編號(hào)路由方式構(gòu)造路由表,則維度為Dn+Ι的鏈路不可以位于維度編號(hào)路由的最后ー維,因?yàn)樵谧詈笠粴i有的點(diǎn)僅通過維度為Dn+Ι的鏈路不可達(dá),也就是說(shuō)維度編號(hào)路由Dl — D2 —…Dn — Dn+Ι的方式不可行。同理由于鏈路是雙向的,維度為Dn+Ι的鏈路也不可以位于維度編號(hào)路由的第一維,因?yàn)樵诘谝粴i后有的點(diǎn)僅通過維度為Dn+Ι的鏈路不可達(dá)。也就是說(shuō)維度編號(hào)路由Dn+Ι — Dl — D2 —…Dn的方式不可行。較優(yōu)的方式是將每個(gè)子網(wǎng)的η個(gè)維度分成兩個(gè)n/2維度,將Dn+Ι維置于維度編號(hào)路由的中間Dl — D2—…Dn/2 —Dn+Ι — Dn/2+l — Dn,也就是在A網(wǎng)絡(luò)中只利用前n/2維度路由,在B網(wǎng)絡(luò)中只利用后n/2維度通信,相互之間剔除維度相同的鏈路,也即維度序號(hào)相同的鏈路。這樣,就很容易構(gòu)建容錯(cuò)的無(wú)死鎖路由。本發(fā)明實(shí)施例提供的多處理器系統(tǒng)的節(jié)點(diǎn)路由方法通過探索和制定ー套容易實(shí)現(xiàn)的無(wú)死鎖可容錯(cuò)的路由機(jī)制,確保了容錯(cuò)機(jī)系統(tǒng)互聯(lián)架構(gòu)的高可靠性,解決了處理器系統(tǒng)中,如果不對(duì)內(nèi)部網(wǎng)絡(luò)的路由算法和路由機(jī)制進(jìn)行設(shè)置,很容易形成死鎖的問題,尤其是在網(wǎng)絡(luò)上出現(xiàn)某單節(jié)點(diǎn)或多節(jié)點(diǎn)斷路的情況下,無(wú)死鎖的路由算法可能非常復(fù)雜和多變的問題。實(shí)施例一以具有8節(jié)點(diǎn)網(wǎng)絡(luò)的多處理器系統(tǒng)為例對(duì)本發(fā)明實(shí)施例提供的方法做進(jìn)ー步詳細(xì)說(shuō)明。
其中,8節(jié)點(diǎn)網(wǎng)絡(luò)的維度數(shù)量可以是廣7中的任意ー個(gè),維度的數(shù)量不同,網(wǎng)絡(luò)結(jié)構(gòu)及路由步長(zhǎng)也所有不同,如下表所示。
權(quán)利要求
1.一種多處理器系統(tǒng)的節(jié)點(diǎn)路由方法,其特征在于,包括 獲知所述多處理器系統(tǒng)內(nèi)節(jié)點(diǎn)之間的可用鏈路的狀態(tài),所述多處理器系統(tǒng)包括第一子網(wǎng),所述第一子網(wǎng)包括相連的至少兩個(gè)節(jié)點(diǎn); 當(dāng)所述第一子網(wǎng)中至少有ー個(gè)鏈路發(fā)生故障時(shí),重新選定所述第一子網(wǎng)中所有節(jié)點(diǎn)之間的可用鏈路,以使所述第一子網(wǎng)中的節(jié)點(diǎn)利用所述重新選定的可用鏈路路由報(bào)文;所述重新選定的可用鏈路為所述第一子網(wǎng)中,每個(gè)節(jié)點(diǎn)上除去與故障鏈路的維度序號(hào)相同的鏈路之后剰余的鏈路,其中,維度序號(hào)為一條鏈路在兩端節(jié)點(diǎn)的編號(hào),所述鏈路在兩端節(jié)點(diǎn)的編號(hào)相同。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述獲知多處理器系統(tǒng)內(nèi)節(jié)點(diǎn)之間的可用鏈路的狀態(tài),包括 監(jiān)測(cè)得到所述多處理器系統(tǒng)內(nèi)節(jié)點(diǎn)之間的可用鏈路的狀態(tài)。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述多處理器系統(tǒng)還包括第二子網(wǎng),所述第二子網(wǎng)中的鏈路數(shù)量及其維度序號(hào)與所述第一子網(wǎng)中的鏈路數(shù)量及維度序號(hào)相同,所述第一子網(wǎng)與所述第二子網(wǎng)通過第n+1維的鏈路相連,其中,η為所述第一子網(wǎng)和第二子網(wǎng)中鏈路的最大維度; 所述方法還包括 選定所述第一子網(wǎng)中的節(jié)點(diǎn)到所述第二子網(wǎng)的可用鏈路,以使所述第一子網(wǎng)中的節(jié)點(diǎn)將所述報(bào)文路由到所述第二子網(wǎng);所述第一子網(wǎng)中的節(jié)點(diǎn)到所述第二子網(wǎng)的可用鏈路,包括第n+1維的鏈路及所述第二子網(wǎng)中的可用鏈路,所述第二子網(wǎng)中的可用鏈路為所述第二子網(wǎng)中,各節(jié)點(diǎn)除去與所述第一子網(wǎng)路由所述報(bào)文所使用的鏈路維度序號(hào)相同的鏈路后,剩余的鏈路。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述第n+1維的鏈路,為所述報(bào)文的發(fā)送節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的路由的中間鏈路。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述第一子網(wǎng)路由所述報(bào)文使用的鏈路為前n/2維的鏈路,所述第二子網(wǎng)路由所述報(bào)文使用的鏈路為后n/2維的鏈路。
6.一種多處理器系統(tǒng)的路由策略控制器,其特征在于,包括 狀態(tài)獲知模塊,用于獲知所述多處理器系統(tǒng)內(nèi)節(jié)點(diǎn)之間的可用鏈路的狀態(tài),所述多處理器系統(tǒng)包括第一子網(wǎng),所述第一子網(wǎng)包括相連的至少兩個(gè)節(jié)點(diǎn); 鏈路選定模塊,用于當(dāng)所述第一子網(wǎng)中至少有ー個(gè)鏈路發(fā)生故障時(shí),重新選定所述第一子網(wǎng)中所有節(jié)點(diǎn)之間的可用鏈路,以使所述第一子網(wǎng)中的節(jié)點(diǎn)利用所述重新選定的可用鏈路路由報(bào)文;重新選定的可用鏈路為所述第一子網(wǎng)中,每個(gè)節(jié)點(diǎn)上除去與故障鏈路的維度序號(hào)相同的鏈路之后剰余的鏈路,其中,維度序號(hào)為一條鏈路在兩端節(jié)點(diǎn)的編號(hào),一條鏈路在兩端節(jié)點(diǎn)的編號(hào)相同。
7.根據(jù)權(quán)利要求6所述的路由策略控制器,其特征在于,所述狀態(tài)獲知模塊具體用于監(jiān)測(cè)得到多處理器系統(tǒng)內(nèi)節(jié)點(diǎn)之間的可用鏈路的狀態(tài)。
8.根據(jù)權(quán)利要求6或7所述的路由策略控制器,其特征在于,所述多處理器系統(tǒng)還包括第二子網(wǎng),所述第二子網(wǎng)中的鏈路數(shù)量及其維度序號(hào)與所述第一子網(wǎng)中的鏈路數(shù)量及維度序號(hào)相同,所述第一子網(wǎng)與所述第二子網(wǎng)通過第n+1維的鏈路相連,其中,η為所述第一子網(wǎng)和第二子網(wǎng)中鏈路的最大維度;所述裝置還包括 鏈路選定模塊還用于選定所述第一子網(wǎng)中的節(jié)點(diǎn)到所述第二子網(wǎng)的可用鏈路,以使所述第一子網(wǎng)中的節(jié)點(diǎn)將所述報(bào)文路由到所述第二子網(wǎng);所述第一子網(wǎng)中的節(jié)點(diǎn)到所述第二子網(wǎng)的可用鏈路,包括第n+1維的鏈路及所述第二子網(wǎng)中的可用鏈路,所述第二子網(wǎng)中的可用鏈路為所述第二子網(wǎng)中,各節(jié)點(diǎn)除去與所述第一子網(wǎng)路由所述報(bào)文所使用的鏈路維度序號(hào)相同的鏈路后,剰余的鏈路。
9.根據(jù)權(quán)利要求8所述的路由策略控制器,其特征在于,所述第n+1維的鏈路,為所述報(bào)文的發(fā)送節(jié)點(diǎn)與目的節(jié)點(diǎn)之間的路由的中間鏈路。
10.根據(jù)權(quán)利要求9所述的路由策略控制器,其特征在于,所述第一子網(wǎng)路由所述報(bào)文使用的鏈路為前n/2維的鏈路,所述第二子網(wǎng)路由所述報(bào)文使用的鏈路為后n/2維的鏈路。
11.一種多處理器系統(tǒng),其特征在于,包括上述權(quán)利要求6-10任意一項(xiàng)所述的多處理器系統(tǒng)的路由策略控制器和至少兩個(gè)節(jié)點(diǎn)。
全文摘要
本發(fā)明提供一種多處理器系統(tǒng)的節(jié)點(diǎn)路由方法、控制器及多處理器系統(tǒng),方法包括獲知多處理器系統(tǒng)內(nèi)節(jié)點(diǎn)之間的可用鏈路的狀態(tài),所述多處理器系統(tǒng)包括第一子網(wǎng),所述第一子網(wǎng)包括相連的至少兩個(gè)節(jié)點(diǎn);當(dāng)所述第一子網(wǎng)中至少有一個(gè)鏈路發(fā)生故障時(shí),重新選定所述第一子網(wǎng)中所有節(jié)點(diǎn)之間的可用鏈路,以使所述第一子網(wǎng)中的節(jié)點(diǎn)利用所述重新選定的可用鏈路路由報(bào)文;重新選定的可用鏈路為所述第一子網(wǎng)中,每個(gè)節(jié)點(diǎn)上除去與故障鏈路的維度序號(hào)相同的鏈路之后剩余的鏈路,其中,維度序號(hào)為一條鏈路在兩端節(jié)點(diǎn)的編號(hào),一條鏈路在兩端節(jié)點(diǎn)的編號(hào)相同。
文檔編號(hào)H04L12/56GK102651712SQ20121014343
公開日2012年8月29日 申請(qǐng)日期2012年5月10日 優(yōu)先權(quán)日2012年5月10日
發(fā)明者劉建根, 王海彬 申請(qǐng)人:華為技術(shù)有限公司