一種應用于片上網(wǎng)絡的低功耗聯(lián)合的編解碼電路及其編解碼方法
【專利摘要】本發(fā)明公開了一種應用于片上網(wǎng)絡的低功耗聯(lián)合的編解碼電路及其編解碼方法,其特征是,在源節(jié)點的輸入端設置有編碼電路,在目的節(jié)點的輸出端設置有解碼電路;編碼電路包括:編碼判斷拆分模塊、四個漢明距離計算模塊、四個數(shù)據(jù)翻轉模塊、格雷碼編碼模塊、數(shù)據(jù)編碼打包模塊;解碼電路包括:解碼判斷拆分模塊、四個數(shù)據(jù)反翻轉模塊、格雷碼解碼模塊、數(shù)據(jù)解碼打包模塊。本發(fā)明能降低傳輸數(shù)據(jù)的翻轉率,從而降低整個片上網(wǎng)絡的功耗,并保證數(shù)據(jù)傳輸?shù)恼_性。
【專利說明】
-種應用于片上網(wǎng)絡的低功耗聯(lián)合的編解碼電路及其編解碼 方法
技術領域
[0001] 本發(fā)明屬于集成電路片上網(wǎng)絡的通信技術領域,尤其設及一種應用于片上網(wǎng)絡的 分組反轉編碼和格雷碼編碼低功耗聯(lián)合的編解碼電路及其編解碼方法。
【背景技術】
[0002] 隨著集成電路特征尺寸縮小,時鐘頻率增大,單個忍片上集成的晶體管數(shù)量超過 10億數(shù)量級,互連線密度不斷提高,能量消耗已逐漸成為忍片設計的主要瓶頸;由此可見, 片上網(wǎng)絡(Network化化ip,NoC)的功耗成為影響忍片性能的關鍵因素;NoC的動態(tài)功耗主 要包括節(jié)點功耗和網(wǎng)絡功耗,節(jié)點功耗是路由節(jié)點內部操作產(chǎn)生的功耗,網(wǎng)絡功耗是數(shù)據(jù) 在網(wǎng)絡中從源節(jié)點向目的節(jié)點傳輸時在互連網(wǎng)絡上產(chǎn)生的功耗;當大量數(shù)據(jù)在NoC中從源 節(jié)點向目的節(jié)點傳輸時,相鄰傳輸數(shù)據(jù)之間高的翻轉率,導致NoC產(chǎn)生很大的互連線網(wǎng)絡功 耗。
[0003] 現(xiàn)有技術中,分組總線反轉(Bus Inved,BI)編碼是常用于數(shù)據(jù)總線的低功耗編 碼方法,格雷碼編碼是常用于地址總線的低功耗編碼方法,它們都是用于總線低功耗編碼 而不是NoC低功耗設計中;BI碼適用于隨機數(shù)據(jù),本身需要增加額外的冗余標志位,并且效 果隨著數(shù)據(jù)位寬的增加而減小,對連續(xù)數(shù)據(jù)有很大的局限性,格雷碼適用于連續(xù)數(shù)據(jù),對隨 機數(shù)據(jù)有很大的局限性;針對現(xiàn)有的NoC平臺,傳輸?shù)臄?shù)據(jù)既有隨機數(shù)據(jù),又有連續(xù)數(shù)據(jù),單 獨使用BI碼或單獨使用格雷碼,NoC的功耗都只能降低很小一部分,再加上編碼電路自身的 面積開銷,降低功耗的整體效果非常不明顯,目前,沒有發(fā)現(xiàn)BI碼和格雷碼聯(lián)合應用于NoC 的低功耗設計。
【發(fā)明內容】
[0004] 本發(fā)明為克服現(xiàn)有NoC平臺大量隨機數(shù)據(jù)和連續(xù)數(shù)據(jù)傳輸?shù)墓膯栴},提出了一 種應用于片上網(wǎng)絡的低功耗聯(lián)合的編解碼電路及其編解碼方法,旨在降低NoC中傳輸數(shù)據(jù) 的翻轉率,從而降低整個NoC的功耗,并保證數(shù)據(jù)傳輸?shù)恼_性。
[0005] 本發(fā)明為達到上述目的所采用的技術方案是:
[0006] 本發(fā)明一種應用于片上網(wǎng)絡的低功耗聯(lián)合的編解碼電路,所述片上網(wǎng)絡為MXN的 二維網(wǎng)絡;并用于傳輸外部的數(shù)據(jù)包;定義接收到所述數(shù)據(jù)包的路由節(jié)點為源節(jié)點,輸出所 述數(shù)據(jù)包的路由節(jié)點為目的節(jié)點;所述數(shù)據(jù)包是由η個微片組成,分別是1個頭微片,n-2個 體微片和1個尾微片;每個微片包含微片頭、二進制微片計數(shù)器、二進制包計數(shù)器、低位數(shù) 據(jù);其特點是:
[0007] 在所述源節(jié)點的輸入端設置有編碼電路,在所述目的節(jié)點的輸出端設置有解碼電 路;
[000引所述編碼電路包括:編碼判斷拆分模塊、四個漢明距離計算模塊、四個數(shù)據(jù)翻轉模 塊、格雷碼編碼模塊、數(shù)據(jù)編碼打包模塊;
[0009] 所述編碼判斷拆分模塊接收任意一個微片,并判斷是否為頭微片,若為頭微片,貝u 將頭微片中的微片頭和低位數(shù)據(jù)都發(fā)送給所述數(shù)據(jù)編碼打包模塊、并將頭微片中的二進制 微片計數(shù)器、二進制包計數(shù)器發(fā)送給所述格雷碼編碼模塊;否則,將所接收的微片中的微片 頭發(fā)送給所述數(shù)據(jù)編碼打包模塊、并將所接收的微片中的二進制微片計數(shù)器、二進制包計 數(shù)器發(fā)送給所述格雷碼編碼模塊、并將所接收的微片中的低位數(shù)據(jù)進行拆分,得到低八位 數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù)后依次發(fā)送給所述四個漢明距離計算模 塊;
[0010] 所述四個漢明距離計算模塊分別接收所述低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位 數(shù)據(jù)和高八位數(shù)據(jù)后進行計算,得到低位漢明距離、次低位漢明距離、次高位漢明距離和高 位漢明距離,并發(fā)送給所述四個數(shù)據(jù)翻轉模塊;
[0011] 所述四個數(shù)據(jù)翻轉模塊根據(jù)所接到的低位漢明距離、次低位漢明距離、次高位漢 明距離和高位漢明距離分別判斷是否大于所設定的闊值,若大于,則將相應的低八位數(shù)據(jù)、 次低八位數(shù)據(jù)、次高八位數(shù)據(jù)或高八位數(shù)據(jù)進行按位取反操作,并設定相應的翻轉標識,否 貝1J,保持相應的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)或高八位數(shù)據(jù)不變,并設定相應 的翻轉標識,并將所有的翻轉標志放在相應微片中微片計數(shù)器的冗余位上,從而獲得翻轉 結果發(fā)送給所述數(shù)據(jù)編碼打包模塊,W及四個漢明距離計算模塊用于下一個微片的計算;
[0012] 所述格雷碼編碼模塊將所接收到的微片中的二進制微片計數(shù)器、二進制包計數(shù)器 轉換為格雷碼計數(shù)器并發(fā)送給所述數(shù)據(jù)編碼打包模塊;
[0013] 所述數(shù)據(jù)編碼打包模塊將所接到的微片中的微片頭和低位數(shù)據(jù)、格雷碼計數(shù)器一 起打包為編碼微片并發(fā)送給所述源節(jié)點;或將所接到的微片中的微片頭、四個數(shù)據(jù)翻轉模 塊的翻轉結果W及翻轉標識、格雷碼計數(shù)器一起打包為編碼微片并發(fā)送給所述源節(jié)點;
[0014] 所述解碼電路包括:解碼判斷拆分模塊、四個數(shù)據(jù)反翻轉模塊、格雷碼解碼模塊、 數(shù)據(jù)解碼打包模塊;
[0015] 所述解碼判斷拆分模塊接收到所述目的節(jié)點輸出的編碼微片,并判斷是否為頭微 片,若為頭微片,則將頭微片中的微片頭和低位數(shù)據(jù)都發(fā)送給所述數(shù)據(jù)解碼打包模塊、將頭 微片中的雷碼計數(shù)器發(fā)送給所述格雷碼解碼模塊;否則,將所述編碼微片中的微片頭發(fā)送 給所述數(shù)據(jù)解碼打包模塊、將所述編碼微片中的雷碼計數(shù)器發(fā)送給所述格雷碼解碼模塊; 并將四個數(shù)據(jù)翻轉模塊的翻轉結果進行拆分,得到編碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、 次高八位數(shù)據(jù)和高八位數(shù)據(jù)并分別發(fā)送給所述四個數(shù)據(jù)反翻轉模塊;
[0016] 所述四個數(shù)據(jù)反翻轉模塊分別根據(jù)相應的翻轉標識將所述編碼結果的低八位數(shù) 據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù)進行處理,得到解碼結果的低八位數(shù)據(jù)、次 低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù)后發(fā)送給所述數(shù)據(jù)解碼打包模塊;
[0017] 所述格雷碼解碼模塊將所接收到編碼微片中的雷碼計數(shù)器轉換為二進制微片計 數(shù)器、二進制包計數(shù)器后,發(fā)送給所述數(shù)據(jù)解碼打包模塊;
[0018] 所述數(shù)據(jù)解碼打包模塊將所接到的頭微片中的微片頭和低位數(shù)據(jù)、格雷碼解碼模 塊的結果一起打包為解碼微片并進行本地存儲;或將所接到的解碼微片中的微片頭、四個 數(shù)據(jù)反翻轉模塊的解碼結果、格雷碼解碼模塊的結果一起打包為解碼微片并進行本地存 儲。
[0019] 本發(fā)明一種應用于片上網(wǎng)絡的低功耗聯(lián)合的編解碼方法,所述片上網(wǎng)絡為MXN的 二維網(wǎng)絡;并用于傳輸外部的數(shù)據(jù)包;定義接收到所述數(shù)據(jù)包的路由節(jié)點為源節(jié)點,輸出所 述數(shù)據(jù)包的路由節(jié)點為目的節(jié)點;所述數(shù)據(jù)包是由5個微片組成,分別是1個頭微片,3個體 微片和1個尾微片;每個微片包含微片頭、二進制微片計數(shù)器、二進制包計數(shù)器、低位數(shù)據(jù); 其特點是所述編解碼方法是按如下步驟進行:
[0020] 步驟1、對所述數(shù)據(jù)包中任意一個微片判斷是否為頭微片,若為頭微片,則將頭微 片中的二進制微片計數(shù)器、二進制包計數(shù)器轉換為格雷碼計數(shù)器;并將頭微片中的微片頭 和低位數(shù)據(jù)W及所述格雷碼計數(shù)器一起打包為編碼微片并發(fā)送給所述源節(jié)點;否則,將所 述微片中除去冗余位后的二進制微片計數(shù)器、二進制包計數(shù)器轉換為格雷碼計數(shù)器、將所 述微片中的低位數(shù)據(jù)進行拆分,得到低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù) 據(jù);
[0021] 步驟2、所述低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù)進行計算得 到低位漢明距離、次低位漢明距離、次高位漢明距離和高位漢明距離;
[0022] 步驟3、根據(jù)所述低位漢明距離、次低位漢明距離、次高位漢明距離分別判斷是否 大于所設定的闊值,若大于,則將相應的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)或高八 位數(shù)據(jù)進行按位取反操作,并設定相應的翻轉標識,否則,保持相應的低八位數(shù)據(jù)、次低八 位數(shù)據(jù)、次高八位數(shù)據(jù)或高八位數(shù)據(jù)不變,并設定相應的翻轉標識,并將所有翻轉標志放在 相應微片中微片計數(shù)器的冗余位上,從而獲得翻轉結果;
[0023] 步驟4、將所述微片中的微片頭、格雷碼計數(shù)器、翻轉結果、翻轉標識一起打包為編 碼微片并發(fā)送給所述源節(jié)點;
[0024] 步驟5、所述源節(jié)點將編碼微片經(jīng)過所述片上網(wǎng)絡進行傳輸后到達目的節(jié)點;
[0025] 步驟6、對所述目的節(jié)點所輸出的編碼微片判斷是否為頭微片,若為頭微片,則將 頭微片中的雷碼計數(shù)器轉換為二進制微片計數(shù)器、二進制包計數(shù)器后,并將二進制微片計 數(shù)器、二進制包計數(shù)器W及頭微片中的微片頭和低位數(shù)據(jù)一起打包為解碼微片并進行本地 存儲;否則,將所述編碼微片中的雷碼計數(shù)器轉換為二進制微片計數(shù)器、二進制包計數(shù)器, 將翻轉結果進行拆分,得到編碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位 數(shù)據(jù);
[0026] 步驟7、根據(jù)相應的翻轉標識將所述編碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高 八位數(shù)據(jù)和高八位數(shù)據(jù)進行處理,得到解碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù) 據(jù)和高八位數(shù)據(jù);
[0027] 步驟8、將所接到的解碼微片中的微片頭、解碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、 次高八位數(shù)據(jù)和高八位數(shù)據(jù)、二進制微片計數(shù)器、二進制包計數(shù)器一起打包為解碼微片并 進行本地存儲。
[0028] 與現(xiàn)有技術相比,本發(fā)明的有益技術效果體現(xiàn)在:
[0029] 1、本發(fā)明提出的應用于NoC的低功耗聯(lián)合的編解碼電路及其編解碼方法,應用于 實際的NoC,通過降低傳輸數(shù)據(jù)的翻轉率,從而有效降低了 NoC的整體功耗,并保證了數(shù)據(jù)傳 輸?shù)恼_性。
[0030] 2、本發(fā)明提出的應用于NoC的低功耗分組BI編解碼方法,BI碼是常用于隨機數(shù)據(jù) 的低功耗編碼方法,它能降低NoC平臺中隨機數(shù)據(jù)的翻轉率,從而有效降低了 NoC中隨機數(shù) 據(jù)的傳輸功耗。
[0031] 3、本發(fā)明提出的應用于NoC的低功耗分組BI編解碼方法,BI碼低功耗編碼方法本 身要增加額外的翻轉標志位,針對特定的NoC平臺,每個微片中微片計數(shù)器是8位,而微片數(shù) 為5,微片計數(shù)器只需要3為就可W,所W把微片計數(shù)器的高四位用于存放BI編碼的翻轉標 志,不添加額外冗余標志,克服了 BI編碼本身要增加翻轉標志的缺陷,從而克服了額外添加 標志位增加的自身面積開銷。
[0032] 4、本發(fā)明提出的應用于NoC的低功耗格雷碼編解碼方法,NoC平臺中連續(xù)數(shù)據(jù)的數(shù) 據(jù)相關性大,而相鄰格雷碼之間只有1位數(shù)字發(fā)生變化,其動態(tài)功耗小,格雷碼編解碼方法 能降低NoC平臺中連續(xù)數(shù)據(jù)數(shù)據(jù)的翻轉率,從而有效降低了 NoC中連續(xù)數(shù)據(jù)的傳輸功耗。
[0033] 5、本發(fā)明提出的應用于NoC的低功耗聯(lián)合編解碼設計方法,將分組BI編解碼和格 雷碼編解碼聯(lián)合,針對特定的NoC平臺,既有連續(xù)數(shù)據(jù),又有隨機數(shù)據(jù),克服了單獨使用BI編 解碼對連續(xù)數(shù)據(jù)的局限性和單獨使用格雷碼編解碼對隨機數(shù)據(jù)的局限性。
【附圖說明】
[0034] 圖1為本發(fā)明片上網(wǎng)絡一次編碼一次解碼的方式掛載圖;
[0035] 圖2為本發(fā)明編碼電路整體結構圖;
[0036] 圖3為本發(fā)明編碼電路中的漢明距離計算電路圖;
[0037] 圖4為本發(fā)明編碼電路中的數(shù)據(jù)翻轉電路圖;
[0038] 圖5為本發(fā)明編碼電路中的格雷碼編碼電路圖;
[0039] 圖6為本發(fā)明解碼電路整體結構圖;
[0040] 圖7為本發(fā)明解碼電路中的數(shù)據(jù)反翻轉電路圖;
[0041 ]圖8為本發(fā)明解碼電路中的格雷碼解碼電路圖;
[0042] 圖9為本發(fā)明掛載編解碼模塊和不掛載編解碼總功耗對比圖;
[0043] 圖10為本發(fā)明掛載編解碼模塊和不掛載編解碼總面積對比圖。
【具體實施方式】
[0044] 本實施例中,片上網(wǎng)絡為MXN=2X2的最小二維網(wǎng)絡;并用于傳輸外部的數(shù)據(jù)包; 定義接收到數(shù)據(jù)包的路由節(jié)點為源節(jié)點,輸出數(shù)據(jù)包的路由節(jié)點為目的節(jié)點;數(shù)據(jù)包是由η =5個微片組成,分別是1個頭微片,η-2 = 3個體微片和1個尾微片;每個微片包含微片頭、二 進制微片計數(shù)器、二進制包計數(shù)器、低位數(shù)據(jù);Μ和Ν為大于或等于2的整數(shù);η為大于或等于3 的整數(shù);
[0045] 如圖1所示,節(jié)點1為源節(jié)點,節(jié)點4為目的節(jié)點,一種應用于片上網(wǎng)絡的低功耗聯(lián) 合的編解碼電路,是在源節(jié)點的輸入端設置有編碼電路,在目的節(jié)點的輸出端設置有解碼 電路;
[0046] 如圖2所示,編碼電路包括:編碼判斷拆分模塊、四個漢明距離計算模塊、四個數(shù)據(jù) 翻轉模塊、格雷碼編碼模塊、數(shù)據(jù)編碼打包模塊;
[0047] 編碼判斷拆分模塊根據(jù)接收的數(shù)據(jù)是否為0,判斷是否有數(shù)據(jù)輸入,若接收的數(shù)據(jù) 不為0,則產(chǎn)生數(shù)據(jù)變化信號data_change后發(fā)送給總控邏輯,總控邏輯接收到data_change 信號啟動編碼電路,編碼判斷拆分模塊接收任意一個微片,并判斷是否為頭微片,若為頭微 片,則將頭微片中的微片頭和低位數(shù)據(jù)都發(fā)送給數(shù)據(jù)編碼打包模塊、并將頭微片中的二進 制微片計數(shù)器、二進制包計數(shù)器發(fā)送給格雷碼編碼模塊;否則,將所接收的微片中的微片頭 發(fā)送給數(shù)據(jù)編碼打包模塊、并將所接收的微片中除去冗余位后的二進制微片計數(shù)器低四 位、二進制包計數(shù)器發(fā)送給格雷碼編碼模塊、并將所接收的微片中的低位數(shù)據(jù)進行拆分,得 到低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù)后依次發(fā)送給四個漢明距離計 算模塊;
[0048] 四個漢明距離計算模塊分別接收低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高 八位數(shù)據(jù)后并與上次編碼結果進行對比和計算,得到低位漢明距離、次低位漢明距離、次高 位漢明距離和高位漢明距離,并發(fā)送給四個數(shù)據(jù)翻轉模塊;
[0049] 四個數(shù)據(jù)翻轉模塊根據(jù)所接到的低位漢明距離、次低位漢明距離、次高位漢明距 離和高位漢明距離分別判斷是否大于所設定的闊值,若大于,則將相應的低八位數(shù)據(jù)、次低 八位數(shù)據(jù)、次高八位數(shù)據(jù)或高八位數(shù)據(jù)進行按位取反操作作為翻轉結果,并設定相應的翻 轉標識,此時,翻轉標志為1,否則,保持相應的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)或 高八位數(shù)據(jù)不變直接作為翻轉結果,并設定相應的翻轉標識,此時,翻轉標志為0,并且所有 的四個翻轉標志放在相應微片的微片計數(shù)器的高四位冗余位中,將翻轉結果發(fā)送給數(shù)據(jù)編 碼打包模塊,W及四個漢明距離計算模塊用于下一個微片的計算;
[0050] 格雷碼編碼模塊將所接收到的微片中的二進制微片計數(shù)器、二進制包計數(shù)器轉換 為格雷碼計數(shù)器并發(fā)送給數(shù)據(jù)編碼打包模塊;
[0051] 數(shù)據(jù)編碼打包模塊將所接到的微片中的微片頭和低位數(shù)據(jù)、格雷碼計數(shù)器一起打 包為編碼微片并發(fā)送給源節(jié)點;或將所接到的微片中的微片頭、四個數(shù)據(jù)翻轉模塊的翻轉 結果W及翻轉標識、格雷碼計數(shù)器一起打包為編碼微片并發(fā)送給源節(jié)點;
[0052] 如圖6所示,解碼電路包括:解碼判斷拆分模塊、四個數(shù)據(jù)反翻轉模塊、格雷碼解碼 模塊、數(shù)據(jù)解碼打包模塊;
[0053] 解碼判斷拆分模塊接收到目的節(jié)點輸出的編碼微片,并判斷是否為頭微片,若為 頭微片,則將頭微片中的微片頭和低位數(shù)據(jù)都發(fā)送給數(shù)據(jù)解碼打包模塊、將頭微片中的雷 碼計數(shù)器發(fā)送給格雷碼解碼模塊;否則,將編碼微片中的微片頭發(fā)送給數(shù)據(jù)解碼打包模塊、 將編碼微片中的雷碼計數(shù)器發(fā)送給格雷碼解碼模塊;并將四個數(shù)據(jù)翻轉模塊的翻轉結果進 行拆分,得到編碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù)并分別發(fā) 送給四個數(shù)據(jù)反翻轉模塊;
[0054] 四個數(shù)據(jù)反翻轉模塊分別根據(jù)相應的翻轉標識將編碼結果的低八位數(shù)據(jù)、次低八 位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù)進行處理,若翻轉標志為1,則將相應的數(shù)據(jù)按位取反 的得到解碼結果,否則直接輸出作為解碼結果,并將解碼結果的低八位數(shù)據(jù)、次低八位數(shù) 據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù)發(fā)送給數(shù)據(jù)解碼打包模塊;
[0055] 格雷碼解碼模塊將所接收到編碼微片中的雷碼計數(shù)器轉換為二進制微片計數(shù)器、 二進制包計數(shù)器后,發(fā)送給數(shù)據(jù)解碼打包模塊;
[0056] 數(shù)據(jù)解碼打包模塊將所接到的頭微片中的微片頭和低位數(shù)據(jù)、格雷碼解碼模塊的 結果一起打包為解碼微片并進行本地存儲;或將所接到的解碼微片中的微片頭、四個數(shù)據(jù) 反翻轉模塊的解碼結果、格雷碼解碼模塊的結果一起打包為解碼微片并進行本地存儲。
[0057] 在本實施例中,如表1所示,數(shù)據(jù)包是由5個微片組成,分別是1個頭微片,3個體微 片和1個尾微片;每個微片包含微片頭、二進制微片計數(shù)器、二進制包計數(shù)器、低位數(shù)據(jù);
[005引表1為NoC特定的數(shù)據(jù)包格式 [0化9]
[0060]
[0061] -種應用于片上網(wǎng)絡的低功耗聯(lián)合的編解碼方法是按如下步驟進行:
[0062] 步驟1、為方便敘述,W傳輸一個數(shù)據(jù)包為例,定義D_i[53:0]、D_o[53:0]代表一個 微片分別作為編碼的輸入數(shù)據(jù)和編碼的輸出數(shù)據(jù),定義D_ii[53:0]、D_oo[53:0]代表一個 微片分別作為解碼的輸入數(shù)據(jù)和解碼的輸出數(shù)據(jù),并在傳輸過程中不斷更新;編碼輸入數(shù) 據(jù)用D_i[53:0]可W表示為:
[0063] 0_1[53:0] = {0_1[53:52],0_1[51:44],0_1[43:32],0_1[31:0]},具體數(shù)據(jù)如下:
[0064] ①頭微片 〇1_〇〇〇〇〇〇〇1_〇〇〇〇〇〇〇〇_〇〇〇1_〇〇〇〇〇〇1〇_〇〇〇〇〇〇1〇_〇〇〇〇〇〇〇1_〇〇〇〇〇〇〇1 [00化]②體微片 11_〇〇〇〇〇〇1〇_〇〇〇〇〇〇〇〇_〇〇〇1_1111111〇_1〇1〇1〇〇1_〇〇11〇〇1〇_11〇〇1〇〇1
[0066] ③體微片 11_〇〇〇〇〇〇11_〇〇〇〇〇〇〇〇_〇〇〇1_1〇〇〇〇1〇1_〇1〇1111〇_1〇1〇1〇1〇_1〇1〇111〇
[0067] ④體微片 11_〇〇〇〇〇1〇〇_〇〇〇〇〇〇〇〇_〇〇〇1_11〇〇〇111_1〇〇〇〇1〇1_〇1〇1〇〇1〇_〇〇〇1〇〇1〇
[0068] ⑤尾微片 1〇_〇〇〇〇〇1〇1_〇〇〇〇〇〇〇〇_〇〇〇1_111〇〇〇1〇_1111〇〇1〇1_〇〇〇〇1〇〇1_ 10111100
[0069] 若接收的數(shù)據(jù)不為0,則產(chǎn)生數(shù)據(jù)變化信號data_change,編碼電路啟動,對數(shù)據(jù)包 中任意一個微片判斷是否為頭微片,若為頭微片,設定頭微片標志為1,并將頭微 片中的二進制微片計數(shù)器、二進制包計數(shù)器按圖5所示的格雷碼編碼步驟轉換為格雷碼計 數(shù)器;并將頭微片中的微片頭和低位數(shù)據(jù)W及格雷碼計數(shù)器一起打包為編碼微片并發(fā)送給 源節(jié)點;否則,將微片中的二進制微片計數(shù)器低四位、二進制包計數(shù)器轉換為格雷碼計數(shù) 器、將微片中的低位數(shù)據(jù)進行拆分,得到低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八 位數(shù)據(jù);
[0070] 步驟2、如圖3所示,定義周期T,第一個體微片到來,沒有上次的翻轉結果數(shù)據(jù)與之 進行對比,所W不計算漢明距離,直接把低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八 位數(shù)據(jù)寄存在相應的寄存器組化、〇2、化、Q4中,T+1周期,第二個體微片到來,首先將第二個 體微片低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù)寄存在相應的寄存器組化、 化、Q?、舶中,把寄存器組化、化、跑、Q4和寄存器組化、舶、Q?、舶中的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、 次高八位數(shù)據(jù)和高八位數(shù)據(jù)分別按位取出發(fā)送給相應的異或計算器,異或計算器計算得出 每一位的異或值發(fā)送給加法器,由加法器計算得到最終的低位漢明距離6、次低位漢明距離 7、次高位漢明距離3和高位漢明距離5,在T+2、T+3周期,重復執(zhí)行步驟2;
[0071] 步驟3、T+1周期,根據(jù)低位漢明距離6、次低位漢明距離7、次高位漢明距離3和高位 漢明距離5分別判斷是否大于所設定的闊值4,若大于,則將相應的低八位數(shù)據(jù)、次低八位數(shù) 據(jù)、次高八位數(shù)據(jù)或高八位數(shù)據(jù)進行按位取反操作,并設定相應的翻轉標識,否則,保持相 應的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)或高八位數(shù)據(jù)不變,并設定相應的翻轉標 識,所有翻轉標志放置在相應微片的微片計數(shù)器的高四位中,從而獲得翻轉結果,如圖4所 示,本例中低位漢明距離6、次低位漢明距離7和高位漢明距離5都大于闊值4,所W對低八位 數(shù)據(jù)、次低八位數(shù)據(jù)和高八位數(shù)據(jù)按位取反作為翻轉結果,并設置相應的翻轉標志為1,次 高八位數(shù)據(jù)的次高位漢明距離3小于闊值4,所W次高八位數(shù)據(jù)直接作為翻轉結果,翻轉標 志為0,在T+2、T+3周期,重復執(zhí)行步驟3;
[0072] 步驟4、將微片中的微片頭、格雷碼計數(shù)器、翻轉結果、翻轉標志一起打包為編碼微 片并發(fā)送給源節(jié)點,編碼微片的數(shù)據(jù)格式為:
[0073] D_o[53:0]={D_o[53:52],inv3,inv2,invl,inv0,D_o[47:44],D_o[43:32],D_o [31:24],D_〇[23:16],D_〇[15:8],D_〇[7:0]}
[0074] 本實施例中,5個編碼微片分別為:
[00 巧]①頭微片 〇1_〇〇〇〇_〇〇〇1_〇〇〇〇〇〇〇〇_〇〇〇1_〇〇〇〇〇〇1〇_〇〇〇〇〇〇1〇_〇〇〇〇〇〇〇1_ 00000001
[0076] ②體微片 11_〇〇〇〇_〇〇11_〇〇〇〇〇〇〇〇_〇〇〇1_1111111〇_1〇1〇1〇〇1_〇〇11〇〇1〇_ 11001001
[0077] ③體微片 11_11〇1_〇〇1〇_〇〇〇〇〇〇〇〇_〇〇〇1_〇1111〇1〇_1〇1〇〇〇〇1_1〇1〇1〇1〇_ 01010001
[007引 ④體微片 11_1010_0110_00000000_0001_00111000_10000101_10101101_ 00010010
[00 巧]⑤尾微片 1〇_1〇〇1_〇111_〇〇〇〇〇〇〇〇_〇〇〇1_〇〇〇111〇1_1111〇〇1〇1_〇〇〇〇1〇〇1_ 01000011;
[0080] 步驟5、源節(jié)點將編碼微片經(jīng)過片上網(wǎng)絡進行傳輸后到達目的節(jié)點;
[0081] 步驟6、對目的節(jié)點所輸出的編碼微片判斷是否為頭微片,若為頭微片,則將頭微 片中的雷碼計數(shù)器按圖8所示的格雷碼解碼步驟轉換為二進制微片計數(shù)器、二進制包計數(shù) 器后,并將二進制微片計數(shù)器、二進制包計數(shù)器W及頭微片中的微片頭和低位數(shù)據(jù)一起打 包為解碼微片并進行本地存儲;否則,將編碼微片中的雷碼計數(shù)器轉換為二進制微片計數(shù) 器、二進制包計數(shù)器,將翻轉結果進行拆分,得到編碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次 高八位數(shù)據(jù)和高八位數(shù)據(jù);
[0082] 步驟7、根據(jù)相應的翻轉標識將編碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位 數(shù)據(jù)和高八位數(shù)據(jù)進行處理,得到解碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和 高八位數(shù)據(jù),如圖7所示,本例中T+1周期,編碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)和高八位 數(shù)據(jù)對應的翻轉標志為1,對編碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八 位數(shù)據(jù)按位取反作為解碼結果,編碼結果的次高八位數(shù)據(jù)對應的翻轉標志為0,編碼結果的 次高八位數(shù)據(jù)直接輸出作為編碼結果的次高八位數(shù)據(jù),Τ+2、Τ+3周期,重復執(zhí)行步驟7;
[0083] 步驟8、將所接到的解碼微片中的微片頭、解碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、 次高八位數(shù)據(jù)和高八位數(shù)據(jù)、二進制微片計數(shù)器、二進制包計數(shù)器一起打包為解碼微片并 進行本地存儲,本實施例中,5個解碼微片和原始的5個微片一樣,分別為:
[0084] ①頭微片 〇1_〇〇〇〇〇〇〇1_〇〇〇〇〇〇〇〇_〇〇〇1_〇〇〇〇〇〇1〇_〇〇〇〇〇〇1〇_〇〇〇〇〇〇〇1_〇〇〇〇〇〇〇1
[00 化]②體微片 11_〇〇〇〇〇〇1〇_〇〇〇〇〇〇〇〇_〇〇〇1_1111111〇_1〇1〇1〇〇1_〇〇11〇〇1〇_11〇〇1〇〇1 [00 化]③體微片 11_〇〇〇〇〇〇11_〇〇〇〇〇〇〇〇_〇〇〇1_1〇〇〇〇1〇1_〇1〇1111〇_1〇1〇1〇1〇_1〇1〇111〇
[0087] ④體微片 11_〇〇〇〇〇1〇〇_〇〇〇〇〇〇〇〇_〇〇〇1_11〇〇〇111_1〇〇〇〇1〇1_〇1〇1〇〇1〇_〇〇〇1〇〇1〇
[0088] ⑤尾微片 1〇_〇〇〇〇〇1〇1_〇〇〇〇〇〇〇〇_〇〇〇1_111〇〇〇1〇_1111〇〇1〇1_〇〇〇〇1〇〇1_ 10111100。
[0089] 在2x2的最小NoC上實驗得到,發(fā)包量為1000個微片時,現(xiàn)有NoC平臺總功耗為 0.2426W、0.2424W,總面積為 45:345556.039258皿2、45:345555.489579皿2,掛載了聯(lián)合編碼電 路后的總功耗為 0.2132W、0.2122W,面積為47906903.531432um2、47906901.987846um 2。本發(fā) 明與現(xiàn)有的NoC平臺相比總功耗降低12.1%,總面積增加5.6%,總功耗和總面積對比圖分 別如圖9和圖10所示,如果片上網(wǎng)絡的規(guī)模擴大,發(fā)包量更大時,整個編解碼電路降低功耗 的效果會更加明顯。
【主權項】
1. 一種應用于片上網(wǎng)絡的低功耗聯(lián)合的編解碼電路,所述片上網(wǎng)絡為MXN的二維網(wǎng) 絡;并用于傳輸外部的數(shù)據(jù)包;定義接收到所述數(shù)據(jù)包的路由節(jié)點為源節(jié)點,輸出所述數(shù)據(jù) 包的路由節(jié)點為目的節(jié)點;所述數(shù)據(jù)包是由η個微片組成,分別是1個頭微片,n-2個體微片 和1個尾微片;每個微片包含微片頭、二進制微片計數(shù)器、二進制包計數(shù)器、低位數(shù)據(jù);其特 征是: 在所述源節(jié)點的輸入端設置有編碼電路,在所述目的節(jié)點的輸出端設置有解碼電路; 所述編碼電路包括:編碼判斷拆分模塊、四個漢明距離計算模塊、四個數(shù)據(jù)翻轉模塊、 格雷碼編碼模塊、數(shù)據(jù)編碼打包模塊; 所述編碼判斷拆分模塊接收任意一個微片,并判斷是否為頭微片,若為頭微片,則將頭 微片中的微片頭和低位數(shù)據(jù)都發(fā)送給所述數(shù)據(jù)編碼打包模塊、并將頭微片中的二進制微片 計數(shù)器、二進制包計數(shù)器發(fā)送給所述格雷碼編碼模塊;否則,將所接收的微片中的微片頭發(fā) 送給所述數(shù)據(jù)編碼打包模塊、并將所接收的微片中的二進制微片計數(shù)器、二進制包計數(shù)器 發(fā)送給所述格雷碼編碼模塊、并將所接收的微片中的低位數(shù)據(jù)進行拆分,得到低八位數(shù)據(jù)、 次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù)后依次發(fā)送給所述四個漢明距離計算模塊; 所述四個漢明距離計算模塊分別接收所述低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù) 和高八位數(shù)據(jù)后進行計算,得到低位漢明距離、次低位漢明距離、次高位漢明距離和高位漢 明距離,并發(fā)送給所述四個數(shù)據(jù)翻轉模塊; 所述四個數(shù)據(jù)翻轉模塊根據(jù)所接到的低位漢明距離、次低位漢明距離、次高位漢明距 離和高位漢明距離分別判斷是否大于所設定的閾值,若大于,則將相應的低八位數(shù)據(jù)、次低 八位數(shù)據(jù)、次高八位數(shù)據(jù)或高八位數(shù)據(jù)進行按位取反操作,并設定相應的翻轉標識,否則, 保持相應的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)或高八位數(shù)據(jù)不變,并設定相應的翻 轉標識,并將所有的翻轉標志放在相應微片中微片計數(shù)器的冗余位上,從而獲得翻轉結果 發(fā)送給所述數(shù)據(jù)編碼打包模塊,以及四個漢明距離計算模塊用于下一個微片的計算; 所述格雷碼編碼模塊將所接收到的微片中的二進制微片計數(shù)器、二進制包計數(shù)器轉換 為格雷碼計數(shù)器并發(fā)送給所述數(shù)據(jù)編碼打包模塊; 所述數(shù)據(jù)編碼打包模塊將所接到的微片中的微片頭和低位數(shù)據(jù)、格雷碼計數(shù)器一起打 包為編碼微片并發(fā)送給所述源節(jié)點;或將所接到的微片中的微片頭、四個數(shù)據(jù)翻轉模塊的 翻轉結果以及翻轉標識、格雷碼計數(shù)器一起打包為編碼微片并發(fā)送給所述源節(jié)點; 所述解碼電路包括:解碼判斷拆分模塊、四個數(shù)據(jù)反翻轉模塊、格雷碼解碼模塊、數(shù)據(jù) 解碼打包模塊; 所述解碼判斷拆分模塊接收到所述目的節(jié)點輸出的編碼微片,并判斷是否為頭微片, 若為頭微片,則將頭微片中的微片頭和低位數(shù)據(jù)都發(fā)送給所述數(shù)據(jù)解碼打包模塊、將頭微 片中的雷碼計數(shù)器發(fā)送給所述格雷碼解碼模塊;否則,將所述編碼微片中的微片頭發(fā)送給 所述數(shù)據(jù)解碼打包模塊、將所述編碼微片中的雷碼計數(shù)器發(fā)送給所述格雷碼解碼模塊;并 將四個數(shù)據(jù)翻轉模塊的翻轉結果進行拆分,得到編碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次 高八位數(shù)據(jù)和高八位數(shù)據(jù)并分別發(fā)送給所述四個數(shù)據(jù)反翻轉模塊; 所述四個數(shù)據(jù)反翻轉模塊分別根據(jù)相應的翻轉標識將所述編碼結果的低八位數(shù)據(jù)、次 低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù)進行處理,得到解碼結果的低八位數(shù)據(jù)、次低八位 數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù)后發(fā)送給所述數(shù)據(jù)解碼打包模塊; 所述格雷碼解碼模塊將所接收到編碼微片中的雷碼計數(shù)器轉換為二進制微片計數(shù)器、 二進制包計數(shù)器后,發(fā)送給所述數(shù)據(jù)解碼打包模塊; 所述數(shù)據(jù)解碼打包模塊將所接到的頭微片中的微片頭和低位數(shù)據(jù)、格雷碼解碼模塊的 結果一起打包為解碼微片并進行本地存儲;或將所接到的解碼微片中的微片頭、四個數(shù)據(jù) 反翻轉模塊的解碼結果、格雷碼解碼模塊的結果一起打包為解碼微片并進行本地存儲。2.-種應用于片上網(wǎng)絡的低功耗聯(lián)合的編解碼方法,所述片上網(wǎng)絡為MXN的二維網(wǎng) 絡;并用于傳輸外部的數(shù)據(jù)包;定義接收到所述數(shù)據(jù)包的路由節(jié)點為源節(jié)點,輸出所述數(shù)據(jù) 包的路由節(jié)點為目的節(jié)點;所述數(shù)據(jù)包是由5個微片組成,分別是1個頭微片,3個體微片和1 個尾微片;每個微片包含微片頭、二進制微片計數(shù)器、二進制包計數(shù)器、低位數(shù)據(jù);其特征是 所述編解碼方法是按如下步驟進行: 步驟1、對所述數(shù)據(jù)包中任意一個微片判斷是否為頭微片,若為頭微片,則將頭微片中 的二進制微片計數(shù)器、二進制包計數(shù)器轉換為格雷碼計數(shù)器;并將頭微片中的微片頭和低 位數(shù)據(jù)以及所述格雷碼計數(shù)器一起打包為編碼微片并發(fā)送給所述源節(jié)點;否則,將所述微 片中除去冗余位后的二進制微片計數(shù)器、二進制包計數(shù)器轉換為格雷碼計數(shù)器、將所述微 片中的低位數(shù)據(jù)進行拆分,得到低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù); 步驟2、所述低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù)進行計算得到低 位漢明距離、次低位漢明距離、次高位漢明距離和高位漢明距離; 步驟3、根據(jù)所述低位漢明距離、次低位漢明距離、次高位漢明距離分別判斷是否大于 所設定的閾值,若大于,則將相應的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)或高八位數(shù) 據(jù)進行按位取反操作,并設定相應的翻轉標識,否則,保持相應的低八位數(shù)據(jù)、次低八位數(shù) 據(jù)、次高八位數(shù)據(jù)或高八位數(shù)據(jù)不變,并設定相應的翻轉標識,并將所有翻轉標志放在相應 微片中微片計數(shù)器的冗余位上,從而獲得翻轉結果; 步驟4、將所述微片中的微片頭、格雷碼計數(shù)器、翻轉結果、翻轉標識一起打包為編碼微 片并發(fā)送給所述源節(jié)點; 步驟5、所述源節(jié)點將編碼微片經(jīng)過所述片上網(wǎng)絡進行傳輸后到達目的節(jié)點; 步驟6、對所述目的節(jié)點所輸出的編碼微片判斷是否為頭微片,若為頭微片,則將頭微 片中的雷碼計數(shù)器轉換為二進制微片計數(shù)器、二進制包計數(shù)器后,并將二進制微片計數(shù)器、 二進制包計數(shù)器以及頭微片中的微片頭和低位數(shù)據(jù)一起打包為解碼微片并進行本地存儲; 否則,將所述編碼微片中的雷碼計數(shù)器轉換為二進制微片計數(shù)器、二進制包計數(shù)器,將翻轉 結果進行拆分,得到編碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和高八位數(shù)據(jù); 步驟7、根據(jù)相應的翻轉標識將所述編碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位 數(shù)據(jù)和高八位數(shù)據(jù)進行處理,得到解碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高八位數(shù)據(jù)和 高八位數(shù)據(jù); 步驟8、將所接到的解碼微片中的微片頭、解碼結果的低八位數(shù)據(jù)、次低八位數(shù)據(jù)、次高 八位數(shù)據(jù)和高八位數(shù)據(jù)、二進制微片計數(shù)器、二進制包計數(shù)器一起打包為解碼微片并進行 本地存儲。
【文檔編號】H03M7/26GK106059592SQ201610347303
【公開日】2016年10月26日
【申請日】2016年5月19日
【發(fā)明人】杜高明, 馬世碧, 張多利, 宋宇鯤, 李向陽, 尹勇生
【申請人】合肥工業(yè)大學