一種對(duì)8b/10b編碼方式的改進(jìn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體地說(shuō)是一種實(shí)用性強(qiáng)、對(duì)8b/10b編碼方式的改進(jìn)方法。
【背景技術(shù)】
[0002]8b/10b,也叫做8比特/10比特或8bl0b。8b/10b最初由IBM公司于1983年發(fā)明并應(yīng)用于ESCON (200M互連系統(tǒng)),由Al Widmer和Peter Franaszek在IBM的刊物“研宄與開發(fā)”上描述。其基本思想很簡(jiǎn)單,就是將Sbit的碼字經(jīng)過(guò)映射機(jī)制轉(zhuǎn)化為1bit的碼字,為了平衡了數(shù)據(jù)流中“O”和“I”的數(shù)量,這就是8b/10b編碼的根本目的一一直流平衡,因此,其也往往被稱為直流平衡8b/10b編碼。8b/10b編碼是目前許多高速串行總線采用的編碼機(jī)制,如 USB3.0、1394b、Serial ATA、PCI Express、Infin1-band、Fibre Channel (光纖通道)、Rapid1等總線或網(wǎng)絡(luò)等。
[0003]當(dāng)前針對(duì)8b/10b的編碼方法分為三種,第一種為查找表法,它用存儲(chǔ)器存儲(chǔ)所有可能出現(xiàn)的碼組,再把輸入碼組作為存儲(chǔ)地址,找出對(duì)應(yīng)的編解碼。該方法簡(jiǎn)單直接,但是編解碼電路工作速度受到存儲(chǔ)器讀取時(shí)間的限制,并且不可避免地增加電路的面積和功耗。第二種方法則是通過(guò)邏輯運(yùn)算直接完成編解碼功能,該方法的難點(diǎn)在于邏輯關(guān)系復(fù)雜,同時(shí)由于延時(shí)、競(jìng)爭(zhēng)和冒險(xiǎn)的存在,使輸出的數(shù)據(jù)抖動(dòng)嚴(yán)重。第三種就是結(jié)合上面兩種方法的優(yōu)點(diǎn),先對(duì)8bit進(jìn)行分組,分成5bit和3bit,分別對(duì)5bit和3bit進(jìn)行查找編碼,然后再將編碼后的兩部分組合傳出,稱為塊分組法。
[0004]基于上述方法,現(xiàn)提供一種實(shí)用性強(qiáng)、對(duì)8b/10b編碼方式的改進(jìn)方法。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種實(shí)用性強(qiáng)、對(duì)8b/10b編碼方式的改進(jìn)方法。
[0006]—種對(duì)8b/1b編碼方式的改進(jìn)方法,首先把I節(jié)8bit字節(jié)拆分成5bit和3bit,然后在極性偏差RD控制器的控制下以并列方式對(duì)兩組字節(jié)進(jìn)行編解碼,最后整合輸出1bit碼字,其具體實(shí)現(xiàn)過(guò)程為:
一、RD的初始化值為RD-,在時(shí)鐘上升沿時(shí)按照RD-完成第一個(gè)8bit數(shù)據(jù)低5位5bit編碼,同時(shí)在同一時(shí)鐘上升沿按照RD-對(duì)高位3bit進(jìn)行編碼;
上述極性偏差RD負(fù)責(zé)控制串行數(shù)據(jù)流中的直流平衡,在整個(gè)編碼中起到紐帶作用,將5b/6b編碼和3b/4b有選擇的連接起來(lái),RD只有正負(fù)兩種狀態(tài):RD+和RD-,分別表明數(shù)據(jù)流中“O ”的個(gè)數(shù)不小于“ I ”的個(gè)數(shù)和“ I ”的個(gè)數(shù)比“O ”的個(gè)數(shù)多;
二、通過(guò)奇偶校驗(yàn)的方法對(duì)5bit編碼后的6bit進(jìn)行計(jì)算不均等性Disp,并根據(jù)結(jié)果確定當(dāng)前的RD是否需要改變,如果6bit的Disp為O則RD不需要變化,否則取反;
所述不均等性Disp是指數(shù)據(jù)流中“I”和“O”的個(gè)數(shù)差,
三、根據(jù)6bit確定的RD數(shù)據(jù)確定的3bit編碼的輸出:若為RD-則直接輸出4bit;若為RD+則根據(jù)3bit是否在001,010,101,110之中,在則直接輸出4bit,反之則對(duì)4bit按位取反后輸出,并且對(duì)輸出的4bit計(jì)算RD值,這一 RD值作為本組1bit的編碼結(jié)果極性,當(dāng)下一組Sbit數(shù)據(jù)編碼時(shí),根據(jù)這一 4bit的RD為指導(dǎo)依據(jù)。
[0007]在8b/10b編碼中為減小游程長(zhǎng)度RL的長(zhǎng)度,規(guī)定編碼后的“I” “O”的位數(shù)只可能發(fā)生三種情況:4個(gè)“ I”和6個(gè)“O”,5個(gè)“ I”和5個(gè)“O”,6個(gè)“ I”和4個(gè)“O”,對(duì)應(yīng)這三種情況的不均等性Disp分別為:-2,0, +2 ;
上述游程長(zhǎng)度指數(shù)據(jù)流中連續(xù)“I”或連續(xù)“O”的最大位數(shù),并且在編碼后1bit數(shù)據(jù)流的游程長(zhǎng)度要求不能大于5。
[0008]所述RD的兩種狀態(tài)由1bit編碼中“I”和“O”的個(gè)數(shù)決定下一狀態(tài),如果當(dāng)前輸出的1bit的不均等性Disp為0,則次狀態(tài)保持不變,否則RD反轉(zhuǎn)。
[0009]本發(fā)明的一種對(duì)8b/10b編碼方式的改進(jìn)方法,具有以下優(yōu)點(diǎn):
該發(fā)明的一種對(duì)8b/10b編碼方式的改進(jìn)方法采用8b/10b編碼,8b/10b編解碼技術(shù)設(shè)定傳輸數(shù)據(jù)流擁有連續(xù)“I”或連續(xù)“O”不能超過(guò)5個(gè),保證傳輸?shù)闹绷鞒煞纸咏?,避免因接收端時(shí)鐘漂移或同步丟失而引起數(shù)據(jù)丟失;8B/10B編碼方法具有直流補(bǔ)償功能,能夠保證鏈路中數(shù)據(jù)不會(huì)隨著時(shí)間推移而出現(xiàn)直流偏移;這使得信號(hào)的轉(zhuǎn)換不會(huì)因電壓位階的關(guān)系造成信號(hào)錯(cuò)誤;
采用塊分組的方式,系統(tǒng)優(yōu)化考慮把I節(jié)Sbit字節(jié)拆分成5bit和3bit,然后在極性偏差RD (running disparity)控制器的控制下以并列方式編解碼。這種方法的組合邏輯實(shí)現(xiàn)可以簡(jiǎn)化碼表,減小電路板的面積,有效提尚編碼工作速度,同時(shí)由于電路的面積減小,功耗顯著降低;
具有實(shí)時(shí)性:原來(lái)的塊分組雖然是分塊但在執(zhí)行上是順序的,首先完成5b/6b編碼,然后再按照其輸出的極性偏差RD值進(jìn)行相應(yīng)的3b/4b編碼,這樣就使得兩種編碼不能同步完成,從而改變?cè)谠瓉?lái)塊分組方式下,3/4b和5/6b分組編碼不同步的情況;實(shí)用性強(qiáng),易于推廣。
【附圖說(shuō)明】
[0010]附圖1為5b/6b編碼表不意圖。
[0011 ] 附圖2為3b/4b編碼表示意圖。
[0012]附圖3為RD狀態(tài)轉(zhuǎn)換圖。
[0013]附圖4為編碼模塊示意圖。
【具體實(shí)施方式】
[0014]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
[0015]本發(fā)明在分析8b/10b編碼原理基礎(chǔ)上,提出了一種將同步塊分組法與查找表法相結(jié)合的編碼改進(jìn)設(shè)計(jì)方法,使其能在同一時(shí)鐘下可以同步完成5b/6b的編碼和3b/4b的編碼。在原本的塊分組法中,分開的兩組編碼有先后順序,3b/4b編碼要比5b/6b編碼最少要滯后一個(gè)時(shí)鐘周期的時(shí)間,不能做到真正的同步,經(jīng)過(guò)改進(jìn)可以實(shí)現(xiàn)簡(jiǎn)化碼表,降低功耗,而且相對(duì)于傳統(tǒng)的塊分組的方法,增強(qiáng)了編碼的實(shí)時(shí)性,提高了編碼的工作效率。
[0016]首先把I節(jié)8bit字節(jié)拆分成5bit和3bit,然后在極性偏差RD控制器的控制下以并列方式對(duì)兩組字節(jié)進(jìn)行編解碼,最后整合輸出1bit碼字,其具體實(shí)現(xiàn)過(guò)程為:
一、RD的初始化值為RD-,在時(shí)鐘上升沿時(shí)按照RD-完成第一個(gè)8bit數(shù)據(jù)低5位5bit編碼,同時(shí)在同