本發明涉及計算機領域,特別涉及一種容錯路由方法、裝置及片上網絡。
背景技術:
片上網絡(英文:network-on-chip;簡稱:noc)是指在芯片上集成大量的計算資源以及連接這些資源的片上通信網絡。noc包括計算和通信兩個子系統,計算子系統完成廣義的“計算”任務,包括多個計算資源,該計算資源包括處理模塊(英文:processelement;簡稱:pe),也稱核,該pe既可以是中央處理器(英文:centralprocessingunit;簡稱:cpu),也可以是各種專用功能的知識產權核(英文:intellectualpropertycore;簡稱:ip核)、存儲器陣列或可重構硬件等;通信子系統負責連接pe,實現計算資源之間的高速通信。通信節點(也即路由器)及其間的互連線所構成的網絡被稱為片上通信網絡(英文:on-chipnetwork;簡稱:ocn),通信子系統包括該ocn,ocn借鑒了分布式計算系統的通信方式,用路由和分組交換技術替代傳統的片上總線來完成通信任務。
網格(mesh)型noc是noc的一種,網格型noc是將noc的芯片的表面區域由多個橫縱交錯的互連線劃分為多個形狀、大小相同的網格,在互連線的每個交點處設置通信節點,該通信節點簡稱為節點。由于網格型noc有可測量性較高等優點,其應用較為廣泛。
目前提出針對noc上節點分區域(partition或者region)的概念,即把noc上的一部分節點組成一個小區域系統以獨立完成某一任務。相關技術中,將符合預設規律的節點劃分為一個區域,在網格型noc上,由于節點的數量較多,有些節點在生產或使用過程中可能會壞死,這些壞死節點稱為故障節點。在網格型noc上,通常將故障節點及其相關節點劃分為一個區域,例如,每個節點在出廠時均標記為正常(active)節點,認為其能夠正常執行其相應的功能;當一個正常節點檢測其連接到的故障(faulty)節點和非正常(deactivated)節點的個數大于或等于2,該節點將自身標記為非正常(deactivated)節點,其中,非 正常節點還可以包括不安全節點,當一個非正常節點檢測其連接到至少一個正常節點,該節點將自身標記為不安全(unsafe)節點;互相連接的非正常節點和故障節點組成的矩形區域稱為故障區域(faultyregion);環繞在故障區域外圍,且與故障區域鄰接的的正常節點組成故障環(faultring),其中,包括網格型noc的南(south)邊和/或西(west)邊的故障環也稱為故障鏈(faultchain)。
相關技術中,提出一種容錯路由算法,當一個故障環上的節點接收到待傳輸信息后,可以根據該節點的位置信息和目的節點的位置信息確定待傳輸信息的傳輸類型,然后根據該傳輸類型以及該節點和目的節點的相對位置確定傳輸路徑,根據確定的傳輸路徑,將待傳輸信息傳輸至下一節點。
但是,現有的容錯路由算法中,當故障環上的節點通過多種傳輸路徑均能將待傳輸信息傳輸至目的節點時,會按照預設的傳輸方式確定傳輸路徑來進行待傳輸信息的傳輸,容易出現傳輸路徑較長,傳輸時延較大的情況,影響信息的傳輸效率。
技術實現要素:
為了解決信息的傳輸效率較低的問題,本發明實施例提供了一種容錯路由方法、裝置及片上網絡。所述技術方案如下:
第一方面,提供了一種容錯路由方法,應用于片上互聯網絡noc的第一節點,所述方法包括:
接收待傳輸信息,所述待傳輸信息包括:目的節點的位置信息,所述位置信息用于指示在所述noc的芯片上的位置;
當所述第一節點不是所述目的節點,且為故障環上的節點時,判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸,所述雙向繞行傳輸包括沿順時針方向傳輸和沿逆時針方向傳輸;
當所述待傳輸信息能夠在所述故障環上雙向繞行傳輸時,在所述雙向繞行傳輸所形成的路徑中確定最短路徑;
基于所述最短路徑,將所述待傳輸信息傳輸至下一節點。
可選的,所述判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸,包括:
獲取所述故障環的位置信息;
根據所述故障環的位置信息,確定所述故障環的類型,所述故障環的類型用于指示所述故障環在所述芯片上所形成的形狀為封閉環形或非封閉環形;
根據所述故障環的類型,判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸。
可選的,所述故障環的位置信息包括:預設坐標系中兩個參考節點的位置信息,所述兩個參考節點是位于所述故障環的四個頂點上的節點中,在同一對角線上的兩個節點。
可選的,所述芯片上形成有m×n個網格,所述預設坐標系的坐標系原點為所述芯片的西南角的節點,在所述預設坐標系上,所述芯片的坐標范圍包括:x軸的坐標范圍為0~m-1,y軸的坐標范圍為0~n-1,m和n均為大于或等于2的整數,所述兩個參考節點為所述故障環的四個頂點上的節點中,位于東北角和西南角的兩個節點,其中,位于所述東北角的節點為第一參考節點,位于所述西南角的節點為第二參考節點;
所述根據所述故障環的位置信息,確定所述故障環的類型,包括:
當所述兩個參考節點的位置信息指示所述兩個參考節點在所述預設坐標系中的坐標位置在所述芯片的坐標范圍內時,確定所述故障環的類型為正常環;
當所述兩個參考節點的位置信息指示第一參考節點的x坐標為m時,確定所述故障環的類型為東型環;
當所述兩個參考節點的位置信息指示第一參考節點的y坐標為n時,確定所述故障環的類型為北型環;
當所述兩個參考節點的位置信息指示第二參考節點的x坐標為-1時,確定所述故障環的類型為西型環;
當所述兩個參考節點的位置信息指示第二參考節點的y坐標為-1時,確定所述故障環的類型為南型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為東型環,又為北型環,則確定所述故障環為東北型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為西型環,又為北型環,則確定所述故障環為西北型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為南型環,又為西型環,則確定所述故障環為西南型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為東型環,又為南型環,則確定所述故障環為東南型環。
本發明實施例可以識別故障環的具體類型,提高識別的準確性,提高識別粒度。
可選的,所述故障環的類型包括:正常環,所述正常環上的任一節點均為位于所述芯片上的實體節點,所述實體節點為所述芯片上實際存在的節點,
所述根據所述故障環的類型,判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸,包括:
檢測所述故障環的類型是否為正常環;
當所述故障環的類型不為正常環時,確定所述待傳輸信息不能在所述故障環上雙向繞行傳輸;
當所述故障環的類型為正常環時,根據所述待傳輸信息的傳輸類型和所述故障環的位置信息,確定所述待傳輸信息在所述故障環上的備選傳輸路徑,所述待傳輸信息的傳輸類型用于反映所述第一節點與所述目的節點的相對位置關系;
統計所述待傳輸信息的備選傳輸路徑的個數;
當所述備選傳輸路徑的個數為2,確定所述待傳輸信息能夠在所述故障環上雙向繞行傳輸;
當所述備選傳輸路徑的個數為0,確定所述待傳輸信息不能在所述故障環上雙向繞行傳輸。
可選的,所述兩個參考節點包括一個實體參考節點和一個虛擬參考節點,在所述接收待傳輸信息之前,所述方法還包括:
當所述第一節點位于所述芯片的邊界上,且為故障環上的非邊角節點,確定所述故障環上與所述第一節點相鄰的虛擬節點的位置信息;
根據所述虛擬節點的位置信息和預先接收的實體參考節點的位置信息,判斷所述虛擬節點是否為虛擬參考節點;
當所述虛擬節點為虛擬參考節點時,將所述虛擬節點的位置信息發送至所述故障環上的每個節點上;
當所述虛擬節點不為虛擬參考節點時,將所述虛擬節點的位置信息發送至所述實體參考節點,以便于所述實體參考節點在收到兩個虛擬節點的位置信息 時,確定虛擬參考節點的位置信息。
可選的,所述兩個參考節點包括一個實體參考節點和一個虛擬參考節點,在所述接收待傳輸信息之前,所述方法還包括:
當所述第一節點為實體參考節點,且接收到兩個虛擬節點的位置信息時,根據所述兩個虛擬節點的位置信息及所述實體參考節點的位置信息,確定虛擬參考節點的位置信息,該兩個虛擬節點的位置信息分別由故障環上的兩個位于所述芯片的邊界上的非邊角節點確定并發送;
將所述虛擬節點的位置信息發送至所述故障環上的每個節點上。
第二方面,提供一種容錯路由裝置,應用于片上互聯網絡noc的第一節點,所述裝置包括:
接收模塊,用于接收待傳輸信息,所述待傳輸信息包括:目的節點的位置信息,所述位置信息用于指示在所述noc的芯片上的位置;
判斷模塊,用于當所述第一節點不是所述目的節點,且為故障環上的節點時,判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸,所述雙向繞行傳輸包括沿順時針方向傳輸和沿逆時針方向傳輸;
確定模塊,用于當所述待傳輸信息能夠在所述故障環上雙向繞行傳輸時,在所述雙向繞行傳輸所形成的路徑中確定最短路徑;
傳輸模塊,用于基于所述最短路徑,將所述待傳輸信息傳輸至下一節點。
可選的,所述判斷模塊包括:
獲取子模塊,用于獲取所述故障環的位置信息;
確定子模塊,用于根據所述故障環的位置信息,確定所述故障環的類型,所述故障環的類型用于指示所述故障環在所述芯片上所形成的形狀為封閉環形或非封閉環形;
判斷子模塊,用于根據所述故障環的類型,判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸。
可選的,所述故障環的位置信息包括:預設坐標系中兩個參考節點的位置信息,所述兩個參考節點是位于所述故障環的四個頂點上的節點中,在同一對角線上的兩個節點。
可選的,所述芯片上形成有m×n個網格,所述預設坐標系的坐標系原點為所述芯片的西南角的節點,在所述預設坐標系上,所述芯片的坐標范圍包 括:x軸的坐標范圍為0~m-1,y軸的坐標范圍為0~n-1,m和n均為大于或等于2的整數,所述兩個參考節點為所述故障環的四個頂點上的節點中,位于東北角和西南角的兩個節點,其中,位于所述東北角的節點為第一參考節點,位于所述西南角的節點為第二參考節點;
所述確定子模塊,用于:
當所述兩個參考節點的位置信息指示所述兩個參考節點在所述預設坐標系中的坐標位置在所述芯片的坐標范圍內時,確定所述故障環的類型為正常環;
當所述兩個參考節點的位置信息指示第一參考節點的x坐標為m時,確定所述故障環的類型為東型環;
當所述兩個參考節點的位置信息指示第一參考節點的y坐標為n時,確定所述故障環的類型為北型環;
當所述兩個參考節點的位置信息指示第二參考節點的x坐標為-1時,確定所述故障環的類型為西型環;
當所述兩個參考節點的位置信息指示第二參考節點的y坐標為-1時,確定所述故障環的類型為南型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為東型環,又為北型環,則確定所述故障環為東北型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為西型環,又為北型環,則確定所述故障環為西北型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為南型環,又為西型環,則確定所述故障環為西南型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為東型環,又為南型環,則確定所述故障環為東南型環。
可選的,所述故障環的類型包括:正常環,所述正常環上的任一節點均為位于所述芯片上的實體節點,所述實體節點為所述芯片上實際存在的節點,
所述判斷子模塊,用于:
檢測所述故障環的類型是否為正常環;
當所述故障環的類型不為正常環時,確定所述待傳輸信息不能在所述故障環上雙向繞行傳輸;
當所述故障環的類型為正常環時,根據所述待傳輸信息的傳輸類型和所述 故障環的位置信息,確定所述待傳輸信息在所述故障環上的備選傳輸路徑,所述待傳輸信息的傳輸類型用于反映所述第一節點與所述目的節點的相對位置關系;
統計所述待傳輸信息的備選傳輸路徑的個數;
當所述備選傳輸路徑的個數為2,確定所述待傳輸信息能夠在所述故障環上雙向繞行傳輸;
當所述備選傳輸路徑的個數為0,確定所述待傳輸信息不能在所述故障環上雙向繞行傳輸。
可選的,所述兩個參考節點包括一個實體參考節點和一個虛擬參考節點,
所述確定模塊,還用于當所述第一節點位于所述芯片的邊界上,且為故障環上的非邊角節點,確定所述故障環上與所述第一節點相鄰的虛擬節點的位置信息;
所述判斷模塊,還用于根據所述虛擬節點的位置信息和預先接收的實體參考節點的位置信息,判斷所述虛擬節點是否為虛擬參考節點;
所述傳輸模塊,還用于當所述虛擬節點為虛擬參考節點時,將所述虛擬節點的位置信息發送至所述故障環上的每個節點上;
所述傳輸模塊,還用于當所述虛擬節點不為虛擬參考節點時,將所述虛擬節點的位置信息發送至所述實體參考節點,以便于所述實體參考節點在收到兩個虛擬節點的位置信息時,確定虛擬參考節點的位置信息。
可選的,所述兩個參考節點包括一個實體參考節點和一個虛擬參考節點,
搜書確定模塊,還用于當所述第一節點為實體參考節點,且接收到兩個虛擬節點的位置信息時,根據所述兩個虛擬節點的位置信息及所述實體參考節點的位置信息,確定虛擬參考節點的位置信息,該兩個虛擬節點的位置信息分別由故障環上的兩個位于所述芯片的邊界上的非邊角節點確定并發送;
所述傳輸模塊,還用于將所述虛擬節點的位置信息發送至所述故障環上的每個節點上。
第三方面,提供一種片上網絡,包括第一節點,所述第一節點包括上述第一方面提供的任一所述的容錯路由裝置。
可選的,所述片上網絡noc還包括:第二節點,所述第二節點位于所述芯片的邊界上,且為故障環上的非邊角節點,所述第二節點用于:
確定所述故障環上與所述第二節點相鄰的虛擬節點的位置信息;
根據所述虛擬節點的位置信息,判斷所述虛擬節點是否為虛擬參考節點;
根據所述虛擬節點的位置信息和預先接收的實體參考節點的位置信息,判斷所述虛擬節點是否為虛擬參考節點;
當所述虛擬節點為虛擬參考節點時,將所述虛擬節點的位置信息發送至所述故障環上的每個節點上;
當所述虛擬節點不為虛擬參考節點時,將所述虛擬節點的位置信息發送至所述實體參考節點,以便于所述實體參考節點在收到兩個虛擬節點的位置信息時,確定虛擬參考節點的位置信息。
可選的,所述片上網絡noc還包括:實體參考節點,所述實體參考節點用于:
當所述實體參考節點接收到兩個虛擬節點的位置信息時,根據所述兩個虛擬節點的位置信息及所述實體參考節點的位置信息,確定虛擬參考節點的位置信息,該兩個虛擬節點的位置信息分別由故障環上的兩個位于所述芯片的邊界上的非邊角節點確定并發送;
將所述虛擬節點的位置信息發送至所述故障環上的每個節點上。
需要說明的是,所述第一節點和所述第二節點可以是同一節點,也可以是不同節點,所述第一節點和所述實體參考節點可以是同一節點,也可以是不同節點。且本發明中,第一節點是實體節點。
本發明實施例提供的容錯路由方法、裝置及片上網絡,由于在待傳輸信息能夠在故障環上雙向繞行傳輸時,在雙向繞行傳輸所形成的路徑中確定最短路徑,并基于最短路徑,將待傳輸信息傳輸至下一節點,因此,采用最短路徑進行待傳輸信息的傳輸,避免了傳輸路徑較長,傳輸時延較大的情況,提高了信息的傳輸效率。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明實施例提供的一種容錯路由方法所涉及的一種網格型noc的結構示意圖;
圖2是本發明實施例提供的節點狀態標記示意圖;
圖3是本發明實施例提供的一種容錯路由方法的流程圖;
圖4是本發明實施例提供的另一種容錯路由方法的流程圖;
圖5是本發明實施例提供的一種容錯路由方法所涉及的另一種網格型noc的結構示意圖;
圖6是本發明實施例提供的一種判斷待傳輸信息是否能夠在故障環上雙向繞行傳輸的方法流程圖;
圖7是本發明實施例提供的一種各種類型的故障環在芯片上的位置示意圖;
圖8是本發明實施例提供的一種根據故障環的類型,判斷待傳輸信息是否能夠在故障環上雙向繞行傳輸的方法流程圖;
圖9是本發明實施例提供的一種待傳輸信息在故障環上的傳輸路徑示意圖;
圖10是本發明實施例提供的一種傳輸類型示意圖;
圖11是現有技術提供的一種待傳輸信息的傳輸路徑示意圖;
圖12是本發明實施例提供的一種待傳輸信息的傳輸路徑示意圖;
圖13是本發明實施例提供的一種容錯路由裝置的結構示意圖;
圖14是本發明實施例提供的一種判斷模塊的結構示意圖;
圖15是本發明實施例提供的另一種容錯路由裝置的結構示意圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
請參考圖1,其示出了本發明實施例提供的容錯路由方法所涉及的一種網格型noc的結構示意圖。如圖1所示,在該網格型noc上,noc的芯片的表面區域由多個橫縱交錯的互連線劃分為多個形狀、大小相同的網格,通常為正方形網格,在互連線的每個交點處設置通信節點,簡稱節點,圖1以該網格型noc被劃分為10*10個正方形網格為例進行示例性說明。以圓圈表示節點。需要說明的是,容錯(fault-tolerance)指的是容忍故障,在故障一旦發生時能夠自動檢 測出來并使系統能夠自動恢復正常運行。當出現某些指定的硬件故障或軟件錯誤時,系統仍能執行規定的一組程序,或者說程序不會因系統中的故障而中止或被修改,并且執行結果也不包含系統中故障所引起的差錯。路由算法:又名選路算法,可以根據多個特性來加以區分,該路由算法的目的是找到一條從源節點(也稱源路由器)到目的節點(也稱目的路由器)的最佳路徑(即具有最低功耗的路徑)。本發明實施例提供的容錯路由算法即是一種容忍故障且能夠尋找源節點到目的節點的最佳路徑的算法,應用于noc上。
如圖1所示,網格型noc上的節點包括正常節點、非正常節點和故障節點,非正常節點又包括不安全節點。其中,正常節點為能夠正常執行其功能的節點;故障節點為不能執行其功能的節點;非正常節點為至少能夠執行其部分功能的節點。如圖2所示,通常每個節點在出廠時均標記為正常節點,認為其能夠正常執行其相應的功能;當一個正常節點檢測其連接到的故障節點和非正常節點的個數大于或等于2,該節點將自身標記為非正常節點,如圖1中坐標位置為(0,6)的節點;當一個非正常節點檢測其連接到至少一個正常節點,該節點將自身標記為不安全節點,如圖1中坐標位置為(7,0)的節點;互相連接的非正常節點和故障節點組成的矩形區域稱為故障區域,如圖1中的區域01中的坐標位置分別為(8,9)、(8,8)、(9,8)、(9,9)的節點形成的區域;在本發明實施例中,不區分故障環和故障鏈,將環繞在故障區域外圍,且與故障區域鄰接的正常節點組成的環(封閉環形)或鏈(非封閉環形)均稱為故障環,如圖1中的區域02中的坐標位置分別為(7,9)、(7,8)、(7,7)、(8,7)、(9,7)的正常節點形成一個故障環。
通常的,節點對自身的標記是不可逆的,例如,當一個正常節點將自身標記為非正常節點后,便不能在將自身重置回正常節點,除非對該節點進行了維修或替換。
如圖3所示,本發明實施例提供一種容錯路由方法,應用于noc的第一節點,該noc可以是圖1所示的網格型noc,該第一節點可以為noc上任一節點, 該方法包括:
步驟301、接收待傳輸信息,該待傳輸信息包括:目的節點的位置信息,該位置信息用于指示在noc的芯片上的位置。
步驟302、當第一節點不是目的節點,且為故障環上的節點時,判斷待傳輸信息是否能夠在故障環上雙向繞行傳輸,雙向繞行傳輸包括沿順時針方向傳輸和沿逆時針方向傳輸。
步驟303、當待傳輸信息能夠在故障環上雙向繞行傳輸時,在雙向繞行傳輸所形成的路徑中確定最短路徑;
步驟304、基于最短路徑,將待傳輸信息傳輸至下一節點。
綜上所述,本發明實施例提供的容錯路由方法,由于在待傳輸信息能夠在故障環上雙向繞行傳輸時,在雙向繞行傳輸所形成的路徑中確定最短路徑,并基于最短路徑,將待傳輸信息傳輸至下一節點,因此,采用最短路徑進行待傳輸信息的傳輸,避免了傳輸路徑較長,傳輸時延較大的情況,提高了信息的傳輸效率。
如圖4所示,本發明實施例提供一種容錯路由方法,應用于noc的第一節點,假設該noc的芯片上形成有m×n個網格,基于該noc的芯片建立預設坐標系,該預設坐標系的坐標系原點可以為芯片的西南角(即左下角)的節點,芯片在預設坐標系的坐標范圍包括:x軸的坐標范圍為0~m-1,y軸的坐標范圍為0~n-1,m和n均為大于或等于2的整數。實際應用中,坐標系原點可以為預設坐標系的其他節點,如東北角的節點,本發明實施例只是示意性說明。例如,當m=n=10時,該noc可以是圖1所示的網格型noc,該第一節點可以為noc上任一節點,示例的,本發明實施例提供的容錯路由方法包括:
步驟401、接收待傳輸信息,該待傳輸信息包括:目的節點的位置信息。執行步驟402。
在本發明實施例中,位置信息用于指示在noc的芯片上的位置,通常為在 預設坐標系中的坐標位置,也即是,節點的位置信息指的是節點在noc的芯片上的位置,故障環的位置信息指的是故障環在noc的芯片上的位置。本發明實施例中假設待傳輸信息均為noc內部進行傳輸的信息,不是與其他noc進行傳輸的信息。
需要說明的是,待傳輸信息可以包括目的節點的位置信息,還可以包括源節點的位置信息。其中,源節點為發出該待傳輸信息的初始節點,目的節點是該待傳輸信息所傳輸的目的地。待傳輸信息中的源節點的位置信息可以方便目的節點來知曉待傳輸信息的來源。
步驟402、判斷第一節點是否為目的節點。當第一節點為目的節點時,執行步驟403,當第一節點不為目的節點時,執行步驟404。
noc上的每個節點都預先配置有自身在芯片上的位置信息,用于標明其具體位置,第一節點可以將第一節點在芯片上的位置信息與目的節點進行比較,若兩者相同,說明第一節點是目的節點,若兩者不同,說明第一節點不是目的節點。例如,以圖1所示的noc為例,假設第一節點在芯片上的位置信息指示第一節點的坐標位置為(5,7),即第一節點為圖1中的節點p01,目的節點在芯片上的位置信息指示目的節點的坐標位置為(9,5),即目的節點為圖1中的p02。由于坐標位置(5,7)和(9,5)不同,則第一節點不為目的節點。
步驟403、結束待傳輸信息的傳輸。
當第一節點為目的節點時,則說明待傳輸信息到達了傳輸的目的地,第一節點可以根據待傳輸信息進行相應的操作。例如,待傳輸信息為數據請求信息,則第一節點根據該數據請求信息生成數據請求響應信息,發送回源節點,該數據響應信息包括該數據請求信息所請求的數據。
步驟404、判斷第一節點是否為故障環上的節點,當第一節點為故障環上的節點時,執行步驟405,當第一節點不為故障環上的節點時,執行步驟406。
實際應用中,noc上的每個節點會實時或周期性檢測其相鄰節點的狀態(通常是通過與相鄰節點進行信息通信來檢測),當某一節點檢測到位于其正東 (east)或正西(west)的相鄰節點為故障節點或者非正常節點時,就將指示該相鄰節點的狀態(即故障、不安全或非正常)的狀態信息發送至位于該某一節點的正南(south)和正北(north)的相鄰節點;當某一節點檢測到位于其正南和正北的相鄰節點均滿足邊角條件時,就將指示該相鄰節點的狀態的狀態信息發送位于該某一節點的正東或正西的相鄰節點,該邊角條件為:節點為故障節點、不安全節點和非正常節點中的任一種。這樣一來,noc上的每個節點都會接收到從自己周圍的相鄰節點發送的狀態信息。假設當前節點(也即第一節點)為節點x,則具體的偽代碼如下述所示:
procedureform-ring/*currentnodeisx*/
if(exorwxisfaulty,unsafe,ordeactivated)
sendstatusinformationtosxandnx;
if(sxandnxisfaulty,unsafe,ordeactivated)
sendstatusinformationtoexorwx;
receivefromallactiveneighborstheirstatusinformation;
在本發明實施例中,每個節點根據接收到的狀態信息可以確定自身是否為故障環上的邊角上的節點,當該節點為故障環邊角上的節點時,判斷自身是否為參考(reference)節點,當該節點為參考節點時,向該參考節點所在故障環上所有的節點發送參考節點的位置信息,當任一節點接收到參考節點發送的位置信息時,可以確定該任一節點為故障環上的節點。
參考節點用于標識故障環,當一個位于邊角的節點確定自身為參考節點時,會向其所在的故障環上的所有其他節點發送參考節點的位置信息,以便于該故障環上的所有節點都記錄有該故障環上的參考節點的位置信息,相關技術中,通常將位于故障環東北角的節點確定為參考節點。當一個節點接收到參考節點發送的位置信息,可以確定自身是一個以該參考節點所在點為東北角的故障環上的一個節點,所以相關技術中,參考節點主要是用于使故障環上的節點確定自身是否位于故障環上。
本發明實施例中,參考節點可以有兩個,該兩個參考節點是位于故障環的四個頂點上的節點中,在同一對角線上的兩個節點。例如,該兩個參考節點可以為位于芯片東北角的節點和位于芯片西南角的節點,或者該兩個參考節點可 以為位于芯片東南角的節點和位于芯片西北角的節點。在本發明實施例中,參考節點不僅可以用于使故障環上的節點確定自身是否位于故障環上,還可以標識故障環在預設坐標系中的位置,即指示故障環的位置信息。通常的,網格型noc的節點是將noc的芯片的表面區域由多個橫縱交錯的互連線劃分為多個形狀、大小相同的網格,在互連線的每個交點處設置的節點;在本發明實施例中,在設置了預設坐標系后,節點可以分為實體節點和虛擬節點,如圖5所示,基于該noc的芯片建立預設坐標系,該預設坐標系的坐標系原點(0,0)可以為芯片的西南角(即左下角)的節點,該坐標系的x軸與芯片的行方向平行,y軸與芯片的列方向平行,實體節點是將芯片的表面區域由多個橫縱交錯的互連線劃分為多個形狀、大小相同的網格后,位于芯片上的實際存在的節點,本發明實施例中能夠進行信息收發的節點全部是實體節點,如圖5中芯片上處于該預設坐標系中第一象限中的節點,以及x軸和y軸正方向上的節點,也即是,在圖5所示的坐標系中,實體節點的x坐標和y坐標均為非負數,即圖5中,處于區域03中的節點;虛擬節點是將芯片的表面區域由多個橫縱交錯的互連線劃分為多個形狀、大小相同的網格后,位于坐標系中,但在芯片外的,互連線的交點處的點,是虛擬的節點,是實際不存在的節點,也即假想的節點,不能進行信息的收發,如圖5中,處于區域03之外的區域中圓形虛線所標識的節點,也即是,在圖5所示的坐標系中,虛擬節點的x坐標和y坐標至少存在一個為負數。
步驟405、判斷待傳輸信息是否能夠在故障環上雙向繞行傳輸,其中,雙向繞行傳輸包括沿順時針方向傳輸和沿逆時針方向傳輸。當待傳輸信息能夠在故障環上雙向繞行傳輸時,執行步驟407,當待傳輸信息不能在故障環上雙向繞行傳輸時,執行步驟406。
如圖6所示,在本發明實施例中,步驟405中判斷待傳輸信息是否能夠在故障環上雙向繞行傳輸的過程,可以包括:
步驟4051、獲取故障環的位置信息。
在本發明實施例中,故障環的位置信息可以包括:預設坐標系中兩個參考節點的位置信息,該兩個參考節點是位于故障環的四個頂點上的節點中,在同一對角線上的兩個節點。在本發明實施例中,假設兩個參考節點為故障環的四個頂點上的節點中,位于東北角和西南角的兩個節點,其中,位于東北角的節點為第一參考節點,位于西南角的節點為第二參考節點。例如,圖5中故障環l1的第一參考節點為r1,第二參考節點為r2,故障環l2的第一參考節點為r3,第二參考節點為r4。
根據步驟404可知,當故障環上的某一節點確定自身為參考節點時,會向該故障環上的所有節點發送其位置信息,故障環上的任一節點接收到參考節點發送的位置信息后會將該參考節點的位置信息記錄,當一個故障環上的第一參考節點和第二參考節點均為實體節點時,故障環上的任一實體節點均可以獲取兩個參考節點發送的位置信息;當一個故障環上的第一參考節點和第二參考節點中存在一個實體節點和一個虛擬節點時,故障環上的任一實體節點仍可以接收到實體參考節點的位置信息和虛擬參考節點的位置信息,該實體參考節點的位置信息由實體參考節點發送,具體過程可以參考相關技術,但是在不同場景中,虛擬參考節點的位置信息的發送節點不同,當故障環上存在與虛擬參考節點相鄰的實體節點時,虛擬參考節點的位置信息可以由該實體節點確定并發送;當故障環上不存在與虛擬參考節點相鄰的實體節點時,虛擬參考節點的位置信息可以由實體參考節點確定并發送。其中,實體參考節點指得是故障環上既是參考節點又是實體節點的節點,在本發明實施例提供的上述預設坐標系中,如圖5所示的坐標系,該實體參考節點的x,y坐標均為非負數,虛擬參考節點指的是故障環上既是參考節點又是虛擬節點的節點,在本發明實施例提供的上述預設坐標系中,如圖5所示的坐標系,該虛擬參考節點的x,y坐標至少存在一個為負數。
當一個故障環上的兩個參考節點中存在一個實體節點和一個虛擬節點時,本發明實施例以第一節點為例,對故障環上的任一實體節點獲取虛擬參考節點 的位置信息的過程進行說明,該過程可以包括:
a1、當所述第一節點位于所述芯片的邊界上,且為故障環上的非邊角節點,確定所述故障環上與所述第一節點相鄰的虛擬節點的位置信息。
實際應用中,當第一節點為位于所述芯片的邊界上,且為故障環上的非邊角節點,與該第一節點相鄰的虛擬節點必然位于第一節點所在故障環上,如圖5可知,第一節點a為位于所述芯片的邊界上,且為故障環l1上的非邊角節點,與第一節點a相鄰的虛擬節點r2為故障環上的節點。
在本發明實施例中,位于故障環上且位于所述芯片的邊界上的節點,可以代替虛擬參考節點來發送其位置信息。
以第一節點為例,假設第一節點為圖5中故障環l1上的節點a,第一節點a的位置信息為:坐標位置為(0,4),第一節點a可以根據其位置信息確定故障環l1上與其相鄰的虛擬節點r2的位置信息,也即坐標位置為(-1,4)。
需要說明的是,當第一節點位于芯片的邊界上,且為故障環上的非邊角節點,可以先確定該第一節點接收的參考節點的位置信息的個數,如果該第一節點接收了兩個參考節點的位置信息,若該兩個參考節點為實體參考節點,則說明故障環上不存在虛擬參考節點,若該兩個參考節點包括一個實體參考節點和一個虛擬參考節點,則說明故障環上已經有一個位于故障環上且位于所述芯片的邊界上的節點確定了虛擬參考節點的位置信息,因此,與第一節點相鄰的虛擬節點,必然不是虛擬參考節點,只要第一節點接收到了2個參考節點的位置信息,即可停止執行確定故障環上與第一節點相鄰的虛擬節點的位置信息的動作,以減少不必要的運算。
a2、根據虛擬節點的位置信息和預先接收的實體參考節點的位置信息,判斷所述虛擬節點是否為虛擬參考節點。
一方面,第一節點可以將該虛擬節點的位置信息和實體參考節點的位置信息進行比較,判斷該虛擬節點與實體參考節點是否位于故障環的同一對角線上,若虛擬節點與實體參考節點位于故障環的同一對角線上,則確定該虛擬節點為 虛擬參考節點,若虛擬節點與實體參考節點不位于故障環的同一對角線上,則確定該虛擬節點不為虛擬參考節點。可選的,第一節點可以通過分別比較虛擬節點與實體參考節點的橫縱坐標來判斷兩者是否在同一對角線上,如果虛擬節點與實體參考節點的橫坐標相同或者虛擬參考節點與實體參考節點的縱坐標相同,則確定兩者不在同一對角線上;如果虛擬節點與實體參考節點的橫坐標、縱坐標均不相同,則確定兩者在同一對角線上。
例如,圖5中故障環l1上的節點a可以獲取故障環l1上的實體參考節點r1的位置信息:坐標位置為(3,8),實體參考節點r1的坐標位置(3,8)與虛擬節點r2的坐標位置(-1,4)的橫坐標和縱坐標均不相同,則可以確定兩者位于同一對角線上,虛擬節點r2為虛擬參考節點。
另一方面,由于第一節點已獲取了參考節點的位置信息,第一節點可以參考現有技術的方法,來判斷虛擬節點是否為參考節點,當其為參考節點時,可以確定其為虛擬參考節點,本發明實施例對此不做贅述。
a3、當虛擬節點為虛擬參考節點時,將虛擬節點的位置信息發送至故障環上的每個節點上。
例如,節點a在確定虛擬節點r2為虛擬參考節點,會將其位置信息:坐標位置(3,8)發送至故障環上的每個節點上。
a4、當虛擬節點不為虛擬參考節點時,將虛擬節點的位置信息發送至實體參考節點,以便于實體參考節點在收到兩個虛擬節點的位置信息時,確定虛擬參考節點的位置信息。
實體參考節點可以接收到兩個位于故障環上的虛擬節點的位置信息時,可以根據該兩個虛擬節點的位置信息,確定虛擬參考節點的位置信息。此時,該虛擬參考節點位于坐標系的第三象限。
例如,當第一節點為圖5中的故障環l3上的節點d時,其接收到實體參考節點c的位置信息:坐標位置(2,3)后,確定故障環上與節點d相鄰的節點e不為虛擬參考節點,便將節點e的位置信息:坐標位置(2,-1)發送至實體 參考節點c;當第一節點為圖5中的故障環l3上的節點f時,其接收到實體參考節點c的位置信息:坐標位置(2,3)后,確定故障環上與節點f相鄰的節點g不為虛擬參考節點,便將節點g的位置信息:坐標位置(-1,3)發送至實體參考節點c,由于實體參考節點、該兩個虛擬節點以及虛擬參考節點分別為故障環的四個頂點,因此實體參考節點根據該兩個虛擬節點的位置信息很容易算出虛擬參考節點的位置信息:坐標位置(-1,-1),實體參考節點可以將虛擬參考節點的位置信息:坐標位置(-1,-1)發送至故障環上的每個節點上。
實際應用中,也可以是故障環上的預設實體節點接收到兩個位于故障環上的虛擬節點的位置信息時,根據該兩個虛擬節點的位置信息以及預先接收的實體參考節點的位置信息,確定虛擬參考節點的位置信息,該預設實體節點可以是該故障環上的任一實體節點。此時,該虛擬參考節點位于坐標系的第三象限。
在本發明實施例中,由于故障環上的任一實體節點都能獲取故障環的位置信息,從而能夠確定故障環上每個節點的位置信息,并且該實體節點根據自身的位置信息及故障環的位置信息,可以確定自身在故障環的位置。
步驟4052、根據故障環的位置信息,確定故障環的類型,故障環的類型用于指示故障環在芯片上所形成的形狀為封閉環形或非封閉環形。
其中,當故障環在芯片上所形成的形狀為封閉環形(如圖5中的故障環l2,其全部在芯片內,因此在芯片上的形狀為封閉環形)時,其故障環的類型為正常環,該正常環上的任一節點均為位于芯片上的實體節點,實體節點為芯片上實際存在的節點,當故障環在芯片上所形成的形狀為非封閉環形(如圖5中的故障環l1,其一部分在芯片內,一部分在芯片外,因此在芯片上的形狀是鏈狀,也即非封閉環形)時,其故障環的類型根據其非封閉的邊在芯片上的位置所確定。
假設如表1所示,兩個參考節點為故障環的四個頂點上的節點中,位于東北角和西南角的兩個節點,其中,第一參考節點為位于故障環東北角上的節點pne,第二參考節點為位于故障環西南角的節點psw,則根據故障環的位置信息, 確定故障環的類型的過程可以包括:
當兩個參考節點的位置信息指示兩個參考節點在預設坐標系中的坐標位置在芯片的坐標范圍內時,確定故障環的類型為正常環(normalring);
當兩個參考節點的位置信息指示第一參考節點pne的x坐標(即x_pne)為m時(即x_pne=m),確定故障環的類型為東(e)型環,即e-ring;
當兩個參考節點的位置信息指示第一參考節點pne的y坐標為n時(即y_pne=n),確定故障環的類型為北(n)型環,即n-ring;
當兩個參考節點的位置信息指示第二參考節點psw的x坐標為-1時(即x_psw=-1),確定故障環的類型為西(w)型環,即w-ring;
當兩個參考節點的位置信息指示第二參考節點psw的y坐標為-1時(即y_psw=-1),確定故障環的類型為南(s)型環,即s-ring;
當根據兩個參考節點的位置信息確定該故障環既為e型環,又為n型環,也即該故障環屬于e型環和n型環的交集,則確定故障環為東北(ne)型環,即ne-ring;
當根據兩個參考節點的位置信息確定該故障環既為w型環,又為n型環,也即該故障環屬于w型環和n型環的交集,則確定故障環為西北(nw)型環,即nw-ring;
當根據兩個參考節點的位置信息確定該故障環既為s型環,又為w型環,也即該故障環屬于s型環和w型環的交集,則確定故障環為西南(sw)型環,即sw-ring;
當根據兩個參考節點的位置信息確定該故障環既為e型環,又為s型環,也即該故障環屬于e型環和s型環的交集,則確定故障環為東南(se)型環,即se-ring。
其中,上述h型環中的h表示該故障環包括芯片的h邊,該h包括:東、西、南、北、東北、西北、西南和東南的任一種。
表1
如圖7所示,圖7為表1中各種類型的故障環在芯片上的位置示意圖。正常環全部位于芯片的內部,而除正常環之外的其他類型的故障環均存是一部分位于芯片的內部,另一部分位于芯片的外部。
傳統的容錯路由方法,只能識別出s-ring和非s-ring兩種故障環類型,無法識別具體的故障環類型,而本發明實施例可以識別故障環的具體類型,提高識別的準確性,提高識別粒度。
步驟4053、根據故障環的類型,判斷待傳輸信息是否能夠在故障環上雙向繞行傳輸。
根據步驟4052可知,故障環的類型可以包括:正常環,正常環上的任一節點均為位于芯片上的實體節點,實體節點為芯片上實際存在的節點,則如圖8所示,根據故障環的類型,判斷待傳輸信息是否能夠在故障環上雙向繞行傳輸的過程可以包括:
步驟4053a、檢測故障環的類型是否為正常環。當故障環的類型不為正常環時,執行步驟4053b;當故障環的類型為正常環時,執行步驟4053c。
由圖5或圖7可以看出,當故障環的類型為正常環時,待傳輸信息才有雙 向繞行的可能,當故障環的類型不是正常環時,由于故障環在芯片上所形成的形狀為非封閉環形,待傳輸信息不存在雙向繞行的可能,因此,本發明實施例中需要通過檢測故障環的類型是否為正常環,來確定待傳輸信息是否能在故障環上雙向繞行傳輸。
步驟4053b、確定待傳輸信息不能在故障環上雙向繞行傳輸。
步驟4053c、根據待傳輸信息的傳輸類型和故障環的位置信息,確定待傳輸信息在故障環上的備選傳輸路徑。執行步驟4053d。
本發明實施例中,在故障環上的備選傳輸路徑指的是待傳輸信息在故障環上傳輸時可以選擇的傳輸路徑。實際應用中,待傳輸信息傳輸至目的節點的路徑可以有多種,當第一節點是故障環上的節點時,待傳輸信息需要傳輸到的下一節點可能是該故障環上的節點,也可能不是該故障環上的節點,如圖9所示,假設第一節點為故障環l4上的節點p1,若目的節點為節點p2,則待傳輸信息的傳輸路徑為r1,該傳輸路徑r1不在故障環上,則備選傳輸路徑的個數為0;若目的節點為節點p3,則待傳輸信息的傳輸路徑分別為順時針的路徑r2和逆時針的路徑r3,該傳輸路徑r2和r3在故障環上,則備選傳輸路徑的個數為2。
實際應用中,在步驟302之前,第一節點在接收到待傳輸信息時,會根據第一節點的位置信息和待傳輸信息中攜帶的目的節點的位置信息,預先確定待傳輸信息的傳輸類型,待傳輸信息的傳輸類型用于根據第一節點與目的節點的相對位置關系來確定傳遞的優先級。其中,傳輸類型包括:行優先(英文:row-first;簡稱:rf)類型、列優先(英文:column-first;簡稱:cf)類型和行傳遞(英文:row-only;簡稱:ro)類型,如圖10所示的第一種情況,rf類型用于指示目的節點在第一節點的西北方向或者西南方向;如圖10所示的第二種情況,cf類型用于指示目的節點與第一節點在同一列;如圖10所示的第三種情況,ro類型用于指示目的節點與第一節點在同一行。
由步驟4051可知,故障環的位置信息包括:預設坐標系中兩個參考節點的位置信息,第一節點根據該兩個參考節點的位置信息可以很容易算出故障環上 各個節點的位置信息,由于第一節點確定了故障環上各個節點的位置信息,則可以計算出從第一節點沿順時針方向和沿逆時針方向是否存在可以到達目的節點的路徑。
步驟4053d、統計待傳輸信息的備選傳輸路徑的個數。執行步驟4053e或步驟4053f。
步驟4053e、當備選傳輸路徑的個數為2,確定待傳輸信息能夠在故障環上雙向繞行傳輸。
步驟4053f、當備選傳輸路徑的個數為0,確定待傳輸信息不能在故障環上雙向繞行傳輸。
步驟406、根據待傳輸信息的傳輸類型、第一節點的位置信息和目的節點的位置信息,將待傳輸信息傳輸至下一節點。
當第一節點不是故障環上的節點,根據待傳輸信息的傳輸類型、第一節點的位置信息和目的節點的位置信息,將待傳輸信息傳輸至下一節點,具體過程如下:
通常的,如果待傳輸信息的傳輸類型是rf類型,則沿著ew通道(即從東到西的方向)將待傳輸信息傳輸至下一節點;
如果待傳輸信息的傳輸類型是cf類型并且目的節點在第一節點的正南方,則沿著ns通道(即從北到南的方向)將待傳輸信息傳輸至下一節點;
如果待傳輸信息的傳輸類型是cf類型并且目的節點在第一節點的正南方,則沿著sn通道(即從南到北的方向)將待傳輸信息傳輸至下一節點;
如果待傳輸信息的傳輸類型是ro類型,則沿著we通道(即從西到東的方向)將待傳輸信息傳輸至下一節點。
當第一節點是故障環上的節點,但待傳輸信息不能在故障環上雙向繞行傳輸時,根據待傳輸信息的傳輸類型、第一節點的位置信息、目的節點的位置信息和故障環的位置信息,將待傳輸信息傳輸至下一節點,具體包括如下兩方面:
第一方面,當第一節點是故障環上的節點,但不是正常故障環上的節點時, 其傳輸過程可以參考現有技術,本發明實施例對此不做贅述。
第二方面,當第一節點是正常故障環上的節點,但不能雙向繞行傳輸時:其傳輸過程可以參考現有技術,本發明實施例對此不做贅述。
當下一節點接收到待傳輸信息時,其執行的步驟的可以參考第一節點的步驟,本發明實施例對此不做贅述。
步驟407、在雙向繞行傳輸所形成的路徑中確定最短路徑。執行步驟408。
由于第一節點已經確定了故障環的位置信息,相應的可以知道故障環上每個節點的位置信息,根據自身的位置信息,便可以知道自身在故障環上的位置,那么就可以計算出,待傳輸信息傳輸時的具體路徑,第一節點在確定了雙向繞行傳輸所形成的路徑后,可以將兩個路徑中經過的節點最少的路徑作為最短路徑。
步驟408、基于最短路徑,將待傳輸信息傳輸至下一節點。
本發明實施例中提供的容錯路由方法,由于在待傳輸信息能夠在故障環上雙向繞行傳輸時,在雙向繞行傳輸所形成的路徑中確定最短路徑,并基于最短路徑,將待傳輸信息傳輸至下一節點,因此,采用最短路徑進行待傳輸信息的傳輸,避免了傳輸路徑較長,傳輸時延較大的情況,提高了信息的傳輸效率。如圖11和圖12所示,圖11是現有技術提供的一種待傳輸信息的傳輸路徑示意圖,圖11分別繪制了兩組傳輸路徑,一組是從源節點s1到目的節點d1的傳輸路徑,另一組是從源節點s2到目的節點d2的傳輸路徑。圖12是本發明實施例提供的一種待傳輸信息的傳輸路徑示意圖,圖12分別繪制了兩組傳輸路徑,一組是從源節點s1到目的節點d1的傳輸路徑,另一組是從源節點s2到目的節點d2的傳輸路徑。可以明顯看出,采用本發明實施例提供的容錯路由算法,從源節點s1到目的節點d1的傳輸路徑較現有技術的要短,從源節點s2到目的節點d2的傳輸路徑也較現有技術要短,因此,有效減小了傳輸路徑。
需要說明的是,本發明實施例提供的容錯路由方法步驟的先后順序可以進行適當調整,步驟也可以根據情況進行相應增減,任何熟悉本技術領域的技術 人員在本發明揭露的技術范圍內,可輕易想到變化的方法,都應涵蓋在本發明的保護范圍之內,因此不再贅述。
本發明實施例提供一種容錯路由裝置,如圖13所示,應用于片上互聯網絡noc的第一節點,該第一節點可以為路由器等具有通信功能的裝置,所述裝置包括:
接收模塊50,用于接收待傳輸信息,所述待傳輸信息包括:目的節點的位置信息,所述位置信息用于指示在所述noc的芯片上的位置;
判斷模塊51,用于當所述第一節點不是所述目的節點,且為故障環上的節點時,判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸,所述雙向繞行傳輸包括沿順時針方向傳輸和沿逆時針方向傳輸;
確定模塊52,用于當所述待傳輸信息能夠在所述故障環上雙向繞行傳輸時,在所述雙向繞行傳輸所形成的路徑中確定最短路徑;
傳輸模塊53,用于基于所述最短路徑,將所述待傳輸信息傳輸至下一節點。
綜上所述,本發明實施例提供的容錯路由裝置,由于確定模塊在判斷模塊判斷得到待傳輸信息能夠在故障環上雙向繞行傳輸時,在雙向繞行傳輸所形成的路徑中確定最短路徑,并由傳輸模塊基于最短路徑,將待傳輸信息傳輸至下一節點,因此,采用最短路徑進行待傳輸信息的傳輸,避免了傳輸路徑較長,傳輸時延較大的情況,提高了信息的傳輸效率。
可選的,如圖14所示,所述判斷模塊51包括:
獲取子模塊511,用于獲取所述故障環的位置信息;
確定子模塊512,用于根據所述故障環的位置信息,確定所述故障環的類型,所述故障環的類型用于指示所述故障環在所述芯片上所形成的形狀為封閉環形或非封閉環形;
判斷子模塊513,用于根據所述故障環的類型,判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸。
可選的,所述故障環的位置信息包括:預設坐標系中兩個參考節點的位置信息,所述兩個參考節點是位于所述故障環的四個頂點上的節點中,在同一對角線上的兩個節點。
可選的,所述芯片上形成有m×n個網格,所述預設坐標系的坐標系原點為所述芯片的西南角的節點,在所述預設坐標系上,所述芯片的坐標范圍包括:x軸的坐標范圍為0~m-1,y軸的坐標范圍為0~n-1,m和n均為大于或等于2的整數,所述兩個參考節點為所述故障環的四個頂點上的節點中,位于東北角和西南角的兩個節點,其中,位于所述東北角的節點為第一參考節點,位于所述西南角的節點為第二參考節點;
所述確定子模塊512,用于:
當所述兩個參考節點的位置信息指示所述兩個參考節點在所述預設坐標系中的坐標位置在所述芯片的坐標范圍內時,確定所述故障環的類型為正常環;
當所述兩個參考節點的位置信息指示第一參考節點的x坐標為m時,確定所述故障環的類型為東型環;
當所述兩個參考節點的位置信息指示第一參考節點的y坐標為n時,確定所述故障環的類型為北型環;
當所述兩個參考節點的位置信息指示第二參考節點的x坐標為-1時,確定所述故障環的類型為西型環;
當所述兩個參考節點的位置信息指示第二參考節點的y坐標為-1時,確定所述故障環的類型為南型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為東型環,又為北型環,則確定所述故障環為東北型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為西型環,又為北型環,則確定所述故障環為西北型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為南型環,又為西型環,則確定所述故障環為西南型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為東型環,又為南型環,則確定所述故障環為東南型環。
可選的,所述故障環的類型包括:正常環,所述正常環上的任一節點均為位于所述芯片上的實體節點,所述實體節點為所述芯片上實際存在的節點,
所述判斷子模塊513,用于:
檢測所述故障環的類型是否為正常環;
當所述故障環的類型不為正常環時,確定所述待傳輸信息不能在所述故障環上雙向繞行傳輸;
當所述故障環的類型為正常環時,根據所述待傳輸信息的傳輸類型和所述故障環的位置信息,確定所述待傳輸信息在所述故障環上的備選傳輸路徑,所述待傳輸信息的傳輸類型用于反映所述第一節點與所述目的節點的相對位置關系;
統計所述待傳輸信息的備選傳輸路徑的個數;
當所述備選傳輸路徑的個數為2,確定所述待傳輸信息能夠在所述故障環上雙向繞行傳輸;
當所述備選傳輸路徑的個數為0,確定所述待傳輸信息不能在所述故障環上雙向繞行傳輸。
可選的,所述兩個參考節點包括一個實體參考節點和一個虛擬參考節點,
所述確定模塊52,還用于當所述第一節點位于所述芯片的邊界上,且為故障環上的非邊角節點,確定所述故障環上與所述第一節點相鄰的虛擬節點的位置信息;
所述判斷模塊51,還用于根據所述虛擬節點的位置信息和預先接收的實體參考節點的位置信息,判斷所述虛擬節點是否為虛擬參考節點;
所述傳輸模塊53,還用于當所述虛擬節點為虛擬參考節點時,將所述虛擬節點的位置信息發送至所述故障環上的每個節點上;
所述傳輸模塊53,還用于當所述虛擬節點不為虛擬參考節點時,將所述虛 擬節點的位置信息發送至所述實體參考節點,以便于所述實體參考節點在收到兩個虛擬節點的位置信息時,確定虛擬參考節點的位置信息。
綜上所述,本發明實施例提供的容錯路由裝置,由于確定模塊在判斷模塊判斷得到待傳輸信息能夠在故障環上雙向繞行傳輸時,在雙向繞行傳輸所形成的路徑中確定最短路徑,并由傳輸模塊基于最短路徑,將待傳輸信息傳輸至下一節點,因此,采用最短路徑進行待傳輸信息的傳輸,避免了傳輸路徑較長,傳輸時延較大的情況,提高了信息的傳輸效率。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統,裝置和模塊的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
本發明實施例提供一種片上網絡,可以設置于服務器中,該片上網絡可以包括第一節點,所述第一節點包括如圖13所示的容錯路由裝置。
進一步的,所述片上網絡noc還可以包括:第二節點,所述第二節點位于所述芯片的邊界上,且為故障環上的非邊角節點,所述第二節點用于:
確定所述故障環上與所述第二節點相鄰的虛擬節點的位置信息;
根據所述虛擬節點的位置信息,判斷所述虛擬節點是否為虛擬參考節點;
根據所述虛擬節點的位置信息和預先接收的實體參考節點的位置信息,判斷所述虛擬節點是否為虛擬參考節點;
當所述虛擬節點為虛擬參考節點時,將所述虛擬節點的位置信息發送至所述故障環上的每個節點上;
當所述虛擬節點不為虛擬參考節點時,將所述虛擬節點的位置信息發送至所述實體參考節點,以便于所述實體參考節點在收到兩個虛擬節點的位置信息時,確定虛擬參考節點的位置信息。
本發明實施例提供一種容錯路由裝置,該容錯路由裝置可以為路由器等具有通信功能的裝置,如圖15所示,包括至少一個處理器601(例如cpu),該 處理器601用于執行上述容錯路由方法,至少一個網絡接口602或者其他通信接口,存儲器603,和至少一個通信總線604,用于實現這些裝置之間的連接通信。處理器601用于執行存儲器603中存儲的可執行模塊,例如計算機程序。存儲器603可能包含高速隨機存取存儲器(ram:randomaccessmemory),也可能還包括非不穩定的存儲器(non-volatilememory),例如至少一個磁盤存儲器。通過至少一個網絡接口602(可以是有線或者無線)實現該容錯路由裝置與至少一個其他裝置之間的通信連接,可以使用互聯網,廣域網,本地網,城域網等。
在一些實施方式中,存儲器603存儲了程序6031,程序6031可以被處理器601執行,這個程序6031包括:
接收待傳輸信息,所述待傳輸信息包括:目的節點的位置信息,所述位置信息用于指示在所述noc的芯片上的位置;
當所述第一節點不是所述目的節點,且為故障環上的節點時,判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸,所述雙向繞行傳輸包括沿順時針方向傳輸和沿逆時針方向傳輸;
當所述待傳輸信息能夠在所述故障環上雙向繞行傳輸時,在所述雙向繞行傳輸所形成的路徑中確定最短路徑;
基于所述最短路徑,將所述待傳輸信息傳輸至下一節點。
可選的,所述判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸,包括:
獲取所述故障環的位置信息;
根據所述故障環的位置信息,確定所述故障環的類型,所述故障環的類型用于指示所述故障環在所述芯片上所形成的形狀為封閉環形或非封閉環形;
根據所述故障環的類型,判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸。
可選的,所述故障環的位置信息包括:預設坐標系中兩個參考節點的位置信息,所述兩個參考節點是位于所述故障環的四個頂點上的節點中,在同一對 角線上的兩個節點。
可選的,所述芯片上形成有m×n個網格,所述預設坐標系的坐標系原點為所述芯片的西南角的節點,在所述預設坐標系上,所述芯片的坐標范圍包括:x軸的坐標范圍為0~m-1,y軸的坐標范圍為0~n-1,m和n均為大于或等于2的整數,所述兩個參考節點為所述故障環的四個頂點上的節點中,位于東北角和西南角的兩個節點,其中,位于所述東北角的節點為第一參考節點,位于所述西南角的節點為第二參考節點;
所述根據所述故障環的位置信息,確定所述故障環的類型,包括:
當所述兩個參考節點的位置信息指示所述兩個參考節點在所述預設坐標系中的坐標位置在所述芯片的坐標范圍內時,確定所述故障環的類型為正常環;
當所述兩個參考節點的位置信息指示第一參考節點的x坐標為m時,確定所述故障環的類型為東型環;
當所述兩個參考節點的位置信息指示第一參考節點的y坐標為n時,確定所述故障環的類型為北型環;
當所述兩個參考節點的位置信息指示第二參考節點的x坐標為-1時,確定所述故障環的類型為西型環;
當所述兩個參考節點的位置信息指示第二參考節點的y坐標為-1時,確定所述故障環的類型為南型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為東型環,又為北型環,則確定所述故障環為東北型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為西型環,又為北型環,則確定所述故障環為西北型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為南型環,又為西型環,則確定所述故障環為西南型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為東型環,又為南型環,則確定所述故障環為東南型環。
可選的,所述故障環的類型包括:正常環,所述正常環上的任一節點均為位于所述芯片上的實體節點,所述實體節點為所述芯片上實際存在的節點,
所述根據所述故障環的類型,判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸,包括:
檢測所述故障環的類型是否為正常環;
當所述故障環的類型不為正常環時,確定所述待傳輸信息不能在所述故障環上雙向繞行傳輸;
當所述故障環的類型為正常環時,根據所述待傳輸信息的傳輸類型和所述故障環的位置信息,確定所述待傳輸信息在所述故障環上的備選傳輸路徑,所述待傳輸信息的傳輸類型用于反映所述第一節點與所述目的節點的相對位置關系;
統計所述待傳輸信息的備選傳輸路徑的個數;
當所述備選傳輸路徑的個數為2,確定所述待傳輸信息能夠在所述故障環上雙向繞行傳輸;
當所述備選傳輸路徑的個數為0,確定所述待傳輸信息不能在所述故障環上雙向繞行傳輸。
可選的,所述兩個參考節點包括一個實體參考節點和一個虛擬參考節點,在所述接收待傳輸信息之前,所述方法還包括:
當所述第一節點位于所述芯片的邊界上,且為故障環上的非邊角節點,確定所述故障環上與所述第一節點相鄰的虛擬節點的位置信息;
根據所述虛擬節點的位置信息和預先接收的實體參考節點的位置信息,判斷所述虛擬節點是否為虛擬參考節點;
當所述虛擬節點為虛擬參考節點時,將所述虛擬節點的位置信息發送至所述故障環上的每個節點上;
當所述虛擬節點不為虛擬參考節點時,將所述虛擬節點的位置信息發送至所述實體參考節點,以便于所述實體參考節點在收到兩個虛擬節點的位置信息 時,確定虛擬參考節點的位置信息。
本發明實施例還提供一種非臨時性計算機可讀存儲介質,當所述存儲介質中的指令由容錯路由裝置的處理器執行時,使得容錯路由裝置能夠執行一種容錯路由方法,所述方法包括:
接收待傳輸信息,所述待傳輸信息包括:目的節點的位置信息,所述位置信息用于指示在所述noc的芯片上的位置;
當所述第一節點不是所述目的節點,且為故障環上的節點時,判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸,所述雙向繞行傳輸包括沿順時針方向傳輸和沿逆時針方向傳輸;
當所述待傳輸信息能夠在所述故障環上雙向繞行傳輸時,在所述雙向繞行傳輸所形成的路徑中確定最短路徑;
基于所述最短路徑,將所述待傳輸信息傳輸至下一節點。
可選的,所述判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸,包括:
獲取所述故障環的位置信息;
根據所述故障環的位置信息,確定所述故障環的類型,所述故障環的類型用于指示所述故障環在所述芯片上所形成的形狀為封閉環形或非封閉環形;
根據所述故障環的類型,判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸。
可選的,所述故障環的位置信息包括:預設坐標系中兩個參考節點的位置信息,所述兩個參考節點是位于所述故障環的四個頂點上的節點中,在同一對角線上的兩個節點。
可選的,所述芯片上形成有m×n個網格,所述預設坐標系的坐標系原點為所述芯片的西南角的節點,在所述預設坐標系上,所述芯片的坐標范圍包括:x軸的坐標范圍為0~m-1,y軸的坐標范圍為0~n-1,m和n均為大于或等于2的整數,所述兩個參考節點為所述故障環的四個頂點上的節點中,位于東 北角和西南角的兩個節點,其中,位于所述東北角的節點為第一參考節點,位于所述西南角的節點為第二參考節點;
所述根據所述故障環的位置信息,確定所述故障環的類型,包括:
當所述兩個參考節點的位置信息指示所述兩個參考節點在所述預設坐標系中的坐標位置在所述芯片的坐標范圍內時,確定所述故障環的類型為正常環;
當所述兩個參考節點的位置信息指示第一參考節點的x坐標為m時,確定所述故障環的類型為東型環;
當所述兩個參考節點的位置信息指示第一參考節點的y坐標為n時,確定所述故障環的類型為北型環;
當所述兩個參考節點的位置信息指示第二參考節點的x坐標為-1時,確定所述故障環的類型為西型環;
當所述兩個參考節點的位置信息指示第二參考節點的y坐標為-1時,確定所述故障環的類型為南型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為東型環,又為北型環,則確定所述故障環為東北型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為西型環,又為北型環,則確定所述故障環為西北型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為南型環,又為西型環,則確定所述故障環為西南型環;
當根據所述兩個參考節點的位置信息確定所述故障環既為東型環,又為南型環,則確定所述故障環為東南型環。
可選的,所述故障環的類型包括:正常環,所述正常環上的任一節點均為位于所述芯片上的實體節點,所述實體節點為所述芯片上實際存在的節點,
所述根據所述故障環的類型,判斷所述待傳輸信息是否能夠在所述故障環上雙向繞行傳輸,包括:
檢測所述故障環的類型是否為正常環;
當所述故障環的類型不為正常環時,確定所述待傳輸信息不能在所述故障環上雙向繞行傳輸;
當所述故障環的類型為正常環時,根據所述待傳輸信息的傳輸類型和所述故障環的位置信息,確定所述待傳輸信息在所述故障環上的備選傳輸路徑,所述待傳輸信息的傳輸類型用于反映所述第一節點與所述目的節點的相對位置關系;
統計所述待傳輸信息的備選傳輸路徑的個數;
當所述備選傳輸路徑的個數為2,確定所述待傳輸信息能夠在所述故障環上雙向繞行傳輸;
當所述備選傳輸路徑的個數為0,確定所述待傳輸信息不能在所述故障環上雙向繞行傳輸。
可選的,所述兩個參考節點包括一個實體參考節點和一個虛擬參考節點,在所述接收待傳輸信息之前,所述方法還包括:
當所述第一節點位于所述芯片的邊界上,且為故障環上的非邊角節點,確定所述故障環上與所述第一節點相鄰的虛擬節點的位置信息;
根據所述虛擬節點的位置信息和預先接收的實體參考節點的位置信息,判斷所述虛擬節點是否為虛擬參考節點;
當所述虛擬節點不為虛擬參考節點時,將所述虛擬節點的位置信息發送至所述實體參考節點,以便于所述實體參考節點在收到兩個虛擬節點的位置信息時,確定虛擬參考節點的位置信息。
本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性 的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個模塊或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或模塊的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個地方,或者也可以分布到多個網絡模塊上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理包括,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現,也可以采用硬件加軟件功能模塊的形式實現。
以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。