專(zhuān)利名稱(chēng):高性能抗串?dāng)_時(shí)空總線編解碼方法及其編解碼裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于微電子技術(shù)領(lǐng)域,涉及深亞微米工藝集成電路片上總線,尤其是一種 高性能抗串?dāng)_時(shí)空總線編解碼方法及其編解碼裝置,可用于超大規(guī)模集成電路的設(shè)計(jì)。
背景技術(shù):
隨著集成電路工藝特征尺寸的不斷縮減,集成器件尺寸減小、局 部互連線長(zhǎng)度更 短,但全局互連線的長(zhǎng)度依然隨芯片尺寸的增大而增大。而且,由于相鄰互連線之間距離以 及互連線寬高比的減小,互連線之間的耦合電容C1已接近甚至遠(yuǎn)大于接地電容Cp不斷增 加的耦合電容使相鄰互連線發(fā)生相對(duì)翻轉(zhuǎn)時(shí)產(chǎn)生嚴(yán)重的串?dāng)_,這種串?dāng)_尤其是最壞情況串 擾(Worst-Case-Crosstalk,WCC)已成為影響信號(hào)時(shí)序及時(shí)鐘周期的主要因素,并導(dǎo)致集 成電路性能下降及功能出錯(cuò);同時(shí)串?dāng)_還會(huì)增加互連線的功耗和噪聲。因此,消除串?dāng)_尤其 是最壞情況串?dāng)_對(duì)全局互連線延遲、功耗及噪聲的影響在高性能集成電路設(shè)計(jì)中是必須考 慮的一個(gè)問(wèn)題。本文中最壞情況串?dāng)_指1+4 λ和1+3λ這兩種串?dāng)_,λ為工藝參數(shù),且λ
—C1/Cl ο目前已有的一些抗串?dāng)_片上總線編碼方法主要有以下幾種“Optimal shielding/spacing metrics for low power design”涉及的方法較簡(jiǎn) 單,該方法在總線中相鄰的兩條互連線間插入屏蔽線或增加互連線的間距,這就可達(dá)到消 除最壞情況串?dāng)_的目的。在相鄰的互連線間插入屏蔽線的方法用于32位總線時(shí),編碼后總 線的位寬增加到63位,編碼后總線所消耗的芯片面積增加近一倍。"Bus encoding to prevent crosstalk delay,,中提出的方法,首先η位的;總線 分割成多個(gè)3位寬的子總線,子總線間再插入接地的屏蔽線以消除相鄰子總線間的串?dāng)_, 然后再分別對(duì)每個(gè)子總線進(jìn)行編碼,子總線編碼的具體過(guò)程為在每個(gè)子總線上利用編碼 電路將3位的數(shù)據(jù)字映射到4位的編碼數(shù)據(jù)字,編碼數(shù)據(jù)字的具有如下特點(diǎn)任意兩個(gè)編碼 數(shù)據(jù)字間不存在最壞情況串?dāng)_,因此原始數(shù)據(jù)經(jīng)該方法編碼后進(jìn)行傳送就不會(huì)引起最壞情 況串?dāng)_。例如,采用該方法,32位的總線經(jīng)過(guò)編碼后為53位,需增加21條冗余線。由此可 知,以上這兩種空間編碼方法的缺點(diǎn)是需增加大量的冗余線,從而使芯片面積冗余顯著增 加。"Delay and power minimization in VLSI interconnects with spatio-temporalbus-encoding scheme”中提出的雙周期時(shí)空總線編碼 Dual-Cycle STBE, 通過(guò)增加大量的屏蔽線將待傳送的數(shù)據(jù)字分兩個(gè)時(shí)周周期進(jìn)行傳送,從而達(dá)到消除最壞情 況串?dāng)_的目的。該方法的編碼過(guò)程為η位的數(shù)據(jù)按每4位一組進(jìn)行編碼,每4位數(shù)據(jù)編碼 后采用位寬為5的子總線分兩個(gè)周期傳送,并且相鄰的兩個(gè)子總線間插入屏蔽線以消除子 總線間的串?dāng)_,因此,η位的數(shù)據(jù)在編碼后需η+2[(η/4)-2]+1位的總線進(jìn)行傳送,例如32 位數(shù)據(jù)編碼后需45位的總線傳送。每個(gè)子總線的編碼過(guò)程為在第一個(gè)周期傳送前3位數(shù) 據(jù),這3位數(shù)據(jù)如無(wú)最壞情況串?dāng)_,則直接傳送,否則對(duì)原數(shù)據(jù)按位取反后傳送,此外這3位 數(shù)據(jù)的最高位和最低位都采用有源屏蔽線進(jìn)行屏蔽;在第二個(gè)周期傳送第4位數(shù)據(jù),同時(shí)還傳送在第一個(gè)周期傳送的3位數(shù)據(jù)的標(biāo)志信號(hào)位,此標(biāo)志信號(hào)位用于表示在第一個(gè)周期 傳送的3位數(shù)據(jù)是否進(jìn)行了取反操作。此方法能最大限度的消除串?dāng)_,但不足之處在于需 消耗更多的時(shí)鐘周期數(shù)以完成一定量的數(shù)據(jù)傳送,而且引入的冗余線也較多,功耗較大?!癆 crosstalk aware interconnect with variable cycle transmission,,提出 了一種動(dòng)態(tài)-翻轉(zhuǎn)編碼DYN-BI方法,該方法也屬于時(shí)空編碼方法,其編碼過(guò)程為首先,總 線上的串?dāng)_被分為6種類(lèi)型,即0、1、1+入、1+2入、1+3入和1+4λ,然后同時(shí)分析待傳送的數(shù) 據(jù)字的原碼和反碼的串?dāng)_類(lèi)型,選擇串?dāng)_較小的數(shù)據(jù)進(jìn)行傳送,傳送數(shù)據(jù)所需的周期數(shù)是 由編碼裝置中的串?dāng)_分析電路動(dòng)態(tài)控制的,當(dāng)串?dāng)_類(lèi)型為0、1和l+λ三種情況時(shí),用1個(gè) 周期傳送,當(dāng)串?dāng)_類(lèi)型為1+2 λ時(shí),用2個(gè)周期傳送,當(dāng)串?dāng)_類(lèi)型為1+3 λ時(shí),用3個(gè)周期傳 送,當(dāng)串?dāng)_類(lèi)型為1+4λ時(shí),用4個(gè)周期傳送。該方法基于串?dāng)_分析電路對(duì)待傳送數(shù)據(jù)串?dāng)_ 類(lèi)型的分析,動(dòng)態(tài)調(diào)節(jié)傳送數(shù)據(jù)的時(shí)鐘周期數(shù),這進(jìn)一步提高了時(shí) 空編碼方法的效率,缺點(diǎn) 是編碼電路的延遲較大,且未對(duì)編碼方法的功耗開(kāi)銷(xiāo)進(jìn)行優(yōu)化。
發(fā)明內(nèi)容
本發(fā)明的目的在于避免上述已有技術(shù)的不足,提供一種高性能抗串?dāng)_時(shí)空總線編 解碼方法及其編解碼裝置,以實(shí)現(xiàn)在消除最壞情況串?dāng)_且減少空間編碼方法所需的冗余線 的前提下,進(jìn)一步提高時(shí)空總線編碼方法的數(shù)據(jù)傳送效率,并且降低時(shí)空總線編碼方法的 功耗開(kāi)銷(xiāo)。為實(shí)現(xiàn)上述目的,本發(fā)明高性能抗串?dāng)_時(shí)空總線編碼方法的技術(shù)方案,包括如下 步驟(1)通過(guò)插入屏蔽線將位寬為N的總線分割為低位子總線和高位子總線,低位子 總線上的數(shù)據(jù)用Bt[k:0]表示,高位子總線上的數(shù)據(jù)用Bt[N-l:k+l]表示,其中N為大于等 于1的整數(shù),k為0到N-I間的一個(gè)整數(shù),t為時(shí)鐘周期;(2)分別對(duì)低位子總線待傳送數(shù)據(jù)的原碼Dt[k:0]及反碼 Dt[k:0]和高位子總 線待傳送數(shù)據(jù)的原碼Dt[N-l:k+l]及反碼 Dt[N-l:k+l]是否會(huì)引起最壞情況串?dāng)_進(jìn)行如 下判斷如果低位子總線傳送Dt[k:0]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線滿(mǎn)足 中間線的信號(hào)發(fā)生翻轉(zhuǎn),且其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方向 相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變,則判為 Dt[k:0]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateLl = 1 ;反之判為Dt[k:0]不 會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateLl = 0 ;如果低位子總線傳送 Dt[k:0]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線滿(mǎn) 足中間線的信號(hào)發(fā)生翻轉(zhuǎn),且其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方 向相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變,則判 為 Dt[k:0]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateL2 = 1 ;反之判為 Dt[k:0]不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateL2 = 0 ;如果高位子總線傳送Dt[N_l:k+l]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線 滿(mǎn)足中間線的信號(hào)發(fā)生翻轉(zhuǎn),且其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn) 方向相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變,則判為Dt[N_l:k+l]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)StateHl = 1 ;反之判為 Dt[N-l:k+l]不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateHl = O ;如果高位子總線傳送 Dt[N_l:k+l]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào) 線滿(mǎn)足中間線的信號(hào)發(fā)生翻轉(zhuǎn),且其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻 轉(zhuǎn)方向相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變, 則判為 Dt[N-l:k+l]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)StateH2 = 1 ;反之 判為 Dt[N-l:k+l]不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)StateH2 = 0 ;(3)根據(jù)低位和高位子總線待傳送數(shù)據(jù)原碼和反碼的標(biāo)志信號(hào)stateLl, stateL2, stateHl, stateH2得到低位和高位子總線是否存在最壞情況串?dāng)_的標(biāo)志信號(hào) stateL = stateLl&&stateL2 禾口 stateH = stateHl&&stateH2,如果標(biāo)志信號(hào)stateL為邏輯‘ 1’,則表明“低位子總線存在最壞情況串?dāng)_”,否則 表明“低位子總線不存在最壞情況串?dāng)_”;如果標(biāo)志信號(hào)stateH為邏輯‘ 1’,則表明“高位子總線存在最壞情況串?dāng)_”,否則 表明“高位子總線不存在最壞情況串?dāng)_”;(4)由上述標(biāo)志信號(hào)stateL和stateH,進(jìn)一步得到狀態(tài)信號(hào)state = stateL Il stateH,根據(jù)狀態(tài)信號(hào)state作如下操作如果state為邏輯‘ 1’,則在整個(gè)總線插入N位的全‘1’或全‘0’屏蔽字,以消除 總線中的最壞情況串?dāng)_,同時(shí)設(shè)置標(biāo)志信號(hào)flag = 1,用于告知解碼裝置當(dāng)前傳送的數(shù)據(jù) 字為屏蔽字,標(biāo)志信號(hào)inv
和inv[l]保持不變,其中inv
和inv[l]分別用于表示 低位和高位子總線上傳送數(shù)據(jù)的類(lèi)型,如果該標(biāo)志信號(hào)被設(shè)置為邏輯‘1’,表示傳送的是反 碼,標(biāo)志信號(hào)被設(shè)置為邏輯‘0’,表示傳送的是原碼;如果state為邏輯‘0’,低位和高位子總線分別從待傳送數(shù)據(jù)的原碼與反碼中選 一個(gè)不會(huì)引起最壞情況串?dāng)_的數(shù)據(jù)字傳送;同時(shí)設(shè)置標(biāo)志信號(hào)flag = 0,用于告知解碼裝 置當(dāng)前傳送的數(shù)據(jù)字為有效數(shù)據(jù)字;如果低位子總線傳送的為原碼,標(biāo)志信號(hào)irw
被設(shè) 置為邏輯‘0’,如果傳送的為反碼,標(biāo)志信號(hào)irw
被設(shè)置為邏輯‘1’ ;如果高位子總線傳 送的為原碼,標(biāo)志信號(hào)irw[l]被設(shè)置為邏輯‘0’,如果傳送的為反碼,標(biāo)志信號(hào)inv[l]被設(shè) 置為邏輯‘1’ ;(5)如果state為邏輯‘ 1’,數(shù)據(jù)發(fā)送單元將在下一個(gè)周期重新發(fā)送數(shù)據(jù)Dt給編碼 裝置;如果state為邏輯‘0’,數(shù)據(jù)發(fā)送單元將在下一個(gè)周期繼續(xù)傳送新數(shù)據(jù)給編碼裝置, 并轉(zhuǎn)到步驟(2)。為實(shí)現(xiàn)上述目的,本發(fā)明的高性能抗串?dāng)_時(shí)空總線解碼方法,包括如下步驟(A)如果標(biāo)志信號(hào)flag= 1,則表示當(dāng)前從總線接收的數(shù)據(jù)字為屏蔽字,此時(shí)編碼 裝置的輸出D0UTt+1保持原狀態(tài)DOUTt不變,否則進(jìn)行步驟(B);(B)如果標(biāo)志信號(hào)flag = 0,則進(jìn)行步驟(C);(C)根據(jù)irw
和inv[l]分別對(duì)低位子總線和高位子總線傳送的數(shù)據(jù)進(jìn)行解碼, 若irw
為邏輯‘1’,則低位子總線的輸出為當(dāng)前低位子總線數(shù)據(jù)的反碼;若irw
為邏 輯‘0’,則低位子總線的輸出為當(dāng)前低位子總線數(shù)據(jù)的原碼;若inv[l]為邏輯‘1’,則高位 子總線的輸出為當(dāng)前高位子總線數(shù)據(jù)的反碼,若inv[l]為邏輯‘0’,則高位子總線的輸出 為當(dāng)前高位子總線數(shù)據(jù)的原碼;并轉(zhuǎn)到步驟(A),對(duì)下一個(gè)周期總線傳送的數(shù)據(jù)進(jìn)行解碼。
為實(shí)現(xiàn)上述目的,本發(fā)明的高性能抗串?dāng)_時(shí)空總線編碼裝置,包括高位子總線編碼單元(900),用于高位子總線編碼,并輸出兩個(gè)高位標(biāo)志信號(hào) StateHl和stateH2給屏蔽字插入控制單元(902);低位子總線編碼單元(901),用于低位子總線編碼,并輸出兩個(gè)低位標(biāo)志信號(hào) StateLl和stateL2給屏蔽字插入控制單元(902);屏蔽字插入控制單元(902),用于控制屏蔽字的插入,并根據(jù)高位子總線編碼單 元(900)和低位子總線編碼單元(901)提供的標(biāo)志信號(hào)stateHl,stateH2,stateLl和 stateL2生成狀態(tài)信號(hào)state,以控制高位子總線編碼單元(900)和低位子總線編碼單元 (901)的輸出,同時(shí)告知數(shù)據(jù)發(fā)送單元在下一周期是否發(fā)送新的數(shù)據(jù);寄存器(903),用于輸出屏蔽字插入控制單元(902)生成的狀 態(tài)信號(hào)state,該狀 態(tài)信號(hào)state由寄存器(903)輸出,得到標(biāo)志信號(hào)flag。為實(shí)現(xiàn)上述目的,本發(fā)明的高性能抗串?dāng)_時(shí)空總線解碼裝置,包括高位子總線解碼單元(600),用于高位子總線解碼,高位子總線解碼單元(600)的 輸入數(shù)據(jù)為高位子總線上的數(shù)據(jù)Bt [31 16],輸出為解碼后的數(shù)據(jù)DOUTt [31 16],該單元包 括反相器(610),多路開(kāi)關(guān)(611),多路開(kāi)關(guān)(612)和寄存器(613);該反相器(610)的輸 出數(shù)據(jù)傳輸給多路開(kāi)關(guān)(611),多路開(kāi)關(guān)(611)輸出端與多路開(kāi)關(guān)(612)的輸入端連接,多 路開(kāi)關(guān)(611)輸出端與寄存器(613)的輸入端連接;低位子總線解碼單元(601),用于低位子總線解碼,低位子總線解碼單元(601)的 輸入數(shù)據(jù)為低位子總線上的數(shù)據(jù)Bt[15:0],輸出為解碼后的數(shù)據(jù)DOUTt[15:0],該單元包 括反相器(620),多路開(kāi)關(guān)(621),多路開(kāi)關(guān)(622)和寄存器(623);該反相器(620)的輸 出數(shù)據(jù)傳輸給多路開(kāi)關(guān)(621),多路開(kāi)關(guān)(621)輸出端與多路開(kāi)關(guān)(622)的輸入端連接,多 路開(kāi)關(guān)(621)輸出端與寄存器(623)的輸入端連接;標(biāo)志信號(hào)輸出寄存器(602),用于寄存并輸出標(biāo)志信號(hào)FLAG,其輸入端與總線的 標(biāo)志信號(hào)flag連接,輸出為標(biāo)志信號(hào)FLAG,此標(biāo)志信號(hào)FLAG用于指示解碼裝置當(dāng)前輸出的 數(shù)據(jù)是否為有效數(shù)據(jù)。本發(fā)明具有如下優(yōu)點(diǎn)1)本發(fā)明方法通過(guò)串?dāng)_類(lèi)型判斷單元判斷子總線是否存在最壞情況串?dāng)_,并通過(guò) 在整個(gè)總線中插入N位的全‘1’或全‘0’屏蔽字的方式,消除總線中的最壞情況串?dāng)_,因此 可提高總線的工作頻率,進(jìn)而提高總線的數(shù)據(jù)傳送效率;2)本發(fā)明方法通過(guò)屏蔽線將總線分割為高位子總線和低位子總線來(lái)處理,并且每 個(gè)子總線同時(shí)對(duì)傳送數(shù)據(jù)的原碼與反碼是否會(huì)引起最壞情況串?dāng)_進(jìn)行判斷,以選取有利于 提高效率的數(shù)據(jù)進(jìn)行傳送,以上兩個(gè)措施可減小整個(gè)總線出現(xiàn)最壞情況串?dāng)_的概率,總線 出現(xiàn)最壞情況串?dāng)_的概率降低,可減少用于消除最壞情況串?dāng)_的屏蔽字的插入,從而降低 時(shí)間開(kāi)銷(xiāo);3)本發(fā)明方法通過(guò)綜合判斷兩個(gè)子總線的串?dāng)_情況,動(dòng)態(tài)調(diào)節(jié)屏蔽字的插入,即 僅當(dāng)判斷出子總線傳送數(shù)據(jù)的原碼和反碼均會(huì)引起最壞情況串?dāng)_時(shí),才在總線上插入屏蔽 字以消除最壞情況串?dāng)_,其他情況不須插入屏蔽字,因此該方法具有自適應(yīng)性,使數(shù)據(jù)傳送 效率得到了進(jìn)一步提高;4)本發(fā)明方法能減小時(shí)空編碼中總線最壞情況串?dāng)_出現(xiàn)的概率,進(jìn)而降低由最壞情況串?dāng)_引起的功耗。與現(xiàn)有技術(shù)相比,本發(fā)明方法的主要改進(jìn)之處在于進(jìn)一步提高了時(shí)空總線編碼 方法的數(shù)據(jù)傳送效率,同時(shí)也具有較低的功耗開(kāi)銷(xiāo)。
圖1是本發(fā)明高性能抗串?dāng)_時(shí)空總線編解碼裝置結(jié)構(gòu)框圖;圖2是本發(fā)明編碼裝置的實(shí)施例結(jié)構(gòu)圖;圖3是本發(fā)明編碼裝置中的串?dāng)_類(lèi)型判斷單元結(jié)構(gòu)圖;圖4是本發(fā)明總線裝置的結(jié)構(gòu)示意圖;
圖5是本發(fā)明解碼裝置的實(shí)施例結(jié)構(gòu)圖;圖6是用現(xiàn)有編碼方法與本發(fā)明編碼方法的時(shí)間節(jié)省率對(duì)比圖;圖7是用現(xiàn)有編碼方法與本發(fā)明編碼方法在總線上的歸一化功耗對(duì)比圖。
具體實(shí)施例方式為使本發(fā)明的目的、特征和優(yōu)點(diǎn)更能明顯易懂,下文特舉本發(fā)明的較佳實(shí)施例,并 配合附圖,作詳細(xì)說(shuō)明如下。參照?qǐng)D1,本發(fā)明的高性能抗串?dāng)_時(shí)空總線編解碼裝置,包括數(shù)據(jù)發(fā)送單元100,編碼裝置101,總線裝置102,解碼裝置103和數(shù)據(jù)接收單元 104。其中,數(shù)據(jù)發(fā)送單元100的輸出端與編碼裝置101的輸入端連接,并根據(jù)編碼裝置101 輸出的狀態(tài)信號(hào)State傳輸原始數(shù)據(jù)給編碼裝置101 ;編碼裝置101首先將數(shù)據(jù)發(fā)送單元 100傳送的原始數(shù)據(jù)字轉(zhuǎn)化成編碼數(shù)據(jù)字,然后再傳輸給總線裝置102 ;總線裝置102連接 編碼裝置101的輸出與解碼裝置103的輸入,編碼數(shù)據(jù)字經(jīng)由該總線裝置102傳輸給解碼 裝置103 ;解碼裝置103首先將總線裝置102傳輸來(lái)的編碼數(shù)據(jù)字再轉(zhuǎn)化成原始數(shù)據(jù)字,然 后傳輸給數(shù)據(jù)接收單元104 ;數(shù)據(jù)接收單元104根據(jù)解碼裝置103輸出的標(biāo)志信號(hào)FLAG接 收經(jīng)解碼裝置103解碼后的原始數(shù)據(jù)。參照?qǐng)D2,本發(fā)明編碼裝置包括高位子總線編碼單元900,低位子總線編碼單元 901,屏蔽字插入控制單元902和寄存器903四個(gè)單元。其中,高位子總線編碼單元900對(duì) 待傳送數(shù)據(jù)原碼Dt[31:16]和反碼 Dt[31:16]是否會(huì)引起最壞情況串?dāng)_進(jìn)行判斷后,輸 出兩個(gè)高位標(biāo)志信號(hào)StateHl和StateH2給屏蔽字插入控制單元902 ;與此同時(shí),低位子總 線編碼單元901對(duì)待傳送數(shù)據(jù)原碼Dt[15:0]和反碼 Dt[15:0]是否會(huì)引起最壞情況串?dāng)_ 進(jìn)行判斷后,輸出兩個(gè)低位標(biāo)志信號(hào)StateLl和stateL2給屏蔽字插入控制單元902 ;屏蔽 字插入控制單元902根據(jù)高位子總線編碼單元900和低位子總線編碼單元901輸出的標(biāo)志 信號(hào)stateHl, stateH2, stateLl禾口 stateL2生成狀態(tài)信號(hào)state,該狀態(tài)信號(hào)state再反 饋到高位子總線編碼單元900和低位子總線編碼單元901以控制整個(gè)編碼裝置的輸出,如 果state為邏輯‘1’,則在整個(gè)總線插入N位的全‘1’或全‘0’屏蔽字,以消除總線中的最 壞情況串?dāng)_;如果state為邏輯‘0’,低位和高位子總線分別從待傳送數(shù)據(jù)的原碼與反碼中 任選一個(gè)不會(huì)引起最壞情況串?dāng)_的數(shù)據(jù)字傳送;同時(shí)狀態(tài)信號(hào)state也反饋給數(shù)據(jù)發(fā)送單 元,數(shù)據(jù)發(fā)送單元根據(jù)狀態(tài)信號(hào)state判斷在下一周期是否發(fā)送新的數(shù)據(jù);最后,狀態(tài)信號(hào) state由寄存器903輸出,得到標(biāo)志信號(hào)flag。
上述高位子總線編碼單元900,包括反相器818,第一串?dāng)_類(lèi)型判斷單元8101,第二串?dāng)_類(lèi)型判斷單元8102,多路復(fù)用開(kāi)關(guān)組814,多路復(fù)用開(kāi)關(guān)組816,寄存器820和寄存器821。其中,反相器818首先將待傳 送數(shù)據(jù)原碼Dt [31:16]轉(zhuǎn)換為反碼 Dt [31:16],然后該反碼 Dt [31:16]被傳送到串?dāng)_類(lèi) 型判斷單元8102和多路復(fù)用開(kāi)關(guān)組814的輸入端;第一串?dāng)_類(lèi)型判斷單元8101,根據(jù)待傳送數(shù)據(jù)原碼Dt[31:16]和高位子總線上 的數(shù)據(jù)Bt[31:16]判斷出高位子總線待傳送數(shù)據(jù)原碼Dt[31:16]是否會(huì)引起最壞情況串 擾,如果高位子總線傳送Dt [31 16]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線滿(mǎn)足中 間線的信號(hào)發(fā)生翻轉(zhuǎn),且與其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方 向相反,或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變;則 判為Dt[31:16]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateHl = 1,反之判為 Dt[31:16]不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateHl = 0 ;最后,將判斷結(jié) 果stateHl傳輸給屏蔽字插入控制單元902和多路復(fù)用開(kāi)關(guān)組814的輸入端;第二串?dāng)_類(lèi)型判斷單元8102根據(jù)待傳送數(shù)據(jù)反碼 Dt [31:16]和高位子總線上 的數(shù)據(jù)Bt[31:16]判斷出高位子總線待傳送數(shù)據(jù)反碼 Dt[31:16]是否會(huì)引起最壞情況串 擾,如果高位子總線傳送 Dt [31 16]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線滿(mǎn)足中 間線的信號(hào)發(fā)生翻轉(zhuǎn),且與其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方向 相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變;則判 為 Dt[31:16]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)StateH2 = 1,反之判為 Dt[31:16]不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)StateH2 = 0 ;最后,將判斷結(jié) 果StateH2傳輸給屏蔽字插入控制單元902的輸入端;多路復(fù)用開(kāi)關(guān)組814,由串?dāng)_類(lèi)型判斷單元8101的輸出信號(hào)stateHl控制,其輸 入端與待傳送數(shù)據(jù)原碼Dt [31:16]和反碼 Dt [31:16]連接,輸出端與多路復(fù)用開(kāi)關(guān)組816 的輸入端連接;根據(jù)第一串?dāng)_類(lèi)型判斷單元8101的判斷結(jié)果stateHl,從待傳送數(shù)據(jù)原碼 Dt[31:16]和反碼 Dt[31:16]中選出不會(huì)引起最壞情況串?dāng)_的數(shù)據(jù)字,同時(shí)為標(biāo)志信號(hào) inv[l]設(shè)置一個(gè)邏輯值;多路復(fù)用開(kāi)關(guān)組816,它的輸入端與多路復(fù)用開(kāi)關(guān)組814的輸出端、十六位的全 ‘1’屏蔽字和寄存器821的輸出信號(hào)irw[l]連接,輸出端與寄存器820和寄存器821的輸入 端連接;根據(jù)屏蔽字插入控制單元902的輸出的狀態(tài)信號(hào)state,如果state為邏輯‘ 1’,則 輸出16位的全‘1’屏蔽字‘FFFF’,以消除總線中的最壞情況串?dāng)_,如果state為邏輯‘0’, 則輸出多路復(fù)用開(kāi)關(guān)組814輸出的有效數(shù)據(jù)字,同時(shí)該多路復(fù)用開(kāi)關(guān)組816還從多路復(fù)用 開(kāi)關(guān)組814和寄存器821的輸出信號(hào)中選出標(biāo)志信號(hào)irw[l]的邏輯值;寄存器820,它的輸入端與多路復(fù)用開(kāi)關(guān)組816的輸出端連接,輸出端與高位子總 線連接;高位子總線編碼單元900編碼后的數(shù)據(jù)字由寄存器820寄存,并輸出給高位子總 線.寄存器821,它的輸入端與多路復(fù)用開(kāi)關(guān)組816的輸出端連接,輸出端與標(biāo)志信號(hào) 線inv[l]和多路復(fù)用開(kāi)關(guān)組816的輸入端連接,其輸出的標(biāo)志信號(hào)irw[l]由寄存器821 寄存并輸出給標(biāo)志信號(hào)線inv[l]。上述低位子總線編碼單元901,包括反相器918,第三串?dāng)_類(lèi)型判斷單元9101,第四串?dāng)_類(lèi)型判斷單元9102,多路復(fù)用開(kāi)關(guān)組914,多路復(fù)用開(kāi)關(guān)組916,寄存器920和寄存器 921。其中,反相器918首先將待傳送數(shù)據(jù)原碼Dt [15:0]轉(zhuǎn)換為反碼 Dt [15 0],然后該反 碼 Dt[31:16]被傳送到串?dāng)_類(lèi)型判斷單元9102和多路復(fù)用開(kāi)關(guān)組914的輸入端;所述第三串?dāng)_類(lèi)型判斷單元9101根據(jù)待傳送數(shù)據(jù)原碼Dt[15:0]和低位子總線 上的數(shù)據(jù)Bt[15:0]判斷出低位子總線待傳送數(shù)據(jù)原碼Dt[15:0]是否會(huì)引起最壞情況串 擾,如果低位子總線傳送Dt[15:0]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線滿(mǎn)足中間 線的信號(hào)發(fā)生翻轉(zhuǎn),且與其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方向相 反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變;則判為 Dt[15:0]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)StateLl = 1,反之判為Dt[15:0] 不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateLl = 0 ;最后,將判斷結(jié)果stateLl 傳輸給屏蔽字插入控制單元902和多路復(fù)用開(kāi)關(guān)組914的輸入端;所述第四串?dāng)_類(lèi)型判斷單元9102根據(jù)待傳送數(shù)據(jù)反碼 Dt [15:0]和低位子總線 上的數(shù)據(jù)Bt[15:0]判斷出低位子總線待傳送數(shù)據(jù)反碼 Dt[15:0]是否會(huì)引起最壞情況串 擾,如果低位子總線傳送 Dt[15:0]時(shí)存在任意三條 相鄰的信號(hào)線,該三條信號(hào)線滿(mǎn)足中 間線的信號(hào)發(fā)生翻轉(zhuǎn),且與其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方向 相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變;則判 為 Dt[15:0]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateL2 = 1,反之判為 Dt[15:0]不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateL2 = 0 ;最后,將判斷結(jié) 果stateL2傳輸給屏蔽字插入控制單元902的輸入端;所述多路復(fù)用開(kāi)關(guān)組914,由串?dāng)_類(lèi)型判斷單元9101的輸出信號(hào)stateLl控制, 其輸入端與待傳送數(shù)據(jù)原碼Dt[15:0]和反碼 Dt[15:0]連接,輸出端與多路復(fù)用開(kāi)關(guān)組 916的輸入端連接;根據(jù)第三串?dāng)_類(lèi)型判斷單元9101的判斷結(jié)果stateLl,從待傳送數(shù)據(jù) 原碼Dt[15:0]和反碼 Dt[15:0]中選出不會(huì)引起最壞情況串?dāng)_的數(shù)據(jù)字,同時(shí)為標(biāo)志信號(hào) inv
設(shè)置一個(gè)邏輯值;所述多路復(fù)用開(kāi)關(guān)組916,它的輸入端與多路復(fù)用開(kāi)關(guān)組914的輸出端、十六位的 全‘1’屏蔽字和寄存器921的輸出信號(hào)irw
連接,輸出端與寄存器920和寄存器921的 輸入端連接;根據(jù)屏蔽字插入控制單元902的輸出的狀態(tài)信號(hào)state,如果state為邏輯 ‘1’,則輸出16位的全‘1’屏蔽字‘FFFF’,以消除總線中的最壞情況串?dāng)_,如果state為邏 輯‘0’,則輸出多路復(fù)用開(kāi)關(guān)組914輸出的有效數(shù)據(jù)字,同時(shí)該多路復(fù)用開(kāi)關(guān)組916還從多 路復(fù)用開(kāi)關(guān)組914和寄存器921的輸出信號(hào)中選出標(biāo)志信號(hào)irw
的邏輯值;所述寄存器920,它的輸入端與多路復(fù)用開(kāi)關(guān)組916的輸出端連接,輸出端與低位 子總線連接;低位子總線編碼單元901編碼后的數(shù)據(jù)字由寄存器920寄存,并輸出給低位子 總線;所述寄存器921的輸入端與多路復(fù)用開(kāi)關(guān)組916的輸出端連接,輸出端與標(biāo)志信 號(hào)線irw
和多路復(fù)用開(kāi)關(guān)組916的輸入端連接;其輸出的標(biāo)志信號(hào)irw
由寄存器921 寄存并輸出給標(biāo)志信號(hào)線inv
。參照?qǐng)D3,本發(fā)明編碼裝置中的串?dāng)_類(lèi)型判斷單元8101,8102,9101,9102結(jié)構(gòu)相 同,各包括十五個(gè)子模塊700,701,702,…,714,兩個(gè)十五輸入的或門(mén)4311,4312和一個(gè) 二輸入的或門(mén)4313。其中
該十五個(gè)子模塊700,701,702,…,714中均包括一個(gè)模塊432,該模塊有兩個(gè)輸 出端,每個(gè)子模塊一個(gè)輸出端與十五輸入的或門(mén)4311連接,另一個(gè)輸出端與十五輸入的或 門(mén)4312連接;根據(jù)待傳送數(shù)據(jù)的原碼或反碼和子總線上的數(shù)據(jù),其可判斷出子總線中相鄰 的三條信號(hào)線在傳送該數(shù)據(jù)時(shí)是否會(huì)引起最壞情況串?dāng)_,如果該三條信號(hào)線滿(mǎn)足中間線的 信號(hào)發(fā)生翻轉(zhuǎn),且與其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方向相反, 或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變;則判為該數(shù) 據(jù)會(huì)引起最壞情況串?dāng)_,同時(shí)輸出邏輯‘1’,反之判為該數(shù)據(jù)不會(huì)引起最壞情況串?dāng)_,同時(shí) 輸出邏輯‘0’ ;該兩個(gè)十五輸入的或門(mén)4311,4312,其輸入端與十五個(gè)子模塊700,701,702,…, 714的輸出端連接,輸出端與二輸入的或門(mén)4313的輸入端連接;如果任意三條相鄰信號(hào)線 發(fā)生最壞情況串?dāng)_,即上述十五個(gè)子模塊700,701,702,…,714中的任意一個(gè)模塊輸出為 邏輯‘1’,則十五輸入的或門(mén)4311,4312輸出邏輯‘1,;該二輸入的或門(mén)4313,其輸入端與兩個(gè)十五輸入的或門(mén)4311,4312的輸出端連 接,輸出端為串?dāng)_類(lèi)型判斷結(jié)果;如果兩個(gè)十五輸入的或門(mén)4311,4312其中之一輸出為邏 輯‘1’,則該二輸入的或門(mén)4313也輸出邏輯‘1’。參照?qǐng)D4,本發(fā)明的總線裝置,依次包括低位子總線501、屏蔽線502、高位子總 線500、屏蔽線Bt [31] 508、標(biāo)志信號(hào)線flag505、屏蔽線506、標(biāo)志信號(hào)線inv
503、屏蔽線 507和標(biāo)志信號(hào)線inv [1] 504。該總線裝置102的位寬為39,即由39條信號(hào)線構(gòu)成,所有信 號(hào)線的幾何尺寸相同,且相鄰信號(hào)線的間距也相等,其中低位子總線501,其連接低位子總線編碼單元和低位子總線解碼單元,低位子總線 編碼單元輸出的編碼數(shù)據(jù)字經(jīng)該低位子總線501傳輸?shù)降臀蛔涌偩€解碼單元進(jìn)行解碼,該 子總線的位寬為16 ;屏蔽線502,其位于低位子總線501和高位子總線500間,其與電源或地連接,不 用于信號(hào)傳輸,而僅用于屏蔽高位子總線500和低位子總線501,以使這兩個(gè)子總線相對(duì)獨(dú) 立;高位子總線500,其連接高位子總線編碼單元和高位子總線解碼單元,高位子總線 編碼單元輸出的編碼數(shù)據(jù)字經(jīng)該高位子總線500傳輸?shù)礁呶蛔涌偩€解碼單元進(jìn)行解碼,該 子總線的位寬為16 ;屏蔽線Bt[31]508,其上傳送的信號(hào)與高位子總線500的最高位信號(hào)相同,該屏蔽 線Bt [31]508消除了標(biāo)志信號(hào)flag505對(duì)高位子總線500的影響,;標(biāo)志信號(hào)線inv
503、inv[1] 504和flag505,它們將相應(yīng)的標(biāo)志信號(hào)inv
、 inv[l]和flag從編碼裝置傳輸?shù)浇獯a裝置;屏蔽線506,其位于標(biāo)志信號(hào)線flag505和inv
503間,用于消除標(biāo)志信號(hào)線 flag505和inv
503間可能發(fā)生的最壞情況串?dāng)_;屏蔽線507,其位于標(biāo)志信號(hào)線invW]503和inv[l]504間,用于消除標(biāo)志信號(hào)線 invW]503和inv[l]504間可能發(fā)生的最壞情況串?dāng)_。參照?qǐng)D5,本發(fā)明解碼裝置包括高位子總線解碼單元600,低位子總線解碼單元 601和標(biāo)志信號(hào)輸出寄存器602三個(gè)單元。其中高位子總線解碼單元600,包括反相器610,多路開(kāi)關(guān)611,多路開(kāi)關(guān)612和寄存器613。該反相器610首先將高位子總線傳輸來(lái)的數(shù)據(jù)Bt[31:16]反相,得到反碼 Bt [31 16], 該反碼再與數(shù)據(jù)Bt[31:16] —同傳輸給多路開(kāi)關(guān)611 ;該多路開(kāi)關(guān)611,由標(biāo)志信號(hào)inv[l] 控制,它的輸入為數(shù)據(jù)Bt [31 16]和 Bt [31 16],輸出與多路開(kāi)關(guān)612的輸入端連接;根據(jù) 標(biāo)志信號(hào)inv[l]的邏輯值,如果inv[l] = 1,則將數(shù)據(jù) Bt [31 16]傳輸給多路開(kāi)關(guān)612, 如果irw[l] = 0,則將數(shù)據(jù)Bt [31 16]傳輸給多路開(kāi)關(guān)612 ;該多路開(kāi)關(guān)612,由標(biāo)志信號(hào) flag控制,它的輸入與多路開(kāi)關(guān)611的輸出端和寄存器613的輸出端連接,輸出端與寄存 器613的輸入端連接;根據(jù)標(biāo)志信號(hào)flag的邏輯值,如果標(biāo)志信號(hào)flag = 1,則表示當(dāng)前 從總線接收的數(shù)據(jù)字為屏蔽字,此時(shí)輸出寄存器613的反饋數(shù)據(jù),如果標(biāo)志信號(hào)flag = 0, 則輸出來(lái)自多路開(kāi)關(guān)611輸出端的數(shù)據(jù);該寄存器613,它的輸入與多路開(kāi)關(guān)612的輸出端 連接,輸 出為解碼后的數(shù)據(jù)DOUTt [31 16]。低位子總線解碼單元601,包括反相器620,多路開(kāi)關(guān)621,多路開(kāi)關(guān)622和寄存器 623。該反相器620首先將低位子總線傳輸來(lái)的數(shù)據(jù)Bt [15:0]反相,得到反碼 Bt [15 0], 該反碼 Bt[15:0]再與數(shù)據(jù)Bt[15:0] —同傳輸給多路開(kāi)關(guān)621 ;該多路開(kāi)關(guān)621,由標(biāo)志信 號(hào)irw
控制,它的輸入為數(shù)據(jù)Bt[15:0]和 Bt[15:0],輸出與多路開(kāi)關(guān)622的輸入端連 接;根據(jù)標(biāo)志信號(hào)inv
的邏輯值,如果irw
= 1,則將數(shù)據(jù) Bt [15 0]傳輸給多路開(kāi) 關(guān)622,如果inv
= 0,則將數(shù)據(jù)Bt [15:0]傳輸給多路開(kāi)關(guān)622 ;該多路開(kāi)關(guān)622,由標(biāo)志 信號(hào)flag控制,它的輸入與多路開(kāi)關(guān)621的輸出端和寄存器623的輸出端連接,輸出端與 寄存器623的輸入端連接;根據(jù)標(biāo)志信號(hào)flag的邏輯值,如果標(biāo)志信號(hào)flag= 1,則表示當(dāng) 前從總線接收的數(shù)據(jù)字為屏蔽字,此時(shí)輸出寄存器623的反饋數(shù)據(jù),如果標(biāo)志信號(hào)flag = 0,則輸出來(lái)自多路開(kāi)關(guān)621輸出端的數(shù)據(jù);該寄存器623,它的輸入與多路開(kāi)關(guān)622的輸出 端連接,輸出為解碼后的數(shù)據(jù)DOUTt [15 0]。標(biāo)志信號(hào)輸出寄存器602,它的輸入端與總線的標(biāo)志信號(hào)線flag連接,輸出為標(biāo) 志信號(hào)FLAG,它對(duì)從總線裝置的標(biāo)志信號(hào)線flag傳輸來(lái)的信號(hào)進(jìn)行寄存并輸出,輸出的標(biāo) 志信號(hào)FLAG最終傳輸給數(shù)據(jù)接收單元。對(duì)于圖2所述的編碼裝置,其編碼方法包括如下步驟步驟1,分割總線。通過(guò)插入屏蔽線將位寬為32的總線分割為低位子總線和高位子總線處理,以減 小整個(gè)總線出現(xiàn)最壞情況串?dāng)_的概率,從而減少用于消除最壞情況串?dāng)_的屏蔽字的插入, 降低時(shí)間開(kāi)銷(xiāo);低位子總線上的數(shù)據(jù)用Bt[k:0]表示,高位子總線上的數(shù)據(jù)用Bt[N-l:k+l] 表示,其中N為大于等于1的整數(shù),k為0到N-I間的一個(gè)整數(shù),t為時(shí)鐘周期,本實(shí)施例取 低位子總線上傳送的數(shù)據(jù)為Bt[15:0],高位子總線上傳送的數(shù)據(jù)為Bt[31:16],但不限于此 數(shù)據(jù)。步驟2,判斷子總線上待傳送數(shù)據(jù)的串?dāng)_情況。首先,采用反相器將低位和高位子總線待傳送數(shù)據(jù)的原碼Dt[15:0]和Dt[31:16] 反相,得到相應(yīng)的反碼 Dt[15:0]和 Dt[31:16];然后,分別對(duì)低位子總線待傳送數(shù)據(jù) 的原碼Dt[15:0]及反碼 Dt[15:0]和高位子總線待傳送數(shù)據(jù)的原碼Dt[31:16]及反碼 Dt[31:16]是否會(huì)引起最壞情況串?dāng)_進(jìn)行如下判斷如果低位子總線傳送Dt[15:0]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線滿(mǎn)足 中間線的信號(hào)發(fā)生翻轉(zhuǎn),且其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方向相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變,則判為 Dt[15:0]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)StateLl = 1 ;反之判為Dt[150] 不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)StateLl = 0 ;如果低位子總線傳送 Dt[15:0]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線滿(mǎn) 足中間線的信號(hào)發(fā)生翻轉(zhuǎn),且其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方 向相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變,則判 為 Dt[15:0]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateL2 = 1 ;反之判為 Dt[15:0]不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateL2 = 0 ;如果高位子總線傳送Dt[31:16]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線滿(mǎn) 足中間線的信號(hào)發(fā)生翻轉(zhuǎn),且其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方 向相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變,則 判為Dt[31:16]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)StateHl = 1 ;反之判為 Dt[31:16]不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)StateHl = 0 ;如果高位子總線傳送 Dt[31:16]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線 滿(mǎn)足中間線的信號(hào)發(fā)生翻轉(zhuǎn),且其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn) 方向相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻 轉(zhuǎn),另外一條線上的信號(hào)保持不變,則 判為 Dt[31:16]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)StateH2 = 1 ;反之判 為 Dt [31:16]不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)StateH2 = 0。步驟3,判斷子總線是否存在最壞情況串?dāng)_。根據(jù)低位和高位子總線待傳送數(shù)據(jù)原碼和反碼的標(biāo)志信號(hào)stateLl,stateL2, stateHl和StateH2得到低位和高位子總線是否存在最壞情況串?dāng)_的標(biāo)志信號(hào)stateL = stateLl&&stateL2 禾口 stateH = stateHl&&stateH2,然后牛艮據(jù)該標(biāo)志信號(hào) stateL 禾口 stateH 進(jìn)行如下判斷如果標(biāo)志信號(hào)stateL為邏輯‘ 1’,則表明“低位子總線存在最壞情況串?dāng)_”,否則 表明“低位子總線不存在最壞情況串?dāng)_”;如果標(biāo)志信號(hào)stateH為邏輯‘ 1’,則表明“高位子總線存在最壞情況串?dāng)_”,否則 表明“高位子總線不存在最壞情況串?dāng)_”。步驟4,傳送數(shù)據(jù)。由上述標(biāo)志信號(hào)stateL和stateH,進(jìn)一步得到狀態(tài)信號(hào)state = stateL Il stateH,根據(jù)狀態(tài)信號(hào)state作如下操作如果state為邏輯‘ 1,,則在整個(gè)總線插入N位的全‘1,或全‘0,屏蔽字,以消除 總線中的最壞情況串?dāng)_,同時(shí)設(shè)置標(biāo)志信號(hào)fag = 1,用于告知解碼裝置當(dāng)前傳送的數(shù)據(jù)字 為屏蔽字,標(biāo)志信號(hào)inv
和inv[l]保持不變,其中irw
和inv[l]分別用于表示低位 和高位子總線上傳送數(shù)據(jù)的類(lèi)型,如果該標(biāo)志信號(hào)被設(shè)置為邏輯‘1’,表示傳送的是反碼, 標(biāo)志信號(hào)被設(shè)置為邏輯‘0’,表示傳送的是原碼;如果state為邏輯‘0’,低位和高位子總線分別從待傳送數(shù)據(jù)的原碼與反碼中選 一個(gè)不會(huì)引起最壞情況串?dāng)_的數(shù)據(jù)字傳送;同時(shí)設(shè)置標(biāo)志信號(hào)flag = 0,用于告知解碼裝 置當(dāng)前傳送的數(shù)據(jù)字為有效數(shù)據(jù)字;如果低位子總線傳送的為原碼,標(biāo)志信號(hào)irw
被設(shè) 置為邏輯‘0’,如果傳送的為反碼,標(biāo)志信號(hào)irw
被設(shè)置為邏輯‘1’ ;如果高位子總線傳送的為原碼,標(biāo)志信號(hào)irw[l]被設(shè)置為邏輯‘0’,如果傳送的為反碼,標(biāo)志信號(hào)inv[l]被設(shè) 置為邏輯‘1’,其中以上涉及的state為邏輯‘0’,“低位和高位子總線分別從待傳送數(shù)據(jù)的原碼與反 碼中選一個(gè)不會(huì)引起最壞情況串?dāng)_的數(shù)據(jù)字傳送”,是根據(jù)待傳送數(shù)據(jù)串?dāng)_情況的標(biāo)志信 號(hào)StateLl和stateHl確定,如果stateLl為邏輯‘0,,則低位子總線傳送原碼Dt [15 0], 否則低位子總線傳送反碼 Dt[15:0];如果stateHl為邏輯‘0’,則高位子總線傳送原碼 Dt [31 16],否則高位子總線傳送反碼 Dt [31:15]。步驟5,判斷下一個(gè)周期是否傳送新數(shù)據(jù)。編碼裝置將狀態(tài)信號(hào)state反饋給數(shù)據(jù)發(fā)送單元,數(shù)據(jù)發(fā)送單元據(jù)此判斷如果 state為邏輯‘1’,表明當(dāng)前周期總線存在最壞情況串?dāng)_,總線在該周期插入32位的全‘1’ 屏蔽字,以消除最壞情況串?dāng)_,因此,待傳送數(shù)據(jù)Dt未能傳送到總線上,數(shù)據(jù)發(fā)送單元將在 下一個(gè)周期重新發(fā)送數(shù)據(jù)Dt給編碼裝置;如果state為邏輯‘0’,表明當(dāng)前周期待傳送數(shù) 據(jù)Dt已成功發(fā)送到總線上,數(shù)據(jù)發(fā)送單元將在下一個(gè)周期繼續(xù)傳送新數(shù)據(jù)給編碼裝置,并 轉(zhuǎn)到步驟2。對(duì)于圖5所述的解碼裝置,其解碼方法包括如下步驟步驟A,如果標(biāo)志信號(hào)flag = 1,則表示當(dāng)前從總線接收的數(shù)據(jù)字為屏蔽字,此時(shí) 解碼裝置的輸出D0UTt+1保持原狀態(tài)DOUTt不變,否則進(jìn)行步驟B ;步驟B,如果標(biāo)志信號(hào)flag = 0,則進(jìn)行步驟C ;步驟C,解碼裝置根據(jù)irw
和inv[l]分別對(duì)低位子總線和高位子總線傳送 的數(shù)據(jù)進(jìn)行解碼,若inv
為邏輯‘1’,則低位子總線的輸出為當(dāng)前低位子總線數(shù)據(jù)的 反碼 Bt[15:0];若irw
為邏輯‘0’,則低位子總線的輸出為當(dāng)前低位子總線數(shù)據(jù)的 原碼Bt[15:0];若inv[l]為邏輯‘1’,則高位子總線的輸出為當(dāng)前高位子總線數(shù)據(jù)的反 碼 Bt[31:16],ginv[l]為邏輯‘0’,則高位子總線的輸出為當(dāng)前高位子總線數(shù)據(jù)的原碼 Bt[31:16];并轉(zhuǎn)到步驟(A),對(duì)下一個(gè)周期總線傳送的數(shù)據(jù)進(jìn)行解碼。本發(fā)明編碼方法的優(yōu)點(diǎn)可以通過(guò)以下的仿真結(jié)果作進(jìn)一步說(shuō)明。仿真1 對(duì)采用現(xiàn)有編碼方法與本發(fā)明編碼方法的時(shí)間節(jié)省率進(jìn)行對(duì)比,其結(jié)果 如圖6所示,其中圖6A和圖6B分別給出了在λ =4和λ = 1兩種工藝參數(shù)下,采用“雙 周期時(shí)空總線編碼”和“動(dòng)態(tài)-翻轉(zhuǎn)編碼”這兩種現(xiàn)有編碼方法與本發(fā)明編碼方法傳送一 定量數(shù)據(jù)時(shí),該三種方法的時(shí)間節(jié)省率對(duì)比情況;圖中ijpeg,vpr,mcf, perl, compress95, parser為SPEC測(cè)試基準(zhǔn)程序;λ為工藝參數(shù),且λ = C1A^ C1表示總線中相鄰互連線間 的寄生耦合電容,Q表示總線中的互連線與襯底間的寄生電容;時(shí)間節(jié)省率STP定義為傳送未編碼數(shù)據(jù)所用時(shí)間Tunraded與傳送編碼后數(shù)據(jù)所用時(shí) 間T。。ded的差占傳送未編碼數(shù)據(jù)所用時(shí)間的百分率STP = T""coded —Tmded χ 100%(1)
Tuncoded由圖6A和圖6B可知,對(duì)于不同的測(cè)試基準(zhǔn)程序,在λ = 4時(shí),“雙周期時(shí)空總線編碼”時(shí)間節(jié)省率平均為41. 18%,“動(dòng)態(tài)-翻轉(zhuǎn)編碼”平均為36. 85%,本發(fā)明編碼方法的 實(shí)施例平均為41. 90%;在λ = 1時(shí),“雙周期時(shí)空總線編碼”時(shí)間節(jié)省率降低到20%,“動(dòng) 態(tài)-翻轉(zhuǎn)編碼”平均為14. 12%,本發(fā)明編碼方法的實(shí)施例平均為34. 16%。
由以上時(shí)間節(jié)省率的對(duì)比結(jié)果可知,對(duì)不同的工藝參數(shù)λ,本發(fā)明編碼方法的平 均時(shí)間節(jié)省率在這三種時(shí)空編碼中最優(yōu),即數(shù)據(jù)傳送效率最優(yōu)。仿真2 對(duì)采用現(xiàn)有編碼方法與本發(fā)明編碼方法的總線的歸一化功耗進(jìn)行對(duì)比, 其結(jié)果如圖7所示,其中圖7Α和圖7Β分別給出了在λ =和λ =1兩種工藝參數(shù)下,采用 “雙周期時(shí)空總線編碼”和“動(dòng)態(tài)-翻轉(zhuǎn)編碼”這兩種現(xiàn)有編碼方法與本發(fā)明編碼方法在傳送 一定量數(shù)據(jù)時(shí)在總線上的歸一化功耗對(duì)比情況;圖中ijpeg,vpr,mcf, perl, compress95, parser為SPEC測(cè)試基準(zhǔn)程序;λ為工藝參數(shù),且λ = C1A^ C1表示總線中相鄰互連線間 的寄生耦合電容,Q表示總線中的互連線與襯底間的寄生電容;圖7中的編碼方法在傳送一定量數(shù)據(jù)時(shí)的功耗計(jì)算方法為首先由式(2)可計(jì)算 出總線上的數(shù)據(jù)從Bt翻轉(zhuǎn)到Bt+1所消耗的能量E(Bt,Bt+1),式(3)表示每根線翻轉(zhuǎn)時(shí)所消耗 的能量Ei (Bt,Bt+1),然后將傳送每一個(gè)數(shù)據(jù)字總線翻轉(zhuǎn)所消耗的能量E (Bt,Bt+1)進(jìn)行累加就 可計(jì)算出傳送一定量數(shù)據(jù)的總功耗,圖7A和圖7B中的功耗對(duì)CJdd2進(jìn)行了歸一化;其中Vdd 為電源電壓,Bt、Bt+1為第t和t+Ι個(gè)周期出現(xiàn)在總線上的數(shù)據(jù)字,Bt [i]為總線的第i根數(shù) 據(jù)線在第t個(gè)周期的值,δ i = Bt+1[i]-BiLi],N表示總線的寬度。
<formula>formula see original document page 17</formula>由圖7Α和圖7Β知,對(duì)于不同的測(cè)試基準(zhǔn)程序,在λ =4時(shí),本發(fā)明編碼方法的平 均功耗相對(duì)于“雙周期時(shí)空總線編碼”和“動(dòng)態(tài)-翻轉(zhuǎn)編碼”分別降低了 48. 60%和3. 20%; 在λ = 1時(shí),本發(fā)明編碼方法的平均功耗相對(duì)于“雙周期時(shí)空總線編碼”和“動(dòng)態(tài)-翻轉(zhuǎn)編 碼”分別降低了 41. 04%和-7. 84%。由此可知,對(duì)于不同的工藝參數(shù)λ,本發(fā)明編碼方法 的平均功耗小于“雙周期時(shí)空總線編碼”的平均功耗,但接近于“動(dòng)態(tài)-翻轉(zhuǎn)編碼”的平均 功耗。此外,對(duì)32位的總線數(shù)據(jù)進(jìn)行編碼,采用“Optimal shielding/spacing metrics for low power design”涉及的空間編碼方法,總線需增加31條冗余線;采用“Busencoding to prevent crosstalk delay”中提出的空間編碼方法,總線需增加21條冗余線;而采用 本發(fā)明的時(shí)空編碼方法,總線僅增加7條冗余線;因此,本發(fā)明的時(shí)空編碼方法的冗余線明 顯減少,這有利于減小芯片中總線占用的面積。因此,本發(fā)明提供的技術(shù)方案可在消除最壞情況串?dāng)_且減少空間編碼方法所需的 冗余線的前提下,進(jìn)一步提高時(shí)空總線編碼方法的數(shù)據(jù)傳送效率,同時(shí)具有較低的功耗開(kāi) 銷(xiāo)。上述實(shí)施例僅僅是本發(fā)明的一個(gè)較佳實(shí)施例,本發(fā)明并不僅僅局限于上述實(shí)施例 所描述的實(shí)現(xiàn)方式。
權(quán)利要求
一種高性能抗串?dāng)_時(shí)空總線編碼方法,包括如下步驟(1)通過(guò)插入屏蔽線將位寬為N的總線分割為低位子總線和高位子總線,低位子總線上的數(shù)據(jù)用Bt[k:0]表示,高位子總線上的數(shù)據(jù)用Bt[N-1:k+1]表示,其中N為大于等于1的整數(shù),k為0到N-1間的一個(gè)整數(shù),t為時(shí)鐘周期;(2)分別對(duì)低位子總線待傳送數(shù)據(jù)的原碼Dt[k:0]及反碼~Dt[k:0]和高位子總線待傳送數(shù)據(jù)的原碼Dt[N-1:k+1]及反碼~Dt[N-1:k+1]是否會(huì)引起最壞情況串?dāng)_進(jìn)行如下判斷如果低位子總線傳送Dt[k:0]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線滿(mǎn)足中間線的信號(hào)發(fā)生翻轉(zhuǎn),且其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方向相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變,則判為Dt[k:0]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateL1=1;反之判為Dt[k:0]不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateL1=0;如果低位子總線傳送~Dt[k:0]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線滿(mǎn)足中間線的信號(hào)發(fā)生翻轉(zhuǎn),且其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方向相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變,則判為~Dt[k:0]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateL2=1;反之判為~Dt[k:0]不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateL2=0;如果高位子總線傳送Dt[N-1:k+1]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線滿(mǎn)足中間線的信號(hào)發(fā)生翻轉(zhuǎn),且其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方向相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變,則判為Dt[N-1:k+1]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateH1=1;反之判為Dt[N-1:k+1]不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateH1=0;如果高位子總線傳送~Dt[N-1:k+1]時(shí)存在任意三條相鄰的信號(hào)線,該三條信號(hào)線滿(mǎn)足中間線的信號(hào)發(fā)生翻轉(zhuǎn),且其相鄰的兩條線上信號(hào)的翻轉(zhuǎn)方向與中間線上信號(hào)的翻轉(zhuǎn)方向相反;或者其中兩條相鄰線上的信號(hào)發(fā)生相對(duì)翻轉(zhuǎn),另外一條線上的信號(hào)保持不變,則判為~Dt[N-1:k+1]會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateH2=1;反之判為~Dt[N-1:k+1]不會(huì)引起最壞情況串?dāng)_,同時(shí)設(shè)置相應(yīng)的標(biāo)志信號(hào)stateH2=0;(3)根據(jù)低位和高位子總線待傳送數(shù)據(jù)原碼和反碼的標(biāo)志信號(hào)stateL1,stateL2,stateH1,stateH2得到低位和高位子總線是否存在最壞情況串?dāng)_的標(biāo)志信號(hào)stateL=stateL1&&stateL2和stateH=stateH1&&stateH2,如果標(biāo)志信號(hào)stateL為邏輯‘1’,則表明“低位子總線存在最壞情況串?dāng)_”,否則表明“低位子總線不存在最壞情況串?dāng)_”;如果標(biāo)志信號(hào)stateH為邏輯‘1’,則表明“高位子總線存在最壞情況串?dāng)_”,否則表明“高位子總線不存在最壞情況串?dāng)_”;(4)由上述標(biāo)志信號(hào)stateL和stateH,進(jìn)一步得到狀態(tài)信號(hào)state=stateL‖stateH,根據(jù)狀態(tài)信號(hào)state作如下操作如果state為邏輯‘1’,則在整個(gè)總線插入N位的全‘1’或全‘0’屏蔽字,以消除總線中的最壞情況串?dāng)_,同時(shí)設(shè)置標(biāo)志信號(hào)flag=1,用于告知解碼裝置當(dāng)前傳送的數(shù)據(jù)字為屏蔽字,標(biāo)志信號(hào)inv
和inv[1]保持不變,其中inv
和inv[1]分別用于表示低位和高位子總線上傳送數(shù)據(jù)的類(lèi)型,如果該標(biāo)志信號(hào)被設(shè)置為邏輯‘1’,表示傳送的是反碼,標(biāo)志信號(hào)被設(shè)置為邏輯‘0’,表示傳送的是原碼;如果state為邏輯‘0’,低位和高位子總線分別從待傳送數(shù)據(jù)的原碼與反碼中選一個(gè)不會(huì)引起最壞情況串?dāng)_的數(shù)據(jù)字傳送;同時(shí)設(shè)置標(biāo)志信號(hào)flag=0,用于告知解碼裝置當(dāng)前傳送的數(shù)據(jù)字為有效數(shù)據(jù)字;如果低位子總線傳送的為原碼,標(biāo)志信號(hào)inv
被設(shè)置為邏輯‘0’,如果傳送的為反碼,標(biāo)志信號(hào)inv
被設(shè)置為邏輯‘1’;如果高位子總線傳送的為原碼,標(biāo)志信號(hào)inv[1]被設(shè)置為邏輯‘0’,如果傳送的為反碼,標(biāo)志信號(hào)inv[1]被設(shè)置為邏輯‘1’;(5)如果state為邏輯‘1’,數(shù)據(jù)發(fā)送單元將在下一個(gè)周期重新發(fā)送數(shù)據(jù)Dt給編碼裝置;如果state為邏輯‘0’,數(shù)據(jù)發(fā)送單元將在下一個(gè)周期繼續(xù)傳送新數(shù)據(jù)給編碼裝置,并轉(zhuǎn)到步驟(2)。
2.根據(jù)權(quán)利要求1所述的高性能抗串?dāng)_時(shí)空總線編碼方法,其中步驟(4)涉及的“從 待傳送數(shù)據(jù)的原碼與反碼中選一個(gè)不會(huì)引起最壞情況串?dāng)_的數(shù)據(jù)字傳送”,是根據(jù)待傳送 數(shù)據(jù)串?dāng)_情況的標(biāo)志信號(hào)stateLl和stateHl確定,如果stateLl為邏輯‘0’,則低位子總 線傳送原碼Dt[k:0],否則低位子總線傳送反碼 Dt[k:0];如果stateHl為邏輯‘0’,則高 位子總線傳送原碼Dt [N-1 k+1],否則高位子總線傳送反碼 Dt [N-1 k+1]。
3.一種高性能抗串?dāng)_時(shí)空總線解碼方法,包括如下步驟(A)如果標(biāo)志信號(hào)flag= 1,則表示當(dāng)前從總線接收的數(shù)據(jù)字為屏蔽字,此時(shí)解碼裝置 的輸出D0UTt+1保持原狀態(tài)D0UTt不變,否則進(jìn)行步驟(B);(B)如果標(biāo)志信號(hào)flag= 0,則進(jìn)行步驟(C);(C)根據(jù)irw
和inv[l]分別對(duì)低位子總線和高位子總線傳送的數(shù)據(jù)進(jìn)行解碼,若 inv
為邏輯‘1’,則低位子總線的輸出為當(dāng)前低位子總線數(shù)據(jù)的反碼;若irw
為邏輯 ‘0’,則低位子總線的輸出為當(dāng)前低位子總線數(shù)據(jù)的原碼;若inv[l]為邏輯‘1’,則高位子 總線的輸出為當(dāng)前高位子總線數(shù)據(jù)的反碼,若inv[l]為邏輯‘0’,則高位子總線的輸出為 當(dāng)前高位子總線數(shù)據(jù)的原碼;并轉(zhuǎn)到步驟(A),對(duì)下一個(gè)周期總線傳送的數(shù)據(jù)進(jìn)行解碼。
4.一種高性能抗串?dāng)_時(shí)空總線編碼裝置,包括高位子總線編碼單元(900),用于高位子總線編碼,并輸出兩個(gè)高位標(biāo)志信號(hào)stateHl 和stateH2給屏蔽字插入控制單元(902);低位子總線編碼單元(901),用于低位子總線編碼,并輸出兩個(gè)低位標(biāo)志信號(hào)stateLl 和stateL2給屏蔽字插入控制單元(902);屏蔽字插入控制單元(902),用于控制屏蔽字的插入,并根據(jù)高位子總線編碼單 元(900)和低位子總線編碼單元(901)提供的標(biāo)志信號(hào)stateHl,stateH2,stateLl和 stateL2生成狀態(tài)信號(hào)state,以控制高位子總線編碼單元(900)和低位子總線編碼單元 (901)的輸出,同時(shí)告知數(shù)據(jù)發(fā)送單元在下一周期是否發(fā)送新的數(shù)據(jù);寄存器(903),用于輸出屏蔽字插入控制單元(902)生成的狀態(tài)信號(hào)state,該狀態(tài)信 號(hào)state由寄存器(903)輸出,得到標(biāo)志信號(hào)flag。
5.根據(jù)權(quán)利要求4所述的高性能抗串?dāng)_時(shí)空總線編碼裝置,其中高位子總線編碼單元 (900),包括反相器(818),用于將待傳送數(shù)據(jù)原碼Dt[31:16]轉(zhuǎn)換為反碼 Dt[31:16],其輸入端與待傳送數(shù)據(jù)原碼Dt[31:16]連接,輸出端與串?dāng)_類(lèi)型判斷單元(8102)和多路復(fù)用開(kāi)關(guān)組 (814)的輸入端連接;第一串?dāng)_類(lèi)型判斷單元(8101),用于判斷高位子總線待傳送數(shù)據(jù)原碼Dt[31:16]是 否會(huì)引起最壞情況串?dāng)_,串?dāng)_類(lèi)型判斷單元(8101)的兩個(gè)輸入數(shù)據(jù)為待傳送數(shù)據(jù)原 碼Dt[31:16]和高位子總線上的數(shù)據(jù)Bt[31:16],串?dāng)_類(lèi)型判斷單元(8101)的判斷結(jié)果 stateHl傳輸給屏蔽字插入控制單元902和多路復(fù)用開(kāi)關(guān)組814的輸入端;第二串?dāng)_類(lèi)型判斷單元(8102),用于判斷高位子總線待傳送數(shù)據(jù)反碼 Dt[31:16]是 否會(huì)引起最壞情況串?dāng)_,串?dāng)_類(lèi)型判斷單元(8102)的兩個(gè)輸入數(shù)據(jù)為待傳送數(shù)據(jù)反碼 Dt[31:16]和高位子總線上的數(shù)據(jù)Bt[31:16],該串?dāng)_類(lèi)型判斷單元(8102)的判斷結(jié)果 stateH2傳輸給屏蔽字插入控制單元902的輸入端;多路復(fù)用開(kāi)關(guān)組(814),用于從待傳送數(shù)據(jù)原碼Dt [31:16]和反碼 Dt [31:16]中選出 不會(huì)引起最壞情況串?dāng)_的數(shù)據(jù)字,同時(shí)為標(biāo)志信號(hào)inv[l]設(shè)置一個(gè)邏輯值;該多路復(fù)用開(kāi) 關(guān)組(814)由串?dāng)_類(lèi)型判斷單元(8101)的輸出信號(hào)stateHl控制,其輸入端與待傳送數(shù)據(jù) 原碼Dt [31:16]和反碼 Dt [31:16]連接,輸出端與多路復(fù)用開(kāi)關(guān)組(816)的輸入端連接; 多路復(fù)用開(kāi)關(guān)組(816),用于從有效數(shù)據(jù)字和屏蔽字中選出不會(huì)引起最壞情況串?dāng)_的 數(shù)據(jù)字,同時(shí)選出標(biāo)志信號(hào)inv[l]的邏輯值;該多路復(fù)用開(kāi)關(guān)組(816)由屏蔽字插入控制 單元(902)的輸出信號(hào)控制,其輸入端與多路復(fù)用開(kāi)關(guān)組(814)的輸出端、十六位的全‘1’ 屏蔽字和寄存器(821)的輸出信號(hào)irw[l]連接,輸出端與寄存器(820)和寄存器(821)的 輸入端連接;寄存器(820),用于寄存并輸出經(jīng)高位子總線編碼單元(900)編碼后的數(shù)據(jù)字,其輸入 端與多路復(fù)用開(kāi)關(guān)組(816)的輸出端連接,輸出端與高位子總線連接;寄存器(821),用于寄存并輸出標(biāo)志信號(hào)irw[l],其輸入端與多路復(fù)用開(kāi)關(guān)組(816)的 輸出端連接,輸出端與標(biāo)志信號(hào)線inv[l]和多路復(fù)用開(kāi)關(guān)組(816)的輸入端連接。
6.根據(jù)權(quán)利要求4所述的高性能抗串?dāng)_時(shí)空總線編碼裝置,其中低位子總線編碼單元 (901),包括反相器(918),用于將待傳送數(shù)據(jù)原碼Dt[15:0]轉(zhuǎn)換為反碼 Dt[15:0],其輸入端與待 傳送數(shù)據(jù)原碼Dt[15:0]連接,輸出端與串?dāng)_類(lèi)型判斷單元(9102)和多路復(fù)用開(kāi)關(guān)組(914) 的輸入端連接;第三串?dāng)_類(lèi)型判斷單元(9101),用于判斷低位子總線待傳送數(shù)據(jù)原碼Dt[15:0]是否 會(huì)引起最壞情況串?dāng)_,其兩個(gè)輸入數(shù)據(jù)為待傳送數(shù)據(jù)原碼Dt[15:0]和低位子總線上的數(shù)據(jù) Bt [15 0],輸出的判斷結(jié)果stateLl傳輸給屏蔽字插入控制單元902和多路復(fù)用開(kāi)關(guān)組914 的輸入端;第四串?dāng)_類(lèi)型判斷單元(9102),用于判斷低位子總線待傳送數(shù)據(jù)反碼 Dt[15:0]是否 會(huì)引起最壞情況串?dāng)_,其兩個(gè)輸入數(shù)據(jù)為待傳送數(shù)據(jù)反碼 Dt[15:0]和低位子總線上的數(shù) 據(jù)Bt [15 0],輸出的判斷結(jié)果stateL2傳輸給屏蔽字插入控制單元902的輸入端;多路復(fù)用開(kāi)關(guān)組(914),用于從待傳送數(shù)據(jù)原碼Dt[15:0]和反碼 Dt[15:0]中選出不 會(huì)引起最壞情況串?dāng)_的數(shù)據(jù)字,同時(shí)為標(biāo)志信號(hào)inv
設(shè)置一個(gè)邏輯值;該多路復(fù)用開(kāi)關(guān) 組(914)由串?dāng)_類(lèi)型判斷單元(9101)的輸出信號(hào)stateLl控制,其輸入端與待傳送數(shù)據(jù)原 碼Dt[15:0]和反碼 Dt[15:0]連接,輸出端與多路復(fù)用開(kāi)關(guān)組(916)的輸入端連接;多路復(fù)用開(kāi)關(guān)組(916),用于從有效數(shù)據(jù)字和屏蔽字中選出不會(huì)引起最壞情況串?dāng)_的 數(shù)據(jù)字,同時(shí)選出標(biāo)志信號(hào)inv
的邏輯值;該多路復(fù)用開(kāi)關(guān)組(916)由屏蔽字插入控制 單元(902)的輸出信號(hào)控制,其輸入端與多路復(fù)用開(kāi)關(guān)組(914)的輸出端、十六位的全‘1’ 屏蔽字和寄存器(921)的輸出信號(hào)irw
連接,輸出端與寄存器(920)和寄存器(921)的 輸入端連接;寄存器(920),用于寄存并輸出經(jīng)低位子總線編碼單元(901)編碼后的數(shù)據(jù)字,其輸入 端與多路復(fù)用開(kāi)關(guān)組(916)的輸出端連接,輸出端與低位子總線連接;寄存器(921),用于寄存并輸出標(biāo)志信號(hào)irw
,其輸入端與多路復(fù)用開(kāi)關(guān)組(916)的 輸出端連接,輸出端與標(biāo)志信號(hào)線inv
和多路復(fù)用開(kāi)關(guān)組(916)的輸入端連接。
7.根據(jù)權(quán)利要求5或6所述的高性能抗串?dāng)_時(shí)空總線編碼裝置,其中四個(gè)串?dāng)_類(lèi)型判 斷單元(8101,8102,9101,9102)結(jié)構(gòu)相同,各包括十五個(gè)子模塊(700,701,702,…,714), 兩個(gè)十五輸入的或門(mén)(4311,4312)和一個(gè)二輸入的或門(mén)(4313);所述的十五個(gè)子模塊(700,701,702,…,714)中均包括一個(gè)模塊(432),該模塊有兩個(gè) 輸出端,每個(gè)子模塊一個(gè)輸出端與十五輸入的或門(mén)(4311)連接,另一個(gè)輸出端與十五輸入 的或門(mén)(4312)連接;所述的兩個(gè)十五輸入的或門(mén)(4311,4312),其輸入端與十五個(gè)子模塊(700,701, 702,-,714)的輸出端連接,輸出端與二輸入的或門(mén)(4313)的輸入端連接;所述的二輸入的或門(mén)(4313),其輸入端與兩個(gè)十五輸入的或門(mén)(4311,4312)的輸出端 連接,輸出端為串?dāng)_類(lèi)型判斷結(jié)果;上述十五個(gè)子模塊(700,701,702,…,714)均包括一個(gè)模塊(432),該模塊用于判斷子 總線中相鄰的三條信號(hào)線在傳送數(shù)據(jù)時(shí)是否會(huì)引起最壞情況串?dāng)_,其輸入數(shù)據(jù)來(lái)自待傳送 數(shù)據(jù)的原碼或反碼和子總線上的數(shù)據(jù)。
8.一種高性能抗串?dāng)_時(shí)空總線解碼裝置,包括高位子總線解碼單元(600),用于高位子總線解碼,高位子總線解碼單元(600)的輸入 數(shù)據(jù)為高位子總線上的數(shù)據(jù)Bt [31 16],輸出為解碼后的數(shù)據(jù)D0UTt [31 16],該單元包括 反相器(610),多路開(kāi)關(guān)(611),多路開(kāi)關(guān)(612)和寄存器(613);該反相器(610)的輸出數(shù) 據(jù)傳輸給多路開(kāi)關(guān)(611),多路開(kāi)關(guān)(611)輸出端與多路開(kāi)關(guān)(612)的輸入端連接,多路開(kāi) 關(guān)(611)輸出端與寄存器(613)的輸入端連接;低位子總線解碼單元(601),用于低位子總線解碼,低位子總線解碼單元(601)的輸入 數(shù)據(jù)為低位子總線上的數(shù)據(jù)Bt[15:0],輸出為解碼后的數(shù)據(jù)D0UTt[15:0],該單元包括反 相器(620),多路開(kāi)關(guān)(621),多路開(kāi)關(guān)(622)和寄存器(623);該反相器(620)的輸出數(shù)據(jù) 傳輸給多路開(kāi)關(guān)(621),多路開(kāi)關(guān)(621)輸出端與多路開(kāi)關(guān)(622)的輸入端連接,多路開(kāi)關(guān) (621)輸出端與寄存器(623)的輸入端連接;標(biāo)志信號(hào)輸出寄存器(602),用于寄存并輸出標(biāo)志信號(hào)FLAG,其輸入端與總線的標(biāo)志 信號(hào)flag連接,輸出為標(biāo)志信號(hào)FLAG,此標(biāo)志信號(hào)FLAG用于指示解碼裝置當(dāng)前輸出的數(shù)據(jù) 是否為有效數(shù)據(jù)。
全文摘要
本發(fā)明公開(kāi)了一種高性能抗串?dāng)_時(shí)空總線編碼方法及其編解碼裝置,主要解決現(xiàn)有時(shí)空總線編碼方法的數(shù)據(jù)傳送效率低和總線功耗較大的問(wèn)題。其編碼過(guò)程是(1)通過(guò)插入屏蔽線將N位總線分割為低位和高位子總線;(2)分別對(duì)該兩個(gè)子總線待傳送數(shù)據(jù)原碼與反碼是否會(huì)引起最壞情況串?dāng)_進(jìn)行判斷,并生成標(biāo)志信號(hào);(3)根據(jù)該標(biāo)志信號(hào)得出子總線是否存在最壞情況串?dāng)_,如果有子總線存在最壞情況串?dāng)_,則插入N位屏蔽字以消除最壞情況串?dāng)_;如兩個(gè)子總線均不存在最壞情況串?dāng)_,則該兩個(gè)子總線分別從待傳送數(shù)據(jù)的原碼與反碼中選取一個(gè)不會(huì)引起最壞情況串?dāng)_的數(shù)據(jù)傳送。本發(fā)明具有數(shù)據(jù)傳送效率高和功耗較低的優(yōu)點(diǎn),可用于超大規(guī)模集成電路的設(shè)計(jì)。
文檔編號(hào)H04L1/06GK101834704SQ20101012082
公開(kāi)日2010年9月15日 申請(qǐng)日期2010年3月9日 優(yōu)先權(quán)日2010年3月9日
發(fā)明者劉毅, 楊銀堂, 鐘廣德 申請(qǐng)人:西安電子科技大學(xué)