施例適用的拓?fù)浣Y(jié)構(gòu)是一種異構(gòu)的3D NoC架構(gòu),并不是每一個(gè)節(jié)點(diǎn)都連接有TSV,因此首先確定3D NoC每一層中的上通道節(jié)點(diǎn)和下通道節(jié)點(diǎn),所述上通道節(jié)點(diǎn)是指在其上方連接有TSV的節(jié)點(diǎn),所述下通道節(jié)點(diǎn)是指在其下方連接有TSV的節(jié)點(diǎn);定義3D NoC每一層中除所述上通道節(jié)點(diǎn)和下通道節(jié)點(diǎn)之外的所有節(jié)點(diǎn)為普通節(jié)點(diǎn);一個(gè)節(jié)點(diǎn)可能僅僅是上通道節(jié)點(diǎn)、下通道節(jié)點(diǎn)或普通節(jié)點(diǎn),也可能既是上通道節(jié)點(diǎn),又是下通道節(jié)點(diǎn);
[0033]步驟b:上通道節(jié)點(diǎn)可以通過(guò)自身上方連接的TSV向上層傳輸數(shù)據(jù),下通道節(jié)點(diǎn)可以通過(guò)自身下方連接的TSV向下層傳輸數(shù)據(jù),而普通節(jié)點(diǎn)本身并不能進(jìn)行層間通信,為了使處于普通節(jié)點(diǎn)的數(shù)據(jù)包能到達(dá)上層或下層,為3D NoC中的每個(gè)節(jié)點(diǎn)上的路由器分別建立通道表,以通道表記錄相應(yīng)節(jié)點(diǎn)上數(shù)據(jù)包向上一層或下一層進(jìn)行數(shù)據(jù)傳輸所需要通過(guò)的上通道節(jié)點(diǎn)或下通道節(jié)點(diǎn);并記錄與各普通節(jié)點(diǎn)距離最近的上通道節(jié)點(diǎn)和下通道節(jié)點(diǎn);然后將數(shù)據(jù)包傳送到臨近的上通道節(jié)點(diǎn)或下通道節(jié)點(diǎn),通過(guò)這些上通道節(jié)點(diǎn)和下通道節(jié)點(diǎn)將數(shù)據(jù)包傳送至上層或下層。
[0034]步驟c:在使用某個(gè)上通道節(jié)點(diǎn)或下通道節(jié)點(diǎn)進(jìn)行數(shù)據(jù)傳輸時(shí),可能會(huì)出現(xiàn)如下三種情況造成數(shù)據(jù)包傳輸失敗:一是由于TSV的制造技術(shù)還不夠成熟,在芯片制造過(guò)程中引起的TSV空洞、斷裂、誤對(duì)齊等情況而造成TSV失效;二是由于長(zhǎng)時(shí)間使用造成的電路老化而引起的TSV失效;三是由于通道節(jié)點(diǎn)路由器的垂直方向端口數(shù)據(jù)量過(guò)大而引起的垂直方向?而口擁塞。
[0035]為了避免在出現(xiàn)上述情況時(shí)而造成數(shù)據(jù)包丟包甚至整個(gè)電路板失效的事情發(fā)生,本發(fā)明對(duì)于每一層上所有上通道節(jié)點(diǎn)通過(guò)最短路徑算法確立最短環(huán)形路徑,在各上通道節(jié)點(diǎn)的通道表中記錄有處在所述最短環(huán)形路徑中的下一個(gè)上通道節(jié)點(diǎn)的地址;對(duì)于每一層上所有下通道節(jié)點(diǎn)通過(guò)最短路徑算法確立最短環(huán)形路徑,在各下通道節(jié)點(diǎn)的通道表中記錄有處在所述最短環(huán)形路徑中的下一個(gè)下通道節(jié)點(diǎn)的地址。如果某個(gè)通道節(jié)點(diǎn)出現(xiàn)了上述三種情況,則可查找該通道節(jié)點(diǎn)的通道表,將通道表中的上通道節(jié)點(diǎn)或下通道節(jié)點(diǎn)的地址作為數(shù)據(jù)包的臨時(shí)目的地址,發(fā)送數(shù)據(jù)包到所述臨時(shí)目的地址代表的節(jié)點(diǎn),然后進(jìn)行層間通信。本發(fā)明采用最短環(huán)形路徑的方式分別連接每一層的上通道節(jié)點(diǎn)和下通道節(jié)點(diǎn),可以有效避免同一層中,相鄰的兩個(gè)通道節(jié)點(diǎn)都出現(xiàn)無(wú)法發(fā)送數(shù)據(jù)的情況時(shí)而造成的整個(gè)電路板的失效。從而可以達(dá)到在不增加冗余TSV的前提下,通過(guò)路由算法實(shí)現(xiàn)對(duì)TSV的容錯(cuò),并具備垂直方向通道擁塞緩解功能。
[0036]本實(shí)施例中基于上下優(yōu)先策略的異構(gòu)3D NoCTSV容錯(cuò)路由算法是利用通道表并按如下步驟進(jìn)行:
[0037]步驟1:對(duì)于節(jié)點(diǎn)A上的路由器收到的一個(gè)數(shù)據(jù)包Α,首先解析數(shù)據(jù)包的目的節(jié)點(diǎn)的地址,若所述目的節(jié)點(diǎn)的地址為節(jié)點(diǎn)A的地址,則將數(shù)據(jù)包A傳送到節(jié)點(diǎn)A的IP核,完成數(shù)據(jù)傳輸;否則,進(jìn)入步驟2。
[0038]步驟2:若目的節(jié)點(diǎn)的地址處在本層,則使用2D NoC輪轉(zhuǎn)路由算法通過(guò)目的端口將數(shù)據(jù)包A傳送到下一個(gè)節(jié)點(diǎn),完成節(jié)點(diǎn)A的數(shù)據(jù)傳輸;若目的節(jié)點(diǎn)的地址處在上層,則進(jìn)入步驟3 ;若目的節(jié)點(diǎn)的地址處在下層,則進(jìn)入步驟5。
[0039]步驟3:若節(jié)點(diǎn)A為上通道節(jié)點(diǎn),并且通過(guò)節(jié)點(diǎn)A的上通道成功傳輸數(shù)據(jù)包Α,則完成節(jié)點(diǎn)A的數(shù)據(jù)傳輸;若是通過(guò)節(jié)點(diǎn)A的上通道不能成功完成數(shù)據(jù)包A傳輸,則進(jìn)入步驟4 ;不能成功完成數(shù)據(jù)包A的傳輸?shù)那闆r,是由于TSV本身制造過(guò)程失效或者電路老化造成的TSV失效,也可能是由于擁塞而造成數(shù)據(jù)包A暫時(shí)無(wú)法發(fā)送;若節(jié)點(diǎn)A為普通節(jié)點(diǎn),則進(jìn)入步驟4。
[0040]步驟4:利用節(jié)點(diǎn)A的通道表得到節(jié)點(diǎn)A可用的上通道節(jié)點(diǎn)B的地址,將上通道節(jié)點(diǎn)B的地址作為數(shù)據(jù)包A的臨時(shí)目的地址,通過(guò)2D NoC輪轉(zhuǎn)路由算法將數(shù)據(jù)包A從指定端口發(fā)出,完成節(jié)點(diǎn)A的數(shù)據(jù)傳輸。本實(shí)施例中采用換一個(gè)通道節(jié)點(diǎn)進(jìn)行數(shù)據(jù)包A傳送的方法,將能有效避免因與通道節(jié)點(diǎn)A相連的TSV失效而引起的數(shù)據(jù)包A傳送失敗的情況發(fā)生;且能在通道節(jié)點(diǎn)A的垂直方向通道發(fā)生擁塞時(shí),將數(shù)據(jù)包轉(zhuǎn)移到通道節(jié)點(diǎn)B發(fā)送,從而緩解節(jié)點(diǎn)A垂直方向通道的擁塞情況。
[0041]步驟5:對(duì)于節(jié)點(diǎn)A為下通道節(jié)點(diǎn),并且通過(guò)節(jié)點(diǎn)A的下通道成功傳輸數(shù)據(jù)包A,則完成節(jié)點(diǎn)A的數(shù)據(jù)傳輸;若是通過(guò)節(jié)點(diǎn)A的下通道不能成功完成數(shù)據(jù)包A傳輸,則進(jìn)入步驟6 ;若節(jié)點(diǎn)A為普通節(jié)點(diǎn),則進(jìn)入步驟6。
[0042]步驟6:利用節(jié)點(diǎn)A的通道表得到節(jié)點(diǎn)A可用的下通道節(jié)點(diǎn)B的地址,將下通道節(jié)點(diǎn)B的地址作為數(shù)據(jù)包A的臨時(shí)目的地址,通過(guò)2D NoC輪轉(zhuǎn)路由算法將數(shù)據(jù)包A從指定端口發(fā)出,完成節(jié)點(diǎn)A的數(shù)據(jù)傳輸。
[0043]2D NoC輪轉(zhuǎn)路由算法是使用《基于隨機(jī)路由的高性能片上路由器設(shè)計(jì)與仿真》(岳峰,李潤(rùn)豐,陳田,劉軍,陳鵬,王偉.基于隨機(jī)路由的高性能片上路由器設(shè)計(jì)與仿真,電子測(cè)量與儀器學(xué)報(bào)[J],2013,27 (7):669-675) —文中提出的一種高性能路由算法。該算法是按如下步驟進(jìn)行的:
[0044]對(duì)于節(jié)點(diǎn)A收到的一個(gè)數(shù)據(jù)包A,首先解析數(shù)據(jù)包的目的節(jié)點(diǎn)的地址,若所述目的節(jié)點(diǎn)的地址為節(jié)點(diǎn)A的地址,則將數(shù)據(jù)包A傳送到節(jié)點(diǎn)A的IP核,完成數(shù)據(jù)傳輸;若只有X軸地址或Y軸地址相同,則通過(guò)相應(yīng)的端口在Y軸或X軸上傳輸,該算法結(jié)束;若X軸和Y軸地址都不相同,則表示有X軸和Y軸兩個(gè)方向的傳輸通道可供選擇,若節(jié)點(diǎn)A中的方向標(biāo)識(shí)位為“0”,則在X軸方向傳送,若為“ I ”則在Y軸方向傳送;傳輸完成后將標(biāo)識(shí)位取反。
[0045]在本發(fā)明中采用所述2D NoC輪轉(zhuǎn)路由算法用于層內(nèi)數(shù)據(jù)包傳送,可以有效平衡層內(nèi)X方向和Y方向的數(shù)據(jù)流量,從而具有更好的吞吐率和延遲。
【主權(quán)項(xiàng)】
1.一種依據(jù)3D NoC中每一層TSV連接狀況建立通道表的方法,其特征是按如下過(guò)程進(jìn)行: 步驟a:確定3D NoC每一層中的上通道節(jié)點(diǎn)和下通道節(jié)點(diǎn),所述上通道節(jié)點(diǎn)是指在其上方連接有TSV的節(jié)點(diǎn),所述下通道節(jié)點(diǎn)是指在其下方連接有TSV的節(jié)點(diǎn);定義3D NoC每一層中除所述上通道節(jié)點(diǎn)和下通道節(jié)點(diǎn)之外的所有節(jié)點(diǎn)為普通節(jié)點(diǎn); 步驟b:為所述3D NoC中的每個(gè)節(jié)點(diǎn)上的路由器分別建立通道表,以所述通道表記錄相應(yīng)節(jié)點(diǎn)上數(shù)據(jù)包向上一層或下一層進(jìn)行數(shù)據(jù)傳輸所需要通過(guò)的上通道節(jié)點(diǎn)或下通道節(jié)點(diǎn);并記錄與各普通節(jié)點(diǎn)距離最近的上通道節(jié)點(diǎn)和下通道節(jié)點(diǎn); 步驟c:對(duì)于每一層上所有上通道節(jié)點(diǎn)通過(guò)最短路徑算法確立最短環(huán)形路徑,在各上通道節(jié)點(diǎn)的通道表中記錄有處在所述最短環(huán)形路徑中的下一個(gè)上通道節(jié)點(diǎn)的地址;對(duì)于每一層上所有下通道節(jié)點(diǎn)通過(guò)最短路徑算法確立最短環(huán)形路徑,在各下通道節(jié)點(diǎn)的通道表中記錄有處在所述最短環(huán)形路徑中的下一個(gè)下通道節(jié)點(diǎn)的地址。
2.一種基于上下優(yōu)先策略的異構(gòu)3D NoCTSV容錯(cuò)路由算法,其特征是按如下步驟進(jìn)行: 步驟1:對(duì)于節(jié)點(diǎn)A上的路由器收到的一個(gè)數(shù)據(jù)包A,首先解析數(shù)據(jù)包的目的節(jié)點(diǎn)的地址,若所述目的節(jié)點(diǎn)的地址為節(jié)點(diǎn)A的地址,則將數(shù)據(jù)包A傳送到節(jié)點(diǎn)A的IP核,完成數(shù)據(jù)傳輸;否則,進(jìn)入步驟2; 步驟2:若目的節(jié)點(diǎn)的地址處在本層,則使用2D NoC輪轉(zhuǎn)路由算法通過(guò)目的端口將數(shù)據(jù)包A傳送到下一個(gè)節(jié)點(diǎn),完成節(jié)點(diǎn)A的數(shù)據(jù)傳輸;若目的節(jié)點(diǎn)的地址處在上層,則進(jìn)入步驟3 ;若目的節(jié)點(diǎn)的地址處在下層,則進(jìn)入步驟5 ; 步驟3:若節(jié)點(diǎn)A為上通道節(jié)點(diǎn),并且通過(guò)節(jié)點(diǎn)A的上通道成功傳輸數(shù)據(jù)包A,則完成節(jié)點(diǎn)A的數(shù)據(jù)傳輸;若是通過(guò)節(jié)點(diǎn)A的上通道不能成功完成數(shù)據(jù)包A傳輸,則進(jìn)入步驟4 ;若節(jié)點(diǎn)A為普通節(jié)點(diǎn),則進(jìn)入步驟4 ; 步驟4:利用節(jié)點(diǎn)A的通道表得到節(jié)點(diǎn)A可用的上通道節(jié)點(diǎn)B的地址,將上通道節(jié)點(diǎn)B的地址作為數(shù)據(jù)包A的臨時(shí)目的地址,通過(guò)2D NoC輪轉(zhuǎn)路由算法將數(shù)據(jù)包A從指定端口發(fā)出,完成節(jié)點(diǎn)A的數(shù)據(jù)傳輸; 步驟5:對(duì)于節(jié)點(diǎn)A為下通道節(jié)點(diǎn),并且通過(guò)節(jié)點(diǎn)A的下通道成功傳輸數(shù)據(jù)包A,則完成節(jié)點(diǎn)A的數(shù)據(jù)傳輸;若是通過(guò)節(jié)點(diǎn)A的下通道不能成功完成數(shù)據(jù)包A傳輸,則進(jìn)入步驟6 ;若節(jié)點(diǎn)A為普通節(jié)點(diǎn),則進(jìn)入步驟6 ; 步驟6:利用節(jié)點(diǎn)A的通道表得到節(jié)點(diǎn)A可用的下通道節(jié)點(diǎn)B的地址,將下通道節(jié)點(diǎn)B的地址作為數(shù)據(jù)包A的臨時(shí)目的地址,通過(guò)2D NoC輪轉(zhuǎn)路由算法將數(shù)據(jù)包A從指定端口發(fā)出,完成節(jié)點(diǎn)A的數(shù)據(jù)傳輸; 所述通道表是指利用權(quán)利要求1所述方法建立的通道表。
【專利摘要】本發(fā)明公開(kāi)了一種依據(jù)3D NoC中每一層TSV連接狀況建立通道表的方法及其應(yīng)用,其特征是通道表的建立是對(duì)于每一層上所有上通道節(jié)點(diǎn)和下通道節(jié)點(diǎn)分別通過(guò)最短路徑算法確立最短環(huán)形路徑,在各通道節(jié)點(diǎn)的通道表中記錄有處在最短環(huán)形路徑中的下一個(gè)上通道節(jié)點(diǎn)和下通道節(jié)點(diǎn)的地址;普通節(jié)點(diǎn)的通道表中記錄有距離最近的上通道節(jié)點(diǎn)和下通道節(jié)點(diǎn)地址;一種基于上下優(yōu)先策略的異構(gòu)3D NoC TSV容錯(cuò)路由算法利用上述通道表,在對(duì)數(shù)據(jù)包進(jìn)行層間傳輸時(shí),利用當(dāng)前節(jié)點(diǎn)的通道表得到該節(jié)點(diǎn)可用的上通道節(jié)點(diǎn)或下通道節(jié)點(diǎn)的地址,將數(shù)據(jù)包發(fā)送至該地址,通過(guò)該通道節(jié)點(diǎn)傳送數(shù)據(jù)。本發(fā)明可以實(shí)現(xiàn)任意規(guī)模異構(gòu)3D NoC中的有效數(shù)據(jù)傳輸,并具有TSV容錯(cuò)和擁塞緩解功能。
【IPC分類】H04L12-801, H04L12-721
【公開(kāi)號(hào)】CN104539533
【申請(qǐng)?zhí)枴緾N201410810372
【發(fā)明人】王偉, 李潤(rùn)豐, 方芳, 陳 田, 周夢(mèng)玲, 劉軍
【申請(qǐng)人】合肥工業(yè)大學(xué)
【公開(kāi)日】2015年4月22日
【申請(qǐng)日】2014年12月22日