[go: up one dir, main page]

JP3552632B2 - Encoding device - Google Patents

Encoding device Download PDF

Info

Publication number
JP3552632B2
JP3552632B2 JP2000052534A JP2000052534A JP3552632B2 JP 3552632 B2 JP3552632 B2 JP 3552632B2 JP 2000052534 A JP2000052534 A JP 2000052534A JP 2000052534 A JP2000052534 A JP 2000052534A JP 3552632 B2 JP3552632 B2 JP 3552632B2
Authority
JP
Japan
Prior art keywords
code
sub
output
bit
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000052534A
Other languages
Japanese (ja)
Other versions
JP2001244817A (en
Inventor
和彦 寺田
修 石田
晴彦 市野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
NTT Inc
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, NTT Inc filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2000052534A priority Critical patent/JP3552632B2/en
Publication of JP2001244817A publication Critical patent/JP2001244817A/en
Application granted granted Critical
Publication of JP3552632B2 publication Critical patent/JP3552632B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Dc Digital Transmission (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、符号化装置に係り、特に、各種通信装置に用いられる固定長符号化装置における直流平衡であり、理論的最小帯域において復号可能であるMB符号のための符号化装置に関する。
【0002】
【従来の技術】
一般に送信符号に求められる特性としては、その出力スペクトルが伝送路に適したものであり、受信クロックを容易に回復でき、さらに直流成分がないことによって識別レベル調整が容易に行えることが望まれる。このような条件を満たす符号の一つにmB/nB符号(m,nは自然数、m<n)が挙げられる。
【0003】
この符号は、入力データをmビット毎にある一定の符号変換則によって、nビットの符号語に割り当てることによって符号語を生成する。その変換則は、“1”と“0”の発生頻度をなるべく均等化して直流成分を抑え、“1”または、“0”の連続ビット列の発生を防止することによってクロック回復動作を容易にすることを特徴としている。
【0004】
また、データ符号語として使用しない符号語の中から特殊符号を定義して、これらをさまざまな制御に使用することができる。例えば、符号語の区切りを示す「コンマ符号」を定義すれば、復号の際の同期をとることが容易となる。
【0005】
伝送路符号として有名なマンチェスタ符号は、入力データの“0”を“01”に、“1”を“10”に変換する1B/2B符号である。また、8B/10B符号はギガビットイーサネット(Gigabit Ethernet: ANSI/IEEE 802.3z, 1998) の符号化方式として採用されている。
【0006】
新たな8B/10B符号の一つに、10ギガビットイーサネットの符号化方式として提案されているMB810符号が存在する(文献:Dae Young Kim 他4名”White Paper on the MB810 Line code for 10GbE”, Chungnam National University, Taejon, Korea, 1999, [retrieved on 2000−01−06 ],Retrieved from the Internet <URL:http://ccl.chungnam.ac.kr/Line Coding/data/mb810_wp.pdf>)以下、この文献に関して詳細に述べる。
【0007】
MB810符号の名称に関しては、MB(Minimum Bandwidth) とは復号に必要な最小帯域(ナイキスト周波数)で復号可能であることを示し、“810”とは、8B/10B符号であることを示す。MB810符号は、“1”と“0”の発生頻度をなるべく等しくし、さらに、“1010... ”のような交番を頻繁に繰り返すシーケンスをなくべく起こさないようにすることによって、出力ストリームの直流成分だけでなく高周波成分も抑圧することを特徴とする。“1”と“0”の発生頻度を示す値として、累積ディジタル和(RDS:Running Digital Sum)を用いる。RDS(i,j )は、i番のビットからj番のビットまでの“1”と“0”の出現個数の差を表す。例えば、累積ディジタル和(RDS)が−1であるときに、ビット列“0010”を受信すれば、累積ディジタル和(RDS)は、−3となり、ビット列“1110”を受信すれば、+1となる。“1”と“0”の発生頻度をなるべく均等にすることは、累積ディジタル和(RDS)の振幅を有限な値に制限することに等しい。累積ディジタル和(RDS)の最大振幅をディジタル和変位(DSV:Digital Sum Variation )と呼び、次の式で定義する。
【0008】
【数1】

Figure 0003552632
但し、符号語ビットcn ∈{0,1}を2値出力yn ∈{−1,1}に対応させるものとする。
【0009】
同様に、“1010... ”のような交番の頻度を表す指標として、累積交番和(RAS:Running alternate Sum)を用いる。RAS(i,j) は、i番のビットからj番のビットまでのビット“1”と“0”の交番数を表す。同じく、累積交番和(RAS)の最大振幅は、交番和変位(ASV:Alternating Sum Variation )と呼び、次の式で定義する。
【0010】
【数2】
Figure 0003552632
ASVは、“1010... ”のような交番を行うビット列を受信するとき大きくなり、“1111... ”のように交番しないビット列を受信すれば小さくなる。
【0011】
MB符号は、DSVだけでなくASVも有限値に制限することによって高周波成分を抑圧し、理論的最小帯域において復号可能である特性を有する。図25に従来のMB符号装置の概要を示す。入力aから入力された入力データブロックは、符号器2において直接MB符号に変換され、直列出力bにMB符号として出力される。符号器2は、ASVも考慮した符号変換則を実装する必要があり、一般にその回路構成は、DSVだけを制限する符号器に比べて複雑になる。
【0012】
簡単なMB符号の例であるMB34符号を用いて、MB符号についてさらに詳細に述べる。MB符号を図示する方法として、累積ディジタル和(RDS)値及び累積交番和(RAS)値を2次元平面上に表したBUDAスタックがDae Yound Kim らにより定義されている。MB符号は、BUDAスタック上の状態間を遷移するパスの集合として表すことができる。
【0013】
図26は、MB34符号のBUDAスタックを示す。同図において、横軸及び縦軸はそれぞれRDS値、RAS値を示し、BUDAスタック上の一格子点は、一組のRDS,RAS値に対応する。但し、本明細書におけるRDS,RAS・値は、式(1)及び式(2)において、yn ∈{−1,1}とした場合の値に基づくため、yn ∈{−1/2,1/2}を採用する前述文献とは異なる。また、BUDAスタック上でRDS及びRAS値がそれぞれa,bである点Pを(a,b)と表記する。
【0014】
同図において、S1(−2,0)、S2(0,−2)、S3(2,0),S4(0,2)であり、この4点のいずれかから符号語が出力され始め、出力後も4点のいずれかに留まる。このような点を状態と呼ぶ。また、同図中の矢印は、その方向にのみ移動可能であることを示し、符号語ビットcn が“1”のときは、右方向に、“0”のときは左方向に移動可能である。
【0015】
例えば、同図において、状態S1を始点とし、S4を終点とする太線で示すパスは、符号語“1101”に相当する。同図の場合、状態間を遷移するパスは1状態につき、9通り存在し、これを状態遷移表にしたものが表1である。
【0016】
【表1】
Figure 0003552632
表1において、左の欄は始点となる状態を示し、上の欄は終点となる状態を示す。この中から適当な8通りを選択して入力データブロックに割り当てる。
【0017】
MB34符号の例として、表2のような符号割り当てを行った。
【0018】
【表2】
Figure 0003552632
同図に示す表において、第1の欄「入力」には、3ビットの入力データブロックのすべてが記載され、第2の欄「符号語/次状態」の欄には出力される符号語及びその符号語の出力後の状態のすべてが記載されている。第2の欄は、4つの小欄に分割されているが、この小欄には、ラベリングされた各々の状態毎に出力される符号語のすべてが記載されている。例えば、始点となる状態S1における入力“110 ”に対する出力符号語は、“1101”であり、状態はS4に遷移する。同一の入力に対しても、始点となる状態により、その出力符号語が異なる。いずれの出力符号語に対しても、それに対応するパスは図26のBUDAスタック上に留まる。従って、MB34符号のRDS、RASは同図中に示されるようにそれぞれ、−4から4までの値をとるので、それらの最大振幅であるDSV及びASVはそれぞれ8である。
【0019】
注意を要するのは、MB34符号にはこれと異なる状態の取り方、符号の選択方法が多数存在することである。
【0020】
また、MB810符号が提案されている。これは、図27に示すように状態数が12、DSV及びASVがともに14であり、BUDAスタックが大きい。従って、多くのパスが存在するために符号語選択の自由度が大きく、適当な符号語選択方法を発見するのが困難であり、符号化回路も複雑なものになる。また、MB810符号化回路は、40000ゲート以下の論理ゲートで構成可能であると推定しているが、MB810符号の符号語選択方法及び具体的な符号化回路構成について全く言及されていない。
【0021】
【発明が解決しようとする課題】
上記のように、従来のMB符号は直流平衡であり、かつ理論的最小帯域において復号可能となる利点は存在するものの、DSV,ASV、状態数など多くの自由度が存在し適当な符号化則が発見されておらず、一般に符号化回路が非常に複雑になる問題がある。
【0022】
本発明は、上記の点に鑑みなされたもので、MB符号の簡単な構成方法を構築し、簡単な符号化回路を構成することが可能な符号化装置を提供することを目的とする。
【0023】
【課題を解決するための手段】
図1は、本発明の原理構成図である。
【0024】
本発明(請求項1)は、直流平衡の理論的最小帯域において復号可能であるMB符号の符号化装置であって、
Mビット(Mは自然数)の固定長入力データブロックを、長さがそれぞれ ビット( は自然数、k=1,2,3,…,N、Nは正の偶数)のN個の入力サブブロックにそれぞれ分離する分離手段12と、
ディジタル和変位(DSV:Digital Sum Variation)が有限値に制限される B/nB符号変換則(nは自然数、 <n,k=1,2,3,…,N)をN個の入力サブブロックに対してそれぞれ適用することにより、nビットの出力サブブロックをそれぞれ生成する符号化手段15,16と、
符号化手段15,16の出力であるN個の出力サブブロックをビット多重する多重化手段19とを有する。
【0025】
本発明(請求項2)は、分離手段において、
Mビットの固定長入力データブロックを、長さがそれぞれm(mは自然数)であるN個の入力データサブブロックに分離する。
【0026】
本発明(請求項3)は、直流平衡の理論的最小帯域において復号可能であるMB符号の符号化装置であって、
長さがそれぞれ ビット( は自然数、k=1,2,3,…,N)であるN個の固定長入力データサブブロックに対して、ディジタル和変位が有限値に制限される B/nB符号変換則(nは自然数、 <n,k=1,2,3,…,N)をそれぞれ適用することによって、nビットの出力サブブロックをそれぞれ生成する符号化手段と、
符号化手段の出力であるN個の前記出力サブブロックをビット多重する多重化手段とを有する。
【0027】
本発明(請求項4)は、N 個の入力サブブロックの長さをそれぞれm(mは自然数)とする。
【0028】
本発明(請求項5)は、請求項1または3の符号化手段において、
B/nB符号変換則(nは自然数、 <n,k=1,2,3,…,N)として、それぞれの状態数の最小のものを用いる。
【0029】
本発明(請求項6)は、請求項2または4において、符号化手段は、mB/nB符号変換則( n は自然数、 m n )として、それぞれの状態数の最小のものを用いる。
本発明(請求項7)は、請求項6において、符号化手段では、mB/nB変換則において、m=8である。
【0030】
本発明(請求項)は、多重化手段において、少なくとも2の出力サブブロック間に位相差を設ける。
【0031】
本発明(請求項)は、請求項7において、N=2とし、
各々の入力サブブロックに対して8B/10B符号変換則として、状態数が2であり、DSVが6である5B/6B符号変換則と、状態数が2であり、DSVが4である3B/4B符号変換則をこの順序で適用する最大走行長が5である符号変換則を採用する手段を符号化手段に含み、
符号化手段の出力である第1の出力サブブロックと第2の出力サブロックの位相差が3ビットまたは、6ビットとする手段を多重化手段に含む。
【0032】
本発明(請求項10)は、N=2(pは自然数、p≦[n/2]、[x]はxを超えない最大の整数を表す)であって、和がn−1である相異なる2つの自然数の[n/2]個の組(P,n−1−P)(Pは非負整数、P=0,1,2,3,…,[n/2]−1)の中から相異なるp組を選択し、それぞれの組に含まれるいずれか一方の非負整数をそれぞれΔ (iは自然数、i=1,2,3,…,p)と定義したときに、符号化手段の第1の出力サブブロックと第2の出力サブブロックの位相差をΔ とし、第(2+2j−1)の出力サブブロックと第(2+2j)の出力サブブロック(jは自然数、i=1,2,3,…,(p−1),j=1,2,3,…,2p−1)との位相差をΔ ビットとする手段を多重化手段に含む
【0033】
本発明(請求項11)は、請求項10において、N=4であって、各々の入力サブブロックに対して8B/10B符号変換則として、状態数が2であり、DSVが6である5B/6B符号変換則状態数が2であり、DSVが4である3B/4B符号変換則をこの順序で適用する最大走行長が5である符号変換則を採用する手段を符号化手段に含み、
符号化手段の出力である第1の出力サブブロックと第2の出力サブブロックとの位相差を4ビットとし、第3の出力サブブロックと第4の出力サブブロックとの位相差を3ビットとし、さらに、該第1の出力サブブロックと該第3の出力サブブロックの位相差を0ビットとする手段を多重化手段に含む。
【0034】
本発明(請求項12)は、請求項において、符号化手段は、
N=2であって、一方の入力サブブロックに対して B 10B符号変換則として、状態数が2であり、DSVが6である5B/6B符号変換則と、状態数が2であり、DSVが4である3B/4B符号変換則をこの順序で適用し、他の入力サブブロックに対して8B/10B符号変換則として、状態数が2であり、DSVが4である3B/4B符号変換則と状態数が2であり、DSVが6である5B/6B符号変換則をこの順序で適用する。
【0035】
上述のように、本発明では、MB符号を生成するために、N個(Nは正の偶数)のDSVを有限値とする符号をビット多重することによってMB符号を生成するため、簡単なMB符号化装置を構成することが可能となる。
【0036】
【発明の実施の形態】
本発明の実施例を説明する前に、本発明の基本原理について説明する。
【0037】
本発明の基本は、2個のDSVを有限値に制限した符号をビット多重することによりMB符号を生成することにある。ここで、その原理については前述の図26のBUDAスタックを用いて簡単に述べる。
【0038】
BUDAスタックは、図2に示される2種類の最小サイズのBUDAスタックに分離でき、この最小構成単位BUDAセルと呼ぶ。BUDAセルをx方向にX個、y方向にY個ずつ敷き詰め、計X×Y個のBUDAセルから構成されるBUDAスタックをX×YのBUDAスタックと呼ぶことにする。但し、x方向及びy方向は、図26においてRDS軸との45度の下降矢印及び45度上昇矢印で示されている方向である。例えば、図26のBUDAスタックは、4×4のBUDAスタックと呼ぶ。一般に、X×YのBUDAスタック上に存在するMB符号は、BUDAスタック上をx方向の移動とy方向の移動とy方向の移動を交互に繰り返すパスとして表現される。
【0039】
例えば、状態S1を始点とし、状態4を終点とする太線のパス(符号語化1101”に相当)に注目すれば、x方向に+1、y方向に+1、x方向に−1、y方向に+1というように、x方向とy方向の移動を繰り返している。従って、符号語を1ビットおきに取り出して、2つのサブブロックに分離すると、そのサブブロックはそれぞれx方向または、y方向のみに移動し、その振幅はBUDAスタックの幅X,Yを超えることはない。即ち、分離されたサブブロックは、DSVがXまたは、Yに制限された符号であると言い換えることができる。逆に、X×YのBUDAスタック上に存在するMB符号語は、DSVが、X,Yに制限された2個の符号をビット多重することによって構成できることに気付く。このMB符号語のDSV及びASVは、共にX+Y以下である。また、このMB符号の状態数は、各々の符号語境界における一方の符号の状態と他方の符号の状態の組み合わせの総数に等しい。特に、DSVが有限値である符号の状態が任意の符号語境界において一致している場合は、その状態数をそれぞれs1 ,s2 として、MB符号の状態数は、s1 ×s2 で表わされる。
【0040】
例えば、状態数が1,DSVが2である1B/2B符号(マンチェスタ符号)をビット毎に交互に多重すれば、X=Y=2であるからDSV及びASVが4以下であり、かつ、状態数1(=1×1)のMB24符号を構成できる。
【0041】
マンチェスタ符号は、入力を“0”を“01”に、“1”を“10”に変換する符号である。また、MB24符号は、2B/4B符号であり、4つのデータ符号語を有する。このMB24符号では、例えば、入力データブロック“00”は、“0”と“0”の2つの入力データサブブロックにビット毎に多重分離され、入力データサブブロックが1B/2B符号変換則によって出力サブブロック“01”にそれぞれ変換され、2つの出力サブブロックがビット毎に交互に多重されることによって1符号語“0011”に変換される。MB24符号のBUDAスタック及びその符号表を図3及び表3に示す。
【0042】
【表3】
Figure 0003552632
図3及び表3の説明については、前述のMB34符号のものに準ずる。図3から、MB24符号の状態数は1であり、ASV、DSVはともに4であることが確認できる。
【0043】
以上が本発明の基本原理である。
【0044】
以下、図面と共に本発明の実施例を説明する。MB1620符号化装置、及びMB3240符号化装置、MB6480符号化装置について詳細に説明する。
【0045】
[第1の実施例]
本実施例では、DSVが6である2つの8B/10B符号をビット多重することによってMB1620符号を出力するMB1620符号化装置について述べる。
【0046】
MB1620符号は、16B/20B符号であり、65536(2の16乗)個のデータ符号語を有する。8B/10B符号については、特開昭59−10056に詳述されている。この8B/10B符号は後述する。
【0047】
図4は、MB1620符号化装置の概要及びデータの流れを示す。
【0048】
ここでは、直列インタフェースから入力データストリーム11が入力される。この符号化装置では、入力データストリームを16ビット毎の固定長入力データブロックに分割し、16ビットを1処理単位として考える。
【0049】
同図では、入力データストリームに含まれる1入力データブロックを四角の太線で囲み、A1 A2 B1 B2 ...H1 H2 なる記号で示した。それぞれのルビ付きアルファベットは、データビットを表し、A1 を先頭として入力される。この入力データストリーム11は、分離器12において、2つの入力データサブストリーム13、14に多重分離される。従って、入力データブロックは、それぞれ8ビットの入力データサブブロックA1 B1 ...H1 と、A2 B2 ...H2 に分離される。これらをそれぞれ符号器15、16に送り、符号器15、16の有する論理機能に従って、10ビットの符号語a1 b1 ...j1 とa2 b2 ...j2 に変換する。符号器の論理機能については後述する。
【0050】
さらに、符号器15、16の10ビットの出力は、多重化装置19においてビット毎に多重化され、20ビットの符号語a1 a2 b1 b2 ...j1 j2 として出力インタフェース1Xにa1 を先頭として直列出力される。
【0051】
符号器15と符号器16は、前述の特開昭59−10056に記載されている8B/10B符号器と同一の符号器である。符号器の構成の詳細については、前述の特開昭59−10056を参照されたい。
【0052】
まず、符号器15について説明する。
【0053】
符号器15は、入力データのために8ビットのインタフェースを備え、制御のために1ビットのK線を備えている。入力ABCDEFGHを符号化のための2つのサブブロックABCDEとFGHに区分し、それぞれに表4に示された5B/6B符号化則と表5に示された3B/4B符号化則を適用する。
【0054】
【表4】
Figure 0003552632
【0055】
【表5】
Figure 0003552632
このとき、入力サブブロック“ABCDE”は、出力サブブロック“abcdei”に、“FGH”は、“fghj”に変換される。この変換動作において、5B/6B符号化則と、3B/4B符号化則は互いに連携し、各々の出力ビットを決定している。こうして得られた10ビットの符号語“abcdeifghj”は直列出力される。
【0056】
次に、5B/6B符号及び3B/4B符号の符号変換則について述べる。
【0057】
これらの符号は、DSVを有限値に制限するために、1符号語内の“1”と“0”の出現個数の差であるディスパリティ(Disparity )を検査して出力すべき符号語を決定する。5B/6B符号及び3B/4B符号では、“1”と“0”の個数が等しい符号語か、“1”と“0”の個数が2つだけ異なる符号語のみを用いるため、ディスパリティの値としては、+2,0,−2の3通りに限られる。例えば、符号語“110011”のディスパリティは+2である。出力符号語は必ずディスパリティのものを選択するか、または、ディスパリティの極性が交互に交代するように選択する。こうして、累積ディジタル和(RDS)の長期時間平均が0となり、DSVが有限値に保たれる。
【0058】
前述の特開昭59−10056において、「ディスパリティ」なる用語は、1符号語での“1”と“0”の出現個数の差だけでなく、累積ディジタル和(RDS)の長期時間平均からの瞬時変位の意味でも用いられている。これを特に、走行ディスパリティ(RD:Running Disparity )と呼ぶ。これに倣うとランニングディスパリティと符号語ビット列の関係は、図5のように表される。図5において、各々のビット“1”は、1符号語ビット列で45度の上昇線で表され、逆に各々のビット“0”は45度の下降線で表される。すべての8B/10B符号語は図6の45度の上昇/下降線の範囲に留まる。図5からわかるように、5B/6B符号語及び3B/4B符号語境界における走行ディスパリティ(RD)の値は、+1、または、−1のいずれかの値を取る。
【0059】
前述の表4は、5B/6B符号表を示す。表4において、第1の欄「名称」においてアルファベット「D」は、データ符号語を表し、「K」は特殊符号語を表す。特殊符号語は、K線が1のときに出力される。Dxまたは、Kxなる表記において、xはAを低順位ビット、Eを高順位ビットと見たときに、等価な32個の10進値を表す。第2の欄「入力データ」は、5ビットの入力の2進表示である。第3欄「符号化」の欄では右5ビット入力値に対応する出力符号語を表している。2つの小欄に分割されているが、左の小欄「currentRD+」には走行ディスパリティ(RD)が+1のときに出力される符号語が、左の小欄「currentRD−」には走行ディスパリティ(RD)が−1のときに出力される符号語が記載されている。例えば、走行ディスパリティ(RD)が−1で入力“0000”に対する出力はD.0“100111”である。
【0060】
前述の表5は、3B/4B符号表を示す。表5において、第1の欄「名称」でのD.x.yなる表記において、yはFを低順位ビット、Hを高順位ビットと見たときに等価な8個の10進値を表す。その他の表記については、表4のようになり、出力される符号語は5B/6B符号の出力後の走行ディスパリティ(RD)によって決定される。
【0061】
【表6】
Figure 0003552632
D.x.P7(基本の7)及び、D/K.y.A7(代替の7)について説明する。
【0062】
D.x.P7及び、D/K.y.A7によって、eifgh に生じる走行長=5のシーケンスを除去できる。D.y.A7は、次の場合にD.x.P7の代替として用いられる。
【0063】
(i) currentRD+ であり、かつe=i=0 のとき
(ii) currentRD− であり、かつe=i=1 のとき
これにより、8B/10B符号のデータ符号語の出力シーケンスには、走行長=5を含む“1100000 ”及び、“0011111 ”は出現しないため、“1100000 ”、または、“0011111 ”を含む符号語をコンマ符号として定義することが可能となる。即ち、受信ビット列が“1100000 *** ”または、“0011111 *** ”を検出すればそれが符号語の区切りと判断することができる。但し、“”は、“1”または、“0”のビットを表す。
【0064】
2つの符号表から得られる8B/10B符号表は前述の表4に示す通りである。表記については、表1と同様である。
【0065】
符号器16は、符号器15と同様の機能を有する。
【0066】
以上、図4において、2つの符号器15、16の出力は、多重化装置19によりビット毎に多重化され、MB1620符号として出力される。
【0067】
図6は、本発明の一実施例のMB1620符号のBUDAスタックを示す。同図の表記は、前述の図26と同様である。図6に示されるように、MB1620符号の状態数は4であり、DSV,ASVはともに12である。MB1620符号のデータ符号語数は65536と多いが、その一部を表7に示す。
【0068】
【表7】
Figure 0003552632
表7において、第1の欄「名称」において、Dはデータ符号語を表す。また、D.x.y.z.wなる表記において、D.x.y.z.wはそのデータ符号語が符号器15の出力符号語D.x.y及び符号器16の出力符号語D.z.wを二多重化して構成されたものであることを示す。第2の欄「入力」は、16ビットの入力データの2進表示であり、第3の欄「符号化」は、右の入力値に対応する20ビットの符号語出力を2進表示している。「符号化」の欄は、4つの小欄に分割されているが、各々の小欄はそれぞれラベリングされたS1,S2,S3,S4のいずれかの状態を始点とするときに出力される符号語を表している。例えば、状態S2での入力“0000000000000 ”に対する出力符号語は、“10010110101001100101”である。
【0069】
ここでは、8B/10B符号とMB1620符号の比較を行う。ASVなるパラメータは、ナイキスト周波数におけるパワースペクトルの値に等しい。ASVを有限な十分小さな値に制限することはナイキスト周波数においてパワースペクトルが減衰することを意味する。
【0070】
図7は、本発明の第1の実施例の8B/10B符号とMB1620符号のスペクトル比較を示しており、8B/10B符号を直列出力した際のパワースペクトルとM1620符号を直列出力した際のパワースペクトルを比較して示したものである。出力パルスを方形波、伝送速度を12.5Gbps、データ速度を10Gbpsと仮定してフーリエ変換により計算した。8B/10B符号,MB1620符号もともにスペクトルは、0Hz及び12.5GHz において減衰している点は共通している。しかし、MB1620符号のスペクトルはASVを制限し、8B/10符号はASVを制限していないために、ナイキスト周波数6.25GHz におけるスペクトル値は全く異なっていることが分かる。ASVの効果により、MB1620符号のスペクトルでは、ナイキスト周波数においてスペクトルが減衰していることが確認できる。
【0071】
このMB1620符号化装置は、符号器15及び16は、8B/10B符号器と同一であるため、符号器に必要な論理ゲート数は、8B/10B符号器の2にあたる約800ゲートである。この値は、40000ゲートを要する従来のMB810符号器に比べて50分の1程度である。
【0072】
本実施例では、直列入力インターフェースを想定し、16ビットの入力データブロックをそれぞれ8ビットの入力データサブブロックに分離し、各々の入力データサブブロックに対して8B/10B符号変換則を適用することにより、MB符号を構成したが、並列入力インタフェースであれば、分離器が不要であり、符号器15及び符号器16に直接A1 A2 B1 B2 C1 C2 D1 D2 及びE1 E2 F1 F2 G1 G2 H1 H2 が入力されるように結線すればよい。
【0073】
また、本実施例において、DSVが有限値である2つの符号としてともに状態数が最小であるものを用いたために、得られたMB符号はビット多重によって生成するMB符号の中で最小の状態数を有し、回路構成が簡単となる効果を得られたが、それらの符号は状態数が最小でなくてもMB符号となる点は変わらない。また、多重されるDSVが有限値である2つの符号は、本実施例では、同一の符号であり、同一の符号語を用いることができるという利点があったが、例えば、4B/6B符号と5B/6B符号とするなど、異なる符号であってもよい。
【0074】
さらに、本実施例では、2つの符号器への入力は8ビットであり、一般的な電子計算機の処理単位であるという利点があったが、8ビット以外の場合でも同様にMB符号を構成できる点は変わらない。
【0075】
また、本実施例では、2個の8B/10B符号をビット多重することによってMB符号を構成したが、N個(Nは正の偶数)の8B/10B符号をビット多重しても同様にMB符号が生成できる。これについて次に述べる。
【0076】
前述の基本原理をN個(Nは正の数)のDSVが有限値である符号をビット多重する場合に拡張する。一般に任意の個数のDSVが有限値である符号をビット毎に多重して得られる符号のDSVは、有限な値となる。従って、例えば6個のDSVが有限な値である符号をビット多重する場合は、6個の符号を半分の3個ずつに分割し、それぞれビット多重することによって、DSVが有限である符号をそれぞれ生成し、得られた2個の符号をさらにビット多重すれば得られる符号は、前述の通りMB符号となる。N個(Nは正の数)の場合も同様に相異なるN/2個のDSVが有限な符号をそれぞれビット多重し、さらに、そのビット多重して得られる2つの符号をビット多重すればMB符号が得られる。従って、N個の8B/10B符号をビット多重すれば、得られる符号はMB符号となる。
8B/10B符号に限らず、一般にMビット(2以上のMは自然数)の入力データブロックをそれぞれ ビット( は自然数、k=1,2,3,…,N,Nは正の偶数)のN個の入力データサブブロックに分離する分離器と、各々の入力データサブブロックに対して B/nB符号変換則(nは自然数、 <n,k=1,2,3,…,N)を適用する符号器を備えれば、同様にMB符号が構成できる。
【0077】
さらに、並列入力インタフェースの場合もそれぞれ長さが であるN個の入力データサブブロックが B/nB符号変換則(nは自然数, <n,k=1,2,3,…N)を適用する符号器にそれぞれ直接入力されるように結線すればよい。
【0078】
[第2の実施例]
次に、少なくとも2つの出力サブブロック間にビットのずれ(以下、位相差と呼ぶ)を設けることによって、
(i) ビット多重して得られるMB符号のDSV及び最大走行長を小さくする効果を得た例:
(ii) 復号操作が容易となる効果を得た例:
の順で述べていく。
【0079】
ビット多重を行うDSVが有限値である2個のビット列の走行ディスパリティ(RD)値の和は、MB符号の累積ディジタル和(RDS)に対応する。従って、同一のDSVが有限値である符号を単純にビット多重して得られるMB符号のDSVは、累積ディジタル和(RDS)が2倍となるから多重化する前の符号のDSVの2倍であり、最大走行長も2倍となる。この値は、2つのDSVが有限値である2つの符号の出力間に一定の位相差を設けてビット多重することによって得られるMB符号出力ストリームと比べて最悪の値である。逆に言えば、その位相差を適当に調整することによってDSV値及び最大走行長の改善を図ることができる。
【0080】
前述したMB1620符号において、そのDSV、ASVの値は、共に12と非常に大きくなった。
【0081】
次に、本実施例として、位相差を特定の値とすることによって、出力ストリームのASV,DSVの値を共に10にした例を述べる。
【0082】
図8は、本発明の第2の実施例のMB1620符号化装置の構成及びデータの流れを示す。図4と異なる点は、一方の符号器26と多重化装置2Xの間に位相器29が挿入されていることである。この位相器29によって、第2の出力サブブロック(符号器26の出力サブブロック)は、第1の出力サブブロック(符号器25の出力サブブロック)に比べ、3ビット時間遅延する。
【0083】
符号器25及び符号器26ともに前述の8B/10B符号器と同様である。
【0084】
位相器29が出力特性に及ぼす影響を理解するために、図9に符号器25及び符号器26の出力する8B/10B符号の符号語ビット列とディスパリティの関係を3ビットの位相差も考慮して示す。図9の表記については、図5と同様である。
【0085】
2つの符号器25、26の出力が位相器29により3ビット遅延することによって、図8において2つの符号のディスパリティがともに最大値(+3)及び最小値(−3)とならないために、任意の符号語ビット列において、2つの符号のディスパリティの和が−5から+5の間に存在する。これによって、多重化して得られる出力ストリームのDSVが10に限定される。この値は、位相器29による位相差を1ビットから9ビットまで変化させたときの最小値である。このMB1620符号化装置の出力ストリームは、図10のBUDAスタック上に存在する。
【0086】
従って、このMB1620の符号のDSV及びASVは、いずれも10で出力可能である。8B/10B符号に出現する最大走行長5のビット列は、符号器ビットcまたは、gから始まるが、3ビットの位相差によって2つの符号の走行長が同時に5となる場合が存在しないため、MB1620符号出力の最大走行長は9となる。
【0087】
このMB1620符号化装置では、位相器29における位相差は3ビットであった。図11は、本発明の第2の実施例の位相差とDSVの関係を示す。横軸が位相器29における位相差であり、縦軸がDSV値及び最大走行長である。図11から、位相差が6ビットでも同様に、DSV値及び最大走行長が最小値となる。また、DSVは、位相差が4ビット及び5ビットのときにも最小値となる。
【0088】
2つの8B/10B符号をビット多重することによって得られるMB符号のDSV及び最大走行長を抑制するためには、3ビットまたは、6ビットの位相差を設定することが有効であることを述べた。
【0089】
次に、本発明を用いた3ビットまたは、6ビットの位相差が明示されていない装置構成を有する例を説明する。
【0090】
DSV限定符号語ストリームを4多重する場合を想定する。
【0091】
区別のため、4本のストリームをを順番に、ストリームS1、ストリームS2、…、ストリームS4と呼ぶことにする。
【0092】
図12に示すように、ストリームS1とストリームS2の位相差を1ビットとし、ストリームS2とストリームS3の位相差を2ビットとし、ストリームS3とストリームS4の位相差を1ビットとして、ストリームS1とストリームS2をビット多重し、ストリームS3とストリームS4をビット多重化し、それぞれ多重化して得られる2つのストリームをさらに、2ビットを単位として多重化する符号化装置を想定する。
【0093】
この符号化装置は、位相差が3ビットであるストリームS1とストリームS3をビット多重化し、同じく3ビットであるストリームS2とストリームS4をビット多重化し、それぞれ多重化して得られる2つのストリームをさらに、ビット多重化する手段を有する符号化装置と等価である。本実施例においても、本発明の範囲である実質3ビット時間の位相差を利用し、DSV及び最大走行長の小さなMB符号を構成し、多重していることとなる。
【0094】
また、このような例は図12に示した場合に限らない。
【0095】
また、上記の第2の実施例において、二多重されるDSVが有限値である2つの符号は、同一の符号であり、同一の符号器を用いることができるという利点があったが、異なる符号でもよい。
【0096】
また、上記の第2の実施例では、2個のDSVが有限である符号をビット多重した場合について述べたが、N個(Nは正の偶数)のDSVが有限である同一のmB/nB符号(mは自然数、nは自然数、m<n)をビット多重して得られるMB符号も位相差を設けないときは、DSV及び最大走行長は最大となるから、位相差を設けることによって、DSV及び最大走行長の改善を図ることができる。
【0097】
次に、特定の位相差を設定することにより、復号操作を容易にすることができることについて述べる。
【0098】
符号長nが偶数である符号を2多重するときは、任意の位相差によりサブストリームを識別できるが、、符号長nが奇数の場合は、位相差が[n/2]ビットのときに限りサブストリームを識別できない。
【0099】
多重して得られるMB1620符号は、2つの8B/10B符号ストリームに分割した後に各々を復号する。このとき、MB1620符号化装置において、第1と第2の出力サブブロック間に、例えば、3ビットの位相差を設けて多重していれば、復号の際に2つのサブストリームを8B/10B符号語間の位相差を検査することによって、サブストリームを識別できる。その詳細について述べる。
図13に、その復号装置の概要を示す。
【0100】
“a1 b1 c1 …j1 ”及び、“a2 b2 c2 …j2 ”は、図8における符号器25及び符号器26による出力ビットを表す。復号の際、“a1 a2 b1 b2 …j1 j2 …”は、多重分離装置140において、2つのサブストリーム“a1 b1 c1 …j1 ”と“a2 b2 c2 …j2 ”にビット毎に分離され、サブストリームS11に、“a1 b1 c1 …j1 ”が、サブストリームS12に“a2 b2 c2 …j2 ”が到来し、それぞれ復号器50及び60によりそれぞれデータに復号される。しかし、多重分離装置140におけるタイミングの取り方によってはサブストリームS11に“a2 b2 c2 …j2 ”が、サブストリームS12に“a1 b1 c1 …j1 ”が到来することが起こり得るため、いずれの場合か識別しなければならない。図14では、その識別方法の概要を示す。
【0101】
図14では、サブストリームS11及びS12に到来するビットをそれぞれ四角で表し、符号語の先頭ビットを黒い四角で強調してある。サブストリームS11とS12の符号語間の位相差に着目すると、位相差が3ビットのときは、“a1 b1 c1 …j1 ”がサブストリームS11に到来している場合であり、位相差が6ビットであるときは“a2 b2 c2 …j2 ”がサブストリームS12に到来している場合であることが識別できる。位相差が6ビットであれば、多重分離装置140における分離のタイミングを1ビットずらせばサブストリームS11に“a1 b1 c1 …j1 ”が到来するようになる。従って、この位相差を検出する手段を備えることによって正しく復号することができる。
【0102】
ただ、4B/5B符号のように符号長nが奇数である2つの符号を[n/2]の位相差を設けて、ビット多重した場合は、復号のため2つのサブストリームに分割したときにサブストリーム間の位相差が共に[n/2]ビットとなるためにサブストリームを識別できない。
【0103】
いま、2個の8B/10B符号に位相差を設けてビット多重した場合について、復号の際に符号語間の位相差を検出することによって、サブストリームを識別する方法について述べたが、4個の8B/10B符号に特定の位相差をそれぞれ設けてビット多重、32B/40B符号の一つであるMB3240符号を構成した場合についても、DSVの抑制効果とサブストリームの識別効果を共に得ることができる。
【0104】
図15は、本発明の第2の実施例のMB3240符号化装置の概要を示す。それぞれ8ビットの入力“A1 B1 C1 …H1 ”、“A2 B2 C2 …H2 ”、…、“A4 B4 C4 …H4 ”は、符号器71,72,73,74によって、それぞれ10ビットの出力サブブロック“a1 b1 c1 …j1 ”、“a2 b2 c2 …j2 ”、…、“a4 b4 c4 …j4 ”に変換され、位相器81,82,83,84によって、出力サブブロック109と110の位相差及び出力サブブロック111と112の位相差をそれぞれ特定の値に設定した後、出力サブブロック117と118、及び出力サブブロック119と120がそれぞれ多重化装置210及び220によってビット多重され、さらに、多重化装置230によりビット多重された後、出力として260からシリアル伝送される。
【0105】
便宜上、出力サブブロック109、110、111、112をそれぞれ第1、第2、第3、第4の出力サブブロックと呼ぶことにする。図15の構成において、位相差を変化させたときに、MB符号語出力の最大走行長及びDSVが共に、最小値となる位相差の組み合わせを図16に示す。全ての組み合わせについて調べた結果、最大走行長及び、DSV値の最小値は、それぞれ17、18であった。図16において、第1から第4の欄「位相差1」「位相差2」、「位相差3」、「位相差4」には、図15の位相器81から位相器84による位相差(ビット)がそれぞれ記載され、第5の欄「位相の和」は、第1から第4に記載された位相差の和(ビット)が記載されている。この図から最大走行長及びDSV値がともに最小であって位相の和が最小であるのは、(位相差1、位相差2、位相差3、位相差4)=(0,4,0,3)のとき、即ち、第1と第2の出力サブブロックの位相差が4ビットであり、第3と第4の出力サブブロックの位相差が3ビットであり、第1と第3の出力サブブロックの位相差が0ビットであるときである。位相の和が最小であるものを選択した理由は、位相差を設けるための回路を簡単にするためである。
【0106】
ここでは、この場合のサブストリーム識別の方法について述べる。図17〜図20に復号の際の出力サブブロックを識別する方法について示す。便宜上、図15の符号化装置における符号器71〜74による出力ビットをそれぞれ、“a1 b1 c1 …j1 ”、“a2 b2 c2 …j2 ”、…、“a4 b4 c4 …j4 ”で表す。図15の符号化装置の出力ストリーム“a1 f2 a3 g4 b1 g2 b3 h4 …j1 i2 j3 f4 ”は、多重分離装置190により2つのサブストリームに分離され、さらに多重分器装置150及び160によりサブストリームに分離される。このときタイミングの取り方によって、図17〜図20に示す4通りの場合が存在する。
【0107】
図17〜図20では、到来する各々のビットを四角で表し、符号語の先頭ビットを黒い四角で強調した。サブストリームS1とサブストリームS3に出現する符号語の位相差に着目すると、その位相差が4ビットであるときのみ所望のサブストリーム1に“a1 b1 c1 …j1 ”が到達していることがわかる。その場合は、多重分離器におけるタイミングを操作することによって、“a1 b1 c1 …j1 ”がサブストリーム1に到来するようにできる。この調整は、以下の手順により行うことができる。
【0108】
サブストリーム1とサブストリーム3間の位相差が、
(a)4ビットの場合は、操作しない。
(b)3ビットの場合は、多重分離器150及び160の分離タイミングを1ビットずらす。
(c)6ビットの場合は、多重分離器190の分離タイミングを1ビットずらす。
【0109】
なお、3ビットの場合に、多重分離器190の分離タイミングを2ビットずらしてもよい。この方法によれば、位相差の検出装置を一つ設置すればよいため制御が簡単となる。また、サブストリームの識別のために特殊符号を新たに定義するなどの特別な手段が不要である。
【0110】
本実施例では、4多重の場合を示したが、8B/1B符号を8多重する場合は、次のように位相差を設定する。図21における符号器309から316の出力サブブロックをそれぞれ第1から第8の出力サブブロックと呼ぶと、図21に示すように、第1と第2の出力サブブロックの位相差を1ビット、第3と第4の出力サブブロックの位相差を2ビット、第5と第6の出力サブブロックの位相差及び第7と第8の出力サブブロックの位相差を3ビットとしてビット多重し、MB6480符号を構成する。復号の際には、図22に示すサブストリームS21とS22の位相差を検出することによって、以下の手順によりサブストリームを整列することが可能である。サブストリームS21とS22の位相差が、
(1)1ビットの場合は操作しない。
(2)8ビットの場合は多重分離器409,410、411,412の分離タイミングを1ビットずらす。
(3)2ビットまたは、7ビットの場合は、多重分離器417,418の分離タイミングを1ビットずらす。
(4)3ビットまたは、6ビットの場合は、多重分離器421の分離タイミングを1ビットずらす。
【0111】
位相差の設定は、次の手順により行った。
(a)相異なる2つの自然数からなり、その和が多重化する前の符号長10から1を引いた値9に等しい
(0,9),(1,8),(2,7),(3,6),(4,5)
の5組の非負整数の組を作る。
(b)8(=2の3乗)多重であるから、3つの相異なる組のいずれか一方の非負整数をそれぞれ選び、それぞれΔi (但し、i=1,2,3)とする。MB3240符号化装置の例では、相異なる組として、
(1,8),(2,7),(3,6)
を選び、Δ1 =2、Δ2 =3、Δ3 =1ビットとした。
(c)その3つの非負整数の中から第1と第2の出力サブブロックの位相差にΔ3 、第3と第4の出力サブブロックの位相差にΔ1 、第5と第6の出力サブブロックの位相差及び第7と第8の出力サブブロックの位相差にΔ2 を割り当てる。
8B/10B符号の多重の場合では、符号長が10ビットであるから、5組の非負整数が確保でき、5段の多重化装置を用いる2の5乗(5=[10/2])、即ち、32多重までは前述した方法により復号が容易となる。
【0112】
一般に、符号長がnであれば、和がn−1である相異なる2つの非負整数の組は、[n/2]組だけ存在するので、(2の[n/2]乗)多重まで適用可能である。位相差の割り当ては、[n/2]個の組の中から相異なるp組(pは自然数、p≦[n/2])を選択し、それぞれの組に含まれるいずれか一方の非負整数をそれぞれΔi (iは自然数、i=1,2,3,…p)と定義したときに、第1の出力サブブロックと第2の出力サブブロックとの位相差をΔp とし、第(2+2j −1)の出力サブブロックと第(2+2j )の出力サブブロック(jは自然数、i=1,2,3,…,(p−1),j=1,2,3,…,2p−1 )との位相差をΔi ビットとすればよい。
【0113】
[第3の実施例]
前述した3ビットまたは、4ビットまたは、5ビットまたは、6ビットの位相差によって、DSVが小さくなる効果は、位相器を用いない図23の符号化装置構成を用いて、符号器における符号化方法を変更することによっても得ることができる。
【0114】
本実施例では、その符号化方法について述べる。それは、符号器35では、5B/6B符号化と3B/4B符号化をこの順序で適用する8B/10B符号(8B/10B符号)を出力し、符号器36では、状態数が2、DSVが4である3B/4B符号化方法と、同じく状態数が2、DSVが6である5B/6B符号化方法をこの順序で適用する8B/10B符号を出力することである。このとき、符号器35及び符号器36の出力する8B/10B符号の符号語ビット列とディスパリティの関係を図24に示す。
【0115】
これより、前述の第2の実施例の場合と同様に、ディスパリティの輪郭線の山と谷が一致し、累積ディジタル和(RDS)が−5から5の範囲に存在し、DSVが10となることがわかる。
【0116】
この場合、符号器35は、8B/10B符号器と同様であるから、符号器36について詳細に述べる。
【0117】
符号器36は、到来する8ビット(ABC DEFGH)を符号化のため、2つのサブブロックABCとDEFGHに区分し、それぞれに3B/4B符号化則と5B/6B符号化則とを適用する。ここでいう2つの符号化則は、特開昭59−10056のものと若干異なるが、これは、符号器36において、K.28.7をコンマ符号として定義するためである。
【0118】
表8乃至表9には、符号器36に用いる3B/4B符号表及び5B/6B符号表をそれぞれ示す。
【0119】
【表8】
Figure 0003552632
【0120】
【表9】
Figure 0003552632
表8及び、表9の表記については、前述の表4と同様である。但し、特開昭59−10056の3B/4B符号化則及び5B/6B符号化則と区別するために、Dは、D’で置き換えてある。一部変更した5B/6B符号表及び3B/4B符号表は、制御信号を出力しない点と、D’.7及びD’.y.P3、D’.y.A3,D’.y.P28,D’.y.A28が異なる。
【0121】
符号器36において、符号語ビットfから始まる走行長が5のシーケンスは、5B/6B符号語に、“110000”及び“001111”を用いないことによって、完全に除去され、符号ビットdから始まる走行長が5のシーケンスは、5B/6B符号に原則として、“111100”及び、“000011”を用いないことによって、これも完全に除去される。“111100”及び、“000011”を用いるときは、符号語ビットdにいて走行長1に先行される。符号語ビットbから始まる走行長が5のシーケンスは除去されないが、このシーケンスを含むK.28.7シーケンス“1100000111”及び“0011111000”は以下に述べる手法により除去することができる。
【0122】
D’.x.P3(基本の3)及びD’.y.A3(代替の3)ならびに、D’x.P28(基本の28)及び、D’.y.A28(代替の28)について説明する。これら4つの符号語によって、jabcdidefgに生じるK.28.7シーケンスを除去することができる。
【0123】
D’.y.A3は、
a=0,b=c=i=1のとき、
D’.x.P3の代替として用いられ、D’.y.A28は、
a=1,b=c=i=0のとき、
D’.x.P28の代替として用いられる。これにより、K.28.7をコンマ符号として利用することが可能となる。
【0124】
これらの2つの符号化則から得られた8B/10B符号表を表10に示す。表記については、前述の表1と同様である。
【0125】
【表10】
Figure 0003552632
以上、2つの符号器から得られるMB1620符号の一部を表11に示す。
【0126】
【表11】
Figure 0003552632
第1の欄「名称」において、表記については、DがD’に置き換えられている点を除いては、前述の表7と同様である。
【0127】
特許第2684815号は、実施例において、複数のDSVが有限値である符号を多重化している一例を挙げて復号の際に多重分離した複数のストリームの位相差をバッファを設けて吸収する手段について述べているが、これは、安価な低速の回路を用いて高速な伝送速度を実現するために多重化しているのであって、偶数のビット多重に限定することによって本発明で述べた効果が生じることには全く触れていない。
【0128】
また、本発明は、上記の第1から第3の実施例に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【0129】
【発明の効果】
上述のように、本発明によれば、MB符号を生成するためには、符号化方法として、ASVを考慮した新たな符号化方法を用いるのではなく、DSVを有限値とする偶数個の符号をビット多重する方法を採用すればよく、回路構成が簡単なMB符号化装置を構成することができる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】BUDAセルを示す図である。
【図3】マンチェスタ符号を二重化して得られるMB24符号BUDAスタックを示す図である。
【図4】本発明の第1の実施例の2つの8B/10B符号器を備えたMB1620符号化装置の構成及びデータの流れを示す図である。
【図5】本発明の第1の実施例の8B/10B符号出力の符号語ビットとディスパリティ値の関係を示す図である。
【図6】本発明の第1の実施例の8B/10B符号を単純に二重化したときに得られるMB1620符号のBUDAスタックを示す図である。
【図7】本発明の第1の実施例のMB1620符号と8B/10B符号のパワースペクトルの差異を示す図である。
【図8】本発明の第2の実施例の2つの符号器のいずれか一方に位相器を備えたMB1620符号化装置の構成及びデータの流れを示す図である。
【図9】本発明の第2の実施例の8B/10B符号の位相関係及び符号語ビット列とディスパリティ値の関係を示す図である。
【図10】本発明の第2の実施例の2つの符号器のいずれか一方に位相器を備えたときのMB1620符号出力ストリームのBUDAスタックを示す。
【図11】本発明の第2の実施例のMB1620符号化装置における位相差とMB1620符号出力ストリームのDSV及び最大走行長との関係を示す図である。
【図12】本発明の第2の実施例のDSVが有限値である符号を4多重した例を示す図である。
【図13】本発明の第2の実施例のMB3240復号装置の概要を示す図である。
【図14】本発明の第2の実施例のMB1620復号装置におけるサブストリーム識別の概要を示す図である。
【図15】本発明の第2の実施例のMB3240符号化装置の概要を示す図である。
【図16】本発明の第2の実施例のMB3240符号の最大走行長が17であり、DSVが18となる位相差を示す図である。
【図17】本発明の第2の実施例のMB3240復号装置におけるサブストリーム識別の概要を示す図(その1)である。
【図18】本発明の第2の実施例のMB3240復号装置におけるサブストリーム識別の概要を示す図(その2)である。
【図19】本発明の第2の実施例のMB3240復号装置におけるサブストリーム識別の概要を示す図(その3)である。
【図20】本発明の第2の実施例のMB3240復号装置におけるサブストリーム識別の概要を示す図(その4)である。
【図21】本発明の第2の実施例のMB6480符号化装置の概要を示す図である。
【図22】本発明の第2の実施例のMB6480復号装置の多重分離部の構成図である。
【図23】本発明の第3の実施例の8B/10B符号器と一部を変更した8B/10B符号器とを備えたMB1620符号化装置の概要を示す図である。
【図24】本発明の第3の実施例の8B/10B符号出力と一部を変更した8B/10B符号出力の符号語ビット列とディスパリティ値の関係を示す図である。
【図25】従来のMB符号化装置の概念図である。
【図26】MB34BUDAスタックを示す図である。
【図27】MB810BUDAスタックを示す図である。
【符号の説明】
4 多重分離装置
5 復号器
6 復号器
7 出力サブブロック
8 出力サブブロック
11 直列データストリーム
12 分離手段
13,14 入力データサブストリーム
15,16 符号化手段
19 多重化手段
21 直列データストリーム
22 分離器
25,26 符号器
27 第1の出力サブブロック
28 第2の出力サブブロック
29 位相器
32 分離器
35、36 符号器
39 多重化装置
50,60 符号器
71〜74 符号器
81〜84 位相器
109〜112 出力サブブロック
117〜120 出力サブブロック
140,150,160,190 多重分離装置
210,220,230 多重化装置
309〜316 符号器
333〜336 多重化装置
341、342 多重化装置
345 多重化装置
409〜412 多重分離装置
417、418、421 多重分離装置[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an encoding device, and more particularly to an encoding device for an MB code that is DC balanced in a fixed-length encoding device used in various communication devices and can be decoded in a theoretical minimum band.
[0002]
[Prior art]
In general, it is desired that a transmission code has characteristics such that its output spectrum is suitable for a transmission path, that a received clock can be easily recovered, and that there is no DC component, and that the identification level can be easily adjusted. One of the codes satisfying such a condition is an mB / nB code (m and n are natural numbers and m <n).
[0003]
This code generates a code word by assigning input data to an n-bit code word according to a certain code conversion rule every m bits. The conversion rule suppresses the DC component by equalizing the frequency of occurrence of “1” and “0” as much as possible, and prevents the generation of a continuous bit string of “1” or “0”, thereby facilitating the clock recovery operation. It is characterized by:
[0004]
Also, special codes can be defined from codewords not used as data codewords and used for various controls. For example, if a "comma code" indicating a delimiter of a code word is defined, synchronization at the time of decoding becomes easy.
[0005]
The Manchester code, which is famous as a transmission line code, is a 1B / 2B code that converts “0” into “01” and “1” into “10” of input data. Also, the 8B / 10B code is adopted as a coding system of Gigabit Ethernet (Gigabit Ethernet: ANSI / IEEE 802.3z, 1998).
[0006]
As one of the new 8B / 10B codes, there is an MB810 code proposed as an encoding method of 10 Gigabit Ethernet (Reference: Dae Young Kim and 4 others "White Paper on the MB810 Line code for 10GbE", Chungnam) National University, Taejon, Korea, 1999, [retrieved on 2000-01-06], Retrieved from the Internet <URL: http://ccl.chungnam.ac/dp/dp/dp/dp. This document is described in detail.
[0007]
Regarding the name of the MB810 code, MB (Minimum Bandwidth) indicates that decoding is possible with the minimum band (Nyquist frequency) necessary for decoding, and "810" indicates that the code is an 8B / 10B code. The MB810 code makes the frequency of occurrence of "1" and "0" as equal as possible, and furthermore, prevents the occurrence of a frequently repeating sequence such as "1010. It is characterized in that not only direct current components but also high frequency components are suppressed. A cumulative digital sum (RDS: Running Digital Sum) is used as a value indicating the occurrence frequency of “1” and “0”. RDS (i, j) represents the difference between the number of occurrences of “1” and “0” from the i-th bit to the j-th bit. For example, when the bit sequence “0010” is received when the cumulative digital sum (RDS) is −1, the cumulative digital sum (RDS) becomes −3, and when the bit sequence “1110” is received, it becomes +1. Making the occurrence frequencies of "1" and "0" as equal as possible is equivalent to limiting the amplitude of the cumulative digital sum (RDS) to a finite value. The maximum amplitude of the cumulative digital sum (RDS) is called a digital sum displacement (DSV) and is defined by the following equation.
[0008]
(Equation 1)
Figure 0003552632
However, it is assumed that the codeword bits cn {0, 1} correspond to the binary output yn {-1, 1}.
[0009]
Similarly, a cumulative alternation sum (RAS: Running alternate Sum) is used as an index indicating the frequency of alternation such as "1010 ...". RAS (i, j) represents the number of alternations between bits "1" and "0" from the i-th bit to the j-th bit. Similarly, the maximum amplitude of the cumulative alternating sum (RAS) is called an alternating sum displacement (ASV: Alternating Sum Variation) and is defined by the following equation.
[0010]
(Equation 2)
Figure 0003552632
The ASV increases when a bit string that performs alternation such as "1010 ..." is received, and decreases when a bit string that does not alternate such as "1111 ..." is received.
[0011]
The MB code has a characteristic that high-frequency components are suppressed by limiting not only DSV but also ASV to a finite value, and decoding is possible in a theoretical minimum band. FIG. 25 shows an outline of a conventional MB encoding apparatus. The input data block input from the input a is directly converted into the MB code in the encoder 2 and output as the MB code to the serial output b. The encoder 2 needs to implement a code conversion rule that also considers ASV, and its circuit configuration is generally more complicated than an encoder that limits only DSV.
[0012]
The MB code will be described in further detail using an MB34 code which is an example of a simple MB code. As a method for illustrating the MB code, a BUDA stack that represents a cumulative digital sum (RDS) value and a cumulative alternating sum (RAS) value on a two-dimensional plane is defined by Daeound Kim et al. An MB code can be represented as a set of paths that transition between states on a BUDA stack.
[0013]
FIG. 26 shows a BUDA stack of the MB34 code. In the figure, the horizontal axis and the vertical axis indicate the RDS value and the RAS value, respectively, and one grid point on the BUDA stack corresponds to a set of RDS and RAS values. However, since the RDS and RAS · values in the present specification are based on the values when yn {−1, 1} in equations (1) and (2), yn {−1 / 2,1 / 2} is different from the above document. A point P on the BUDA stack where the RDS and RAS values are a and b, respectively, is denoted as (a, b).
[0014]
In the figure, S1 (−2,0), S2 (0, −2), S3 (2,0), S4 (0,2), and a codeword starts to be output from one of these four points. After output, it remains at any of the four points. Such a point is called a state. The arrow in the figure indicates that the movement is possible only in that direction. When the codeword bit cn is “1”, the movement is possible in the right direction, and when the codeword bit cn is “0”, the movement is possible in the left direction. .
[0015]
For example, in the figure, a path indicated by a thick line starting from the state S1 and ending at S4 corresponds to the code word "1101". In the case of the figure, there are nine types of paths that transition between the states, and Table 1 shows these as a state transition table.
[0016]
[Table 1]
Figure 0003552632
In Table 1, the left column shows the state that is the start point, and the upper column shows the state that is the end point. From these, an appropriate eight patterns are selected and assigned to the input data block.
[0017]
As an example of the MB34 code, codes are assigned as shown in Table 2.
[0018]
[Table 2]
Figure 0003552632
In the table shown in the figure, the first column “input” describes all of the 3-bit input data blocks, and the second column “codeword / next state” describes the output codeword and All the states after the output of the codeword are described. The second column is divided into four sub-columns, and this sub-column contains all of the codewords output for each of the labeled states. For example, the output codeword for the input “110” in the state S1 serving as the start point is “1101”, and the state transits to S4. Even for the same input, the output codeword differs depending on the state of the starting point. For any output codeword, the corresponding path remains on the BUDA stack of FIG. Therefore, the RDS and RAS of the MB34 code take values from -4 to 4, respectively, as shown in the figure, so that their maximum amplitudes, DSV and ASV, are 8, respectively.
[0019]
It should be noted that the MB34 code has many different methods of selecting states and selecting codes.
[0020]
Also, an MB810 code has been proposed. This is because the number of states is 12, DSV and ASV are both 14 as shown in FIG. 27, and the BUDA stack is large. Therefore, since there are many paths, the degree of freedom in selecting a codeword is large, it is difficult to find an appropriate codeword selection method, and the coding circuit becomes complicated. Further, although it is estimated that the MB810 encoding circuit can be constituted by 40000 gates or less, no mention is made of a codeword selecting method of the MB810 code and a specific encoding circuit configuration.
[0021]
[Problems to be solved by the invention]
As described above, the conventional MB code is DC-balanced and has the advantage of being able to be decoded in the theoretical minimum band, but has many degrees of freedom such as DSV, ASV, and the number of states, and has an appropriate coding rule. Have not been discovered, and there is a problem that the encoding circuit is generally very complicated.
[0022]
The present invention has been made in view of the above points, and has as its object to provide an encoding device capable of constructing a simple configuration method of an MB code and configuring a simple encoding circuit.
[0023]
[Means for Solving the Problems]
FIG. 1 is a block diagram showing the principle of the present invention.
[0024]
The present invention (claim 1) is an MB code encoding device that can be decoded in a theoretical minimum band of DC balance,
A fixed-length input data block of M bits (M is a natural number)m k bit(m k Is a natural number, k = 1, 2, 3,..., N, N is a positive even number).
Digital Sum Variation (DSV) is limited to a finite valuem k B / nB code conversion rule (n is a natural number,m k <N, k = 1, 2, 3,..., N) to the N input sub-blocks, respectively, to generate n-bit output sub-blocks.
Multiplexing means 19 for bit-multiplexing N output sub-blocks output from the encoding means 15 and 16;
[0025]
The present invention (claim 2)In the separation means,
The M-bit fixed-length input data block is separated into N input data sub-blocks each having a length of m (m is a natural number).
[0026]
The present invention (claim 3) is an MB code encoding device capable of decoding in a theoretical minimum band of DC balance,
Each lengthm k bit(m k Is a natural number, k = 1, 2, 3,..., N), the digital sum displacement is limited to a finite value for N fixed-length input data sub-blocks.m k B / nB code conversion rule (n is a natural number,m k <N, k = 1, 2, 3,..., N), respectively, to generate an n-bit output sub-block,
Multiplexing means for bit-multiplexing the N output sub-blocks output from the encoding means.
[0027]
The present invention (claim 4)N Let the length of each of the input sub-blocks be m (m is a natural number).
[0028]
The present invention (claim 5)Claim 1 or 3In the encoding means,
m k B / nB code conversion rule (n is a natural number,m k <N, k = 1, 2, 3,..., N), the smallest number of states is used.
[0029]
The present invention (claim 6)The encoding means according to claim 2 or 4, wherein the encoding means comprises an mB / nB code conversion rule ( n Is a natural number, m < n ), The one with the smallest number of states is used.
The present invention (claim 7)In claim 6, in the encoding means, m = 8 in the mB / nB conversion rule.
[0030]
The present invention (claim8) Provides a phase difference between at least two output sub-blocks in the multiplexing means.
[0031]
The present invention (claim9) Is N = 2 in claim 7,
As an 8B / 10B code conversion rule for each input sub-block, a 5B / 6B code conversion rule with 2 states and a DSV of 6 and a 3B / B code conversion rule with 2 states and a DSV of 4 The encoding means includes means for adopting a code conversion rule having a maximum running length of 5 applying the 4B code conversion rule in this order,
A first output sub-block and a second output sub-block which are the outputs of the encoding means;BThe multiplexing means includes means for setting the lock phase difference to 3 bits or 6 bits.
[0032]
In the present invention (claim 10), N = 2p(P is a natural number, p ≦ [n / 2], [x] represents a maximum integer not exceeding x), and [n / 2] pieces of two different natural numbers whose sum is n−1 (P, n−1−P) (P is a non-negative integer, P = 0, 1, 2, 3,..., [N / 2] −1), and different p groups are selected. One of the non-negative integers in the setΔ i (I is a natural number, i = 1, 2, 3,..., P), the phase difference between the first output sub-block and the second output sub-block of the encoding means is defined asΔ p And the second (2i+ 2j-1) output sub-block and the (2i+ 2j) output sub-blocks (j is a natural number, i = 1, 2, 3,..., (P−1), j = 1, 2, 3,.p-1) And the phase differenceΔ i Includes bit conversion means in multiplexing means
[0033]
According to the present invention (claim 11), in claim 10, 5 = N = 4, and the number of states is 2 and the DSV is 6 as the 8B / 10B code conversion rule for each input subblock. / 6B code conversion ruleWhenThe encoding means includes a means for adopting a code conversion rule having a maximum running length of 5 by applying a 3B / 4B code conversion rule having a number of states of 2 and a DSV of 4 in this order,
The phase difference between the first output sub-block and the second output sub-block, which is the output of the encoding means, is 4 bits, and the phase difference between the third output sub-block and the fourth output sub-block is 3 bits. The multiplexing means further includes means for setting the phase difference between the first output sub-block and the third output sub-block to 0 bits.
[0034]
The present invention (claim 12)7In the encoding means,
N = 2 and for one input sub-block8 B /As a 10B code conversion rule, a 5B / 6B code conversion rule in which the number of states is 2 and the DSV is 6 and a 3B / 4B code conversion rule in which the number of states is 2 and the DSV is 4 are applied in this order. As the 8B / 10B code conversion rule for the other input sub-blocks, the number of states is 2 and the 3B / 4B code conversion rule with a DSV of 4 and the 5B / DSB with a number of states of 2 and a DSV of 6 The 6B code conversion rule is applied in this order.
[0035]
As described above, according to the present invention, in order to generate an MB code by bit-multiplexing N (N is a positive even) DSV code having a finite value, a simple MB is generated. It is possible to configure an encoding device.
[0036]
BEST MODE FOR CARRYING OUT THE INVENTION
Before describing the embodiments of the present invention, the basic principle of the present invention will be described.
[0037]
The basis of the present invention is to generate an MB code by bit-multiplexing a code obtained by limiting two DSVs to a finite value. Here, the principle will be briefly described using the above-described BUDA stack of FIG.
[0038]
The BUDA stack can be separated into two types of minimum size BUDA stacks shown in FIG. 2 and is referred to as a minimum unit BUDA cell. X BUDA cells are laid in the x direction and Y BUDA cells are laid out in the y direction, and a BUDA stack composed of a total of X × Y BUDA cells is called an X × Y BUDA stack. However, the x direction and the y direction are directions indicated by a 45-degree downward arrow and a 45-degree upward arrow with respect to the RDS axis in FIG. For example, the BUDA stack in FIG. 26 is called a 4 × 4 BUDA stack. In general, an MB code existing on an X × Y BUDA stack is expressed as a path on the BUDA stack, in which movement in the x direction, movement in the y direction, and movement in the y direction are alternately repeated.
[0039]
For example, if attention is paid to a bold line path (corresponding to the code word 1101 ″) starting from the state S1 and ending at the state 4, it is +1 in the x direction, +1 in the y direction, −1 in the x direction, and −1 in the y direction. Therefore, when the code word is taken out every other bit and separated into two sub-blocks, the sub-blocks are moved only in the x-direction or y-direction, respectively. It moves and its amplitude does not exceed the width X, Y of the BUDA stack, i.e. the separated sub-blocks can be rephrased as DSV being a code restricted to X or Y. Conversely, Note that the MB codeword present on the X × Y BUDA stack can be constructed by DSV by bit multiplexing two codes restricted to X and Y. The DSV and The SV is less than or equal to X + Y, and the number of states of this MB code is equal to the total number of combinations of the states of one code and the other code at each codeword boundary. If the state of a certain code matches at an arbitrary codeword boundary, the number of states is represented by s1 and s2, respectively, and the number of states of the MB code is represented by s1 × s2.
[0040]
For example, if a 1B / 2B code (Manchester code) having a number of states of 1 and a DSV of 2 is alternately multiplexed for each bit, since X = Y = 2, DSV and ASV are 4 or less, and An MB24 code of Equation 1 (= 1 × 1) can be configured.
[0041]
The Manchester code is a code for converting an input from “0” to “01” and converting “1” to “10”. The MB24 code is a 2B / 4B code and has four data codewords. In this MB24 code, for example, an input data block “00” is demultiplexed bit by bit into two input data sub-blocks “0” and “0”, and the input data sub-block is output according to the 1B / 2B code conversion rule. Each of them is converted into a sub-block “01”, and is converted into one codeword “0011” by alternately multiplexing two output sub-blocks for each bit. The BUDA stack of the MB24 code and its code table are shown in FIGS.
[0042]
[Table 3]
Figure 0003552632
The description of FIG. 3 and Table 3 is based on the aforementioned MB34 code. From FIG. 3, it can be confirmed that the number of states of the MB24 code is 1, and both the ASV and the DSV are 4.
[0043]
The above is the basic principle of the present invention.
[0044]
Hereinafter, embodiments of the present invention will be described with reference to the drawings. The MB1620 encoder, the MB3240 encoder, and the MB6480 encoder will be described in detail.
[0045]
[First Embodiment]
In this embodiment, an MB1620 encoding apparatus that outputs an MB1620 code by bit-multiplexing two 8B / 10B codes with a DSV of 6 will be described.
[0046]
The MB1620 code is a 16B / 20B code and has 65536 (2 to the 16th power) data codewords. The 8B / 10B code is described in detail in JP-A-59-10056. This 8B / 10B code will be described later.
[0047]
FIG. 4 shows an outline of the MB1620 encoding apparatus and a data flow.
[0048]
Here, the input data stream 11 is input from the serial interface. In this encoder, the input data stream is divided into fixed-length input data blocks of 16 bits each, and 16 bits are considered as one processing unit.
[0049]
In the figure, one input data block included in the input data stream is surrounded by a square thick line, and A1 A2 B1 B2. . . H1 H2. Each alphabet with ruby represents a data bit, and is input with A1 at the top. This input data stream 11 is demultiplexed in a separator 12 into two input data substreams 13 and 14. Therefore, the input data block is composed of input data sub-blocks A1 B1. . . H1, A2 B2. . . H2. These are sent to encoders 15 and 16 respectively, and according to the logic functions of encoders 15 and 16, 10-bit code words a1 b1. . . j1 and a2 b2. . . j2. The logical function of the encoder will be described later.
[0050]
Further, the 10-bit outputs of the encoders 15 and 16 are multiplexed on a bit-by-bit basis in the multiplexing device 19, and the 20-bit code words a1 a2 b1 b2. . . It is serially output to the output interface 1X as j1 j2 with a1 at the top.
[0051]
The encoders 15 and 16 are the same encoders as the 8B / 10B encoder described in the above-mentioned JP-A-59-10056. For details of the configuration of the encoder, refer to the above-mentioned JP-A-59-10056.
[0052]
First, the encoder 15 will be described.
[0053]
The encoder 15 has an 8-bit interface for input data and a 1-bit K line for control. The input ABCDEFGH is divided into two sub-blocks ABCDE and FGH for coding, and the 5B / 6B coding rule shown in Table 4 and the 3B / 4B coding rule shown in Table 5 are applied to each of them.
[0054]
[Table 4]
Figure 0003552632
[0055]
[Table 5]
Figure 0003552632
At this time, the input sub-block “ABCDE” is converted into the output sub-block “abcdei”, and “FGH” is converted into “fghj”. In this conversion operation, the 5B / 6B coding rule and the 3B / 4B coding rule cooperate with each other to determine each output bit. The 10-bit code word “abcdeifghj” thus obtained is output in series.
[0056]
Next, the code conversion rules of the 5B / 6B code and the 3B / 4B code will be described.
[0057]
In order to limit the DSV to a finite value, these codes check the disparity (Disparity) which is the difference between the number of occurrences of “1” and “0” in one codeword and determine the codeword to be output. I do. In the 5B / 6B code and the 3B / 4B code, only the code word in which the number of “1” and “0” are equal or the code word in which the number of “1” and “0” differ by two is used. The value is limited to three types of +2, 0, and -2. For example, the disparity of the code word “110011” is +2. The output codeword is always selected to be disparity, or is selected so that the polarity of disparity alternates. Thus, the long-term average of the cumulative digital sum (RDS) becomes 0, and the DSV is kept at a finite value.
[0058]
In the aforementioned JP-A-59-10056, the term "disparity" refers to not only the difference between the number of occurrences of "1" and "0" in one codeword, but also the long-term average of the cumulative digital sum (RDS). Is also used in the sense of instantaneous displacement of This is particularly referred to as running disparity (RD: Running Disparity). Following this, the relationship between the running disparity and the codeword bit string is represented as shown in FIG. In FIG. 5, each bit "1" is represented by a 45-degree rising line in one codeword bit string, and conversely, each bit "0" is represented by a 45-degree falling line. All 8B / 10B codewords remain within the 45 degree rise / fall line of FIG. As can be seen from FIG. 5, the value of the running disparity (RD) at the boundary between the 5B / 6B codeword and the 3B / 4B codeword takes one of +1 and -1.
[0059]
Table 4 shows the 5B / 6B code table. In Table 4, in the first column “Name”, the alphabet “D” represents a data codeword, and “K” represents a special codeword. The special codeword is output when the K line is 1. In the notation of Dx or Kx, x represents equivalent 32 decimal values when A is regarded as a low-order bit and E is regarded as a high-order bit. The second column "Input Data" is a binary representation of a 5-bit input. The third column “Encoding” represents an output codeword corresponding to the right 5-bit input value. Although the code word is divided into two sub-columns, the code word output when the running disparity (RD) is +1 is written in the left sub-column “currentRD +”, and the running disc is written in the left sub-column “currentRD−”. The codeword output when the parity (RD) is -1 is described. For example, if the running disparity (RD) is -1 and the output for the input "0000" is D. 0 “100111”.
[0060]
Table 5 above shows a 3B / 4B code table. In Table 5, the D.I. x. In the notation y, y represents eight decimal values equivalent when F is viewed as a low-order bit and H is viewed as a high-order bit. The other notations are as shown in Table 4, and the output code word is determined by the running disparity (RD) after the output of the 5B / 6B code.
[0061]
[Table 6]
Figure 0003552632
D. x. P7 (basic 7) and D / K. y. A7 (alternative 7) will be described.
[0062]
D. x. P7 and D / K. y. By A7, the sequence of running length = 5 occurring in eifgh can be eliminated. D. y. A7 is a D.A. x. Used as an alternative to P7.
[0063]
(I) When currentRD + and e = i = 0
(Ii) When currentRD- and e = i = 1
Accordingly, in the output sequence of the data code word of the 8B / 10B code, since “1100000” including “5” and “0011111” including the run length = 5 do not appear, the code word including “1100000” or “0011111” is included. It can be defined as a comma code. That is, if the received bit string is “1100000”***Or "0011111***Is detected, it can be determined that it is a code word delimiter.*"" Represents a bit of "1" or "0".
[0064]
The 8B / 10B code table obtained from the two code tables is as shown in Table 4 described above. The notation is the same as in Table 1.
[0065]
The encoder 16 has the same function as the encoder 15.
[0066]
As described above, in FIG. 4, the outputs of the two encoders 15 and 16 are multiplexed bit by bit by the multiplexing device 19 and output as MB1620 codes.
[0067]
FIG. 6 shows a BUDA stack of an MB1620 code according to an embodiment of the present invention. The notation in this figure is the same as that in FIG. 26 described above. As shown in FIG. 6, the number of states of the MB1620 code is 4, and both DSV and ASV are 12. Although the number of data code words of the MB1620 code is as large as 65536, a part thereof is shown in Table 7.
[0068]
[Table 7]
Figure 0003552632
In Table 7, in the first column “name”, D represents a data codeword. D. x. y. z. w in the notation D. x. y. z. w is the data codeword whose output codeword D.D. x. y and the output codeword D. z. w is multiplexed. The second column “input” is a binary representation of 16-bit input data, and the third column “encoding” is a binary representation of a 20-bit codeword output corresponding to the right input value. I have. The “encoding” column is divided into four sub-columns, and each sub-column is a code output when any one of the labeled states S1, S2, S3, and S4 is the starting point. Represents a word. For example, the output codeword for the input “0000000000000” in the state S2 is “10010110101001100101”.
[0069]
Here, the 8B / 10B code and the MB1620 code are compared. The parameter ASV is equal to the value of the power spectrum at the Nyquist frequency. Limiting the ASV to a finite and sufficiently small value means that the power spectrum is attenuated at the Nyquist frequency.
[0070]
FIG. 7 shows a spectrum comparison between the 8B / 10B code and the MB1620 code according to the first embodiment of the present invention. The power spectrum when the 8B / 10B code is serially output and the power when the M1620 code are serially output are shown. This is shown by comparing the spectra. The output pulse was calculated by Fourier transform assuming a square wave, a transmission rate of 12.5 Gbps, and a data rate of 10 Gbps. Both the 8B / 10B code and the MB1620 code have in common that the spectrum is attenuated at 0 Hz and 12.5 GHz. However, since the spectrum of the MB1620 code limits the ASV and the 8B / 10 code does not limit the ASV, it can be seen that the spectrum values at the Nyquist frequency of 6.25 GHz are completely different. By the effect of ASV, it can be confirmed that the spectrum of the MB1620 code is attenuated at the Nyquist frequency.
[0071]
In the MB1620 encoder, the encoders 15 and 16 are the same as the 8B / 10B encoder, so the number of logical gates required for the encoder is about 800 gates, which is 2 in the 8B / 10B encoder. This value is about 1/50 as compared with the conventional MB810 encoder requiring 40000 gates.
[0072]
In the present embodiment, assuming a serial input interface, a 16-bit input data block is separated into 8-bit input data sub-blocks, and the 8B / 10B code conversion rule is applied to each input data sub-block. , The parallel input interface does not require a separator, and the encoders 15 and 16 are directly provided with A1 A2 B1 B2 C1 C2 D1 D2 and E1 E2 F1 F2 G1 G2 H1 H2. What is necessary is just to wire so that it may be input.
[0073]
Further, in this embodiment, since the two codes having a finite value of DSV have the smallest number of states, the obtained MB code has the smallest number of states among the MB codes generated by bit multiplexing. And the effect of simplifying the circuit configuration is obtained, but the point that these codes become MB codes even if the number of states is not the minimum remains the same. Further, in this embodiment, two codes having finite DSVs to be multiplexed have the same code and have the advantage that the same code word can be used. A different code such as a 5B / 6B code may be used.
[0074]
Further, in this embodiment, the input to the two encoders is 8 bits, which is an advantage that it is a processing unit of a general electronic computer. However, the MB code can be similarly configured in a case other than 8 bits. The point remains the same.
[0075]
Further, in this embodiment, the MB code is configured by bit-multiplexing two 8B / 10B codes. However, even if N (N is a positive even number) 8B / 10B codes are bit-multiplexed, the MB code is similarly formed. A code can be generated. This will be described below.
[0076]
The above-mentioned basic principle is applied to N (N is a positiveEvenThis is extended to the case where a code whose DSV is a finite value is bit-multiplexed. In general, the DSV of a code obtained by multiplexing an arbitrary number of codes each having a finite value of DSV for each bit has a finite value. Therefore, for example, when bits of a code whose six DSVs are a finite value are bit-multiplexed, the six codes are divided into three halves, and the bits are multiplexed. A code obtained by further bit-multiplexing the generated and obtained two codes is an MB code as described above. N (N is positiveEvenIn the case of (number), similarly, N / 2 DSVs respectively perform bit multiplexing on finite codes, and further perform bit multiplexing on the two codes obtained by the bit multiplexing to obtain an MB code. Therefore, if the N 8B / 10B codes are bit-multiplexed, the resulting code is an MB code.
In addition to the 8B / 10B code, generally, input data blocks of M bits (M of 2 or more is a natural number)m k bit(m k Is a natural number, k = 1,2,3, ..., N, N is a positive even number) and a separator for separating into N input data sub-blocks.m k B / nB code conversion rule (n is a natural number,m k <N, k = 1, 2, 3,..., N), an MB code can be similarly configured.
[0077]
Furthermore, in the case of the parallel input interface,m k N input data sub-blocks arem k B / nB code conversion rule (n is a natural number,m k <N, k = 1, 2, 3,..., N).
[0078]
[Second embodiment]
Next, by providing a bit shift (hereinafter referred to as a phase difference) between at least two output sub-blocks,
(I) Example of effect of reducing DSV and maximum running length of MB code obtained by bit multiplexing:
(Ii) Example in which the effect of facilitating decryption operation is obtained:
It will be described in order.
[0079]
The sum of the running disparity (RD) values of two bit strings having a finite DSV for bit multiplexing corresponds to the cumulative digital sum (RDS) of the MB code. Therefore, the DSV of the MB code obtained by simply bit-multiplexing a code having the same DSV of a finite value is twice the DSV of the code before multiplexing because the cumulative digital sum (RDS) is doubled. Yes, the maximum running length also doubles. This value is the worst value compared to the MB code output stream obtained by providing a certain phase difference between the outputs of two codes whose two DSVs are finite values and performing bit multiplexing. Conversely, by appropriately adjusting the phase difference, the DSV value and the maximum running length can be improved.
[0080]
In the above-mentioned MB1620 code, the values of DSV and ASV are both very large, ie, 12.
[0081]
Next, as an embodiment, an example will be described in which the values of ASV and DSV of the output stream are both set to 10 by setting the phase difference to a specific value.
[0082]
FIG. 8 shows the configuration and data flow of the MB1620 encoding apparatus according to the second embodiment of the present invention. The difference from FIG. 4 is that a phase shifter 29 is inserted between one encoder 26 and the multiplexer 2X. Due to the phase shifter 29, the second output sub-block (output sub-block of the encoder 26) is delayed by three bits compared to the first output sub-block (output sub-block of the encoder 25).
[0083]
Both the encoder 25 and the encoder 26 are the same as the above-described 8B / 10B encoder.
[0084]
In order to understand the effect of the phase shifter 29 on the output characteristics, FIG. 9 shows the relationship between the code word bit strings of the 8B / 10B code output from the encoders 25 and 26 and the disparity in consideration of the phase difference of 3 bits. Shown. The notation in FIG. 9 is the same as that in FIG.
[0085]
Since the outputs of the two encoders 25 and 26 are delayed by 3 bits by the phase shifter 29, the disparity of the two codes does not become the maximum value (+3) and the minimum value (-3) in FIG. , The sum of the disparities of the two codes exists between −5 and +5. As a result, the DSV of the output stream obtained by multiplexing is limited to 10. This value is the minimum value when the phase difference by the phase shifter 29 is changed from 1 bit to 9 bits. The output stream of this MB1620 encoder exists on the BUDA stack of FIG.
[0086]
Therefore, the DSV and ASV of the code of the MB1620 can be both output at 10. The bit string having the maximum running length of 5 appearing in the 8B / 10B code starts from the encoder bit c or g. However, since there is no case where the running length of the two codes is 5 at the same time due to the 3-bit phase difference, MB1620 The maximum running length of the code output is 9.
[0087]
In this MB1620 encoder, the phase difference in the phase shifter 29 was 3 bits. FIG. 11 shows the relationship between the phase difference and the DSV according to the second embodiment of the present invention. The horizontal axis is the phase difference in the phase shifter 29, and the vertical axis is the DSV value and the maximum running length. From FIG. 11, similarly, even when the phase difference is 6 bits, the DSV value and the maximum running length are the minimum values. The DSV also has the minimum value when the phase difference is 4 bits and 5 bits.
[0088]
It has been stated that it is effective to set a 3-bit or 6-bit phase difference in order to suppress the DSV and the maximum running length of an MB code obtained by bit-multiplexing two 8B / 10B codes. .
[0089]
Next, an example will be described in which the present invention has a device configuration in which a 3-bit or 6-bit phase difference is not specified.
[0090]
It is assumed that four DSV limited codeword streams are multiplexed.
[0091]
For distinction, the four streams will be referred to as a stream S1, a stream S2,..., A stream S4 in order.
[0092]
As shown in FIG. 12, the phase difference between the stream S1 and the stream S2 is 1 bit, the phase difference between the stream S2 and the stream S3 is 2 bits, and the phase difference between the stream S3 and the stream S4 is 1 bit. It is assumed that an encoding apparatus performs bit multiplexing on S2, bit multiplexes streams S3 and S4, and further multiplexes two streams obtained by multiplexing on a 2-bit basis.
[0093]
This encoding apparatus performs bit multiplexing on the stream S1 and the stream S3 whose phase difference is 3 bits, bit multiplexes the stream S2 and the stream S4 each having the same 3 bits, and further multiplexes two streams obtained respectively. This is equivalent to an encoding device having a bit multiplexing unit. Also in the present embodiment, a DSV and an MB code having a small maximum running length are configured and multiplexed using the phase difference of substantially 3 bit times within the scope of the present invention.
[0094]
Such an example is not limited to the case shown in FIG.
[0095]
In the second embodiment, the two codes whose DSVs to be multiplexed have a finite value have the advantage that they are the same code and that the same encoder can be used. It may be a sign.
[0096]
Further, in the above-described second embodiment, a case has been described in which two DSVs are bit-multiplexed with a finite code. However, the same mB / nB where N (N is a positive even number) DSVs are finite. When the MB code obtained by bit-multiplexing a code (m is a natural number, n is a natural number, and m <n) does not provide a phase difference, the DSV and the maximum running length are maximized. The DSV and the maximum running length can be improved.
[0097]
Next, it will be described that a decoding operation can be facilitated by setting a specific phase difference.
[0098]
When two codes having an even code length n are multiplexed, a substream can be identified by an arbitrary phase difference. However, when the code length n is an odd number, only when the phase difference is [n / 2] bits, Unable to identify substream.
[0099]
The MB1620 code obtained by multiplexing is divided into two 8B / 10B code streams and then decoded. At this time, if the MB1620 encoding apparatus multiplexes the first and second output sub-blocks by providing a phase difference of, for example, 3 bits between the first and second output sub-blocks, the two sub-streams are decoded at the time of decoding using an 8B / 10B code. By examining the phase difference between words, the substream can be identified. The details will be described.
FIG. 13 shows an outline of the decoding apparatus.
[0100]
"A1 b1 c1... J1" and "a2 b2 c2... J2" represent output bits from the encoder 25 and the encoder 26 in FIG. In decoding, “a1 a2 b1 b2... J1 j2...” Is separated into two substreams “a1 b1 c1... J1” and “a2 b2 c2. "A1 b1 c1... J1" arrives at S11, and "a2 b2 c2... J2" arrives at the substream S12, and are decoded into data by the decoders 50 and 60, respectively. However, “a2 b2 c2... J2” may arrive in the sub-stream S11 and “a1 b1 c1. Must be identified. FIG. 14 shows an outline of the identification method.
[0101]
In FIG. 14, the bits arriving at the substreams S11 and S12 are represented by squares, respectively, and the first bit of the code word is emphasized by a black square. Focusing on the phase difference between the code words of the substreams S11 and S12, when the phase difference is 3 bits, it is the case where “a1 b1 c1. , It can be identified that “a2 b2 c2... J2” has arrived at the substream S12. If the phase difference is 6 bits, “a1 b1 c1... J1” comes to the substream S11 by shifting the separation timing in the demultiplexer 140 by 1 bit. Therefore, correct decoding can be performed by providing means for detecting the phase difference.
[0102]
However, when two codes having an odd code length n, such as a 4B / 5B code, are bit-multiplexed with a phase difference of [n / 2], when divided into two substreams for decoding, Since the phase difference between the sub-streams is both [n / 2] bits, the sub-stream cannot be identified.
[0103]
Now, in the case where two 8B / 10B codes are bit-multiplexed with a phase difference, a method of identifying a substream by detecting a phase difference between codewords during decoding has been described. In the case where a specific phase difference is provided for each of the 8B / 10B codes described above to form a bit multiplex and an MB3240 code which is one of the 32B / 40B codes, both the DSV suppression effect and the substream identification effect can be obtained. it can.
[0104]
FIG. 15 shows an outline of the MB3240 encoding apparatus according to the second embodiment of the present invention. The 8-bit inputs “A1 B1 C1... H1”, “A2 B2 C2... H2”,..., “A4 B4 C4... H4” are output by the encoders 71, 72, 73 and 74, respectively. Are converted into “a1 b1 c1... J1”, “a2 b2 c2... J2”,..., “A4 b4 c4. After setting the phase difference between the output sub-blocks 111 and 112 to specific values, the output sub-blocks 117 and 118 and the output sub-blocks 119 and 120 are bit-multiplexed by the multiplexers 210 and 220, respectively. After bit multiplexing by the device 230, it is serially transmitted from 260 as output.
[0105]
For convenience, the output sub-blocks 109, 110, 111, 112 will be referred to as first, second, third, and fourth output sub-blocks, respectively. FIG. 16 shows a combination of phase differences in which the maximum running length of the MB codeword output and the DSV are both minimum when the phase difference is changed in the configuration of FIG. As a result of examining all the combinations, the maximum running length and the minimum value of the DSV value were 17, 18 respectively. In FIG. 16, the first to fourth columns “Phase difference 1”, “Phase difference 2”, “Phase difference 3”, and “Phase difference 4” are provided with the phase difference from the phase shifter 81 to the phase shifter 84 in FIG. Bit), and the fifth column “sum of phases” describes the sum (bit) of the phase differences described in the first to fourth. From this figure, the maximum running length and the DSV value are both minimum and the sum of the phases is the minimum (phase difference 1, phase difference 2, phase difference 3, phase difference 4) = (0, 4, 0, 3), that is, the phase difference between the first and second output sub-blocks is 4 bits, the phase difference between the third and fourth output sub-blocks is 3 bits, and the first and third outputs This is when the phase difference of the sub-block is 0 bit. The reason for selecting the one having the smallest sum of phases is to simplify the circuit for providing the phase difference.
[0106]
Here, a method of substream identification in this case will be described. 17 to 20 show a method for identifying an output sub-block at the time of decoding. For convenience, the output bits from the encoders 71 to 74 in the encoding apparatus of FIG. 15 are represented by “a1 b1 c1... J1”, “a2 b2 c2... J2”,. The output stream “a1 f2 a3 g4 b1 g2 b3 h4... J1 i2 j3 f4” of the encoding apparatus in FIG. Is separated into At this time, there are four cases shown in FIGS. 17 to 20 depending on the timing.
[0107]
In FIGS. 17-20, each incoming bit is represented by a square, and the first bit of the codeword is highlighted by a black square. Focusing on the phase difference between the codewords appearing in the sub-stream S1 and the sub-stream S3, it can be seen that “a1 b1 c1... J1” reaches the desired substream 1 only when the phase difference is 4 bits. . In that case, by manipulating the timing in the demultiplexer, “a1 b1 c1... J1” can arrive at substream 1. This adjustment can be performed by the following procedure.
[0108]
The phase difference between substream 1 and substream 3 is
(A) In the case of 4 bits, no operation is performed.
(B) In the case of 3 bits, the separation timing of the demultiplexers 150 and 160 is shifted by 1 bit.
(C) In the case of 6 bits, the separation timing of the demultiplexer 190 is shifted by 1 bit.
[0109]
In the case of three bits, the separation timing of the demultiplexer 190 may be shifted by two bits. According to this method, since only one phase difference detecting device needs to be installed, the control is simplified. Further, no special means such as newly defining a special code for identifying the substream is required.
[0110]
In this embodiment, the case of four multiplexing is shown, but 8B / 10When eight B codes are multiplexed, the phase difference is set as follows. If the output sub-blocks of the encoders 309 to 316 in FIG. 21 are respectively called first to eighth output sub-blocks, as shown in FIG. 21, the phase difference between the first and second output sub-blocks is 1 bit, The phase difference between the third and fourth output sub-blocks is 2 bits, the phase difference between the fifth and sixth output sub-blocks and the phase difference between the seventh and eighth output sub-blocks are 3 bits. Configure the code. At the time of decoding, by detecting the phase difference between the sub-streams S21 and S22 shown in FIG. 22, the sub-streams can be aligned in the following procedure. The phase difference between substreams S21 and S22 is
(1) No operation is performed for 1 bit.
(2) In the case of 8 bits, the separation timing of the demultiplexers 409, 410, 411, 412 is shifted by 1 bit.
(3) In the case of 2 bits or 7 bits, the separation timing of the demultiplexers 417 and 418 is shifted by 1 bit.
(4) In the case of 3 bits or 6 bits, the separation timing of the demultiplexer 421 is shifted by 1 bit.
[0111]
The setting of the phase difference was performed according to the following procedure.
(A) Consisting of two different natural numbers, the sum of which is equal to the value 9 obtained by subtracting 1 from the code length 10 before multiplexing
(0, 9), (1, 8), (2, 7), (3, 6), (4, 5)
Make a set of five non-negative integers.
(B) Since it is 8 (= 2 to the power of 3) multiplexing, any one of the three different sets of non-negative integers is selected, and is set to Δi (where i = 1, 2, 3). In the example of the MB3240 encoder, as different sets,
(1,8), (2,7), (3,6)
And Δ1 = 2, Δ2 = 3, and Δ3 = 1 bit.
(C) Among the three non-negative integers, Δ3 is the phase difference between the first and second output sub-blocks, Δ1 is the phase difference between the third and fourth output sub-blocks, and the fifth and sixth output sub-blocks. .DELTA.2 is assigned to the phase difference of .times. And the phase difference between the seventh and eighth output sub-blocks.
In the case of multiplexing of 8B / 10B codes, since the code length is 10 bits, five sets of non-negative integers can be secured, and 2 to the fifth power (5 = [10/2]) using a five-stage multiplexer. That is, up to 32 multiplexes can be easily decoded by the above-described method.
[0112]
In general, if the code length is n, since there are only [n / 2] sets of two different non-negative integers whose sum is n-1, up to (2 [n / 2]) multiplexing Applicable. The phase difference is assigned by selecting different p sets (p is a natural number, p ≦ [n / 2]) from the [n / 2] sets, and any one of the non-negative integers included in each set. Is defined as Δi (i is a natural number, i = 1, 2, 3,... P), the phase difference between the first output sub-block and the second output sub-block is Δp, and the (2)i+ 2j -1) and the (2)i+ 2j) output sub-blocks (j is a natural number, i = 1, 2, 3,..., (P−1), j = 1, 2, 3,.p-1) May be Δi bits.
[0113]
[Third embodiment]
The effect of reducing the DSV due to the above-mentioned 3-bit, 4-bit, 5-bit or 6-bit phase difference is due to the coding method in the encoder using the encoder configuration of FIG. Can also be obtained by changing
[0114]
In this embodiment, the encoding method will be described. That is, the encoder 35 outputs an 8B / 10B code (8B / 10B code) that applies 5B / 6B encoding and 3B / 4B encoding in this order, and the encoder 36 has 2 states and DSV This is to output an 8B / 10B code which applies the 3B / 4B encoding method of 4 and the 5B / 6B encoding method of 2 states and 6 DSVs in this order. At this time, the relationship between the code word bit string of the 8B / 10B code output from the encoder 35 and the encoder 36 and the disparity is shown in FIG.
[0115]
Thus, as in the case of the above-described second embodiment, the peaks and valleys of the disparity contour line coincide, the cumulative digital sum (RDS) exists in the range of -5 to 5, and the DSV is 10 It turns out that it becomes.
[0116]
In this case, since the encoder 35 is similar to the 8B / 10B encoder, the encoder 36 will be described in detail.
[0117]
The encoder 36 divides the incoming 8 bits (ABC DEFGH) into two sub-blocks ABC and DEFGH for encoding, and applies a 3B / 4B encoding rule and a 5B / 6B encoding rule respectively. The two coding rules here are slightly different from those in JP-A-59-10056. This is because 28.7 is defined as a comma code.
[0118]
Tables 8 and 9 show a 3B / 4B code table and a 5B / 6B code table used for the encoder 36, respectively.
[0119]
[Table 8]
Figure 0003552632
[0120]
[Table 9]
Figure 0003552632
The notations in Tables 8 and 9 are the same as in Table 4 described above. However, D is replaced with D 'to distinguish it from the 3B / 4B coding rule and the 5B / 6B coding rule of JP-A-59-10056. The partially modified 5B / 6B code table and 3B / 4B code table do not output a control signal, and D '. 7 and D '. y. P3, D '. y. A3, D '. y. P28, D '. y. A28 is different.
[0121]
In the encoder 36, the sequence having a running length of 5 starting from the code word bit f is completely removed by not using “110000” and “001111” in the 5B / 6B code word, and the running starting from the code bit d is performed. A sequence with a length of 5 is also completely eliminated by not using "111100" and "0000011" in principle for the 5B / 6B code. When “111100” and “0000011” are used, the code word bit d precedes the run length 1. A sequence having a run length of 5 starting from the code word bit b is not removed, but the K.K. 28.7 The sequences "11000000111" and "0011111000" can be removed by the method described below.
[0122]
D '. x. P3 (basic 3) and D '. y. A3 (Alternative 3) and D'x. P28 (basic 28) and D '. y. A28 (alternative 28) will be described. With these four codewords, the K.K. 28.7 sequences can be eliminated.
[0123]
D '. y. A3 is
When a = 0, b = c = i = 1,
D '. x. Used as an alternative to P3 and D '. y. A28 is
When a = 1, b = c = i = 0,
D '. x. Used as an alternative to P28. Thereby, K. 28.7 can be used as a comma code.
[0124]
Table 10 shows the 8B / 10B code table obtained from these two coding rules. The notation is the same as in Table 1 described above.
[0125]
[Table 10]
Figure 0003552632
Table 11 shows a part of the MB1620 codes obtained from the two encoders.
[0126]
[Table 11]
Figure 0003552632
In the first column “name”, the notation is the same as that in Table 7 except that D is replaced with D ′.
[0127]
Japanese Patent No. 2684815 discloses an example of multiplexing a code in which a plurality of DSVs have a finite value in the embodiment, and provides a buffer to absorb a phase difference between a plurality of streams demultiplexed at the time of decoding. As described above, this is multiplexing in order to realize a high transmission rate using an inexpensive low-speed circuit, and the effect described in the present invention is produced by limiting to even-bit multiplexing. I don't mention anything at all.
[0128]
Further, the present invention is not limited to the above-described first to third embodiments, and various modifications and applications are possible within the scope of the claims.
[0129]
【The invention's effect】
As described above, according to the present invention, in order to generate an MB code, instead of using a new coding method in consideration of ASV as an encoding method, an even number of codes having DSV as a finite value are used. May be adopted, and an MB encoder having a simple circuit configuration can be configured.
[Brief description of the drawings]
FIG. 1 is a principle configuration diagram of the present invention.
FIG. 2 is a diagram showing a BUDA cell.
FIG. 3 is a diagram illustrating an MB24 code BUDA stack obtained by duplicating a Manchester code.
FIG. 4 is a diagram illustrating a configuration and a data flow of an MB1620 encoding apparatus including two 8B / 10B encoders according to the first embodiment of the present invention.
FIG. 5 is a diagram illustrating a relationship between a codeword bit of an 8B / 10B code output and a disparity value according to the first embodiment of this invention.
FIG. 6 is a diagram illustrating a BUDA stack of an MB1620 code obtained when the 8B / 10B code according to the first embodiment of the present invention is simply duplexed.
FIG. 7 is a diagram illustrating a difference in power spectrum between the MB1620 code and the 8B / 10B code according to the first embodiment of the present invention.
FIG. 8 is a diagram illustrating a configuration and a data flow of an MB1620 encoding apparatus including a phase shifter in one of two encoders according to a second embodiment of the present invention.
FIG. 9 is a diagram illustrating a phase relationship of an 8B / 10B code and a relationship between a codeword bit string and a disparity value according to the second embodiment of the present invention.
FIG. 10 shows a BUDA stack of an MB1620 code output stream when a phase shifter is provided in one of the two encoders according to the second embodiment of the present invention.
FIG. 11 is a diagram illustrating a relationship between a phase difference and a DSV and a maximum running length of an MB1620 code output stream in the MB1620 coding apparatus according to the second embodiment of the present invention.
FIG. 12 is a diagram showing an example in which a code having a finite value DSV is multiplexed by four in the second embodiment of the present invention.
FIG. 13 is a diagram illustrating an overview of an MB3240 decoding device according to a second embodiment of the present invention.
FIG. 14 is a diagram illustrating an overview of substream identification in the MB1620 decoding device according to the second embodiment of the present invention.
FIG. 15 is a diagram illustrating an overview of an MB3240 encoding device according to a second embodiment of the present invention.
FIG. 16 is a diagram illustrating a phase difference in which the maximum running length of the MB3240 code according to the second embodiment of the present invention is 17 and the DSV is 18;
FIG. 17 is a diagram (part 1) illustrating an outline of substream identification in the MB3240 decoding device according to the second embodiment of the present invention.
FIG. 18 is a diagram (part 2) illustrating an overview of substream identification in the MB3240 decoding device according to the second embodiment of this invention.
FIG. 19 is a diagram (part 3) illustrating an outline of substream identification in the MB3240 decoding device according to the second embodiment of the present invention.
FIG. 20 is a diagram (part 4) illustrating an overview of substream identification in the MB3240 decoding device according to the second embodiment of this invention.
FIG. 21 is a diagram illustrating an outline of an MB6480 coding apparatus according to a second embodiment of the present invention.
FIG. 22 is a configuration diagram of a demultiplexing unit of the MB6480 decoding device according to the second embodiment of the present invention.
FIG. 23 is a diagram illustrating an outline of an MB1620 encoding apparatus including an 8B / 10B encoder according to a third embodiment of the present invention and an 8B / 10B encoder with a part changed.
FIG. 24 is a diagram illustrating a relationship between a code word bit string of an 8B / 10B code output and a partially modified 8B / 10B code output and a disparity value according to the third embodiment of this invention.
FIG. 25 is a conceptual diagram of a conventional MB encoding device.
FIG. 26 is a diagram showing an MB34BUDA stack.
FIG. 27 is a diagram showing an MB810BUDA stack.
[Explanation of symbols]
4 Demultiplexer
5 Decoder
6 Decoder
7 Output sub-block
8 Output sub-block
11 Serial data stream
12 Separation means
13,14 Input data substream
15, 16 encoding means
19 Multiplexing means
21 Serial Data Stream
22 Separator
25,26 encoder
27 First output sub-block
28 Second output sub-block
29 Phaser
32 separator
35, 36 encoder
39 Multiplexer
50,60 encoder
71-74 encoder
81-84 Phase shifter
109-112 output sub-block
117-120 output sub-block
140, 150, 160, 190 demultiplexer
210, 220, 230 multiplexer
309-316 encoder
333-336 Multiplexer
341, 342 Multiplexer
345 Multiplexer
409-412 Demultiplexer
417, 418, 421 Demultiplexer

Claims (12)

直流平衡の理論的最小帯域において復号可能であるMB符号の符号化装置であって、
Mビット(Mは自然数)の固定長入力データブロックを、長さがそれぞれ ビット( は自然数、k=1,2,3,…,N、Nは正の偶数)のN個の入力サブブロックにそれぞれ分離する分離手段と、
ディジタル和変位(DSV:Digital Sum Variation)が有限値に制限される B/nB符号変換則(nは自然数、 <n,k=1,2,3,…,N)を前記N個の入力サブブロックに対してそれぞれ適用することにより、nビットの出力サブブロックをそれぞれ生成する符号化手段と、
前記符号化手段の出力であるN個の前記出力サブブロックをビット多重する多重化手段とを有することを特徴とする符号化装置。
An encoding device for an MB code that can be decoded in a theoretical minimum band of DC balance,
Fixed length input data block M bits (M is a natural number), m k bits in length, respectively (m k is a natural number, k = 1,2,3, ..., N , N is a positive even number) N number of Separating means for separating each into input sub-blocks,
RDS displacement (DSV: Digital Sum Variation) is m k B / nB code conversion rule which is limited to a finite value (n is a natural number, m k <n, k = 1,2,3, ..., N) the N Encoding means for respectively generating n-bit output sub-blocks by applying to each of the input sub-blocks;
Multiplexing means for bit-multiplexing the N output sub-blocks output from the encoding means.
記分離手段は、
前記Mビットの固定長入力データブロックを、長さがそれぞれm(mは自然数)であるN個の入力データサブブロックに分離する請求項1記載の符号化装置。
Before Symbol separation means,
The encoding apparatus according to claim 1, wherein the M-bit fixed-length input data block is divided into N input data sub-blocks each having a length of m (m is a natural number).
直流平衡の理論的最小帯域において復号可能であるMB符号の符号化装置であって、
長さがそれぞれ ビット( は自然数、k=1,2,3,…,N)であるN個の固定長入力データサブブロックに対して、前記ディジタル和変位が有限値に制限される B/nB符号変換則(nは自然数、 <n,k=1,2,3,…,N)をそれぞれ適用することによって、nビットの出力サブブロックをそれぞれ生成する符号化手段と、
前記符号化手段の出力であるN個の前記出力サブブロックをビット多重する多重化手段とを有することを特徴とする符号化装置。
An encoding device for an MB code that can be decoded in a theoretical minimum band of DC balance,
M k bits in length, respectively (m k is a natural number, k = 1, 2, 3, ..., N) for N fixed length input data sub-block is, the digital sum displacement is limited to a finite value that m k B / nB code conversion rule (n is a natural number, m k <n, k = 1,2,3, ..., n) by applying the respective encoded to generate n-bit output sub-block, respectively Means,
Multiplexing means for bit-multiplexing the N output sub-blocks output from the encoding means.
前記N個の入力データサブブロックは、長さがそれぞれm(mは自然数)である請求項3記載の符号化装置。4. The encoding apparatus according to claim 3, wherein each of the N input data sub-blocks has a length of m (m is a natural number). 前記符号化手段は、
前記 B/nB符号変換則(nは自然数、 <n,k=1,2,3,…,N)として、それぞれの状態数の最小のものを用いる請求項1または、3記載の符号化装置。
The encoding means,
4. The method according to claim 1, wherein the m k B / nB code conversion rule (n is a natural number, and m k <n, k = 1, 2, 3,..., N) uses a minimum number of states. Encoding device.
前記符号化手段は、The encoding means,
前記mB/nB符号変換則(nは自然数、m<n)として、それぞれの状態数の最小のものを用いる請求項2または、4記載の符号化装置。5. The encoding apparatus according to claim 2, wherein the mB / nB code conversion rule (n is a natural number, m <n) uses a minimum number of states.
前記符号化手段は、
前記mB/nB符号変換則において、m=8である請求項6記載の符号化装置。
The encoding means,
The encoding device according to claim 6 , wherein m = 8 in the mB / nB code conversion rule .
前記多重化手段は、
少なくとも2の出力サブブロック間に位相差を設ける請求項1乃至7記載の符号化装置。
The multiplexing means,
8. The encoding device according to claim 1, wherein a phase difference is provided between at least two output sub-blocks.
前記符号化手段は、
N=2とし、
各々の入力サブブロックに対して8B/10B符号変換則として、状態数が2であり、前記DSVが6である5B/6B符号変換則と、状態数が2であり、前記DSVが4である3B/4B符号変換則をこの順序で適用する最大走行長が5である符号変換則を採用する手段を含み、
前記多重化手段は、
前記符号化手段の出力である第1の出力サブブロックと第2の出力サブブロックの位相差が3ビットまたは、6ビットとする手段を含む請求項8記載の符号化装置。
The encoding means,
N = 2,
As the 8B / 10B code conversion rule for each input sub-block, the number of states is 2, the 5V / 6B code conversion rule in which the DSV is 6, the number of states is 2, and the DSV is 4. Means for employing a code conversion rule with a maximum running length of 5 applying the 3B / 4B code conversion rule in this order,
The multiplexing means,
9. The encoding apparatus according to claim 8, further comprising means for setting the phase difference between the first output sub-block and the second output sub-block, which is the output of the encoding means, to 3 bits or 6 bits.
前記多重化手段は、
N=2(pは自然数、p≦[n/2]、[x]はxを超えない最大の整数を表す)であって、和がn−1である相異なる2つの自然数の[n/2]個の組(P,n−1−P)(Pは非負整数、P=0,1,2,3,…,[n/2]−1)の中から相異なるp組を選択し、それぞれの組に含まれるいずれか一方の非負整数をそれぞれΔ (iは自然数、i=1,2,3,…,p)と定義したときに、前記符号化手段の第1の出力サブブロックと第2の出力サブブロックの位相差をΔ とし、第(2+2j−1)の出力サブブロックと第(2+2j)の出力サブブロック(jは自然数、i=1,2,3,…,(p−1),j=1,2,3,…,2p−1)との位相差をΔ ビットとする手段を含む請求項8記載の符号化装置。
The multiplexing means,
N = 2 p (p is a natural number, p ≦ [n / 2], [x] represents the largest integer not exceeding x), and [n] of two different natural numbers whose sum is n−1 / P] different p-groups are selected from the (P, n-1-P) pairs (P is a non-negative integer, P = 0,1,2,3, ..., [n / 2] -1) When one of the non-negative integers included in each set is defined as Δ i (i is a natural number, i = 1, 2, 3,..., P), the first output of the encoding means the phase difference between the sub-block and the second output sub-block and delta p, the (2 i + 2j-1) output the output sub-block (j is a natural number of sub-blocks and the (2 i + 2j), i = 1,2 , 3, ..., (p- 1), j = 1,2,3, ..., 2 p-1) and the encoding apparatus according to claim 8, further comprising means for the phase difference and delta i bits.
前記符号化手段は、
N=4であって、各々の入力サブブロックに対して8B/10B符号変換則として、状態数が2であり、前記DSVが6である5B/6B符号変換則状態数が2であり、前記DSVが4である3B/4B符号変換則をこの順序で適用する最大走行長が5である符号変換則を採用する手段を含み、
前記多重化手段は、
前記符号化手段の出力である第1の出力サブブロックと第2の出力サブブロックとの位相差を4ビットとし、第3の出力サブブロックと第4の出力サブブロックとの位相差を3ビットとし、さらに、該第1の出力サブブロックと該第3の出力サブブロックの位相差を0ビットとする手段を含む請求項10記載の符号化装置。
The encoding means,
N = 4, the number of states is 2 as the 8B / 10B code conversion rule for each input sub-block, and the 5B / 6B code conversion rule with the DSV of 6 and the number of states are 2, Applying a 3B / 4B code conversion rule in which the DSV is 4 in this order and adopting a code conversion rule in which the maximum running length is 5;
The multiplexing means,
The phase difference between the first output sub-block and the second output sub-block which is the output of the encoding means is 4 bits, and the phase difference between the third output sub-block and the fourth output sub-block is 3 bits 11. The encoding apparatus according to claim 10, further comprising: means for setting a phase difference between the first output sub-block and the third output sub-block to 0 bits.
前記符号化手段は、
N=2であって、一方の入力サブブロックに対して B 10B符号変換則として、状態数が2であり、前記DSVが6である5B/6B符号変換則と、状態数が2であり、前記DSVが4である3B/4B符号変換則をこの順序で適用し、他の入力サブブロックに対して8B/10B符号変換則として、状態数が2であり、前記DSVが4である3B/4B符号変換則と状態数が2であり、前記DSVが6である5B/6B符号変換則をこの順序で適用する請求項記載の符号化装置。
The encoding means,
N = 2, the number of states is 2 as the 8 B / 10 B code conversion rule for one input sub-block, and the 5B / 6B code conversion rule in which the DSV is 6; Yes, the 3B / 4B code conversion rule in which the DSV is 4 is applied in this order, and the number of states is 2 and the DSV is 4 as the 8B / 10B code conversion rule for other input sub-blocks. The encoding device according to claim 7 , wherein the 3B / 4B code conversion rule and the number of states are 2, and the 5B / 6B code conversion rule in which the DSV is 6 is applied in this order.
JP2000052534A 2000-02-28 2000-02-28 Encoding device Expired - Fee Related JP3552632B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000052534A JP3552632B2 (en) 2000-02-28 2000-02-28 Encoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000052534A JP3552632B2 (en) 2000-02-28 2000-02-28 Encoding device

Publications (2)

Publication Number Publication Date
JP2001244817A JP2001244817A (en) 2001-09-07
JP3552632B2 true JP3552632B2 (en) 2004-08-11

Family

ID=18574036

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000052534A Expired - Fee Related JP3552632B2 (en) 2000-02-28 2000-02-28 Encoding device

Country Status (1)

Country Link
JP (1) JP3552632B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7777652B2 (en) * 2008-10-29 2010-08-17 Silicon Image, Inc. Coding system for memory systems employing high-speed serial links
JP5485736B2 (en) * 2009-02-10 2014-05-07 パナソニック株式会社 Transmitter
JP5409196B2 (en) * 2009-08-26 2014-02-05 株式会社シグリード Encoding method and decoding method
US8988255B2 (en) * 2011-10-01 2015-03-24 Intel Corporation Apparatus and method for coding data based on phasor disparity
CN106788446A (en) * 2016-11-25 2017-05-31 电子科技大学 A kind of new 8b/10b coding implementation methods
CN113039761B (en) * 2019-07-14 2024-06-18 瓦伦斯半导体有限责任公司 8B10b PAM4 coding

Also Published As

Publication number Publication date
JP2001244817A (en) 2001-09-07

Similar Documents

Publication Publication Date Title
KR101483535B1 (en) Coding system for memory systems employing high-speed serial links
CN100527248C (en) Techniques for applying modulation constraints to data using periodically changing symbol mappings
KR100336496B1 (en) Method and apparatus for encoding MB810 line code with the characteristics of minimum bandwidth and DC-free
US5396239A (en) Data and forward error control coding techniques for digital signals
JPS5910056A (en) Code producing system
KR100306425B1 (en) System for implementing run length limited codes
KR101114057B1 (en) Rll encoding
EP0471130A1 (en) Coding method and apparatus for pipelined and parallel processing
EP0344903A2 (en) Traversed (d, k) code translation
BG105877A (en) Method of converting a stream of databits of a binary information signal into a stream of databits of a constrained binary channel signal, device for encoding, signal comprising a stream of databits of a constrained binary channel signal, record carrier and device for decoding
JP3552632B2 (en) Encoding device
EP0414368B1 (en) Apparatus for data and forward error correction coding for low DC-offset and short run length
KR100281738B1 (en) Encoding and decoding method of nibble inversion and block inversion code, code and decoder
JP2006209953A (en) Data modulation method using short block encoder
KR100421004B1 (en) Code generation and alignment method
JP2003032120A5 (en)
HUP0202426A2 (en) Method of converting a stream of databits of a binary information signal, into a stream of databits of a constrained binary channel signal, device for encoding, signal comprising a stream of databits of a constrained binary channel signal, ...
JPH08501429A (en) Data encoding
JPH10224235A (en) Trellis coding method for co-channel interference
US7064683B1 (en) Speed optimized encoder with running disparity constraint
JP2004120763A (en) Data modulation method and apparatus, data demodulation method and apparatus, and code arrangement method
KR20080097917A (en) Method and apparatus for channel coding and decoding
JP3573978B2 (en) Encoding method and encoding device
KR100657259B1 (en) Data modulation method and code placement method
Rahman et al. The 12B8T multilevel line coding scheme in digital to digital data conversion

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040326

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040413

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040426

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090514

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090514

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100514

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees