8b/10b

高速シリアル・データ通信測定に関する翻訳に、8b/10bという言葉がよく出てくる(例えば、N8900A Infiniiumオシロスコープ オフライン解析ソフトウェアのp7)。

8b/10bは、読んで字のごとく、8ビット分のデータ(情報)を10ビットに変換して伝送するためのコード化方式で、1980年代前半にIBM社によって考案された。データの実効伝送速度は20%遅くなるが、以下のような利点がある。

高速シリアル・データ通信では、長期間「0」または「1」のみのデータが継続すると、直流成分が含まれることになり、AC結合のデータ線で電圧レベルが減衰し、遷移ポイント付近で「0」か[1」かの判定が困難になる(シンボル間干渉が生じる)。8b/10bによるコード化を行うと、「0」または「1」が連続する長さ(ランレングスと呼ばれる)が5ビット以下になり、「0」の個数と「1」の個数の偏りがなくなる(DCバランスがとれる)ので、DC成分を持たなくなり、AC結合のデータ線でシンボル間干渉が生じ難い伝送が可能になる。また、ランレングスが5ビット以下になるので、データ遷移(「0」から「1」や「1」から「0」への遷移)を検出し易くなり、受信側でのクロック・リカバリが容易になる。

このような理由から、現在、高速シリアル・データ通信(USB 3.0、シリアル ATA、PCI Express 1.0/2.0、ギガビット・イーサネットなど)に8b/10bが広く用いられている。8b/10bの20%のオーバヘッドを減らすために、PCI Express 3.0では128b/130b、最新のUSB 3.1では128b/132bが使用されている。

8b/10bについては、以下を参照

【連載】高速シリアル・インタフェース測定の必須スキルを身に着ける第4回
シリアル・インタフェースの物理層を形成する3大要素 – トランスミッタ(1)
の「8B/10B符号化」

A DC-Balanced, Partitioned-Block, 8B/10B Transmission Code(IBM社の原論文)

コメントは受け付けていません。