8b/10b変換

読み:はちびーじゅうびーへんかん / 英語表記:8b/10b encoding

シリアル転送で8ビットのデータを10ビットの符号に変換して送る、伝送路符号化の方式である。同じ値の連続を制限して受信側がクロックを取り出しやすくし、0と1の数の偏りを抑えるDCバランスも保つ。符号化による伝送の効率は80%になる。

イマシルちゃんの解説

0と1を順番に送る通信では、同じ値が長く続くと信号の変化がなくなり、受信側が読み取るタイミングを合わせにくくなるんだ。
そこで8ビットのデータを10ビットの符号に置き換えて送る方式が、8b/10b変換だよ。
送る符号を選んで同じ値の連続を短くし、タイミングを刻むクロックを受信側で取り出しやすくするよ。
0と1の数の偏りも抑え、信号の直流成分を偏らせないDCバランスを保つんだ。
余分なビットを送るぶん効率は下がるけれど、受信側が信号を読み取りやすくなるよ。

より深い解説

定義

8b/10b変換(8b/10b符号化)は、8ビットのデータを、あらかじめ決められた表に従って10ビットの符号に変換する伝送路符号化の方式である。1983年にIBMの研究者が考案した。10ビットの符号のうち、0と1の数のバランスが取れたものだけを使う。

目的

目的内容
クロックの再生同じ値が長く続かない(最大5ビット)ようにして、受信側が信号の変化からタイミングを取り出せるようにする
DCバランス0と1の数をそろえ、信号の直流成分を偏らせない(ACカップリングの伝送路で信号がゆがまないようにする)
誤りの検出使っていない符号を受信したら、誤りと判断できる
制御符号データとは別に、区切りなどを示す特別な符号(Kコード)を送れる

効率とオーバーヘッド

8ビットのデータを送るのに10ビットを使うため、伝送の効率は8 ÷ 10 = 80% で、20%がオーバーヘッドになる。

例:PCI Express 2.0(5GT/s)の1レーン
5Gbit/s × 8/10 = 4Gbit/s = 500Mバイト/秒

より効率のよい符号化方式

高速化に伴い、オーバーヘッドの小さい方式が使われるようになった。

方式効率オーバーヘッド使われている例
8b/10b80%20%PCI Express 1.x・2.0、1000BASE-X(光ファイバのギガビットイーサネット)、SATA、USB 3.0(5Gbit/s)
64b/66b約97%約3%10GBASE-R(10ギガビットイーサネット)
128b/130b約98.5%約1.5%PCI Express 3.0~5.0
128b/132b約97%約3%USB 3.1以降(10Gbit/s)

64b/66bや128b/130bは、データを64ビットや128ビットごとに区切り、先頭に2ビットの同期用のヘッダーを付ける方式である。0と1の偏りは、データをスクランブル(決まった規則でかき混ぜる)することで防ぐ。

符号化方式を見分けるポイント

規格符号化方式
PCI Express 2.0まで8b/10b
PCI Express 3.0、4.0、5.0128b/130b
PCI Express 6.0PAM4による多値伝送と、誤り訂正(FEC)付きのFLIT

「PCI Express 3.0、4.0、5.0は8b/10b変換を採用している」という説明は誤りである。

ほかの伝送路符号化との関係

方式使われている例内容
マンチェスタ符号10BASE-T1ビットごとに信号を変化させる。効率は50%
4B/5B100BASE-TX、100BASE-FX4ビットを5ビットに変換する。効率は80%
8b/10b1000BASE-X8ビットを10ビットに変換する。効率は80%
64b/66b10GBASE-R64ビットに2ビットのヘッダーを付ける

イーサネットでも、速度の向上に合わせて、効率のよい符号化方式へ移り変わってきた。

実際の試験ではここに出る!全1問

ネットワークスペシャリスト

午前Ⅱ

この用語が出てくる記事

↑