一種應(yīng)用于Mesh拓?fù)淦暇W(wǎng)絡(luò)的故障信息傳播方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及集成電路片上互聯(lián)技術(shù)領(lǐng)域,特別是涉及一種應(yīng)用于Mesh拓?fù)淦暇W(wǎng)絡(luò)的鏈路故障信息傳播方法。
【背景技術(shù)】
[0002]隨著集成工藝的進(jìn)步,片上系統(tǒng)(System-on_Chip,SoC)中集成的功能單元的種類和數(shù)量迅速增加。傳統(tǒng)的共享通信結(jié)構(gòu)和直接通信結(jié)構(gòu)都不能很好地應(yīng)對(duì)片上多核間日益增長(zhǎng)的通信壓力。片上網(wǎng)絡(luò)(Network-on-Chip,NoC)是一種新型的多核間通信結(jié)構(gòu),相較于傳統(tǒng)的通信結(jié)構(gòu),片上網(wǎng)絡(luò)能夠提供更高的帶寬和靈活性,同時(shí)在性能和代價(jià)之間得到更好的平衡。
[0003]在研究中較為常見(jiàn)的一類片上網(wǎng)絡(luò)是Mesh拓?fù)淦暇W(wǎng)絡(luò),Mesh拓?fù)淦暇W(wǎng)絡(luò)中路由器按照行列規(guī)則排布,構(gòu)成m行Xn列的矩形。路由器可以用其坐標(biāo)(x,y)(O彡X彡m-l,0彡y彡n_l)表示,其中x為路由器的行坐標(biāo)(或稱X軸坐標(biāo)),y為路由器的列坐標(biāo)(或稱Y軸坐標(biāo))。路由器的端口分別處在X軸方向或Y軸方向上。端口所在的X軸方向(或者Y軸方向)稱為端口方向,Y軸方向(或X軸方向)稱為正交方向。
[0004]但是,隨著工藝尺寸的迅速減小,集成電路的器件穩(wěn)定性逐漸降低。因此,集成電路面臨的一個(gè)重要挑戰(zhàn)是,利用不可靠的器件實(shí)現(xiàn)可靠的系統(tǒng)。為了達(dá)到這一目標(biāo),容錯(cuò)技術(shù)變得非常重要。
[0005]片上網(wǎng)絡(luò)中常見(jiàn)的故障有鏈路故障和路由器故障等,鏈路故障是指由于某種原因?qū)е聫哪硞€(gè)路由器到其某個(gè)鄰居的通信不成功。路由器故障可以看作是路由器的每個(gè)端口都發(fā)生了鏈路故障。對(duì)于一個(gè)故障的路由器,將路由器行方向端口的故障統(tǒng)稱為行方向故障,包含兩個(gè)鏈路故障;同理,將路由器列方向端口的故障稱為列方向故障,包含兩個(gè)鏈路故障。
[0006]在片上網(wǎng)絡(luò)中,一類非常重要的容錯(cuò)技術(shù)就是容錯(cuò)路由算法(fault-tolerantrouting algorithm)。這些算法通過(guò)利用已知的網(wǎng)絡(luò)拓?fù)湫畔?、?shù)據(jù)包信息以及器件故障信息,使數(shù)據(jù)包繞過(guò)故障的器件,保證數(shù)據(jù)包的可達(dá)性。對(duì)于這種方法,故障信息的傳播方法和路由算法同等重要。路由算法已知的故障信息的數(shù)量直接制約著路由算法在傳播延遲、支持的故障數(shù)量和圖案等方面的性能。簡(jiǎn)而言之,如果路由算法已知的故障信息越多,路由算法的性能以及潛在性能越高。
[0007]當(dāng)然,也不是所有的故障信息都有必要告知每一個(gè)路由器。當(dāng)進(jìn)行路由計(jì)算的路由器與故障器件距離較遠(yuǎn)時(shí),故障信息對(duì)此路由器的路由計(jì)算并無(wú)影響。對(duì)于這種情況,應(yīng)該盡量減小故障傳播區(qū)域,以減小信息傳播的代價(jià)。當(dāng)多個(gè)故障器件距離較近時(shí),又會(huì)對(duì)路徑產(chǎn)生疊加影響,這時(shí),又需要適當(dāng)?shù)財(cái)U(kuò)大傳播區(qū)域,使得路由算法能夠充分利用故障信息。
[0008]在現(xiàn)有的設(shè)計(jì)中,大部分并未采用故障傳播方法,僅僅是利用本地路由器的故障檢測(cè)電路獲取的故障信息進(jìn)行路由,其傳播范圍僅限于故障路由器的鄰居節(jié)點(diǎn);少部分設(shè)計(jì)中使用了故障傳播方法,其傳播范圍也局限在距離故障路由器可以在2跳內(nèi)到達(dá)的地方,如圖1所示。
【發(fā)明內(nèi)容】
[0009]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種應(yīng)用于Mesh拓?fù)淦暇W(wǎng)絡(luò)的鏈路故障信息傳播方法,通過(guò)對(duì)故障在正交方向傳播的寬度的設(shè)定,以及對(duì)故障區(qū)域的自適應(yīng)檢測(cè),確定故障傳播區(qū)域,將鏈路故障信息傳播到此區(qū)域內(nèi)的每一個(gè)路由器,可以滿足不同優(yōu)化目標(biāo)的容錯(cuò)路由算法對(duì)于鏈路故障信息的要求。
[0010]本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的:一種應(yīng)用于Mesh拓?fù)淦暇W(wǎng)絡(luò)的鏈路故障信息傳播方法,包括以下步驟:
51.設(shè)定鏈路故障信息的傳播區(qū)域:設(shè)定鏈路故障信息的正交方向傳播的寬度,鏈路故障信息的正交方向傳播的寬度表示為N ;故障路由器為發(fā)生鏈路故障的路由器,故障端口為發(fā)生鏈路故障的端口,則鏈路故障信息的傳播區(qū)域?yàn)楣收下酚善鞯墓收隙丝谒诹谢蛐猩系乃新酚善骱凸收下酚善飨噜彽腘列或行上的所有路由器;
52.擴(kuò)散新增鏈路故障信息:獲取新增鏈路故障信息,將該新增鏈路故障信息傳播到以故障鏈路為中心的傳播區(qū)域內(nèi);
53.更新當(dāng)前故障區(qū)域:故障區(qū)域?yàn)橄嗷ブg會(huì)產(chǎn)生相互干擾的故障鏈路組成的區(qū)域,各路由器根據(jù)接收到的新增鏈路故障信息更新當(dāng)前故障區(qū)域;
54.補(bǔ)充擴(kuò)散鏈路故障信息:在當(dāng)前故障區(qū)域內(nèi)傳播各路由器還未記錄的鏈路故障信息。
[0011]步驟S3中各路由器根據(jù)接收到的新增鏈路故障信息更新當(dāng)前故障區(qū)域的方式為:
當(dāng)路由器先前沒(méi)有記錄故障信息時(shí),獲取新增故障區(qū)域,將新增故障區(qū)域作為當(dāng)前故障區(qū)域;
當(dāng)路由器先前記錄了故障信息時(shí),獲取新增故障區(qū)域,將已知故障區(qū)域和新增故障區(qū)域的并集作為當(dāng)前故障區(qū)域。
[0012]步驟S4中在當(dāng)前故障區(qū)域內(nèi)傳播各路由器還未記錄的鏈路故障信息的方式為:將新增鏈路故障信息傳播給已知故障區(qū)域內(nèi)的路由器,將已知鏈路故障信息傳播給新增故障區(qū)域內(nèi)的路由器。
[0013]步驟S3中所述的相互干擾的故障鏈路為在行方向或在列方向上相鄰的故障鏈路。
[0014]步驟S3中所述的故障區(qū)域?yàn)?
若只有一行或一列存在故障鏈路,則將該行或列定義為故障區(qū)域。
[0015]若多行或列存在故障鏈路且存在故障鏈路的行或列為連續(xù)的:當(dāng)連續(xù)行的每一行均存在故障鏈路時(shí),將連續(xù)行的起始行和結(jié)束行之間的行為故障區(qū)域,起始行和結(jié)束行定義為故障區(qū)域的邊界;當(dāng)連續(xù)列的每一列均存在鏈路故障時(shí),將連續(xù)列的起始列和結(jié)束列之間的定義為故障區(qū)域,起始列和結(jié)束列定義為故障區(qū)域的邊界。
[0016]若多行或列存在故障鏈路且存在故障鏈路的行或列為不連續(xù)的:則將所有存在故障鏈路的行和列的并集定義為故障區(qū)域。
[0017]所述的已知故障區(qū)域和新增故障區(qū)域的并集的獲得方式為:對(duì)同處于行方向上的故障區(qū)域取并集,對(duì)同處于列方向上的故障區(qū)域取并集。
[0018]本發(fā)明的有益效果是:本發(fā)明確定了鏈路故障信息傳播的圖案模式,且可以指定傳播區(qū)域的大小,通過(guò)對(duì)故障區(qū)域的自適應(yīng)檢測(cè),確定故障傳播區(qū)域,將鏈路故障信息傳播到此區(qū)域內(nèi)的每一個(gè)路由器,可以滿足不同優(yōu)化目標(biāo)的容錯(cuò)路由算法對(duì)于鏈路故障信息的要求。
【附圖說(shuō)明】
[0019]圖1為現(xiàn)有鏈路故障信息傳播方法中的傳播區(qū)域示意圖;
圖2為本發(fā)明應(yīng)用于Mesh拓?fù)淦暇W(wǎng)絡(luò)的鏈路故障信息傳播方法的流程框圖;
圖3為本發(fā)明的鏈路故障傳播區(qū)域示意圖;
圖4為片上網(wǎng)絡(luò)坐標(biāo)體系和故障區(qū)域的定義示意圖;
圖5為本發(fā)明的具體流程圖;
圖6為有兩個(gè)鏈路故障且正交方向傳播的寬度為I時(shí)故障I的鏈路故障信息傳播示意圖;
圖7為有兩個(gè)鏈路故障且正交方向傳播的寬度為I時(shí)故障II的鏈路故障信息傳播示意圖;
圖8為有兩個(gè)鏈路故障且正交方向傳播的寬度為I時(shí)補(bǔ)充擴(kuò)散鏈路故障信息的示意圖;
圖9為有兩個(gè)鏈路故障且正交方向傳播的寬度為2時(shí)故障I的鏈路故障信息傳播示意圖;
圖10為有兩個(gè)鏈路故障且正交方向傳播的寬度為2時(shí)故障II的鏈路故障信息傳播示意圖;
圖11為有兩個(gè)鏈路故障且正交方向傳播的寬度為2時(shí)補(bǔ)充擴(kuò)散鏈路故障信息的示意圖;
圖12為有三個(gè)鏈路故障且正交方向傳播的寬度為I時(shí)故障I的鏈路故障信息傳播示意圖;
圖13為有三個(gè)鏈路故障且正交方向傳播的寬度為I時(shí)故障II的鏈路故障信息傳播示意圖;
圖14為有三個(gè)鏈路故障且正交方向傳播的寬度為I時(shí)故障III的鏈路故障信息傳播示意圖;
圖15為有三個(gè)鏈路故障且正交方向傳播的寬度為I時(shí)補(bǔ)充擴(kuò)散鏈路故障信息的第一示意圖;
圖16為有三個(gè)鏈路故障且正交方向傳播的寬度為I時(shí)補(bǔ)充擴(kuò)散鏈路故障信息的第二示意圖。
【具體實(shí)施方式】
[0020]下面結(jié)合附圖進(jìn)一步詳細(xì)描述本發(fā)明的技術(shù)方案,但本發(fā)明的保護(hù)范圍不局限于以下所述。
[0021]在本發(fā)明中,故障的基本單位是鏈路故障,即從某個(gè)路由器到其某個(gè)相鄰路由器的通信不成功;路由器故障則可表示為故障路由器到其所有的相鄰路由器的通信都不成功。
[0022]如圖2所示,一種應(yīng)用于Mesh拓?fù)淦暇W(wǎng)絡(luò)的鏈路故障信息傳播方法,包括以下步驟:
S1.設(shè)定鏈路故障信息的傳播區(qū)域:設(shè)定鏈路故障信息的正交方向傳播的寬度,鏈路故障信息的正交方向傳播的寬度表示為N ;故障路由器為發(fā)生鏈路故障的路由器,故障端口為發(fā)生鏈路故障的端口,則鏈路故障信息的傳播區(qū)域?yàn)楣收下酚善鞯墓收隙丝谒诹谢蛐猩系乃新酚善骱凸收下酚善飨噜彽腘列或行上的所有路由器,如圖3所示。
[0023]—個(gè)孤立的鏈路故障的傳播區(qū)域,在端口方向的長(zhǎng)度為網(wǎng)絡(luò)大小,在正交方向上根據(jù)需求而定,將傳播區(qū)域的邊界稱為傳播邊界。
[0024]對(duì)于每個(gè)鏈路故障,其鏈路故障信息的傳播分為端口方向傳播和正交方向傳播。端口方向傳播將鏈路故障信息傳遞給故障鏈路所在列或行上的所有路由器;正交方向傳播則是將鏈路故障信息傳播給在故障鏈路相鄰的列或行上的路由器。
[0025]S2.擴(kuò)散新增鏈路故障信息:獲取新增鏈路故障信息,將該新增鏈路故障