8b/10bはシリアル通信に用いられる伝送路符号の1つ。IBM[1]ソニー[2]による開発を元に ANSI INCITS 230 で規定されたもので、この名称は8ビットのデータを10ビットのデータに変換して転送することに由来する。10b/8bとも。

特徴

編集

8b/10b

LowHigh8b/10bLow/High420%(=8/10)

用例

編集

 (1000BASE-X)[3] (1GFC8GFC)[4]IEEE 1394b (FireWire 800)[5]PCI Express 2.0[6]Serial ATA[7]USB 3.0[8]

8b/10b PCI Express88b/10b

10(10GBASE-R)(10GFC16GFC)64b/66bPCI Express 3.0USB 3.1 Gen2128b/130b

変換方式

編集

8ビットの元データを HGF EDCBA の上位3ビット/下位5ビットに分け、それぞれ1ビットずつ加えてLSBが最初に来る形でabcdei fghjのように下位6ビット/上位4ビットに変換する。 この変換はシンボル D.xx.x のように表記し、8ビットの元データ 0x00~0xFF は、256種のシンボル D.00.0, D.01.0, ... , D.31.6, D.31.7 で表現される。

以下に変換テーブルの一例としてIBMの実装を示す。このビット変換に決まった法則はなく、完全なテーブルによる変換で行われる。

5b/6b変換 (下位データ)
シンボル名 5ビット値
EDCBA
6ビット値 abcdei
正シンボル 負シンボル
D.00 00000 100111 011000
D.01 00001 011101 100010
D.02 00010 101101 010010
D.03 00011 110001
D.04 00100 110101 001010
D.05 00101 101001
D.06 00110 011001
D.07 00111 111000 000111
D.08 01000 111001 000110
D.09 01001 100101
D.10 01010 010101
D.11 01011 110100
D.12 01100 001101
D.13 01101 101100
D.14 01110 011100
D.15 01111 010111 101000
D.16 10000 011011 100100
D.17 10001 100011
D.18 10010 010011
D.19 10011 110010
D.20 10100 001011
D.21 10101 101010
D.22 10110 011010
D.23 10111 111010 000101
D.24 11000 110011 001100
D.25 11001 100110
D.26 11010 010110
D.27 11011 110110 001001
D.28 11100 001110
D.29 11101 101110 010001
D.30 11110 011110 100001
D.31 11111 101011 010100
3b/4b変換 (上位データ)
シンボル名 3ビット値
HGF
4ビット値 fghj
正シンボル 負シンボル
D.xx.0 000 1011 0100
D.xx.1 001 1001
D.xx.2 010 0101
D.xx.3 011 1100 0011
D.xx.4 100 1101 0010
D.xx.5 101 1010
D.xx.6 110 0110
D.xx.7[a] 111 1110 0001
0111[b] 1000[c]


(一)^ 0/15使

(二)^ D.17.7, D.18.7, D.20.7 (=0xF1, 0xF2, 0xF4) 使

(三)^ D.11.7, D.13.7, D.14.7 (=0xEB, 0xED, 0xEE) 使



20/10/1 (RD) RD使

RD(=1)

RD(=0)

10RD

RD[9]10510RD=6140RD=RD

DK12[10]
Kコード(制御用シンボル)
シンボル名 10ビット値 abcdei fghj 構造
正シンボル 負シンボル
K.28.0 001111 0100 110000 1011 下位6ビットはK.28と呼ばれる特殊シンボル001111を用いる。
上位4ビットはDコードとほぼ同じだが常に正負反転させる。
例外的に同一ビットが5連続するものがある(下線部)。
K.28.1 001111 1001 110000 0110
K.28.2 001111 0101 110000 1010
K.28.3 001111 0011 110000 1100
K.28.4 001111 0010 110000 1101
K.28.5 001111 1010 110000 0101
K.28.6 001111 0110 110000 1001
K.28.7 001111 1000 110000 0111
K.23.7 111010 1000 000101 0111 D.23とD.xx.7下段の組合せ
K.27.7 110110 1000 001001 0111 D.27とD.xx.7下段の組合せ
K.29.7 101110 1000 010001 0111 D.28とD.xx.7下段の組合せ
K.30.7 011110 1000 100001 0111 D.30とD.xx.7下段の組合せ

出典

編集


(一)^ US 4486739, "Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code", published 1984-12-04 

(二)^ US 4456905, "Method and apparatus for encoding binary data", published 1984-06-26 

(三)^ IEEE 802.3z-1998: Media Access Control Parameters, Physical Layers, Repeater and Management Parameters for 1,000 Mb/s Operation. (1998-10-01) 

(四)^  (2002822). IPSAN. @IT. 2024430

(五)^  (2007816). IEEE 1394FireWire. ITmedia NEWS. 2024430

(六)^ PCI Express Base Specification Revision 2.0. PCI-SIG. (2006-12-20). https://pcisig.com/specifications/pciexpress/base2 

(七)^  (2010712).  - Serial ATA 3.0 (3). PC Watch. 2024430

(八)^ Universal Serial Bus Revision 3.2 Specification. (2022-06-03). https://www.usb.org/document-library/usb-32-revision-11-june-2022 

(九)^ IEEE 802.3-2022, Section 36.2.4.4 Running disparity rules

(十)^ IEEE 802.3-2022, Table 362Valid special code-groups