64B/66B、64B/67B、128B/130B符号化
8B/10B符号では、8ビットに対して送信されるデータが2ビット増加するので、転送されるデータの20%、実際のデータから見ると25%オーバヘッドが増加します。つまり2.5GbpsのPCI Expressでは2Gbpsが実質的なデータ転送レートで、データ帯域幅で250MBとなります。そのため、物理層のデータ転送レートを2.5GBAUD(ボー)、実質的なデータ転送レートを2Gbpsと区別して表現している半導体ベンダもあります。ただし一般的にはこのような表現はしません。
符号化に伴うオーバヘッドを低減すべく、64B/66B、64B/67B、128B/130Bも規格化され、各々10GbE、Interlaken、PCI Express Rev.3.0の8Gbpsで利用されています。64B/66Bは8バイト・データにシンク・ヘッダ2ビットを付加したもの、64B/67Bは、64B/66BにDCバランス用の1ビット追加したもの、128B/130Bは、16バイト・データにシンク・ヘッダ2ビットを付加したものです。各々データはスクランブルされます。
TMDS
TMDSは、DVIやHDMIでは、米Silicon Imageが開発したデータ伝送方式で、8B/10B符号と同様に8ビット・データを10ビットに符号化するTMDS符号(Transition Minimized Differential Signaling)を使用しています。
しかしながらその名称「遷移時間最短差動信号伝送方式」が示すように、EMIの低減とデータ転送の堅牢化のための「ビット変化の最小化」、つまり「データ遷移密度を下げること」が目的であり、データ遷移密度を上げる8B/10B符号化と大きく異なります。一方、データに含まれる"0"と"1"の数を見てビット・パターンを反転してDCバランスを取る点は、方法は異なるにしても狙いは8B/10B符号と同じです。
10ビットに符号化するためのプロセスは大きく2ステップに分かれています。
ビット変化の最小化:図A-1のように演算結果と元のデータの次のビットとXOR、あるいはXNORを順番に繰り返します。9ビット目にはXORであれば「0」が、XNORであれば「1」がセットされます。どちらの演算を使用するかは、データの中の「1」の個数などに応じて切り替えます。
DCバランス:ラニング・ディスパリティを行い、前のデータと現在のデータの「0」と「1」の個数に応じてビット・パターンを反転します。その際に10ビット目が「1」か「0」かが決まります。ただし、実際はもう少し複雑な処理を施します。
スクランブラ
同じデータを繰り返し送信すると、周波数領域で見た場合、特定の周波数にエネルギーが集中することとなり、EMI的に不利となります。そこで乱数(疑似ランダム・シーケンス)でデータ・パターンを攪拌し、EMIを低減します(図4-6)。
例えば、論理的なアイドル状態では、D0.0として00h値を流しますが、8B/10B符号化されたパターン1001110100がバス上に繰り返し出現されることになります。
乱数は線形フィードバック・シフト・レジスタ(LFSR:Linear Feedback Shift Register)で生成し、生成された乱数値とデータを排他的論理和(XOR)します。受信側では受信データに対し、同じ乱数を排他的論理和することで、元のデータに戻すことができます。送信側と受信側の乱数生成を同期させる必要があり、PCI ExpressやUSB3.0などの8B/10B符号を採用しているシステムではCOM(K28.5)で受信側のシフト・レジスタをリセット(初期化)します。シード(種)と呼ばれる初期値、シフト・レジスタの段数およびタップ位置(特性多項式で表現)は規格に依存します。表4-2に仕様例を示します。
スクランブラは、様々なパターンをランダムに出現させることでデータ遷移密度を上げる効果もあります。
スクランブラの結果として、リンクアップ後に何もデータを流していないアイドル状態のシリアル・インタフェースをプローブであたってみると、本来何も流していないにも関わらず、常にばらばらとランダムに変化する信号が観られます。
著者
畑山仁(はたけやま・ひとし)
テクトロニクス社 シニア・テクニカル・エクスパート