專利名稱:一種基于通道依賴關(guān)系圖的片上互聯(lián)網(wǎng)絡(luò)容錯(cuò)路由方法
技術(shù)領(lǐng)域:
本發(fā)明涉及可靠性計(jì)算技術(shù)領(lǐng)域,特別涉及一種基于通道依賴關(guān)系圖的片上互聯(lián)網(wǎng)絡(luò)容錯(cuò)路由方法。
背景技術(shù):
隨著芯片集成度的不斷提高以及日益增長(zhǎng)的對(duì)復(fù)雜計(jì)算的需求,計(jì)算系統(tǒng)逐漸由單核向多核(multi-core)發(fā)展。為了解決多核通訊的復(fù)雜問(wèn)題,片上網(wǎng)絡(luò)(Network-on-Chip簡(jiǎn)稱NoC)提供了一種高性能,高擴(kuò)展性以及高靠性的解決方法,成為多核系統(tǒng)的核心技術(shù)。先進(jìn)半導(dǎo)體制造工藝的采用以及單芯片上集成晶體管數(shù)目的激增,使得系統(tǒng)出現(xiàn) 故障的幾率大大增加,因此系統(tǒng)的可靠性變得越來(lái)越重要,即故障存在的情況下,如何保證系統(tǒng)的正常運(yùn)行及通信成為片上網(wǎng)絡(luò)系統(tǒng)的研究熱點(diǎn)。晶體管缺陷是造成系統(tǒng)故障的主要原因,其成因主要有兩種一、隨機(jī)摻雜波動(dòng)、短波長(zhǎng)光刻技術(shù)等制造工藝導(dǎo)致的永久性缺陷;二、高能帶電粒子轟擊造成單粒子翻轉(zhuǎn),電壓和溫度的變化,串?dāng)_以及電磁干擾導(dǎo)致的瞬態(tài)故障。傳統(tǒng)的出廠測(cè)試無(wú)法有效檢測(cè)組件由于老化造成的缺陷和系統(tǒng)運(yùn)行中出現(xiàn)的瞬態(tài)故障。片上網(wǎng)絡(luò)系統(tǒng)的可靠性可以通過(guò)采用硬件冗余設(shè)計(jì),再次傳輸策略以及容錯(cuò)路由方法在多核通信傳輸時(shí),避免故障區(qū)域的影響,從而避免通信傳輸過(guò)程中信息的無(wú)法到達(dá)和內(nèi)容的遺失。其中容錯(cuò)路由算法由于硬件開銷少及可重配置的特性獲受到廣泛的關(guān)注和研究。片上網(wǎng)絡(luò)容錯(cuò)包括兩個(gè)步驟故障檢測(cè)和容錯(cuò)(故障遏制)。專用的內(nèi)建測(cè)試機(jī)制通過(guò)向臨近節(jié)點(diǎn)發(fā)送測(cè)試信號(hào),經(jīng)過(guò)一定的時(shí)間檢測(cè)臨近的節(jié)點(diǎn)是否接收到檢測(cè)信號(hào)來(lái)標(biāo)定是否存在故障。片上網(wǎng)絡(luò)的故障類型包括路由器故障和鏈路故障。故障的存在給多核片上網(wǎng)絡(luò)通信系統(tǒng)帶來(lái)很多挑戰(zhàn)一是,如何提高系統(tǒng)資源利用率。已有的故障診斷方法將路由器標(biāo)定為兩種狀態(tài)——完全正常工作狀態(tài)和完全失效狀態(tài)。該診斷方法將部分故障的路由器標(biāo)定為完全失效狀態(tài),無(wú)法充分利用部分故障路由器中沒有故障的組件;二是,如何避免死鎖。故障分布的不可預(yù)知導(dǎo)致片上網(wǎng)絡(luò)系統(tǒng)拓?fù)浣Y(jié)構(gòu)變得不規(guī)則不對(duì)稱,使得通信環(huán)路難以檢測(cè),容易產(chǎn)生死鎖現(xiàn)象;三是,如何均衡通道負(fù)載。已有的容錯(cuò)路由方法常常忽略通道負(fù)載平衡,將會(huì)造成片上互聯(lián)系統(tǒng)提前飽和,甚至致使過(guò)負(fù)載部分局域溫度過(guò)熱形成熱點(diǎn),導(dǎo)致可靠性問(wèn)題的進(jìn)一步惡化。標(biāo)準(zhǔn)虛擬通道(virtual-channel,簡(jiǎn)稱VC)路由器微體系結(jié)構(gòu)每個(gè)輸入端口均連接一定數(shù)目的緩存器(buffer),對(duì)應(yīng)的物理鏈路由不同緩存器通過(guò)時(shí)分復(fù)用完成各自的數(shù)據(jù)通訊,在功能上各通道相互獨(dú)立,我們稱為虛擬通道。VC的數(shù)目和存儲(chǔ)深度由實(shí)際情況決定。buffer用來(lái)存儲(chǔ)傳輸?shù)臄?shù)據(jù);路由計(jì)算單元確定數(shù)據(jù)傳輸?shù)南掠喂?jié)點(diǎn);VC分配單元決定數(shù)據(jù)傳輸?shù)南掠喂?jié)點(diǎn)對(duì)應(yīng)的虛擬通道。最后,開關(guān)分配器(switch allocator)決定數(shù)據(jù)包通過(guò)crossbar的順序。已有的故障診斷方法將路由器標(biāo)定為兩種狀態(tài)——完全正常工作和完全失效。將部分故障的路由器標(biāo)定為完全失效狀態(tài),無(wú)法充分利用部分故障路由器中無(wú)故障組件,致使資源無(wú)法充分利用。假設(shè)第一個(gè)輸入端口對(duì)應(yīng)的第二個(gè)虛擬通道發(fā)生故障,同時(shí)crossbar中由東向北的鏈路發(fā)生故障,路由器其他部分仍可正常工作。簡(jiǎn)單標(biāo)定該路由器完全失效,無(wú)法充分發(fā)揮部分故障路由器中未故障組件的作用,會(huì)造成系統(tǒng)資源的浪費(fèi)。
發(fā)明內(nèi)容
為了克服上述現(xiàn)有技術(shù)的缺陷,本發(fā)明的目的在于提供一種基于通道依賴關(guān)系圖的片上互聯(lián)網(wǎng)絡(luò)容錯(cuò)路由方法,該容錯(cuò)方法不需要增加額外的硬件開銷,能夠充分利用無(wú)故障的組件,提高系統(tǒng)資源的利用率,并有效解決NoC死鎖問(wèn)題,分析各通道帶寬使用及數(shù)據(jù)流的傳輸需求,通過(guò)靜態(tài)的分配資源達(dá)到通道負(fù)載均衡分配,最終實(shí)現(xiàn)高帶寬,低延時(shí)的傳輸。為了達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的 一種基于通道依賴關(guān)系圖的片上互聯(lián)網(wǎng)絡(luò)容錯(cuò)路由方法,包括以下步驟步驟一、首先對(duì)應(yīng)用程序模塊的通信特性進(jìn)行分析,分析應(yīng)用程序模塊是否存在通信要求,根據(jù)應(yīng)用程序模塊之間是否存在通信要求生成二分圖,二分圖中的應(yīng)用程序模塊分別列于源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)兩側(cè),實(shí)線表示對(duì)應(yīng)的應(yīng)用程序模塊間有通信需求;并生成相應(yīng)的應(yīng)用程序模塊通信關(guān)系矩陣application traffic matrix,簡(jiǎn)稱ATM, ATM由對(duì)應(yīng)的通信關(guān)系二分圖生成,ATM中元素I表示橫縱坐標(biāo)對(duì)應(yīng)的兩應(yīng)用程序模塊之間存在通信需求,元素0表示應(yīng)用程序模塊之間不存在通信需求;步驟二、將無(wú)故障的片上互聯(lián)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成無(wú)故障情況下的通道依賴關(guān)系有向圖channel dependency directed graph,簡(jiǎn)稱⑶G ;考慮故障模型及故障分布情況,通過(guò)粗、細(xì)粒度故障檢測(cè),根據(jù)不同粒度分析模式去除發(fā)生故障的鏈路,生成故障存在情況下的通道依賴關(guān)系有向圖 faulty mesh channel dependency directed graph,簡(jiǎn)稱 FCDG ;將F⑶G拓?fù)鋱D中構(gòu)成通道環(huán)路的路徑去除,生成對(duì)應(yīng)的無(wú)環(huán)通道依賴關(guān)系有向圖acyclicfault channel dependency directed graph,簡(jiǎn)稱 AFCDG ;根據(jù) AFCDG 生成片上互聯(lián)網(wǎng)絡(luò)對(duì)應(yīng)的數(shù)據(jù)流連通性矩陣flow consistency matrix,簡(jiǎn)稱FCM, FCM包含無(wú)環(huán)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)所有的連接信息,與特定的應(yīng)用程序的通信要求無(wú)關(guān);步驟三、對(duì)ATM和FCM進(jìn)行矩陣分析,選擇可連通的ATODG :首先選擇單VC情況下尋找滿足通信要求的FCM,即對(duì)于ATM矩陣中任意非零元素凡,」,當(dāng)FCM矩陣對(duì)應(yīng)元素亦非零時(shí),此時(shí)FCM矩陣對(duì)應(yīng)的單VC ATODG滿足通信要求,基于單VC的ATODG容錯(cuò)路由方法無(wú)法滿足應(yīng)用通信要求,需要采用多個(gè)VC并對(duì)順序進(jìn)行設(shè)置,每個(gè)VC組合采用轉(zhuǎn)向模型,2VC情況下對(duì)于ATM矩陣中任意非零元素Ti, j, FCM矩陣組合滿足FCM°中< == I,F(xiàn)CM1由aln ] == I,F(xiàn)CM0為VCO對(duì)應(yīng)的AFCDG,F(xiàn)CM1為VCl對(duì)應(yīng)的AFCDG,VCO和VCl采用轉(zhuǎn)向模型可以進(jìn)行選擇,數(shù)據(jù)傳輸可以經(jīng)由中間節(jié)點(diǎn)n從源節(jié)點(diǎn)i傳輸?shù)侥繕?biāo)節(jié)點(diǎn)n,滿足通信要求,VC > 2解決方案相同;步驟四、通過(guò)比較通道利用率和最小、最大通道負(fù)載,獲得最佳的負(fù)載均衡路線,具體為I、對(duì)于數(shù)據(jù)流i,它的源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)分別為Si和01,在ATODG圖上增加虛擬頂點(diǎn)Si和Di,將虛擬頂點(diǎn)通過(guò)增加路徑與ATODG圖連接起來(lái),即增加Si指向(Si,X)的路徑,和(X,Di)指向Di的路徑,這里(Si,X)為ATODG中所有由節(jié)點(diǎn)Si指向節(jié)點(diǎn)x的物理鏈路,(x,Di)為ATODG中所有由節(jié)點(diǎn)X指向節(jié)點(diǎn)Di的物理鏈路;2、每個(gè)鏈路具有初始權(quán)重值W = 1,當(dāng)有數(shù)據(jù)流i流過(guò)該鏈路時(shí),該鏈路的權(quán)重將進(jìn)行更新,W'為更新后權(quán)重,具體采用的權(quán)重計(jì)算公式如下
權(quán)利要求
1.一種基于通道依賴關(guān)系圖的片上互聯(lián)網(wǎng)絡(luò)容錯(cuò)路由方法,其特征在于,包括以下步驟 步驟一、首先對(duì)應(yīng)用程序模塊的通信特性進(jìn)行分析,分析應(yīng)用程序模塊是否存在通信要求,根據(jù)應(yīng)用程序模塊之間是否存在通信要求生成二分圖,二分圖中的應(yīng)用程序模塊分別列于源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)兩側(cè),實(shí)線表示對(duì)應(yīng)的應(yīng)用程序模塊間有通信需求;并生成相應(yīng)的應(yīng)用程序模塊通信關(guān)系矩陣ATM,ATM由對(duì)應(yīng)的通信關(guān)系二分圖生成,ATM中元素I表示橫縱坐標(biāo)對(duì)應(yīng)的兩應(yīng)用程序模塊之間存在通信需求,元素O表示應(yīng)用程序模塊之間不存在通信需求; 步驟二、步驟二、將無(wú)故障的片上互聯(lián)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)生成無(wú)故障情況下的通道依賴關(guān)系有向圖CDG ;考慮故障模型及故障分布情況,通過(guò)粗、細(xì)粒度故障檢測(cè),根據(jù)不同粒度分析模式去除發(fā)生故障的鏈路,生成故障存在情況下的通道依賴關(guān)系有向圖F⑶G ;將F⑶G拓?fù)鋱D中構(gòu)成通道環(huán)路的路徑去除,生成對(duì)應(yīng)的無(wú)環(huán)通道依賴關(guān)系有向圖ATCDG ;根據(jù)ATODG生成片上互聯(lián)網(wǎng)絡(luò)對(duì)應(yīng)的數(shù)據(jù)流連通性矩陣FCM,F(xiàn)CM包含無(wú)環(huán)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)所有的連接信息,與特定的應(yīng)用程序的通信要求無(wú)關(guān); 步驟三、對(duì)ATM和FCM進(jìn)行矩陣分析,選擇可連通的ATODG :首先選擇單VC情況下尋找滿足通信要求的FCM,即對(duì)于ATM矩陣中任意非零元素Tm,當(dāng)FCM矩陣對(duì)應(yīng)元素亦非零時(shí),此時(shí)FCM矩陣對(duì)應(yīng)的單VC ATODG滿足通信要求,基于單VC的ATODG容錯(cuò)路由方法無(wú)法滿足應(yīng)用通信要求,需要采用多個(gè)VC并對(duì)順序進(jìn)行設(shè)置,每個(gè)VC組合采用轉(zhuǎn)向模型,2VC情況下對(duì)于ATM矩陣中任意非零元素Ti,」,F(xiàn)CM矩陣組合滿足FCM°中== I,F(xiàn)CM1中al == I,F(xiàn)CM0為VCO對(duì)應(yīng)的ATODG,F(xiàn)CM1為VCl對(duì)應(yīng)的ATODG,VCO和VCl采用轉(zhuǎn)向模型可以進(jìn)行選擇,數(shù)據(jù)傳輸可以經(jīng)由中間節(jié)點(diǎn)n從源節(jié)點(diǎn)i傳輸?shù)侥繕?biāo)節(jié)點(diǎn)n,滿足通信要求,VC > 2解決方案相同; 步驟四、通過(guò)比較通道利用率和最小、最大通道負(fù)載,獲得最佳的負(fù)載均衡路線,具體為1、對(duì)于數(shù)據(jù)流i,它的源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)分別為Si和Di,在AFCDG圖上增加虛擬頂點(diǎn)Si和Di,將虛擬頂點(diǎn)通過(guò)增加路徑與AFCDG圖連接起來(lái),即增WSi指向(SyX)的路徑,和(X,Di)指向Di的路徑,這里(Si, X)為ATODG中所有由節(jié)點(diǎn)Si指向節(jié)點(diǎn)X的物理鏈路,(x,Di)為AFCDG中所有由節(jié)點(diǎn)X指向節(jié)點(diǎn)Di的物理鏈路;2、每個(gè)鏈路具有初始權(quán)重值W = 1,當(dāng)有數(shù)據(jù)流i流過(guò)該鏈路時(shí),該鏈路的權(quán)重將進(jìn)行更新,r為更新后權(quán)重,具體采用的權(quán)重計(jì)算公式如下 ~y~d~ c>^>d- C OOC^d1 其中C表示鏈路的帶寬,Cli表示通過(guò)該鏈路的數(shù)據(jù)流i所占用的的帶寬;3、Dijktra的權(quán)重最短路徑算法為每條數(shù)據(jù)流選擇“最大可用帶寬”的路徑。數(shù)據(jù)流分配按照由高到低的帶寬需求依次進(jìn)行分配,最小權(quán)重路徑采用Dijktra算法計(jì)算獲得;4、確定該數(shù)據(jù)流的路徑之后將虛擬頂點(diǎn)Si和Di以及增加的路徑從AFCDG刪除,再用同樣的方法對(duì)其他數(shù)據(jù)流依次進(jìn)行分析,通過(guò)這種方式數(shù)據(jù)的傳輸總是選擇最高可用帶寬的路徑為主選項(xiàng)進(jìn)行傳輸,這樣數(shù)據(jù)傳輸路徑分配方法中不會(huì)發(fā)生局部路徑過(guò)負(fù)載,而其余路徑閑置或低負(fù)載的情況,使通道負(fù)載相對(duì)平衡。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,步驟二中FCDG拓?fù)鋱D生成過(guò)程根據(jù)拓?fù)浣Y(jié)構(gòu)的故障分布情況,在CDG拓?fù)鋱D中去除發(fā)生故障的鏈路及路徑即可得到FCDG圖,根據(jù)不同粒度的檢測(cè)模型生成粗粒度及細(xì)粒度的FCDG拓?fù)鋱D;對(duì)于粗粒度情況,部分故障的節(jié)點(diǎn)3路由器被標(biāo)定為完全失效狀態(tài)。CDG拓?fù)鋱D中,與節(jié)點(diǎn)3相關(guān)的鏈路和路徑都被去除,對(duì)于細(xì)粒度情況,無(wú)故障的虛擬通道緩存器和可用的crossbar鏈路依舊處于正常工作狀態(tài),CDG拓?fù)鋱D中,節(jié)點(diǎn)6到3的故障鏈路被去除,同時(shí)由于路由器3由北向東crossbar發(fā)生故障連接頂點(diǎn)(0,3)和(3,4)的路徑被去除,除此之外,其余部分正常工作,細(xì)粒度故障檢測(cè)模型下的F⑶G連接路徑比粗粒度模型下的F⑶G連接路徑要多,因此細(xì)粒度的故障檢測(cè)模型比粗粒度的檢測(cè)模型具有更多的路徑選擇,能更充分利用系統(tǒng)資源。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,步驟三中單VC情況下尋找滿足通信要求的FCM的方法為首先根據(jù)應(yīng)用程序的通信特性和故障分布情況分別生成相應(yīng)的應(yīng)用程序模塊通信關(guān)系矩陣ATM和20種轉(zhuǎn)向模型的ATODG以及數(shù)據(jù)流連通性矩陣FCMk(k =0...19),集合SETfqi最初包含所有的FCM,對(duì)于ATM中任意非零元素Ti,」,遍歷SETrai集合中FCMk,當(dāng)對(duì)應(yīng)元素a\0零時(shí),F(xiàn)CMk不滿足要求,將其從SETfqi集合中去除,之后重新分析ATM中下一個(gè)非零元素;ATM中所有非零元素均被分析后,集合SETfqi包含所有滿足通信要求的FCM,若集合為空,則單VC的ATODG無(wú)法滿足通信要求。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,采用多個(gè)VC并對(duì)順序進(jìn)行設(shè)置的方法如下a、將各VC通道分為不同的集合,集合間具有不同的優(yōu)先級(jí); b、每個(gè)VC集合采用不同的轉(zhuǎn)向模型,每個(gè)集合對(duì)應(yīng)生成單VC的AFCDG,保證集合中不存在180度轉(zhuǎn)向,集合內(nèi)不會(huì)有數(shù)據(jù)傳輸環(huán)路; C、當(dāng)數(shù)據(jù)傳輸需要轉(zhuǎn)換VC集合時(shí),只允許高優(yōu)先權(quán)的VC向低優(yōu)先權(quán)的VC進(jìn)行傳輸,不同的集合的AFCDG圖通過(guò)增加邊界進(jìn)行連通,連通時(shí),只允許高優(yōu)先權(quán)向低優(yōu)先權(quán)跳變的路徑; d、采用相同的轉(zhuǎn)向模型,同時(shí)具有相鄰優(yōu)先權(quán)的集合能夠使用0度轉(zhuǎn)向或轉(zhuǎn)向模型都允許的轉(zhuǎn)向,彼此傳輸數(shù)據(jù)。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,步驟四的具體方法為采用權(quán)重分析通道帶寬使用情況,對(duì)于數(shù)據(jù)流i,它的源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)分別為Si和Di圖上增加虛擬頂點(diǎn)Si和Di,將虛擬頂點(diǎn)通過(guò)增加路徑與ATODG圖連接起來(lái),即增加Si指向(SyX)的路徑,和(x,Di)指向Di的路徑,這里(Si, X)為AFCDG中所有由節(jié)點(diǎn)Si指向節(jié)點(diǎn)x的物理鏈路,(x,Di)為AFCDG中所有由節(jié)點(diǎn)X指向節(jié)點(diǎn)Di的物理鏈路,假設(shè)由0節(jié)點(diǎn)向目標(biāo)節(jié)點(diǎn)8傳輸數(shù)據(jù),如附圖
7 (e)所示,對(duì)于2VC的AFCDG圖增加虛擬源頂點(diǎn)0和虛擬目標(biāo)頂點(diǎn)8,增加虛擬頂點(diǎn)0指向ATODG圖中所有(0,3)和(0,1)的路徑,增加AFCDG中所有(7,8)和(5,8)指向虛擬頂點(diǎn)8的路徑,新增路徑用虛線表示;每個(gè)鏈路具有初始權(quán)重值W = 1,當(dāng)有數(shù)據(jù)流i流過(guò)該鏈路時(shí),該鏈路的權(quán)重將進(jìn)行更新,r為更新后權(quán)重,具體采用的權(quán)重計(jì)算公式如下
全文摘要
一種基于通道依賴關(guān)系圖的片上互聯(lián)網(wǎng)絡(luò)容錯(cuò)路由方法,首先,對(duì)應(yīng)用程序的通信特性進(jìn)行分析,建立應(yīng)用程序模塊的通信關(guān)系二分圖,生成通信關(guān)系矩陣ATM,同時(shí),生成無(wú)故障情況下的通道依賴關(guān)系有向圖CDG,通過(guò)粗、細(xì)粒度故障檢測(cè),生成故障情況下的通道依賴關(guān)系有向圖FCDG,應(yīng)用轉(zhuǎn)向模型最終生成對(duì)應(yīng)的無(wú)環(huán)通道依賴關(guān)系有向圖AFCDG及相應(yīng)的數(shù)據(jù)流通信矩陣FCM,其次對(duì)ATM和FCM進(jìn)行矩陣分析,選擇可連通的單VC或多VC的AFCDG并對(duì)VC順序進(jìn)行設(shè)置,最后通過(guò)比較獲得最佳的負(fù)載均衡路由方案,該方法通過(guò)粗,細(xì)粒度的故障檢測(cè)方法最大限度地利用可用資源,構(gòu)造基于單VC或多VC的帶權(quán)重?zé)o環(huán)通道依賴關(guān)系有向圖AFCDG實(shí)現(xiàn)避免死鎖及負(fù)載均衡的目的。
文檔編號(hào)H04L12/24GK102761475SQ20121008305
公開日2012年10月31日 申請(qǐng)日期2012年3月27日 優(yōu)先權(quán)日2012年3月27日
發(fā)明者任鵬舉, 劉卜, 孟慶欣, 楊挺, 王全響, 葛晨陽(yáng), 鄭南寧 申請(qǐng)人:西安交通大學(xué)