具有網(wǎng)絡(luò)編碼功能的片上網(wǎng)絡(luò)及其網(wǎng)絡(luò)拓?fù)浜吐酚伤惴?br>
【專(zhuān)利摘要】本申請(qǐng)公開(kāi)了一種具有網(wǎng)絡(luò)編碼功能的片上網(wǎng)絡(luò)路由器及其適用的網(wǎng)絡(luò)拓?fù)浜吐酚伤惴?,編碼子模塊對(duì)接收到的多個(gè)分組數(shù)據(jù)進(jìn)行編碼,編碼后的數(shù)據(jù)由中間路由節(jié)點(diǎn)以多播的方式進(jìn)行轉(zhuǎn)發(fā),解碼子模塊根據(jù)已知信息對(duì)接收到的數(shù)據(jù)進(jìn)行解碼,還原出原始數(shù)據(jù);網(wǎng)絡(luò)編碼模塊實(shí)現(xiàn)了分組數(shù)據(jù)的壓縮,進(jìn)而增加了網(wǎng)絡(luò)所傳數(shù)據(jù)攜帶的信息量,解決了如何達(dá)到網(wǎng)絡(luò)傳輸容量極限問(wèn)題,以及便于網(wǎng)絡(luò)規(guī)模擴(kuò)展,且網(wǎng)絡(luò)編碼功能可以降低網(wǎng)絡(luò)負(fù)載提高網(wǎng)絡(luò)性能。
【專(zhuān)利說(shuō)明】具有網(wǎng)絡(luò)編碼功能的片上網(wǎng)絡(luò)及其網(wǎng)絡(luò)拓?fù)浜吐酚伤惴?br>
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及通信【技術(shù)領(lǐng)域】,具體涉及用于科研范圍的具有網(wǎng)絡(luò)編碼功能的片上網(wǎng) 絡(luò)及其網(wǎng)絡(luò)拓?fù)浜吐酚伤惴ā?br>
【背景技術(shù)】
[0002] 隨著集成電路工藝的發(fā)展,總線結(jié)構(gòu)的片上系統(tǒng)的缺點(diǎn)越發(fā)突出,為了克服其不 足,片上網(wǎng)絡(luò)(NoC)應(yīng)運(yùn)而生。片上網(wǎng)絡(luò)采用合理的拓?fù)浣Y(jié)構(gòu)并引入路由交換理論,因此其 并行通信的特點(diǎn)可以滿足未來(lái)發(fā)展的需求。例如,2012年Intel公司最新的片上網(wǎng)絡(luò)處理 器Xeon Phi 5110P采用22nm工藝的3D晶體管集成了 60個(gè)IP核,工作頻率高達(dá)1.053GHz, 并獲得高達(dá)1. OllTFlops的雙精度峰值性能,成為高性能計(jì)算的新基礎(chǔ)。因此,開(kāi)展片上網(wǎng) 絡(luò)基礎(chǔ)理論及關(guān)鍵技術(shù)的研究是具有理論意義和實(shí)用價(jià)值的。
[0003] 隨著應(yīng)用的發(fā)展,多播通信在片上網(wǎng)絡(luò)的應(yīng)用越來(lái)越廣。例如,在分布式共享緩存 系統(tǒng)中,為了維持各緩存中數(shù)據(jù)的一致性需要廣播信令,這種情況下多播通信的比例高達(dá) 12. 4%。然而,傳統(tǒng)的片上網(wǎng)絡(luò)設(shè)計(jì)當(dāng)中往往只考慮單播通信,如果直接將傳統(tǒng)的單播片上 網(wǎng)絡(luò)運(yùn)用于多播通信,會(huì)使得網(wǎng)絡(luò)性能急劇下降。片上資源有限,多播業(yè)務(wù)的加入更容易導(dǎo) 致阻塞,造成網(wǎng)絡(luò)流量不均衡、平均鏈路利用率低,進(jìn)而降低網(wǎng)絡(luò)并行性,因此,對(duì)于從多播 角度出發(fā)如何提高片上通信系統(tǒng)的性能是一個(gè)挑戰(zhàn)。因此,研究片上網(wǎng)絡(luò)多播技術(shù)解決由 于多播業(yè)務(wù)導(dǎo)致的低并行性等問(wèn)題成為當(dāng)前業(yè)界的研究熱點(diǎn)。
[0004] 多種多播分組可能同時(shí)到達(dá)一個(gè)中間路由器,由于普通的路由節(jié)點(diǎn)每次只能轉(zhuǎn)發(fā) 一種多播分組,其他多播分組需要排隊(duì)等待,降低了網(wǎng)絡(luò)的吞吐量,并且無(wú)法實(shí)現(xiàn)由"最大 流最小割"定理決定的最大傳輸容量。
【發(fā)明內(nèi)容】
[0005] 針對(duì)多播分組通信在片上網(wǎng)絡(luò)應(yīng)用中,如何達(dá)到片上網(wǎng)絡(luò)的最大傳輸容量的問(wèn) 題,本發(fā)明提出了一種具有網(wǎng)絡(luò)編碼功能的片上網(wǎng)絡(luò),以及其網(wǎng)絡(luò)拓?fù)浜吐酚伤惴ā?br>
[0006] 根據(jù)本申請(qǐng)的第一方面,本申請(qǐng)?zhí)峁┮环N具有網(wǎng)絡(luò)編碼功能的片上網(wǎng)絡(luò),包括上 子路由器和下子路由器,上子路由器用于處理網(wǎng)絡(luò)中向上傳輸?shù)姆纸M數(shù)據(jù),下子路由器用 于處理網(wǎng)絡(luò)中向下傳輸?shù)姆纸M數(shù)據(jù);上子路由器和下子路由器分別包括輸入模塊、開(kāi)關(guān)分 配模塊、交叉開(kāi)關(guān)模塊和輸出模塊;開(kāi)關(guān)分配模塊和交叉開(kāi)關(guān)模塊的輸出端分別與輸出模 塊信號(hào)連接;上子路由器和下子路由器分別還包括網(wǎng)絡(luò)編碼模塊; 網(wǎng)絡(luò)編碼模塊的輸入端與輸入模塊的輸出端信號(hào)連接,網(wǎng)絡(luò)編碼模塊的輸出端分別與 開(kāi)關(guān)分配模塊的輸入端和交叉開(kāi)關(guān)模塊的輸入端信號(hào)連接; 網(wǎng)絡(luò)編碼模塊包括編碼子模塊和解碼子模塊,編碼子模塊用于對(duì)分組數(shù)據(jù)做編碼處 理,解碼子模塊用于對(duì)編碼的分組數(shù)據(jù)做解碼處理。
[0007] 根據(jù)本申請(qǐng)的第二方面,本申請(qǐng)?zhí)峁┮环N適用于上述片上網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)?,包?上子網(wǎng)和下子網(wǎng),上子網(wǎng)由所有上子路由器相互連接組成,下子網(wǎng)由所有下子路由器相互 連接組成;上行子網(wǎng)設(shè)有上子縱向鏈路和上子橫向鏈路,下子網(wǎng)設(shè)有下子縱向鏈路和下子 橫向鏈路;上子縱向鏈路由下向上單向傳輸,下子縱向鏈路由上向下單向傳輸,上子橫向鏈 路和下子橫向鏈路分別是雙向傳輸。
[0008] 根據(jù)本申請(qǐng)的第三方面,本申請(qǐng)?zhí)峁┮环N應(yīng)用于上述網(wǎng)絡(luò)拓?fù)涞穆酚伤惴ǎ献?縱向鏈路和下子縱向鏈路分別設(shè)有路由器,并分別形成Y維路由,上子橫向鏈路和下子橫 向鏈路分別設(shè)有路由器,并分別形成X維路由; 若分組數(shù)據(jù)的源路由與目的路由不在同一維上,則分組數(shù)據(jù)在結(jié)束X維路由的節(jié)點(diǎn)的 前一節(jié)點(diǎn)轉(zhuǎn)向Y維路由,并且在此之前可以根據(jù)相鄰下游節(jié)點(diǎn)虛信道數(shù)目自適應(yīng)路由;Y維 路由結(jié)束后轉(zhuǎn)向X維完成X維路由;若分組數(shù)據(jù)的源路由與目的路由在同一維上,則無(wú)需轉(zhuǎn) 向。
[0009] 本申請(qǐng)的有益效果是:本申請(qǐng)?zhí)峁┑钠暇W(wǎng)絡(luò)具有編解碼功能,編碼子模塊對(duì)接 收到的多個(gè)分組數(shù)據(jù)進(jìn)行編碼,編碼后的數(shù)據(jù)由中間路由節(jié)點(diǎn)以多播的方式進(jìn)行轉(zhuǎn)發(fā),目 的節(jié)點(diǎn)接收到編碼后的數(shù)據(jù),解碼子模塊根據(jù)已知信息對(duì)接收到的數(shù)據(jù)進(jìn)行解碼,還原出 原始數(shù)據(jù);網(wǎng)絡(luò)編碼模塊實(shí)現(xiàn)了分組數(shù)據(jù)的壓縮,進(jìn)而增加了網(wǎng)絡(luò)所傳數(shù)據(jù)攜帶的信息量, 解決了如何達(dá)到網(wǎng)絡(luò)傳輸容量極限問(wèn)題;除此之外,在特定的應(yīng)用背景下,網(wǎng)絡(luò)編碼技術(shù)也 可以提升網(wǎng)絡(luò)吞吐量,均衡網(wǎng)絡(luò)負(fù)載,提高帶寬利用率、提高整體性能等。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0010] 圖1為具有網(wǎng)絡(luò)編碼功能的片上網(wǎng)絡(luò)的上子路由器結(jié)構(gòu)圖; 圖2為適用于3x3 mesh的分組數(shù)據(jù)格式示意圖; 圖3為網(wǎng)絡(luò)編碼模塊的編碼子模塊結(jié)構(gòu)圖; 圖4為網(wǎng)絡(luò)編碼模塊的解碼子模塊結(jié)構(gòu)圖; 圖5為適用于本發(fā)明路由器的網(wǎng)絡(luò)拓?fù)鋱D(以3x3規(guī)模為例)。
【具體實(shí)施方式】
[0011] 下面通過(guò)【具體實(shí)施方式】結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
[0012] 本例提供一種具有編碼功能的片上網(wǎng)絡(luò),包括上子路由器和下子路由器,上子路 由器用于處理網(wǎng)絡(luò)中向上傳輸?shù)姆纸M數(shù)據(jù),下子路由器用于處理網(wǎng)絡(luò)中向下傳輸?shù)姆纸M數(shù) 據(jù);本例的上子路由器包括輸入模塊、網(wǎng)絡(luò)編碼模塊、開(kāi)關(guān)分配模塊、交叉開(kāi)關(guān)模塊和輸出 模塊;開(kāi)關(guān)分配模塊和交叉開(kāi)關(guān)模塊的輸出端分別與輸出模塊信號(hào)連接,網(wǎng)絡(luò)編碼模塊的 輸入端與輸入模塊的輸出端信號(hào)連接,網(wǎng)絡(luò)編碼模塊的輸出端分別與開(kāi)關(guān)分配模塊的輸入 端和交叉開(kāi)關(guān)模塊的輸入端信號(hào)連接。
[0013] 上子路由器的具體結(jié)構(gòu)如圖1所示,輸入模塊包括上子西輸入端口 11、上子?xùn)|輸 入端口 12、上子南輸入端口 13和上子本地輸入端口 14 ;輸出模塊5包括上子西輸出端口 51、上子北輸出端口 52、上子?xùn)|輸出端口 53和上子本地輸出端口;進(jìn)一步,上子本地輸出端 口包括上子本地西輸出端口 541、上子本地東輸出端口 542、上子本地南輸出端口 543和上 子解碼輸出端口 544。
[0014] 本例的上子路由器與普通片上網(wǎng)絡(luò)路由器相比結(jié)構(gòu)基本相似,但不同之處在于包 括網(wǎng)絡(luò)編碼模塊,網(wǎng)絡(luò)編碼模塊用于對(duì)輸入模塊的分組數(shù)據(jù)做編解碼處理,然后,同經(jīng)過(guò)普 通路由器一樣經(jīng)過(guò)各功能模塊完成分組數(shù)據(jù)的轉(zhuǎn)發(fā);另外,本例的上子路由器將虛信道分 配模塊與輸出模塊合并,分組數(shù)據(jù)在路由器中先經(jīng)過(guò)開(kāi)關(guān)分配模塊再分配下一節(jié)點(diǎn)虛信 道。
[0015] 本例的下子路由器與上子路由器結(jié)構(gòu)相同,也包括輸入模塊、網(wǎng)絡(luò)編碼模塊、開(kāi)關(guān) 分配模塊、交叉開(kāi)關(guān)模塊和輸出模塊,但是,下子路由器的輸入模塊的端口方向不同于上子 路由器的輸入模塊的端口方向,以及下子路由器的輸出模塊的端口方向不同于上子路由器 的輸出模塊的端口方向,具體的:本例的下子路由器的輸入模塊包括下子西輸入端口、下子 東輸入端口、下子北輸入端口和下子本地輸入端口;下子路由器的輸出模塊包括下子西輸 出端口、下子?xùn)|輸出端口、下子南輸出端口和下子本地輸出端口;進(jìn)一步,下子本地輸出端 口包括下子本地西輸出端口、下子本地東輸出端口、下子本地北輸出端口和下子解碼輸出 端口。
[0016] 本例中,上子網(wǎng)或下子網(wǎng)的源節(jié)點(diǎn)產(chǎn)生分組,源節(jié)點(diǎn)生成的分組包括頭微片、體微 片和尾微片;本例中,頭微片、體微片和尾微片都包括微片類(lèi)型、虛信道號(hào)、編碼標(biāo)記符和分 組唯一標(biāo)識(shí)符,在其他實(shí)施例中,體微片和尾微片可不攜帶編碼標(biāo)記符和分組唯一標(biāo)識(shí)符; 其中,分組唯一標(biāo)識(shí)符由4bit源地址和3bit序列號(hào)組成,序列號(hào)為源節(jié)點(diǎn)生成的分組編 號(hào),當(dāng)編號(hào)達(dá)到最大值時(shí)自動(dòng)歸零。進(jìn)一步,頭微片還包括分組數(shù)據(jù)的目的地址和分組數(shù)據(jù) 的分支的目的地址或已經(jīng)到達(dá)的目的地址以及空的解碼編號(hào)和頭微片序號(hào)。由于源節(jié)點(diǎn)生 成的分組不是編碼分組,所以解碼編號(hào)設(shè)定為〇,即設(shè)置空的解碼編號(hào),編碼后在編碼模塊 正確填充;分組包括至少兩個(gè)頭微片,一個(gè)頭微片攜帶解碼編號(hào),另一個(gè)頭微片攜帶目的地 址,具體的,如分組擁有多個(gè)頭微片(如圖2所示,該圖適用于3x3 mesh),前幾個(gè)頭微片攜 帶目的地址信息,后幾個(gè)頭微片攜帶解碼編號(hào),每個(gè)頭微片攜帶自己的頭微片序號(hào)。目的地 址使用bi-string編碼,每一位代表一個(gè)節(jié)點(diǎn)。每個(gè)分組擁有一個(gè)唯一標(biāo)識(shí)符。非編碼分 組的標(biāo)識(shí)符由源地址和該分組在源地址的序號(hào)組成,編碼分組的標(biāo)識(shí)符由生成該編碼分組 的編碼路由器地址和該路由器生成的編碼分組的序號(hào)組成。在3x3 mesh網(wǎng)絡(luò)中,分組的標(biāo) 識(shí)符由4bit地址和3bit (可根據(jù)網(wǎng)絡(luò)最高負(fù)載調(diào)整位寬)序號(hào)共7bit組成,分組中剩余 的就是攜帶的負(fù)載信息。
[0017] 網(wǎng)絡(luò)編碼模塊包括編碼子模塊21和解碼子模塊22,編碼子模塊21負(fù)責(zé)網(wǎng)絡(luò)編解 碼功能中的編碼功能。
[0018] 如圖3所示,編碼子模塊21包括編碼仲裁模塊211、編碼緩存分配模塊212、生成 讀信號(hào)模塊213、編碼起止控制模塊214、編碼計(jì)算模塊215、重組編碼微片模塊216、編碼 緩存217、生成編碼分組標(biāo)識(shí)符模塊218、狀態(tài)機(jī)讀編碼數(shù)據(jù)219、輸出編碼數(shù)據(jù)狀態(tài)機(jī)模塊 2110、生成編碼頭微片模塊2111、非編碼分組請(qǐng)求開(kāi)關(guān)分配狀態(tài)機(jī)模塊2112和編碼分組請(qǐng) 求開(kāi)關(guān)分配模塊2113。本例中,分組必須滿足以下條件才能被編碼:1.分組的目的地址 不能與編碼路由器坐標(biāo)有相同的Y坐標(biāo);2.分組是多播分組且是一個(gè)分支;3.兩分組彼 此的目的地址存在這樣的關(guān)系,分組的目的地址是另一分組的分支目的地址的子集。
[0019] 編碼子模塊21的工作原理是:編碼仲裁模塊211判斷輸入模塊1端口的分組數(shù) 據(jù)是否滿足編碼條件,若一組滿足編碼條件的分組大于兩個(gè)還要輪詢(xún)仲裁出兩個(gè)分組做編 碼運(yùn)算,但可以同時(shí)有多對(duì)(每一對(duì)之間沒(méi)有任何關(guān)聯(lián))分組做編碼運(yùn)算。仲裁失敗的分組 跳過(guò)編碼過(guò)程,與分組經(jīng)過(guò)普通路由器一樣輸出本節(jié)點(diǎn)。若同時(shí)滿足編碼條件的分組多于 兩對(duì),編碼緩存分配模塊212也要做仲裁(輪詢(xún)仲裁)處理,給其中的兩對(duì)分組分配編碼緩 存217,因?yàn)槁酚善髦械木彺鏀?shù)目為2。此時(shí)仲裁失敗的分組會(huì)繼續(xù)等待編碼緩存分配模塊 212為其分配合適的編碼緩存。
[0020] 分配到合適的編碼緩存后,編碼子模塊21就需要準(zhǔn)備讀取輸入緩存中的分組做 編碼處理。分組的讀取需要生成讀信號(hào)模塊213的讀信號(hào)。讀信號(hào)的產(chǎn)生要有嚴(yán)格的控制, 防止輸入緩存讀空或編碼緩存滿而導(dǎo)致寫(xiě)溢出。而且參與編碼的兩分組長(zhǎng)度不相等,當(dāng)短 分組結(jié)束之后其占用的緩存會(huì)被釋放并存入新的分組,但此時(shí)長(zhǎng)分組還沒(méi)有結(jié)束,編碼計(jì) 算繼續(xù),因此此時(shí)就不能再讀取短分組曾占用的緩存的數(shù)據(jù)直到此次編碼結(jié)束,長(zhǎng)分組繼 續(xù)讀取。
[0021] 上述條件滿足時(shí)便會(huì)產(chǎn)生讀信號(hào),分組輸出輸入緩存并輸入編碼子模塊21。分組 在編碼計(jì)算模塊215完成編碼運(yùn)算(異或)。分組的所有微片按順序?qū)R作異或處理生成編 碼分組。生成的編碼分組微片類(lèi)型除最后一個(gè)微片是尾微片外其余微片都是體微片。微片 類(lèi)型在重組編碼微片模塊216中設(shè)定。該模塊還會(huì)更新編碼分組標(biāo)識(shí)符。編碼分組標(biāo)識(shí)符 由生成編碼分組標(biāo)識(shí)符模塊218生成。由于生成的編碼分組屬于新的分組,即該節(jié)點(diǎn)作為 源節(jié)點(diǎn)產(chǎn)生了一個(gè)新的分組,所以需要為編碼分組設(shè)定分組標(biāo)識(shí)符(7bit)。分組標(biāo)識(shí)符由 本地地址(4bit)和當(dāng)前路由器產(chǎn)生的編碼分組序列號(hào)(3bit)組成。
[0022] 此時(shí)的編碼分組可以存入編碼緩存217中,同普通分組一樣等待輸出本節(jié)點(diǎn)。編 碼分組存入編碼緩存217后即刻由編碼分組請(qǐng)求開(kāi)關(guān)分配模塊2113生成開(kāi)關(guān)分配請(qǐng)求信 號(hào),請(qǐng)求交叉開(kāi)關(guān)的使用權(quán)限。編碼分組獲得交叉開(kāi)關(guān)的使用權(quán)限后就可以輸出編碼緩存 發(fā)送到下一節(jié)點(diǎn)。但是在編碼緩存中的編碼分組的體微片發(fā)送前,首先要發(fā)送編碼分組的 頭微片。
[0023] 編碼分組的頭微片由生成編碼頭微片模塊2111產(chǎn)生。頭微片中的信息與普通分 組頭微片中的信息種類(lèi)相同。其中編碼分組的目的地址為參加編碼的兩分組的目的地址的 并集,編碼分組標(biāo)記設(shè)定為1,微片類(lèi)型設(shè)定為頭微片,其余信息設(shè)定為〇但在其他模塊更 新。編碼分組的頭微片不會(huì)存入編碼緩存,只是寄存在寄存器中等待輸出。
[0024] 編碼分組的各類(lèi)型微片按順序輸出,其次序?yàn)轭^微片、體微片、尾微片。輸出的順 序由輸出編碼數(shù)據(jù)狀態(tài)機(jī)模塊2110控制。
[0025] 另外,上述沒(méi)有參加編碼的分組跳過(guò)編碼過(guò)程輸出路由器。非編碼分組請(qǐng)求開(kāi)關(guān) 分配狀態(tài)機(jī)模塊2112等待編碼仲裁結(jié)束后為這些未編碼的分組生成開(kāi)關(guān)分配請(qǐng)求信號(hào)。
[0026] 上述過(guò)程中的編碼仲裁、編碼緩存分配、生成讀信號(hào)、寫(xiě)緩存和重組編碼微片操作 還需要編碼起止信號(hào)的控制。編碼起止控制模塊214會(huì)生成編碼開(kāi)始、編碼結(jié)束和短分組 退出編碼運(yùn)算標(biāo)識(shí)三種信號(hào)。編碼仲裁和編碼緩存分配則使用編碼結(jié)束信號(hào)在編碼結(jié)束時(shí) 將所有的信號(hào)復(fù)位。寫(xiě)緩存則需要編碼開(kāi)始和編碼結(jié)束信號(hào)控制編碼分組寫(xiě)入編碼緩存。 重組編碼微片使用編碼結(jié)束信號(hào)判斷編碼分組的尾微片,為其設(shè)置正確的微片類(lèi)型。生成 讀信號(hào)模塊則需要短分組退出編碼運(yùn)算標(biāo)識(shí),防止誤讀短分組曾占用的緩存中的新分組。
[0027] 到此時(shí),編碼子模塊21已經(jīng)執(zhí)行完所有編碼操作。編碼分組按照?qǐng)D1中的結(jié)構(gòu)順 序從網(wǎng)絡(luò)編碼模塊的編碼子模塊21輸出到下一節(jié)點(diǎn),其路由方式與普通路由器相似。唯一 不同在于虛信道分配設(shè)置在輸出端口,分組在輸出端口更新虛信道號(hào)。因?yàn)樘撔诺婪峙浞?置在輸出端口所以分組離開(kāi)輸入緩存或編解碼緩存時(shí)必須保證能分配到空閑的虛信道。
[0028] 當(dāng)編碼分組經(jīng)過(guò)中間路由器的轉(zhuǎn)發(fā)到達(dá)目的地址時(shí),編碼分組首先存入路由器的 輸入緩存中,路由計(jì)算模塊同時(shí)計(jì)算出輸出端口。當(dāng)路由計(jì)算模塊發(fā)現(xiàn)分組已經(jīng)到達(dá)目的 地址時(shí)即刻檢測(cè)該分組是否為編碼分組。當(dāng)分組不是編碼分組時(shí),跳過(guò)網(wǎng)絡(luò)編碼模塊,與通 過(guò)普通路由器一樣輸出網(wǎng)絡(luò)。當(dāng)分組是編碼分組時(shí)生成解碼請(qǐng)求,請(qǐng)求圖1中網(wǎng)絡(luò)編碼模 塊2的解碼子模塊22為此編碼分組解碼。
[0029] 圖4為網(wǎng)絡(luò)編碼模塊的解碼子模塊22。該模塊負(fù)責(zé)網(wǎng)絡(luò)編解碼功能中的解碼功 能。
[0030] 解碼子模塊22包括查找解碼分組模塊221、解碼緩存模塊222、生成讀信號(hào)模塊 223、生成解碼屏蔽信號(hào)模塊224、解碼起止控制模塊225、刪除編碼分組頭微片模塊226、解 碼模塊227、解碼緩存模塊228和請(qǐng)求開(kāi)關(guān)分配模塊229。
[0031 ] 解碼子模塊22的工作原理是:查找解碼分組模塊221接收到解碼請(qǐng)求后根據(jù)編碼 分組攜帶的解碼編號(hào)和輸入緩存中非編碼分組的標(biāo)識(shí)符查找解碼分組,若分組標(biāo)識(shí)符與解 碼編號(hào)相符則判定該分組為解碼分組。分組標(biāo)識(shí)符和解碼編號(hào)在各分組存入輸入緩存時(shí)由 輸入模塊譯碼頭微片產(chǎn)生。由于解碼分組只有一個(gè),所以這里不需要仲裁。
[0032] 查找到解碼分組后,由生成解碼屏蔽信號(hào)模塊224生成屏蔽信號(hào)。該信號(hào)復(fù)位輸 出端口信息和交叉開(kāi)關(guān)分配模塊生成的讀信號(hào),防止解碼分組等待超時(shí)被輸出路由器。由 于路由器的編解碼功能是分布式處理,所以解碼分組不能預(yù)知其為解碼分組,因此需要到 達(dá)目的節(jié)點(diǎn)的非編碼分組等待一段時(shí)間,等待編碼分組的到來(lái),若超時(shí)則判定其為非解碼 分組并將其輸出網(wǎng)絡(luò)。該定時(shí)信號(hào)由路由計(jì)算模塊生成,并在輸入端口完成計(jì)時(shí)任務(wù)。
[0033] 查找到解碼分組后編碼分組就請(qǐng)求解碼緩存分配模塊222為其分配合適的解碼 緩存。解碼緩存每次應(yīng)分配兩個(gè)分別存儲(chǔ)解碼分組和解碼后的分組。
[0034] 解碼緩存分配的結(jié)果在生成讀信號(hào)模塊223轉(zhuǎn)化成讀信號(hào),讀取輸入緩存中的解 碼分組和編碼分組。該讀信號(hào)也應(yīng)該有嚴(yán)格的流控信號(hào)控制,防止輸入緩存讀空和解碼緩 存寫(xiě)溢出。同編碼類(lèi)似,解碼分組為短分組時(shí),該分組會(huì)提前退出解碼運(yùn)算。但解碼運(yùn)算此 時(shí)沒(méi)有結(jié)束,所以解碼分組曾占用的緩存會(huì)被新的分組占用。此時(shí),應(yīng)防止新的分組被讀取 參加解碼運(yùn)算。這一點(diǎn)需要解碼起止控制模塊225的調(diào)控。
[0035] 讀進(jìn)來(lái)的分組在解碼前需要先經(jīng)過(guò)刪除編碼分組頭微片模塊226剔除編碼分組 的頭微片。該頭微片是編碼結(jié)束時(shí)插入的路由信息微片,與編碼運(yùn)算無(wú)關(guān),因此與解碼運(yùn)算 亦無(wú)關(guān),應(yīng)刪除。
[0036] 刪除頭微片的編碼分組輸入解碼模塊227與解碼分組完成解碼任務(wù)。由于編碼 時(shí),在編碼運(yùn)算結(jié)束時(shí)對(duì)微片類(lèi)型做了調(diào)整,所以解碼后的微片類(lèi)型也是錯(cuò)誤的需要調(diào)整。 與解碼運(yùn)算同時(shí)完成。
[0037] 解碼后的分組與解碼分組分別存入各自的解碼緩存228。解碼緩存存入數(shù)據(jù)后立 刻使能請(qǐng)求開(kāi)關(guān)分配模塊229生成開(kāi)關(guān)分配請(qǐng)求信號(hào)。
[0038] 接下來(lái)的操作與普通路由器類(lèi)似,直到分組通過(guò)專(zhuān)用的解碼輸出端口輸出節(jié)點(diǎn)。 由于有專(zhuān)用的解碼輸出端口所以開(kāi)關(guān)分配模塊不對(duì)解碼相關(guān)的分組仲裁。
[0039] 基于上述的片上網(wǎng)絡(luò)路由器,本例還提供一種適用于該片上網(wǎng)絡(luò)路由器的網(wǎng)絡(luò)拓 撲。
[0040] 圖5為適用于該片上網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)鋱D,包括上子網(wǎng)和下子網(wǎng),上子網(wǎng)由所有上 子路由器相互連接組成,下子網(wǎng)由所有下子路由器相互連接組成;上行子網(wǎng)設(shè)有上子縱向 鏈路和上子橫向鏈路,下子網(wǎng)設(shè)有下子縱向鏈路和下子橫向鏈路;上子縱向鏈路由下向上 單向傳輸,下子縱向鏈路由上向下單向傳輸,上子橫向鏈路和所述下子橫向鏈路分別是雙 向傳輸;圖5中(1)為網(wǎng)絡(luò)拓?fù)涞恼w結(jié)構(gòu)圖,(2)為下子網(wǎng)結(jié)構(gòu)圖,(3)為上子網(wǎng)結(jié)構(gòu)圖。
[0041] 上子網(wǎng)和下子網(wǎng)均為二維網(wǎng)狀網(wǎng)絡(luò),且上子網(wǎng)通過(guò)分組數(shù)據(jù)的形式傳輸上子路由 器的數(shù)據(jù),下子網(wǎng)通過(guò)分組數(shù)據(jù)的形式傳輸下子路由器的數(shù)據(jù),上下子網(wǎng)拓?fù)渚唧w為3x3 mesh。上下子網(wǎng)縱向鏈路各擁有4個(gè)虛信道,橫向鏈路各擁有2個(gè)虛信道。上下子網(wǎng)本地 鏈路都設(shè)定為雙向,各子網(wǎng)各擁有一個(gè)本地輸入鏈路,各鏈路擁有2個(gè)虛信道,各子網(wǎng)本地 輸出鏈路對(duì)應(yīng)其所在子網(wǎng)非本地輸入端口各一個(gè),本地輸出端口虛信道數(shù)目與其所對(duì)應(yīng)的 輸入端口虛信道數(shù)目相等。
[0042] 本例的網(wǎng)絡(luò)拓?fù)涞逆溌分械穆酚善鳎?-1)的坐標(biāo)使用數(shù)學(xué)坐標(biāo)形式,S卩(X,y)標(biāo) 記形式。坐標(biāo)下面的數(shù)字〇、1分別代表其屬于下子網(wǎng)或上子網(wǎng),所以圖(2)、圖(3)中坐標(biāo) 相同的路由器由于其屬于不同的子網(wǎng),所以路由器也不相同。IP核(2-2)亦有坐標(biāo),但沒(méi)有 上下子網(wǎng)標(biāo)號(hào),所以圖(2)、圖(3)中坐標(biāo)相同的IP核即為同一個(gè)IP核。圖(2)、圖(3)中 的鏈路(2-3)、(2-4)雖然都為雙向鏈路,但屬于不同的子網(wǎng)即為不同的鏈路,其他雙向鏈路 亦是如此。
[0043] 為防止死鎖發(fā)生,分組在網(wǎng)絡(luò)中不能跨子網(wǎng)傳輸。分組注入網(wǎng)絡(luò)時(shí)根據(jù)目的節(jié)點(diǎn) 選擇其占用的子網(wǎng)。
[0044] 基于上述的網(wǎng)絡(luò)拓?fù)?,本例還提供一種適用于該網(wǎng)絡(luò)拓?fù)涞穆酚伤惴ā?br>
[0045] 上子縱向鏈路的路由器和下子縱向鏈路的路由器分別形成Y維路由,上子橫向鏈 路的路由器和下子橫向鏈路的路由器分別形成X維路由;本例的路由算法是基于X-Y維序 路由的改進(jìn)路由算法。若分組數(shù)據(jù)的源路由與目的路由不在同一維上,則分組數(shù)據(jù)在結(jié)束X 維路由的節(jié)點(diǎn)的前一節(jié)點(diǎn)轉(zhuǎn)向Y維路由,并且在此之前可以根據(jù)相鄰下游節(jié)點(diǎn)虛信道數(shù)目 自適應(yīng)路由(不能逆向路由);Y維路由結(jié)束后轉(zhuǎn)向X維完成X維路由。若分組數(shù)據(jù)的源路 由與目的路由在同一維上則無(wú)需轉(zhuǎn)向。
[0046] 按照上述路由算法,分組的路由路徑是一個(gè)Ζ字形,所以同時(shí)存在Χ-Υ和Υ-Χ轉(zhuǎn) 向,在普通的mesh網(wǎng)絡(luò)中存在死鎖環(huán),產(chǎn)生死鎖,但是此路由算法應(yīng)用于本發(fā)明的網(wǎng)絡(luò)拓 撲時(shí)不存在死鎖環(huán),因?yàn)楸就負(fù)涫褂蒙舷伦泳W(wǎng),縱向鏈路都為單向鏈路并且分組不能夸子 網(wǎng)傳輸。
[0047] 為更詳細(xì)的描述本發(fā)明,下面通過(guò)一個(gè)具體的實(shí)例說(shuō)明本發(fā)明,該實(shí)例基于3x3 mesh網(wǎng)絡(luò)。
[0048] 該實(shí)例發(fā)生在圖5中的上子網(wǎng)中,一個(gè)源節(jié)點(diǎn)(節(jié)點(diǎn)包括路由器(2-1)和IP核 (2-2))00與目的節(jié)點(diǎn)01和21通信,另一個(gè)源節(jié)點(diǎn)20與目的節(jié)點(diǎn)01和21通信,兩源節(jié)點(diǎn) 的分組經(jīng)過(guò)上述路由在節(jié)點(diǎn)10相遇,繼而發(fā)生的一系列編解碼和路由操作。
[0049] 源節(jié)點(diǎn)生成分組時(shí),分組微片中的所有信息都需要填充準(zhǔn)確,如微片類(lèi)型、編碼分 組標(biāo)記、虛信道號(hào)(根據(jù)虛信道狀態(tài)合理分配)、目的地址、頭微片編號(hào)、分組唯一標(biāo)識(shí)符、解 碼編號(hào)等,剩余的就是攜帶的負(fù)載信息。其格式如圖2所示。分組攜帶這些信息就可以正 確完成所有操作。其中,分組唯一標(biāo)識(shí)符由4bit源地址和3bit序列號(hào)組成。序列號(hào)為源 節(jié)點(diǎn)生成的分組編號(hào)。當(dāng)編號(hào)達(dá)到最大值時(shí)自動(dòng)歸零。3bit序列號(hào)相對(duì)于小的網(wǎng)絡(luò)已足夠 用。由于源節(jié)點(diǎn)生成的分組一定不是編碼分組,所以解碼編號(hào)設(shè)定為0,編碼分組標(biāo)記設(shè)定 為〇。
[0050] 兩個(gè)源節(jié)點(diǎn)都會(huì)產(chǎn)生兩個(gè)分支分組沿不同的路徑發(fā)送到目的節(jié)點(diǎn)。源節(jié)點(diǎn)00和 源節(jié)點(diǎn)20的一個(gè)分支會(huì)分別直接到達(dá)目的節(jié)點(diǎn)01和21,但是兩源節(jié)點(diǎn)另外的分支分組會(huì) 在節(jié)點(diǎn)10的路由器中相遇。兩分組在此節(jié)點(diǎn)滿足編碼條件,因此下面將發(fā)生一系列與本發(fā) 明有關(guān)的編碼和路由操作。
[0051] 圖1為具有網(wǎng)絡(luò)編碼功能的片上網(wǎng)絡(luò)結(jié)構(gòu)圖。來(lái)自源節(jié)點(diǎn)00和20的兩分組首先 存入上子西輸入端口 11和上子?xùn)|輸入端口 12的緩存中等待處理。輸入端口的路由計(jì)算模 塊計(jì)算分組的輸出端口,同時(shí)還譯碼頭微片中攜帶的目的地址信息。上述信息被送入網(wǎng)絡(luò) 編碼模塊2中的編碼子模塊21,編碼子模塊21按上述的編碼工作原理根據(jù)該信息進(jìn)行編 碼處理,其具體編碼過(guò)程請(qǐng)參考上述編碼子模塊21的工作原理的過(guò)程,不作贅述;經(jīng)編碼 后,在目的路由器生成解碼請(qǐng)求,解碼子模塊22按上述的解碼工作原理對(duì)編碼的分組進(jìn)行 解碼處理。
[0052] 上述的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和其路由算法能夠使本例的片上網(wǎng)絡(luò)路由器發(fā)揮更大的編 碼特性,通過(guò)片上網(wǎng)絡(luò)路由器的編碼功能,實(shí)現(xiàn)了分組的壓縮,進(jìn)而增加了網(wǎng)絡(luò)所傳數(shù)據(jù)攜 帶的信息量,解決了如何達(dá)到網(wǎng)絡(luò)傳輸容量極限問(wèn)題。
[0053] 以上內(nèi)容是結(jié)合具體的實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā) 明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō),在不脫 離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換。
【權(quán)利要求】
1. 一種具有網(wǎng)絡(luò)編碼功能的片上網(wǎng)絡(luò),包括上子路由器和下子路由器,所述上子路由 器用于處理網(wǎng)絡(luò)中向上傳輸?shù)姆纸M數(shù)據(jù),所述下子路由器用于處理網(wǎng)絡(luò)中向下傳輸?shù)姆纸M 數(shù)據(jù);所述上子路由器和下子路由器分別包括輸入模塊、開(kāi)關(guān)分配模塊、交叉開(kāi)關(guān)模塊和輸 出模塊;所述開(kāi)關(guān)分配模塊和所述交叉開(kāi)關(guān)模塊的輸出端分別與所述輸出模塊信號(hào)連接; 其特征在于,所述上子路由器和下子路由器分別還包括網(wǎng)絡(luò)編碼模塊; 所述網(wǎng)絡(luò)編碼模塊的輸入端與所述輸入模塊的輸出端信號(hào)連接,所述網(wǎng)絡(luò)編碼模塊的 輸出端分別與所述開(kāi)關(guān)分配模塊的輸入端和所述交叉開(kāi)關(guān)模塊的輸入端信號(hào)連接; 所述網(wǎng)絡(luò)編碼模塊包括編碼子模塊(21)和解碼子模塊(22),所述編碼子模塊(21)用 于對(duì)所述分組數(shù)據(jù)做編碼處理,所述解碼子模塊(22)用于對(duì)編碼的所述分組數(shù)據(jù)做解碼 處理。
2. 如權(quán)利要求1所述的片上網(wǎng)絡(luò),其特征在于,所述上子路由器的輸入模塊包括上子 西輸入端口(11)、上子?xùn)|輸入端口(12)、上子南輸入端口(13)和上子本地輸入端口(14); 所述上子路由器的輸出模塊包括上子西輸出端口(51)、上子?xùn)|輸出端口(53)、上子北輸出 端口(52)和上子本地輸出端口;所述下子路由器的輸入模塊包括下子西輸入端口、下子?xùn)| 輸入端口、下子北輸入端口和下子本地輸入端口;所述下子路由器的輸出模塊包括下子西 輸出端口、下子?xùn)|輸出端口、下子南輸出端口和下子本地輸出端口。
3. 如權(quán)利要求2所述的片上網(wǎng)絡(luò),其特征在于,所述上子本地輸出端口包括上子本地 西輸出端口(541)、上子本地東輸出端口(542)、上子本地南輸出端口(543)和上子解碼輸 出端口(544);所述下子本地輸出端口包括下子本地西輸出端口、下子本地東輸出端口、下 子本地北輸出端口和下子解碼輸出端口。
4. 一種適用于如權(quán)利要求1-3任一項(xiàng)所述的片上網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)?,其特征在于,包?上子網(wǎng)和下子網(wǎng),所述上子網(wǎng)由所有所述上子路由器相互連接組成,所述下子網(wǎng)由所有所 述下子路由器相互連接組成;所述上行子網(wǎng)設(shè)有上子縱向鏈路和上子橫向鏈路,所述下子 網(wǎng)設(shè)有下子縱向鏈路和下子橫向鏈路;所述上子縱向鏈路由下向上單向傳輸,所述下子縱 向鏈路由上向下單向傳輸,所述上子橫向鏈路和所述下子橫向鏈路分別是雙向傳輸。
5. 如權(quán)利要求4所述的網(wǎng)絡(luò)拓?fù)?,其特征在于,所述上子網(wǎng)和所述下子網(wǎng)均為二維網(wǎng) 狀網(wǎng)絡(luò)。
6. 如權(quán)利要求5所述的網(wǎng)絡(luò)拓?fù)?,其特征在于,所述上子網(wǎng)的源節(jié)點(diǎn)和所述下子網(wǎng)的 源節(jié)點(diǎn)分別產(chǎn)生分組,所述分組包括頭微片、體微片和尾微片,所述頭微片、體微片和尾微 片都包括微片類(lèi)型、虛信道號(hào)、編碼標(biāo)記符和分組唯一標(biāo)識(shí)符;所述頭微片還包括所述分組 的目的地址和所述分組的分支的目的地址或已經(jīng)到達(dá)的目的地址以及空的解碼編號(hào)和頭 微片序號(hào)。
7. 如權(quán)利要求6所述的網(wǎng)絡(luò)拓?fù)?,其特征在于,所述分組包括至少兩個(gè)所述頭微片,一 個(gè)所述頭微片攜帶解碼編號(hào),另一個(gè)所述頭微片攜帶目的地址。
8. -種應(yīng)用于如權(quán)利要求4-7任一項(xiàng)所述的網(wǎng)絡(luò)拓?fù)涞穆酚伤惴?,其特征在于,所?上子縱向鏈路的路由器和所述下子縱向鏈路的路由器分別形成Y維路由,所述上子橫向鏈 路的路由器和所述下子橫向鏈路的路由器分別形成X維路由; 若所述分組數(shù)據(jù)的源路由與目的路由不在同一維上,則所述分組在結(jié)束X維路由的 節(jié)點(diǎn)的前一節(jié)點(diǎn)轉(zhuǎn)向Y維路由,并且在此之前可以根據(jù)相鄰下游節(jié)點(diǎn)虛信道數(shù)目自適應(yīng)路 由;Y維路由結(jié)束后轉(zhuǎn)向X維完成X維路由;若所述分組的源路由與目的路由在同一維上, 則無(wú)需轉(zhuǎn)向。
【文檔編號(hào)】H04L12/761GK104092615SQ201410255347
【公開(kāi)日】2014年10月8日 申請(qǐng)日期:2014年6月10日 優(yōu)先權(quán)日:2014年6月10日
【發(fā)明者】付希松, 顧華璽, 朱鍵, 王錚, 楊銀堂 申請(qǐng)人:西安電子科技大學(xué), 香港中文大學(xué)深圳研究院