專利名稱:具有容錯功能的熱量均衡片上網絡路徑選擇方法
技術領域:
本發明屬于網絡通信技術領域,涉及片上網絡NoC通信,特別是一種具有容錯功能的熱量均衡片上網絡路徑選擇方法。該方法可實現片上網絡數據的高效傳輸,確保片上網絡熱量均衡,提高芯片的使用壽命,同時可滿足容錯、負載均衡與服務質量的多方面要求。
背景技術:
隨著半導體集成電路技術的飛速發展與新型半導體材料技術的不斷進步,片上系統SoC已成為了微電子領域的焦點。但隨著芯片集成度的急劇增加,片上系統越發的復雜,在時延、吞吐、能耗、可靠性與可擴展性等方面受到了巨大的挑戰。片上網絡的提出有效的解決了片上系統的諸多問題,受到了業界的廣泛關注。代表性產品有Tilera公司的64核芯片Tile 64,英特爾公司的80核芯片Teraflop與單芯片48核云計算機SCC等,這些產品均采用了最常見的Mesh拓撲結構。路徑選擇方法確定分組從源節點到目的節點的傳輸路徑,是設計高性能片上網絡的關鍵問題之一。路徑選擇方法的優劣在很大程度決定了片上網絡的性能。國內外研究人員已經對片上網絡路徑選擇方法做出了大量的研究,但對于熱量這一關鍵問題并沒有太多研究。熱量均衡是影響芯片性能的重要因素之一,熱量過高時半導體器件無法正常工作,導致芯片性能下降甚至損壞。Zhiliang Qian 等人在文章"A thermal-aware application specific routingalgorithm for Network-on-Chip design,, (the 16th Asia and South Pacific DesignAutomation Conference, 2011)中提出了一種降低節點峰值溫度的負載均衡路徑選擇方法。該方法根據業務流量及鏈路帶寬限制得到流量在多條最短路徑上的最優分配比例與選擇下一跳節點的概率,并寫入路由表。通過均衡網絡負載,降低節點的峰值溫度,防止芯片因溫度過高受損。該方法的不足之處是第一,源路由不能適應網絡狀態的變化,流量發生變化會導致網絡性能下降;第二,片上網絡的面積與能耗受到嚴格限制,路由表將增加面積與能耗的開銷,不適合片上網絡;第三,整個工作時間內的負載均衡不等價于溫度均衡,短時間內處理大量的分組也會導致節點溫度過高;第四,不具備容錯功能,節點發生故障后整個芯片無法工作。Chih-Hao, Chao 等人在文章"TrafTic-and Thermal-Aware Run-Time ThermalManagement Scheme for 3D NoC Systems,, (the Fourth ACM/IEEE InternationalSymposium on Networks-on-Chip, 2010)中提出了一種根據溫度實現負載控制的三維片上網絡路徑選擇方法。該方法在溫度過高時逐層關閉節點以降低芯片溫度。當某一節點層被關閉后,該層所有分組垂直向下傳輸后在正常工作的節點層上水平傳輸,最后垂直向上傳輸到達目的節點。該方法的不足之處是第一,關閉整個節點層具有一定的盲目性;第二,被關閉的節點層上的分組時延較大;第三,溫度檢測器增加面積開銷與路由器結構的復雜度。
發明內容
本發明的目的在于克服上述已有方法的不足,提出一種具有容錯功能的熱量均衡片上網絡路徑選擇方法,以確保片上網絡的熱量均衡、增加容錯功能并降低高優先級分組的時延。實現本發明目的的技術思路是,綜合考慮輸出端口對應的下一跳節點的歷史狀態與當前狀態以避免節點狀態信息過時或不全面,并結合故障節點的位置信息得到輸出端口選擇代價,選擇代價小的端口以實現片上網絡的熱量均衡。當出現故障節點時,將部分正常工作的節點關閉,形成規則的矩形故障區域,采用最短繞道路徑選擇方法繞過故障區域以實現容錯功能。對于溫度超過晶體管工作范圍的高溫節點,僅允許高優先級分組通過高溫節點以降低高優先級分組的時延。該路徑選擇方法包括如下步驟(1)從當前節點寄存器中讀取當前節點的坐標(Cx,Cy)與當前節點類型值N;根據節點類型值判斷節點類型^N = OW,當前節點為偽故障環上的節點,當N = 2時,當前節點為故障環上節點,當N = 1時,當前節點為普通節點;所述的偽故障環為溫度超過晶體管工作范圍的高溫節點外圍由節點與鏈路組成的環路,所述的故障環為故障節點外圍由節點與鏈路組成的環路;(2)從到達當前節點的分組頭微片中讀取目的節點坐標(Dx,Dy)與該分組的優先級值P ;根據該分組優先級值判斷分組優先級當P = 0時,分組為低優先級分組,當P = 1時,分組為高優先級分組;(3)根據當前節點坐標(Cx,Cy)、目的節點坐標(Dx,Dy)、當前節點類型和分組優先級確定最短路徑輸出端口集合O = Hoc(東,西,南,北,本地)}: 3a)如果Cx = Dx且Cy = Dy,則0 = {本地},執行步驟(5),否則執行步驟3b);3b)如果N = 0,當P = O時,執行步驟3c);當P = 1時,執行步驟3d);3c)如果N = 2,從當前節點寄存器中讀取故障環或偽故障環的東北角節點坐標(Rx, Ry)和西南角節點坐標(R' x,R' y);根據當前節點坐標(Cx, Cy)、目的節點坐標(Dx,Dy)、故障環或偽故障環的東北角節點坐標(Rx,Ry)和西南角節點坐標(R' x,R' y)確定最短繞道路徑的輸出端口3cl)當 Cx = Rx,R' y < Cy < Ry 且 Dx 彡 R‘ x,R' y < Dy < Ry 時,或者當 Cx =R' X,R' 7<(;<民且1)!£彡艮,1 ' 7<07<民時,如果(;+0廠民-1 ' y>0,則0= {北},否則0 = {南};3c2)iCy = R' y,R' x < Cx < Rx 且 Dy 彡 Ry,R' x < Dx < Rx 時,或者當 Cy = Ry,R' x < Cx < Rx 且 Dy 彡 R' y, R' x < Dx < Rx 時,如果 Cx+Dx-Rx-R' x>0jlj0={*},否則0 = {西};滿足上述3cl)或3d)時,執行步驟(5);其它情況下執行步驟3d);3d)如果N = 1,根據當前節點坐標(Cx,Cy)和目的節點坐標(Dx,Dy)確定最短路徑輸出端口集合O = {o|oc(東,西,南,北,本地)}:3dl)當 Cx = Dx 且 Cy > Dy 時,0 = {南},當 Cx = Dx 且 Cy < Dy 時,0 = {北},當Cy = Dy 且 Cx > Dx 時,0 = {西},當 Cy = Dy 且 Cx < Dx 時,0 = {東};執行步驟(5);3d2)當 Cx > Dx 且 Cy > Dy 時,0= {西,南},當 Cx > Dx 且 Cy < Dy 時,0 = {西,
5北},當Cx < Dx且Cy > Dy時,0 = {東,南},當Cx < Dx且Cy < Dy時,0 = {東,北};執行步驟⑷;(4)從當前節點寄存器中讀取輸出端口對應的下一跳節點的狀態參數并計算輸出端口選擇代價4a)從當前節點寄存器中讀取輸出端口對應的下一跳節點在T時間內產生的熱量值Ei與輸入端口可用緩存值Bi, i = 1,2,將Ei與Bi歸一化得到節點的歸一化熱量值瓦和輸入端口的歸一化可用緩存值瓦五= £;/ΣΑ, =馬/Σ巧,i,j = 1,2;4b)根據當前節點坐標(Cx,Cy)和輸出端口判斷輸出端口對應的下一跳節點坐標(Nx, Ny):當輸出端口為東時,(Nx,Ny) = (Cx+1,Cy),當輸出端口為西時,(Nx,Ny) = (Cx-I,Cy),當輸出端口為南時,(Nx, Ny) = (Cx,Cy-I),當輸出端口為北時,(Nx, Ny) = (Cx,Cy+l);4c)根據輸出端口對應的下一跳節點坐標(Nx,Ny)、故障環或偽故障環的東北角節點坐標(Rx,Ry)和西南角節點坐標(R' X,R' y),判斷下一跳節點是否屬于故障節點或高溫節點當R' !£<^<艮且『y< Ny < Ry時,下一跳節點為故障節點或高溫節點,令W3 =9999,否則,令 w3 = 1 ;4d)定義輸出端口選擇代價函數 =(ΜΧ瓦= 1,2,其中W1為歸一化熱量值瓦的權重,W2為歸一化可用緩存值瓦的權重,= 1 ;通過該代價函數計算從當前節點到目的節點的輸出端口選擇代價值Ci ;(5)確定輸出端口 如果最短路徑輸出端口集合中僅存在一個輸出端口,選擇該端口作為輸出端口 ;如果最短路徑輸出端口集合中存在兩個輸出端口,選擇輸出端口選擇代價小的作為輸出端口。本發明與現有技術相比具有以下優點1.本發明采用基于熱量均衡的完全自適應路徑選擇方法,克服了現有技術對路由表的依賴,能很好的適應網絡狀態的變化,實現熱量均衡并減小面積和能耗的開銷。2.本發明綜合考慮節點的熱量值和輸入端口可用緩存值,兼顧節點的歷史狀態和當前狀態,能避免由于參數單一造成節點狀態信息過時或不全面,避免網絡性能下降。3.本發明由于引入了高溫節點和偽故障環的概念,半關閉高溫節點,能避免芯片因溫度過高受損,提高芯片使用壽命,同時由于允許高優先級分組通過高溫節點,能有效的降低高優先級分組的時延。
圖1為本發明使用的片上網絡Mesh拓撲結構示意圖;圖2本發明使用的片上網絡微片結構示意圖;圖3為本發明路徑選擇方法流程圖;圖4為本發明的故障環與偽故障環示意圖。
具體實施例方式下面結合附圖對本發明作進一步的描述。參照圖1,本發明使用的片上網絡Mesh拓撲結構,包括本地IP核、網絡接口和路
6由器,每個路由器通過網絡接口分別與一個本地IP核相連接組成一個節點101。其中本地IP核可為存儲器或處理器等,用來產生或處理數據;網絡接口匹配本地IP核與通信網絡的工作頻率,實現網絡通信與本地IP核計算的分離;路由器根據路徑選擇方法實現分組的轉發。該拓撲結構以左下角路由器為坐標原點,正東方向為X維正方向,正北方向為Y維正方向,建立二維坐標系。參照圖3,本發明一種具有容錯功能的熱量均衡片上網絡路徑選擇方法,包括如下步驟步驟1,從當前節點寄存器中讀取當前節點的坐標(Cx,Cy)與當前節點類型值N,根據節點類型值判斷節點類型。本發明根據節點所處的位置將正常工作的節點分為故障環上的節點、偽故障環上節點和普通節點三類。參照圖4,故障環為故障節點外圍由節點與鏈路組成的環路401,偽故障環為溫度超過晶體管工作范圍的高溫節點外圍由節點與鏈路組成的環路402,其它位置上的節點為普通節點。根據節點類型值判斷節點類型當N = 0時,當前節點為偽故障環上的節點;當N = 2時,當前節點為故障環上的節點;當N = 1時,當前節點為普通節點。步驟2,從到達當前節點的分組頭微片中讀取目的節點坐標(Dx,Dy)與該分組的優先級值P,根據該分組優先級值判斷分組優先級。本發明根據分組的重要程度將分組分為高優先級和低優先級兩類。參照圖2,本發明使用蟲孔交換,將一個分組分割成一個頭微片、多個體微片和一個尾微片;頭微片中包括分組號、分組優先級、微片類型、目的節點坐標和數據;頭微片到達節點后,節點讀取頭微片中分組的目的節點坐標(Dx,Dy)和分組優先級值P。根據該分組優先級值判斷分組優先級當ρ = 0時,分組為低優先級分組;當ρ = 1時,分組為高優先級分組。步驟3,根據當前節點坐標(Cx,Cy)、目的節點坐標(Dx,Dy)、當前節點類型與分組優先級確定最短路徑輸出端口集合O = Ho^(東,西,南,北,本地)}。本發明將輸出端口分為東、西、南、北和本地五類,如圖1所示,其中東表示輸出端口為正東方向,西表示輸出端口為正西方向,南表示輸出端口為正南方向,北表示輸出端口為正北方向,本地表示輸出端口為與本地IP核相連的端口。3a)如果Cx = Dx且Cy = Dy,則0 = {本地},執行步驟5,否則執行步驟3b);3b)如果N = 0,當P = 0時,執行步驟3c);當P = 1時,執行步驟3e);3c)如果N = 2,從當前節點寄存器中讀取故障環或偽故障環的東北角節點坐標(Rx, Ry)和西南角節點坐標(R' x,R' y);3d)根據當前節點坐標(Cx,Cy)、目的節點坐標(Dx,Dy)、故障環或偽故障環的東北角節點坐標(Rx,Ry)和西南角節點坐標(R' X,R' y),確定最短繞道路徑的輸出端口3dl)當 Cx = Rx,R' y < Cy < Ry 且 Dx 彡 R‘ x, R' y < Dy < Ry 時,或者當 Cx =R' X,R' 7<(;<民且1)!£彡艮,1 ' 7<07<民時,如果(;+0廠民-1 ' y>0,則0= {北},否則0 = {南};3d2)iCy = R' y,R' x < Cx < Rx 且 Dy 彡 Ry,R' x < Dx < Rx 時,或者當 Cy = Ry,R' x < Cx < Rx 且 Dy 彡 R' y, R' x < Dx < Rx 時,如果 Cx+Dx-Rx-R' x>0jlj0={*},否則0 = {西};滿足上述3dl)或3業)時,執行步驟5 ;其它情況下執行步驟!Be);3e)如果N = 1,根據當前節點坐標(Cx,Cy)和目的節點坐標(Dx,Dy)確定最短路徑輸出端口集合O = {o|oc(東,西,南,北,本地)}:3el)當 Cx = Dx 且 Cy > Dy 時,0 = {南},當 Cx = Dx 且 Cy < Dy 時,0 = {北},當Cy = Dy 且 Cx > Dx 時,0 = {西},當 Cy = Dy 且 Cx < Dx 時,0 = {東};執行步驟 5 ;3e2)當 Cx > Dx 且 Cy > Dy 時,0 = {西,南},當 Cx > Dx 且 Cy < Dy 時,0 = {西,北},當Cx < Dx且Cy > Dy時,0 = {東,南},當Cx < Dx且Cy < Dy時,0 = {東,北};執行步驟4。步驟4,從當前節點寄存器中讀取輸出端口對應的下一跳節點的狀態參數并計算輸出端口選擇代價。本發明中綜合節點的熱量值Ei與輸入端口可用緩存值Bi,兼顧節點的歷史狀態和當前狀態,避免由于參數單一造成節點狀態信息過時或不全面。4a)從當前節點寄存器中讀取輸出端口對應的下一跳節點在T時間內產生的熱量值Ei與輸入端口可用緩存值Bi, i = 1,2,將Ei與Bi歸一化得到節點的歸一化熱量值瓦和輸入端口的歸一化可用緩存值瓦五= £;/ΣΑ, =馬/Σ巧,i,j = 1,2;所述的熱量值Ei,由以下公式計算Ei = ((Ewrite+Eread+Esa+Est) X Nflit+Erc+Ej X Npacket,i = 1,2其中Ewite為寫緩存一次節點產生的熱量,Eread為讀緩存一次節點產生的熱量,Esa為分配交叉開關一次節點產生的熱量,Est為交叉開關傳輸一個微片節點產生的熱量,Nflit為每個分組包含的微片數,Erc為選擇路徑一次節點產生的熱量,Eva為分配虛信道一次節點產生的熱量,Npacket為節點已經處理的分組數;所述的可用緩存值Bi為輸出端口對應的下一跳節點的輸入端口當前空閑的緩存數目;4b)根據當前節點坐標(Cx,Cy)和輸出端口判斷輸出端口對應的下一跳節點坐標(Nx, Ny):當輸出端口為東時,(Nx,Ny) = (Cx+1,Cy),當輸出端口為西時,(Nx,Ny) = (Cx-I,Cy),當輸出端口為南時,(Nx, Ny) = (Cx,Cy-I),當輸出端口為北時,(Nx, Ny) = (Cx,Cy+l);4c)根據輸出端口對應的下一跳節點坐標(Nx,Ny)、故障環或偽故障環的東北角節點坐標(Rx,Ry)和西南角節點坐標(R' X,R' y),判斷下一跳節點是否屬于故障節點或高溫節點當R' !£<^<艮且『y< Ny < Ry時,下一跳節點為故障節點或高溫節點,令W3 =9999,否則,令 w3 = 1 ;4d)定義輸出端口選擇代價函數 =(ΜΧ瓦= 1,2,其中W1為歸一化熱量值瓦的權重,W2為歸一化可用緩存值瓦的權重,= 1 ;通過該代價函數計算從當前節點到目的節點的輸出端口選擇代價值Q。步驟5,確定輸出端口 如果最短路徑輸出端口集合中僅存在一個輸出端口,選擇該端口作為輸出端口 ;如果最短路徑輸出端口集合中存在兩個輸出端口,選擇輸出端口選擇代價小的作為輸出端口。
權利要求
1. 一種具有容錯功能的熱量均衡片上網絡路徑選擇方法,包括如下步驟(1)從當前節點寄存器中讀取當前節點的坐標(Cx,Cy)與當前節點類型值N;根據節點類型值判斷節點類型^N = OW,當前節點為偽故障環上的節點,當N = 2時,當前節點為故障環上節點,當N = 1時,當前節點為普通節點;所述的偽故障環為溫度超過晶體管工作范圍的高溫節點外圍由節點與鏈路組成的環路,所述的故障環為故障節點外圍由節點與鏈路組成的環路;(2)從到達當前節點的分組頭微片中讀取目的節點坐標(Dx,Dy)與該分組的優先級值P ;根據該分組優先級值判斷分組優先級當P = 0時,分組為低優先級分組,當P = 1時,分組為高優先級分組;(3)根據當前節點坐標(Cx,Cy)、目的節點坐標(Dx,Dy)、當前節點類型和分組優先級確定最短路徑輸出端口集合0 = (東,西,南,北,本地)}:3a)如果Cx = Dx且Cy = Dy,則O = {本地},執行步驟(5),否則執行步驟北);3b)如果N = 0,當P = O時,執行步驟3c);當P = 1時,執行步驟3d);3c)如果N = 2,從當前節點寄存器中讀取故障環或偽故障環的東北角節點坐標(Rx,Ry)和西南角節點坐標(R' x,R' y);根據當前節點坐標(Cx,Cy)、目的節點坐標(Dx,Dy)、故障環或偽故障環的東北角節點坐標( , Ry)和西南角節點坐標(R' X,R' y)確定最短繞道路徑的輸出端口3cl)當 Cx = Rx,R' y < Cy < 民且^ 彡 R' X,R' y < Dy < Ry 時,或者當 Cx = R' x,R' y < Cy < Ry 且 Dx 彡 Rx,R' y < Dy < Ry 時,如果 Cy+Dy-Ry-R' y 彡 0,則 0 = {北},否則0= {南};3c2)iCy = R' y,R' x < Cx < Rx 且 Dy 彡 Ry,R' x < Dx < Rx 時,或者當 Cy = Ry,R' x< Cx < Rx 且 Dy 彡 R' y,R' x < Dx < Rx 時,如果 Cx+Dx-Rx-R' x 彡 0,則 0 = {東},否則 0={西};滿足上述3cl)或3d)時,執行步驟(5);其它情況下執行步驟3d);3d)如果N = 1,根據當前節點坐標(Cx,Cy)和目的節點坐標(Dx,Dy)確定最短路徑輸出端口集合O = {o|o c (東,西,南,北,本地)}:3dl)當 Cx = Dx 且 Cy > Dy 時,0= {南},當(;=0!£且(;<07時,0= {北},當(;=Dy 且 Cx > Dx 時,0 = {西},當 Cy = Dy 且 Cx < Dx 時,0 = {東};執行步驟(5);3d2)當 Cx > Dx 且 Cy > Dy 時,0 = {西,南},當 Cx > Dx 且 Cy < Dy 時,0 = {西,北},當Cx < Dx且Cy > Dy時,0 = {東,南},當Cx < Dx且Cy < Dy時,0 = {東,北};執行步驟⑷;(4)從當前節點寄存器中讀取輸出端口對應的下一跳節點的狀態參數并計算輸出端口選擇代價4a)從當前節點寄存器中讀取輸出端口對應的下一跳節點在T時間內產生的熱量值Ei與輸入端口可用緩存值Bi, i = 1,2,將Ei與Bi歸一化得到節點的歸一化熱量值瓦和輸入端口的歸一化可用緩存值瓦五= £;/ΣΑ, =馬/Σ巧,i,j = 1,2;4b)根據當前節點坐標(Cx,Cy)和輸出端口判斷輸出端口對應的下一跳節點坐標(Nx,Ny)當輸出端口為東時,(Nx, Ny) = (Cx+l,Cy),當輸出端口為西時,(Nx, Ny) = (Cx-l,Cy),當輸出端口為南時,(Nx, Ny) = (Cx,Cy-I),當輸出端口為北時,(Nx, Ny) = (Cx,Cy+l);4c)根據輸出端口對應的下一跳節點坐標(Nx,Ny)、故障環或偽故障環的東北角節點坐標(Rx,Ry)和西南角節點坐標(R' X,R' y),判斷下一跳節點是否屬于故障節點或高溫節點當R' x < Nx < Rx且R' y < Ny < Ry時,下一跳節點為故障節點或高溫節點,令W3 =.9999,否則,令 w3 = 1 ;4d)定義輸出端口選擇代價函數 =O^1X瓦-W2i = 1,2,其中W1為歸一化熱量值瓦的權重,W2為歸一化可用緩存值瓦的權重,= 1 ;通過該代價函數計算從當前節點到目的節點的輸出端口選擇代價值Ci ;(5)確定輸出端口 如果最短路徑輸出端口集合中僅存在一個輸出端口,選擇該端口作為輸出端口 ;如果最短路徑輸出端口集合中存在兩個輸出端口,選擇輸出端口選擇代價小的作為輸出端口。
2.根據權利1所述的具有容錯功能的熱量均衡片上網絡路徑選擇方法,其中步驟如)所述的熱量值Ei,由以下公式計算Ei = ((Ewrite+Eread+Esa+Est) XNflit+Erc+Eva) XNpacket, i = 1,2其中Ewite為寫緩存一次節點產生的熱量,E_d為讀緩存一次節點產生的熱量,Esa為分配交叉開關一次節點產生的熱量,Est為交叉開關傳輸一個微片節點產生的熱量,Nflit為每個分組包含的微片數,Erc為選擇路徑一次節點產生的熱量,Eva為分配虛信道一次節點產生的熱量,Npacket為節點已經處理的分組數。
3.根據權利1所述的具有容錯功能的熱量均衡片上網絡路徑選擇方法,其中步驟如)所述的可用緩存值Bi為輸出端口對應的下一跳節點的輸入端口當前空閑的緩存數目。
全文摘要
本發明公開了一種具有容錯功能的熱量均衡片上網絡路徑選擇方法,主要解決現有技術依賴路由表,不具備容錯功能和無法保證分組時延性能的問題。其實現步驟為(1)讀取當前節點地址信息并判斷當前節點類型;(2)讀取分組目的節點地址信息并判斷分組優先級;(3)根據節點地址信息、節點類型與分組優先級確定最短路徑路由輸出端口集合(4)定義輸出端口選擇代價函數i=1,2,讀取代價函數計算參數并計算輸出端口選擇代價;(5)確定輸出端口。本發明具有提高片上網絡熱量均衡、可靠性與使用壽命的優點,能夠有效的滿足實際應用對片上網絡性能的要求。
文檔編號H04L12/56GK102387077SQ201110318458
公開日2012年3月21日 申請日期2011年10月19日 優先權日2011年10月19日
發明者楊銀堂, 王軍輝, 王琨, 顧華璽 申請人:西安電子科技大學