イーサネットの物理層(20)個別規格 1000BASE-T 畳み込み符号 / 4D-PAM5 符号 / フレーム構造

1000BASE-T

畳み込み符号

送信データのスクランブル後、8ビットデータに1ビット付加し9ビットにする。変換テーブルに 2倍の冗長性を持たせることと、変換テーブルでデータを拡散し電磁妨害波を抑えることが 1 ビットを追加する理由だ。畳み込み符号の回路は、図1 の構成になる。

図1 畳み込み符号
図1 畳み込み符号

図1 の畳み込み符号回路は、冗長ビットの生成元になる SDn[6] と SDn[7] から冗長データ SDn[8] を畳み込み演算で生成する回路例だ。SDn[0]~SDn[8] はスクランブル後のデータだ (図2 参照)。CSn[0]~CSn[2] は畳み込み演算(Convolution Encoder)の状態を表している。Tx_enable n-2 は送信許可信号だが、本文では常に「送信許可状態」で説明しているため、無視してよい。Delay は遅延素子で 1サイクル未満の僅かな遅延時間を作っている。各部の動作は次のようになっている。

  • CSn[1] 生成:SDn[6] と CSn-1[0] とのEXOR(排他的論理和)で生成。 CSn-1[0] は CSn[0] の1つ前の状態。AND 回路は常にゲートが ON で無視してよい。
  • CSn[2] 生成:SDn[7] と CSn-1[1] とのEXOR(排他的論理和)で生成。 CSn-1[1] は CSn[1] の1つ前の状態。AND 回路は常にゲートが ON で無視してよい。
  • CSn[0] 生成:CSn[0] は CSn[2] の1つ前の状態(=CSn-1[2] )
  • SDn[8] 生成:=CSn[0]
図5 1000BASE-T 物理層コード変換
図2 1000BASE-T 物理層コード変換

これらを演算式で表すと次のようになる。

畳み込み演算

記号定義

SDn[6]/[7]冗長ビット生成元データ(スクランブル後のデータ)
SDn[8]冗長ビット
CSn[0]/[1]/[2]n サイクル目での畳み込み演算の状態
^EXOR 演算

演算式

CSn[1]= SDn[6] ^ CSn-1[0]
CSn[2]= SDn[7] ^ CSn-1[1]
CSn[0]= CSn-1[2]
SDn[8]= CSn[0]

図1 畳み込み符号を初期状態(State0)から、SDn[6]=1/SDn[7]=1 を入力し、次に SDn[6]=0/SDn[7]=1 を入力した状態が表1 だ。

表1 畳み込み符号動作例
表1 畳み込み符号動作例

1000BASE-T 4D-PAM5 符号

4D-PAM5 符号は [ -2, -1, 0, +1, +2] の 5つの値から選択した 4つの値の組み合わせになっている。例えば[-2, -2, 0, -2]や[0, -1, +1, 0]などだ。畳み込み符号で生成した1ビットを加えた9ビットデータと 4D-PAM5 符号表との対応は図3 の様に対応している。4D-PAM5 符号の割り当てはランダムではなく規則性がある。各シンボル間の最小平方距離 4 を確保し、データ化けを起こしにくくするためだ。

図3 4D-PAM5 符号表(抜粋)
図3 4D-PAM5 符号表(抜粋)

4D-PAM5 符号は [-2, -1, 0, +1, +2] を2つのサブセットXとYに分割する。

  • X=[-1, +1]、Y=[-2, 0, +2]

上位3ビットで決まる各 SDn をXとYで表現したのが表2 だ。

表3 各サブセットの X/Y パターン
表2 各サブセットの X/Y パターン

D0/D2/D4/D6 は表3 の偶数 コード表の抜粋、D1/D3/D5/D7 は表4 の奇数コード表の抜粋だ。各サブセットには、 Pattern1 と Pattern2 がある(表2)。例えば、D0 は XXXX と YYYY の2つのパターンがある。 XXXX は X=[-1, +1]の2つの値から選択した4つの数値の組み合せになる。YYYY は Y=[-2, 0, +2]の3つの値から選択した4つの数値の組み合わせだ。表2 の X と Y の具体的な組み合わせは表3表4 をご覧いただきたい。

表4 サブセット具体例(偶数)
表3 サブセット具体例(偶数)
表5 サブセット具体例(奇数)
表4 サブセット具体例(奇数)

表2 のエレメント数は、X=2 通り/Y=3 通りの値を選択できるため、この掛け算になっている。例えば XXYY は、2×2×3×3=36 通りになる。

4D-PAM5 符号は、各シンボル間の距離を取ることで「データ化け」を少なくする配置を作っている。表6-5 のX/Y の組合せは、シンボル間の「最小平方距離」を4以上に保つような組み合わせになっている。例えば、D4:XYYX + YXXY の[+1, -2, +2, -1]と[0, -1, +1, 0]の場合の平方距離は下記の様になり、平方距離は「4」になる。

  • 平方距離
    • (+𝟏 − 𝟎)𝟐+(−𝟐 − −𝟏)𝟐+(+𝟐 − 𝟏)𝟐+(−𝟏 − 𝟎)𝟐=1+1+1+1=4

8B1Q4 符号は表5~表8 を参照いただきたい。

表6 8B1Q4 データ偶数コード表
表5 8B1Q4 データ偶数コード表
表7 8B1Q4 データ奇数コード表
表6 8B1Q4 データ奇数コード表
表8 8B1Q4 偶数制御コード表
表7 8B1Q4 偶数制御コード表
表9 8B1Q4 8B1Q4 奇数制御コード表
表8 8B1Q4 8B1Q4 奇数制御コード表

フレーム構造

10BASE5/2/-T のフレーム間ギャップは無信号状態だった。プリアンブル受信でフレームの開始を知り、プリアンブルの最後に付加される SFD(Start Frame Delimiter)でフレーム有効データの先頭を知ることができる。フレーム終了は無信号に変わることで検知できる仕組みだった。100BASE-TX は、ノード間は常に 1対 1 接続で全2重通信ができるようになった。フレーム間ギャップを無信号にする必要もなくなった。確実にクロックを再現するためにも、 100BASE-TX ではフレーム間ギャップを「1」の連続信号に変えた。このため、フレーム間ギャップの無信号期間がなくなり、フレームの開始・終了を検出する何らかの「区切りコード」が必要になった。

1000BASE-T も100BASE-TX の方式を引き継ぎ、フレーム開始・終了などの「区切りコード」が必要だ。1000BASE-T も100BASE-TX 同様に、フレーム開始区切り(SSD)、フレーム終了区切り(ESD)と Idle パターンが用意されている。違いは、畳み込み符号を初期化するための CSReset(CSR)が追加されている(図4)。

図4 1000BASE-T 物理層フレーム構造
図4 1000BASE-T 物理層フレーム構造

イーサネットの物理層

この記事を書いた人

岩崎 有平

早稲田大学 理工学部 電子通信学科にて通信工学を専攻。
安立電気(現 アンリツ)に入社後、コンピュータ周辺機器の開発を経てネットワーク機器の開発やプロモーションに従事する。
おもにEthernetを利用したリアルタイム監視映像配信サービスの実現や、重要データの優先配信、映像ストリームの安定配信に向けた機器の開発行い、Video On Demandや金融機関のネットワークシステム安定化に注力した。
現在は、Ethernetにおけるリアルタイム機能の強化・開発と普及に向けて、Ethernet TSNの普及活動を行っている。