今回は、高速伝送インターフェースでよく用いられるコーディングについて解説いたします。伝送規格に対応するために、重要な用語です。
さて、このサイトの記事でも何度も取り上げているデータ伝送とは、そもそも、電圧が「0」であるか「1」であるかをICが読み取り、伝わるのでしたね。
データ伝送経路内では、「1」「0」がバラバラと並んで伝送されているわけです。
その中で、電圧「0」や「1」が連続して続くことも考えられます。
このように、同じ電圧がずっと続いて伝送されると、データを受け取るICではいきなり異なる電圧を受け取れなくなる場合があります。
例えば、キャッチャーとピッチャーで考えてみると、、
キャッチャーがずっとハイボールを投げられているときに、いきなりローボールを投げられると受けられないですよね。
これと同じことが、データを受け取るICでもあてはまり、ずっと電圧「1」が続くと、いきなり電圧「0」がきた時に受け取れなくなり、エラーとなってしまうのです。
その解決策こそが、コーディングです。
コーディングは、下図のように電圧「0」「1」が続かないように、データを一部変換することをいいます。
このコーディングは、伝送規格に対応するために必要となることがよくあり、高速伝送を行ううえで、必須項目となっています。
- 変換方式は以下のように様々な方法があります。
-
- 8B10B :8ビットのデータを10ビットへ置き換える
- 64B66B :64ビットのデータを66ビットへ置き換える
- 128B130B :128ビットのデータを130ビットへ置き換える
また、それぞれ置き換え方法は、伝送規格で定められています。
上図は、PCI Express(1.0/2.0)に対応するための8B10B置き換え例で、「0」が8ビット分続くデータに「1」を混ぜて、10ビットへ置き換えています。
これらの変換にはICを用いて行います。
いかがでしたでしょうか。今回はコーディングについてお話いたしました。高速伝送をエラーなく実現するには、重要な用語です。ぜひ設計時にご活用ください。