
本發(fā)明屬于微電子
技術(shù)領(lǐng)域:
,涉及深亞微米工藝集成電路片上網(wǎng)絡(luò)(Network-on-Chip,NoC),特別涉及一種抑制串?dāng)_的低功耗編解碼方法及編解碼器,可用于超大規(guī)模集成電路的設(shè)計(jì)。
背景技術(shù):
:片上網(wǎng)絡(luò)(Network-on-Chip,NoC)是片上系統(tǒng)(System-on-Chip,SoC)的一種全新的通信方法,它是多核技術(shù)的主要組成部分,借鑒了分布式計(jì)算系統(tǒng)的通信方式,用路由和分組交換技術(shù)替代傳統(tǒng)片上總線來(lái)完成通信任務(wù),是今后甚大規(guī)模集成電路的新設(shè)計(jì)范式。隨著單芯片集成核數(shù)的增加,重負(fù)載的長(zhǎng)互連成為片上網(wǎng)絡(luò)功耗的主要瓶頸。低功耗編碼技術(shù)是降低片上網(wǎng)絡(luò)動(dòng)態(tài)功耗的最有效方法之一。然而隨著集成電路工藝特征尺寸的不斷縮減,單一集成器件尺寸減小,局部互連線長(zhǎng)度隨之減小,然而全局互連線的長(zhǎng)度隨著芯片尺寸的增大而增大。而且,由于相鄰互連線之間距離以及互連線寬高比的減小,互連線之間的耦合電容CI已接近甚至遠(yuǎn)大于接地電容CL。不斷增加的耦合電容使相鄰互連線發(fā)生相對(duì)翻轉(zhuǎn)時(shí)產(chǎn)生嚴(yán)重的串?dāng)_,這種串?dāng)_尤其是最壞情況串?dāng)_(Worst-Case-Crosstalk,WCC)已成為影響信號(hào)質(zhì)量的主要因素,并導(dǎo)致集成電路性能下降及功能出錯(cuò)。因此,在采用低功耗編碼降低片上網(wǎng)路動(dòng)態(tài)功耗的同時(shí),必須考慮最壞情況串?dāng)_對(duì)全局互連線上數(shù)據(jù)傳輸質(zhì)量的影響。根據(jù)相鄰數(shù)據(jù)間的反轉(zhuǎn)情況可以將串?dāng)_分為六類,具體分類如表1所示,其中(δi-1,δi,δi+1)為第i-1、i和i+1根線信號(hào)跳轉(zhuǎn)情況,“-”、“↑”和“↓”分別表示不翻轉(zhuǎn)、0→1翻轉(zhuǎn)和1→0翻轉(zhuǎn)三種情況。λ為工藝參數(shù),且λ=CI/CL,前述最壞情況串?dāng)_指第五類和第六類串?dāng)_。表1根據(jù)相鄰數(shù)據(jù)的反轉(zhuǎn)情況的串?dāng)_分類串?dāng)_類型歸一化延時(shí)翻轉(zhuǎn)方式(δk-1δkδk+1)第一類0(---)第二類1(↑↑↑)(↓↓↓)第三類1+λ(-↑↑)(-↓↓)(↑↑-)(↓↓-)第四類1+2λ(-↑-)(-↓-)(↑↑↓)(↑↓↓)(↓↓↑)(↓↑↑)第五類1+3λ(-↑↓)(-↓↑)(↑↓-)(↓↑-)第六類1+4λ(↑↓↑)(↓↑↓)低功耗編碼技術(shù)和抑制串?dāng)_技術(shù)分別是降低功耗和改善數(shù)據(jù)傳輸質(zhì)量的最有效的方法之一。目前,許多文獻(xiàn)引入基于權(quán)重的總線反轉(zhuǎn)編碼(Weight-BasedBus-InvertCoding),“綠色”自檢錯(cuò)編碼(Self-CorrectedGreencoding)等編碼來(lái)實(shí)現(xiàn)低功耗編碼,然而未考慮長(zhǎng)互連的線間電容帶來(lái)的嚴(yán)重串?dāng)_問(wèn)題,僅采用低功耗編碼技術(shù),對(duì)于長(zhǎng)互連的片上網(wǎng)絡(luò)實(shí)現(xiàn)高速低功耗數(shù)據(jù)傳輸是非常困難的。技術(shù)實(shí)現(xiàn)要素:本發(fā)明提供一種抑制串?dāng)_的低功耗編解碼方法及其編解碼器,能夠降低傳輸數(shù)據(jù)的翻轉(zhuǎn)次數(shù)和抑制串?dāng)_的發(fā)生,從而有效減小數(shù)據(jù)傳輸?shù)膭?dòng)態(tài)功耗,并提高數(shù)據(jù)傳輸?shù)馁|(zhì)量。本發(fā)明的解決方案如下:針對(duì)片上網(wǎng)絡(luò)的低功耗、抗串?dāng)_的編碼方法,包括如下步驟:(1)并行輸入數(shù)據(jù)的每一數(shù)據(jù)線均以四位為一組編碼,根據(jù)組內(nèi)相鄰數(shù)據(jù)間翻轉(zhuǎn)情況分為兩種情況:翻轉(zhuǎn)次數(shù)大于1,則該組數(shù)據(jù)采用第一、三位或第二、四位取反的方式進(jìn)行編碼,同時(shí)將標(biāo)志信號(hào)Flag置“1”;翻轉(zhuǎn)次數(shù)小于或等于1,則該組數(shù)據(jù)保持不變,標(biāo)志信號(hào)Flag置“0”;(2)對(duì)編碼后的并行數(shù)據(jù)進(jìn)行并串轉(zhuǎn)換得到低階的并行數(shù)據(jù),并將轉(zhuǎn)換后的并行數(shù)據(jù)暫存在寄存器模塊中;(3)通過(guò)低階并行數(shù)據(jù)中依時(shí)序相鄰的兩列數(shù)據(jù)進(jìn)行按位異或運(yùn)算,若運(yùn)算結(jié)果出現(xiàn)連續(xù)兩個(gè)或更多個(gè)“1”,則對(duì)其中時(shí)序在后的數(shù)據(jù)自身對(duì)應(yīng)于連續(xù)“1”的連續(xù)若干個(gè)數(shù)據(jù)位進(jìn)行異或運(yùn)算,若依然是“1”,則說(shuō)明相鄰數(shù)據(jù)線上出現(xiàn)“10”→“01”或“01”→“10”,將串?dāng)_標(biāo)志位Flag_Anticrosstalk置“1”,從而判定存在最壞情況串?dāng)_;否則,判定不存在最壞情況串?dāng)_,串?dāng)_標(biāo)志位Flag_Anticrosstalk置“0”;(4)對(duì)應(yīng)于Flag_Anticrosstalk等于“1”的數(shù)據(jù)位,在依時(shí)序相鄰的兩個(gè)數(shù)據(jù)bt-1和bt之間插入屏蔽碼Bt-1,屏蔽碼Bt-1根據(jù)公式Bt-1=bt-1⊕bt+bt-1bt計(jì)算得到;對(duì)應(yīng)于Flag_Anticrosstalk等于“0”的數(shù)據(jù)位,在依時(shí)序相鄰的兩個(gè)數(shù)據(jù)之間插入數(shù)據(jù)bt-1或bt,最終所述低階的并行數(shù)據(jù)與相應(yīng)的屏蔽碼并行數(shù)據(jù)依時(shí)序間隔排列整合為時(shí)序加倍的待發(fā)送數(shù)據(jù)。上述步驟(2)中,優(yōu)選以4:1的比例進(jìn)行并串轉(zhuǎn)換。上述步驟(1)中,所述并行輸入數(shù)據(jù)可以是32位數(shù)據(jù),則步驟(3)所述低階并行數(shù)據(jù)即為8位數(shù)據(jù)。上述步驟(4)中,在依時(shí)序相鄰的兩個(gè)數(shù)據(jù)之間最好插入數(shù)據(jù)bt-1(即時(shí)序在前的數(shù)據(jù))。對(duì)上述編碼方法所得數(shù)據(jù)進(jìn)行解碼的方法,包括如下步驟:(1)通過(guò)采樣奇數(shù)時(shí)鐘觸發(fā)沿(第一列數(shù)據(jù)之前不會(huì)插入屏蔽碼,所以奇數(shù)列為有效數(shù)據(jù),偶數(shù)列為屏蔽碼)的輸入數(shù)據(jù)去除屏蔽碼并行數(shù)據(jù),保留所述低階的并行數(shù)據(jù)即有效數(shù)據(jù);(2)根據(jù)標(biāo)志信號(hào)Flag進(jìn)行解碼,若Flag等于“1”,則相應(yīng)地對(duì)數(shù)據(jù)的第一、三位或第二、四位進(jìn)行取反操作;若標(biāo)志信號(hào)Flag等于“0”,則數(shù)據(jù)保持不變;(3)對(duì)解碼后的數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換。一種用于實(shí)現(xiàn)(運(yùn)行)上述編碼方法的編碼器,包括低功耗編碼模塊,用于對(duì)并行輸入數(shù)據(jù)進(jìn)行編碼,輸出編碼后的并行數(shù)據(jù)和標(biāo)志信號(hào)Flag;并串轉(zhuǎn)換模塊,用于將編碼后的并行數(shù)據(jù)進(jìn)行并串轉(zhuǎn)換,得到低階的并行數(shù)據(jù);抑制串?dāng)_編碼模塊,用于判斷所述低階的并行數(shù)據(jù)中是否存在最壞情況串?dāng)_,產(chǎn)生相應(yīng)的屏蔽碼并行數(shù)據(jù);寄存器模塊:用于暫存并串轉(zhuǎn)換模塊發(fā)來(lái)的低階的并行數(shù)據(jù),并將抑制串?dāng)_編碼模塊提供的屏蔽碼并行數(shù)據(jù)依時(shí)序相應(yīng)插入低階的并行數(shù)據(jù)形成待發(fā)送數(shù)據(jù);時(shí)鐘分頻模塊,用于向低功耗編碼模塊和并串轉(zhuǎn)換模塊提供二分頻時(shí)鐘。一種用于實(shí)現(xiàn)(運(yùn)行)上述解碼方法的解碼器,包括屏蔽碼檢測(cè)模塊,用于采樣奇數(shù)時(shí)鐘觸發(fā)沿的輸入數(shù)據(jù)去除屏蔽碼并行數(shù)據(jù),保留所述低階的并行數(shù)據(jù)即有效數(shù)據(jù);低功耗解碼模塊:用于根據(jù)標(biāo)志信號(hào)Flag對(duì)有效數(shù)據(jù)進(jìn)行解碼,輸出解碼后的低階并行數(shù)據(jù);串并轉(zhuǎn)換模塊:用于將解碼后的低階并行數(shù)據(jù)進(jìn)行并串轉(zhuǎn)換,得到所需的并行數(shù)據(jù);時(shí)鐘分頻模塊,用于向低功耗解碼模塊和串并轉(zhuǎn)換模塊提供二分頻時(shí)鐘。本發(fā)明的技術(shù)效果闡述如下:該方法中的低功耗編碼部分,從減少數(shù)據(jù)間的翻轉(zhuǎn)次數(shù)的角度考慮,改變數(shù)據(jù)的編碼方式,相比于原始數(shù)據(jù),翻轉(zhuǎn)次數(shù)可降低37.56%,有效地降低了數(shù)據(jù)傳輸中的動(dòng)態(tài)功耗。該方法中的抑制串?dāng)_部分,通過(guò)在最劣串?dāng)_情況下,插入屏蔽碼的方式,在盡可能降低額外功耗的前提下,有效地減少了數(shù)據(jù)間串?dāng)_的發(fā)生。對(duì)于隨機(jī)數(shù)據(jù)源,該方法在避免最劣串?dāng)_的同時(shí),降低了37.51%的傳輸功耗。附圖說(shuō)明圖1是本發(fā)明抑制串?dāng)_的低功耗編碼器的實(shí)施例結(jié)構(gòu)圖;圖2是本發(fā)明抑制串?dāng)_的低功耗解碼器的實(shí)施例結(jié)構(gòu)圖;圖3是本發(fā)明低功耗編碼的映射關(guān)系和布爾表達(dá)式;圖4是本發(fā)明抑制串?dāng)_編碼示意圖;圖5是未采用本發(fā)明編碼與采用本發(fā)明編碼方法的平均功耗對(duì)比圖;圖6是未有效抑制串?dāng)_的常規(guī)方案與采用本發(fā)明編碼方法的眼圖對(duì)比圖。具體實(shí)施方式為使本發(fā)明的目的、特征和優(yōu)點(diǎn)更能明顯易懂,下文特舉本發(fā)明的較佳實(shí)施例,并配合附圖,作詳細(xì)說(shuō)明如下。參照?qǐng)D1,本發(fā)明的抑制串?dāng)_的低功耗編碼器,包括:低功耗編碼模塊、并串轉(zhuǎn)換模塊、抑制串?dāng)_模塊、時(shí)鐘分頻模塊和寄存器模塊。低功耗編碼模塊根據(jù)編碼映射關(guān)系完成低功耗編碼(具體參照?qǐng)D3);串并轉(zhuǎn)換模塊采用4:1比例對(duì)并行數(shù)據(jù)進(jìn)行串行轉(zhuǎn)換;抑制串?dāng)_模塊判斷是否發(fā)生最壞串?dāng)_情況,并在最壞串?dāng)_數(shù)據(jù)之間插入屏蔽碼;寄存器模塊用于暫存并串轉(zhuǎn)換后的數(shù)據(jù);時(shí)鐘分頻模塊用于提供二分頻時(shí)鐘。參照?qǐng)D2,本發(fā)明的抑制串?dāng)_的低功耗解碼器,包括:屏蔽碼檢測(cè)模塊、低功耗解碼模塊、串并轉(zhuǎn)換模塊。屏蔽碼檢測(cè)模塊用于檢測(cè)并去除屏蔽碼;低功耗解碼模塊用于低功耗編碼的解碼;串并轉(zhuǎn)換模塊采用1∶4的比例對(duì)串行化數(shù)據(jù)進(jìn)行并行轉(zhuǎn)換。參照?qǐng)D3,本發(fā)明的低功耗編碼的映射關(guān)系和布爾表達(dá)式。數(shù)據(jù)采用四位為一組的編碼方式。4位二進(jìn)制數(shù)據(jù)一共有16種不同的原始編碼,根據(jù)數(shù)據(jù)間翻轉(zhuǎn)次數(shù)不同,將16種原始編碼分成兩個(gè)集合。翻轉(zhuǎn)次數(shù)大于1的原始編碼為需要進(jìn)行編碼操作的集合,包括:“0101”、“1101”、“1001”、“1011”、“1010”、“0010”、“0100”、“0110”,其余的原始編碼為不需要進(jìn)行編碼操作的集合,包括:“0000”、“1000”、“1100”、“1110”、“1111”、“0111”、“0011”、“0001”。如果數(shù)據(jù)屬于需要編碼操作的集合,則數(shù)據(jù)的一、三位數(shù)據(jù)需要做取反操作,如果數(shù)據(jù)不屬于需要編碼操作的集合,則數(shù)據(jù)保持不變。為區(qū)分編碼和未編碼的數(shù)據(jù),引入標(biāo)志位信號(hào)Flag,若數(shù)據(jù)進(jìn)行了取反操作,則Flag置“1”,反之,則Flag置“0”。標(biāo)志位信號(hào)Flag由公式計(jì)算得到。參照?qǐng)D4,本發(fā)明的抑制串?dāng)_編碼示意圖。通過(guò)對(duì)已輸出數(shù)據(jù)和將要輸出的數(shù)據(jù)進(jìn)行按位異或運(yùn)算,若出現(xiàn)連續(xù)兩個(gè)“1”,再對(duì)將要輸出數(shù)據(jù)中出現(xiàn)連續(xù)“1”的數(shù)據(jù)位進(jìn)行異或運(yùn)算,若依然是“1”,則說(shuō)明相鄰數(shù)據(jù)線上出現(xiàn)“10”→“01”或“01”→“10”,將串?dāng)_標(biāo)志位Flag_Anticrosstalk置“1”,從而判斷存在最壞情況串?dāng)_,否則,不存在最壞情況串?dāng)_,串?dāng)_標(biāo)志位Flag_Anticrosstalk置“0”。如圖4所示,數(shù)據(jù)“00110110”和“01010100”按位異或運(yùn)算后,得到“01100010”,由于得到的數(shù)據(jù)的六、七位連續(xù)為“1”,對(duì)數(shù)據(jù)“00110110”的七、八位進(jìn)行異或運(yùn)算,結(jié)果仍為“1”,則判斷在六、七位上出現(xiàn)“10”→“01”或“01”→“10”反轉(zhuǎn),所以將串?dāng)_標(biāo)志位Flag_Anticrosstalk置“1”,并在六、七位數(shù)據(jù)間插入屏蔽碼“11”其余位數(shù)據(jù)保持不變,屏蔽碼根據(jù)公式Bt-1=bt-1⊕bt+bt-1bt計(jì)算得到。參照?qǐng)D5,本發(fā)明在降低平均功耗方面的優(yōu)點(diǎn)可以通過(guò)仿真結(jié)果進(jìn)一步說(shuō)明。在CadenceSpectre仿真工具中,基于1.2V,130mmCMOS,金屬層互連線線寬和線間距0.6um工藝下,數(shù)據(jù)傳輸采用全擺幅技術(shù)(Full-swing)的數(shù)據(jù)速率5Gb/s,輸入數(shù)據(jù)源采用隨機(jī)數(shù)據(jù)源(random)和標(biāo)準(zhǔn)性能評(píng)估公司提供的SPEC95/2000CINT數(shù)據(jù)源(包括:compress95、perl、parser、vortex、vpr和mcf)。在數(shù)據(jù)傳輸?shù)钠骄姆矫妫容^采用抑制串?dāng)_的低功耗編碼和未采用抑制串?dāng)_的低功耗編碼的方案,采用抑制串?dāng)_的低功耗編碼均優(yōu)于未采用低功耗編碼,特別是對(duì)于隨機(jī)數(shù)據(jù)源,抑制串?dāng)_的低功耗編碼使平均功耗降低大約40%。參照?qǐng)D6,本發(fā)明在抑制串?dāng)_方面的優(yōu)點(diǎn)可以通過(guò)方針結(jié)果進(jìn)一步說(shuō)明。在CadenceSpectre仿真工具中,基于1.2V,130mmCMOS,金屬層互連線線寬和線間距0.6um工藝下,數(shù)據(jù)傳輸采用全擺幅技術(shù)(Full-swing)的數(shù)據(jù)速率4Gb/s,輸入數(shù)據(jù)采用隨機(jī)數(shù)據(jù)源,通過(guò)數(shù)據(jù)眼圖,比較采用抑制串?dāng)_的低功耗編碼和未采用抑制串?dāng)_的低功耗編碼的方案。采用抑制串?dāng)_的低功耗編碼有效地增大了眼圖的眼高和眼寬,眼寬達(dá)到68%,即有效地抑制了數(shù)據(jù)傳輸中串?dāng)_的發(fā)生。當(dāng)前第1頁(yè)1 2 3