シンボルエラーとは
シンボルエラーとは、100Base-TX の 4B/5B 符号化、1000Base-T/1000Base-X の 8B/10B 符号化、10G Base-R の 64B/66B 符号化などにおける、未定義 (無効) シンボルを受信したときに発生するエラーです。
なのでチェックサムエラーと同様、物理層での問題が予想されます。
4B/5B 符号化とは
4B/5B 符号化とは、送信側は 4 bit の情報を 5 bit の情報に変換して送り、受信側は 5 bit の情報を 4bit に戻す符号化方式です。
5 bit の情報を 1 セットとしたものをシンボル (Symbol) と言います。なので 25% の無駄な情報が入りますが、メリットは、0 もしくは 1 が 5 bit 以上連続しない、ということです。
0 もしくは 1 が連続すると、受信時に精度が悪くなります。なぜなら、送信側と受信側ではクロック (Flip-Flop回路) が同期されておらず、しかもほぼ同じ速度とはいえ、物理的な問題でわずかながら速度が異なるので、0 と 1 が頻繁に入れ替わるのであればそのタイミングでリカバリできますが、連続するとそのリカバリが効かず、0 と 1 の境目が分かりづらくなるからです。
これをクロック・リカバリ問題と言います。
4B/5B だけでなく、8B/10B や 64B/66B 符号化のモチベーションはこのクロック・リカバリ問題 (Clock Recovery Problem) を解消するためです。
なお、10Base-T のマンチェスター符号化も同様にクロック・リカバリ問題の解決をしていますが、100% の無駄な情報 (伝えたい情報の 2 倍の情報量) が入りますので、それと比較すればかなり効率化しています。
参考までに、4B/5B の 4 bit ⇔ 5 bit 変換マップ (Symbol Table と言います) を以下に示します。
4bit(伝えたい情報) | シンボル | 5bit(変換後の情報) |
---|---|---|
0000 | 0 | 11110 |
0001 | 1 | 01001 |
0010 | 2 | 10100 |
0011 | 3 | 10101 |
0100 | 4 | 01010 |
0101 | 5 | 01011 |
0110 | 6 | 01110 |
0111 | 7 | 01111 |
1000 | 8 | 10010 |
1001 | 9 | 10011 |
1010 | A | 10110 |
1011 | B | 10111 |
1100 | C | 11010 |
1101 | D | 11011 |
1110 | E | 11100 |
1111 | F | 11101 |
IDLE | I | 11111 |
SSD(1) | J | 11000 |
SSD(2) | K | 10001 |
ESD(1) | T | 01101 |
ESD(2) | R | 00111 |
ERR | H | 00100 |
未定義(無効) | V | 上記以外 |
なお、SSD は Start of Stream Delimiter の略で、SSD(1) と SSD(2) が連続することで、フレームの開始を知らせます。
同様に、ESD は End of Stream Delimiter の略で、ESD(1) と ESD(2) が連続することで、フレームの終了を知らせます。
IDLE は ESD(2) から次の SSD(1) までずっと出力されます。
コメント