8b/10b変換
シリアル転送で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/10b | 80% | 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.0 | 128b/130b |
| PCI Express 6.0 | PAM4による多値伝送と、誤り訂正(FEC)付きのFLIT |
「PCI Express 3.0、4.0、5.0は8b/10b変換を採用している」という説明は誤りである。
ほかの伝送路符号化との関係
| 方式 | 使われている例 | 内容 |
|---|---|---|
| マンチェスタ符号 | 10BASE-T | 1ビットごとに信号を変化させる。効率は50% |
| 4B/5B | 100BASE-TX、100BASE-FX | 4ビットを5ビットに変換する。効率は80% |
| 8b/10b | 1000BASE-X | 8ビットを10ビットに変換する。効率は80% |
| 64b/66b | 10GBASE-R | 64ビットに2ビットのヘッダーを付ける |
イーサネットでも、速度の向上に合わせて、効率のよい符号化方式へ移り変わってきた。
実際の試験ではここに出る!全1問
ネットワークスペシャリスト
- 午前Ⅱ