依據(jù)3D NoC中每一層TSV連接狀況建立通道表的方法及其應(yīng)用
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種3D NoC路由算法,更具體地說是一種用于異構(gòu)3D NoC結(jié)構(gòu),具有對失效TSV容錯和緩解上下通道擁堵作用的片上路由算法。
【背景技術(shù)】
[0002]3D NoC (Three-Dimens1n Network-on-Chip)是一種通過娃直通孔(TSV)互連多層晶圓(die)而實現(xiàn)垂直集成的互連方式。它克服了 2D-NoC中所有的元器件都在一個平面上分布的局限,從而獲得更小的體積、更好的功耗和射頻性能。3D-NoC通過垂直集成使芯片的集成度大幅度提高,被多數(shù)專家認(rèn)為是一種延續(xù)摩爾定律增長趨勢的新方法,成為當(dāng)前半導(dǎo)體產(chǎn)業(yè)發(fā)展最快的技術(shù)之一。
[0003]常見的3D NoC拓?fù)浣Y(jié)構(gòu)有3D Mesh,3D Torus、三維堆疊Mesh等,其中被眾多學(xué)者廣泛研宄的結(jié)構(gòu)是3D Mesh。傳統(tǒng)的3D Mesh結(jié)構(gòu)是一種由規(guī)則的2D NoC通過上下堆疊而成的規(guī)則的3D網(wǎng)絡(luò)結(jié)構(gòu),每一層間通過TSV實現(xiàn)層間通信。這些TSV實際上就是在晶圓與晶圓之間制造一系列的垂直導(dǎo)通,用來實現(xiàn)芯片間的互連。一個TSV就代表一條在垂直方向上用來傳輸信號的數(shù)據(jù)鏈路。
[0004]傳統(tǒng)的3D NoC片上路由器是通過擴展2D片上路由器而實現(xiàn)的,在原有2D片上路由器東、西、南、北和本地5對輸入輸出端口的基礎(chǔ)上,增加上、下兩對端口來實現(xiàn)垂直方向的層間通信。其中的路由算法也是通過擴展傳統(tǒng)的2D NoC中的路由算法來實現(xiàn)數(shù)據(jù)的傳輸,例如擴展傳統(tǒng)的X-Y維序路由算法為X-Y-Z路由算法,即先將數(shù)據(jù)包在層內(nèi)傳輸?shù)脚c目的節(jié)點同一垂直位置的中間節(jié)點,然后再通過TSV垂直傳輸?shù)侥康墓?jié)點。而如今的工業(yè)設(shè)計上,通常將實現(xiàn)不同功能的模塊放在3D芯片的不同層上,例如最上一層放置CPU核,中間層放置RAM和R0M,底層放置通信模塊。這樣的設(shè)計很難做到每一層上的網(wǎng)絡(luò)節(jié)點布局一致,從而導(dǎo)致某些路由節(jié)點有向上或向下的通道,即有TSV相連,而某些節(jié)點則沒有垂直方向通道。這樣的結(jié)構(gòu)就很難使用傳統(tǒng)的3D路由算法來達到傳輸數(shù)據(jù)包的目的。
[0005]如今,芯片制造工藝進入65納米級以下,制造工藝越來越復(fù)雜,制造難度越來越大。TSV的尺寸只有10微米左右,而目前TSV制造技術(shù)還不夠成熟,制造成本高,且極易在制造過程中出現(xiàn)空洞、斷裂、誤對齊等情況而造成TSV失效。一個65nm CMOS工藝加工技術(shù)制造的硅芯片,46% -65%的成本開銷都用在了 TSV的加工上。因此,TSV的數(shù)量應(yīng)該盡可能少,并需要片上路由算法有對TSV失效進行故障修復(fù)的功能。
[0006]因此,需要一種3D NoC路由算法,以解決在不規(guī)則3D NoC結(jié)構(gòu)中的通信問題,同時又要具備良好的TSV容錯和緩解擁堵的功能。
[0007]片上路由算法的設(shè)計是要在吞吐率、延遲、功耗等幾大性能指標(biāo)中找一個最佳的平衡點。國內(nèi)外的眾多學(xué)者也對3D NoC路由器及路由算法有過很多研宄。這些研宄主要集中在如下幾點:
[0008]1、一種用于大規(guī)模3D NoC芯片的分層路由器,是由兩個完全分離的模塊組成,一個是5*5的片上路由器,用于層內(nèi)通信,另一個是4*4的片上路由器用于層間通信,從而在大規(guī)模3D NoC結(jié)構(gòu)中獲得更好的吞吐率和延遲,且該方法可以較好的應(yīng)用于異構(gòu)的3D NoC中,但是不適用于小規(guī)模的3D NoC結(jié)構(gòu),不能應(yīng)對部分TSV失效的情況,也不具有緩解擁堵的功能。
[0009]2、使用一種電梯優(yōu)先路由算法來解決減少TSV的異構(gòu)3D NoC結(jié)構(gòu)中的通信問題,該算法通過給每個網(wǎng)絡(luò)節(jié)點分配一個具有向上和向下TSV的電梯節(jié)點,從而實現(xiàn)層間通信,但是沒有考慮部分TSV出現(xiàn)故障的容錯處理。
[0010]3、通過為片上路由器增加一個輸入端口的方法來處理TSV故障和輸入端口,并具有擁塞感知功能,但是該方法不適用于異構(gòu)3D NoCo
[0011]4、前瞻性路由算法,將當(dāng)前節(jié)點的路由選擇計算提前到上一個路由器進行,從而使路由計算和交叉開關(guān)選擇兩步并行,從而提高路由器吞吐率,但是這個改進的方法并不適用于異構(gòu)的3D NoCo
【發(fā)明內(nèi)容】
[0012]本發(fā)明是為避免上述已有技術(shù)中存在的不足之處,提供一種依據(jù)3D NoC中每一層TSV連接狀況建立通道表的方法及其應(yīng)用,以解決不規(guī)則3D NoC結(jié)構(gòu)中數(shù)據(jù)通信、TSV容錯和垂直方向通道的數(shù)據(jù)包擁堵的問題。本發(fā)明適用的異構(gòu)3D NoC拓?fù)浣Y(jié)構(gòu)是:每一層符合標(biāo)準(zhǔn)2DMesh結(jié)構(gòu),但層與層的結(jié)構(gòu)不一定相同,且每層有若干個不均勻分布的TSV與上一層或者下一層相連。本發(fā)明的目標(biāo)是為了實現(xiàn)在任意規(guī)模的上述異構(gòu)3D NoC結(jié)構(gòu)中實現(xiàn)有效的數(shù)據(jù)傳輸,且在幾乎不增加路由器面積開銷和不降低路由器吞吐率的前提下具有對失效TSV容錯處理和對垂直傳輸通道擁塞緩解的功能。
[0013]本發(fā)明為解決技術(shù)問題采用如下技術(shù)方案:
[0014]本發(fā)明依據(jù)3D NoC中每一層TSV連接狀況建立通道表的方法的特點是按如下過程進行:
[0015]步驟a:確定3D NoC每一層中的上通道節(jié)點和下通道節(jié)點,所述上通道節(jié)點是指在其上方連接有TSV的節(jié)點,所述下通道節(jié)點是指在其下方連接有TSV的節(jié)點;定義3D NoC每一層中除所述上通道節(jié)點和下通道節(jié)點之外的所有節(jié)點為普通節(jié)點;
[0016]步驟b:為所述3D NoC中的每個節(jié)點上的路由器分別建立通道表,以所述通道表記錄相應(yīng)節(jié)點上數(shù)據(jù)包向上一層或下一層進行數(shù)據(jù)傳輸所需要通過的上通道節(jié)點或下通道節(jié)點;并記錄與各普通節(jié)點距離最近的上通道節(jié)點和下通道節(jié)點;
[0017]步驟c:對于每一層上所有上通道節(jié)點通過最短路徑算法確立最短環(huán)形路徑,在各上通道節(jié)點的通道表中記錄有處在所述最短環(huán)形路徑中的下一個上通道節(jié)點的地址;對于每一層上所有下通道節(jié)點通過最短路徑算法確立最短環(huán)形路徑,在各下通道節(jié)點的通道表中記錄有處在所述最短環(huán)形路徑中的下一個下通道節(jié)點的地址。
[0018]本發(fā)明基于上下優(yōu)先策略的異構(gòu)3D NoC TSV容錯路由算法的特點是按如下步驟進行:
[0019]步驟1:對于節(jié)點A上的路由器收到的一個數(shù)據(jù)包A,首先解析數(shù)據(jù)包的目的節(jié)點的地址,若所述目的節(jié)點的地址為節(jié)點A的地址,則將數(shù)據(jù)包A傳送到節(jié)點A的IP核,完成數(shù)據(jù)傳輸;否則,進入步驟2;
[0020]步驟2:若目的節(jié)點的地址處在本層,則使用2D NoC輪轉(zhuǎn)路由算法通過目的端口將數(shù)據(jù)包A傳送到下一個節(jié)點,完成節(jié)點A的數(shù)據(jù)傳輸;若目的節(jié)點的地址處在上層,則進入步驟3 ;若目的節(jié)點的地址處在下層,則進入步驟5 ;
[0021]步驟3:若節(jié)點A為上通道節(jié)點,并且通過節(jié)點A的上通道成功傳輸數(shù)據(jù)包A,則完成節(jié)點A的數(shù)據(jù)傳輸;若是通過節(jié)點A的上通道不能成功完成數(shù)據(jù)包A傳輸,則進入步驟4 ;若節(jié)點A為普通節(jié)點,則進入步驟4 ;
[0022]步驟4:利用節(jié)點A的通道表得到節(jié)點A可用的上通道節(jié)點B的地址,將上通道節(jié)點B的地址作為數(shù)據(jù)包A的臨時目的地址,通過2D NoC輪轉(zhuǎn)路由算法將數(shù)據(jù)包A從指定端口發(fā)出,完成節(jié)點A的數(shù)據(jù)傳輸;
[0023]步驟5:對于節(jié)點A為下通道節(jié)點,并且通過節(jié)點A的下通道成功傳輸數(shù)據(jù)包A,則完成節(jié)點A的數(shù)據(jù)傳輸;若是通過節(jié)點A的下通道不能成功完成數(shù)據(jù)包A傳輸,則進入步驟6 ;若節(jié)點A為普通節(jié)點,則進入步驟6 ;
[0024]步驟6:利用節(jié)點A的通道表得到節(jié)點A可用的下通道節(jié)點B的地址,將下通道節(jié)點B的地址作為數(shù)據(jù)包A的臨時目的地址,通過2D NoC輪轉(zhuǎn)路由算法將數(shù)據(jù)包A從指定端口發(fā)出,完成節(jié)點A的數(shù)據(jù)傳輸。
[0025]與已有技術(shù)相比,本發(fā)明有益效果體現(xiàn)在:
[0026]1、本發(fā)明由于在3D NoC路由器中采用了通道表,對于位于普通節(jié)點上且目的地址位于上層或下層的數(shù)據(jù)包,將普通節(jié)點的通道表中的上通道節(jié)點或下通道節(jié)點的地址作為數(shù)據(jù)包的臨時目的地址,傳輸數(shù)據(jù)包到上通道節(jié)點或下通道節(jié)點,通過節(jié)點將數(shù)據(jù)包傳送至上一層或下一層,從而實現(xiàn)在任意規(guī)模異構(gòu)3D NoC中實現(xiàn)有效的數(shù)據(jù)傳輸。
[0027]2、本發(fā)明由于在通道表中將每一層上所有上通道節(jié)點和下通道節(jié)點分別通過最短路徑算法確立最短環(huán)形路徑,在各上通道節(jié)點和下通道節(jié)點的通道表中分別記錄有處在最短環(huán)形路徑中的下一個通道節(jié)點的地址,因此,在某一個或某些TSV損壞或垂直通道出現(xiàn)擁堵的情況下,數(shù)據(jù)包可以被傳輸?shù)较乱粋€上通道節(jié)點或下通道節(jié)點進行層間數(shù)據(jù)傳送,達到在不增加冗余TSV情況下對失效TSV容錯處理和對垂直傳輸通道擁塞緩解的功能。
[0028]3、本發(fā)明在實現(xiàn)上述功能時,相對于普通的3D NoC路由器,僅需要增加存放通道表的存儲器,且每個通道表中只有兩個數(shù)據(jù),因此增加的面積開銷可以忽略不計。
[0029]4、本發(fā)明在實現(xiàn)上述功能時,相對于普通的3D NoC路由算法,沒有增加過多的選擇和判斷,且還具有對垂直通道擁有擁堵緩解功能,因此路由吞吐率不會降低。
【附圖說明】
[0030]圖1為本發(fā)明的基于上下優(yōu)先策略的異構(gòu)3D NoC TSV容錯路由算法的程序流程圖。
【具體實施方式】
[0031]本實施例中,依據(jù)3D NoC中每一層TSV連接狀況建立通道表的方法是按如下過程進行:
[0032]步驟a:本實