期待のネット新技術

電圧レベルは16段階に、増えたエラーは強力な「LDPC」で対策するも回路規模は増大……

【10GBASE-T、ついに普及?】(第2回)

 1000BASE-Tの10倍速、という高速な有線LAN規格「10GBASE-T」が、いよいよ身近になりつつある。

 LANカードは既に100ドル以下のモデル2万円台のモデルが登場、ハブについても8ポート8万円の製品が国内で発売済み。10GBASE-T標準搭載のiMac Proも12月に発売されるなど、価格・製品バリエーションの両方で徐々に環境が整ってきた。

 長らく望まれてきた10GBASE-Tの低価格化だが、技術的には1000BASE-Tから変更された点も多く、設定や活用上のノウハウも新たなものが必要になる。そこで、規格の詳細や現状、そしてその活用方法を、大原雄介氏に執筆していただいた。今回のテーマは、10GBASE-Tの標準仕様に採用された信号の速度、変調、そしてエラー訂正について。今後、集中連載として、毎週火・木曜日に掲載していく。(編集部)

 10GBASE-Tの仕様が策定された後の歴史を説明する前に、10GBASE-Tがどういう技術で実現可能になったのかを説明しておきたい。一般論として、こうした標準規格が策定される際には、その仕様策定の時点で実際に実装が可能な技術を用いることになる。これは当たり前のことで、「未来にはきっと可能になるであろう」技術を先取りして標準化したところで、誰も利用できない規格が完成するだけだからだ。

 このため10GBASE-Tについても、仕様が策定された2006年の技術では、一応は実装が可能な要素の集合体ではあった。ただ2006年の時点で現実的か?と問われると、わりと非現実に近いもので、少なくともすぐに商用に持ち込むには、かなり厳しいレベルだった。以下で各要素を見ていこう。

信号に「PAM 16」を採用、電圧レベルを16段階に

 「PAM(Pulse Amplitude Modulation:パルス振幅変調)」とは、要するに信号の電圧レベルを16段階(=4bit)に区分けすることで、1回の転送で4bit分を送信できる。最近、ついに3D NAND FlashがQLC(Quad Level Cell)になったというニュースがあったが、あれと同じである。

信号の変調に「128DSQ」を採用

 信号の変調には「128DSQ(Double Square QAM)」という技術を採用した。「QAM(Quadrature Amplitude Modulation:直交振幅変調)」は、位相が直交する2つの波を合成する変調方式で、例えば、64QAMは、それぞれの位相の波を8段階の振幅で識別することで、図1のように8×8=64種類のシンボルを生成、これを利用することで、6bit(2^6=64)のデータを1回の転送で送り出す仕組みである。128DSQは図2のように、この64QAMを2つ重ねた形で、2つのシンボルを利用して7bitの信号を送り出す。

信号の変調方式である「64QAM(左)」と「128DSQ(右)」

信号速度を200MHzに

 PAM 16と128DSQを組み合わせ、信号速度を200MHzにすることで、ツイストペアの4対をフルに利用して以下の信号が送れる形になる。

4(bit)×7÷2(bit)×200(MHz)×4(対)=11.2Gbps

 ただし、この状態のままで信号を送った場合には、“10^-2”程度の「BER(Bit Error Rate)」がある状態だった。要するに100bit送ると1bitコケる、というレベルだ。このBERの要求は規格によってまちまちだが、最低でも“10^-10”(100億bit送って1bitコケる)、Ethernetでは“10^-12”(1兆bit送って1bitコケる)が要求されている。このため、エラー率を100億倍改善しないといけないことになる。このため、

誤り訂正に強力な「LDPC(Low-Density Parity-Check code)」を採用

 Networld+Interop Tokyo 2004の際の提案一覧を見ても、ほとんどの提案がLDPCを提示している辺り、非常に確実性の高い手法と認知されていたわけだ。

 さて、このLDPCは、最近ではSSD内部の誤り訂正符号や、WiMAXなどでも内部で利用されているので、ご存知の方も多いと思う。もともとはRobert G. Gallager氏が1962年、MITの学生だった時に開発されたものの、いったんは忘れ去られた方式である。

 このLDPCと、この後に考案された「ターボ符号」、それに「畳み込み」の3種類のエラー訂正方式を比較したのが以下の図だ。曲線は左からLDPC(符号長8000bit)、ターボ符号(符号長8000bit)、LDPC(符号長1344bit)、ターボ符号(符号長1344bit)で、黄緑のものが畳み込み符号となる。

 LDPCを畳み込み符号と比較するのは、LDPCの開発当時、ちょうどリード・ソロモン符号が開発されたばかりで、これと畳み込みを組み合わせた誤り訂正の全盛期だった。これと比較して誤り訂正能力がさして変わらず、しかも計算量が異様に多かったために放棄された経緯があるからだ。ところが実際には、符号長が猛烈に長くなると、リードソロモンではエラー訂正能力があまり改善せず、一方のLDPCは猛烈に訂正能力が上がることがわかる。

縦軸がBER(Bit Error Rate)で、下になるほどエラー率が低い。横軸はEb/Np(Energy per Bit to Noise)で、要するに1bitあたりのS/N比。出典は2006年にQualcommに買収されたFlarion Technologiesが2003年11月に出したWhite Paper。

 ターボ符号は1993年に考案されたもので、W-CDMAとかCDMA2000の誤り訂正方式として採用されるなど広く普及した。しかし、上の図からも分かる通り、BERが10^-3を切ったあたりから訂正能力が頭打ちになってくる。実際のところ、誤り訂正能力では現時点でLDPCを上回る能力を持つものはない。そんなわけで10GBASE-Tの誤り訂正にはLDPCが最適と思われた。

 では、なぜこんな技法がしばらく忘れ去られていたかというと、計算量の膨大さゆえだ。元々のLDPCの技法では、符号量をnとした場合、符号化計算量はn^2に、符号化を行うための行列生成の計算にn^3にそれぞれ比例する。つまり、100bitの符号量の計算時間を比較すると、1bitの場合の1万倍の符号化計算時間と、100万倍の行列生成計算が必要になるわけだ。だから8bitかそこらの符号量ならば、まだ現実的な範疇だが、これを超えると実用的とは言いがたい。

 幸いにも、特殊な場合に限り、この計算量をnに比例する規模に抑える技法が、2001年にFlarion TechnologiesのThomas J. Richardson氏らによって開発された(資料1資料2資料3)、これで一気にLDPCを実用的に使える目処が立った。ただし、100bitの符号量の計算が10000倍から100倍に減ったとはいえ、まだ100倍である。以下の図は、その「LDPC Decoder」のラフな構造を示したものだ。

LDPC Decoder概略図

 まず、入力された値を「Interleaver」と呼ばれるブロックで並び替えと分解を行う。分解した値をそのままLDPC Decode部に投入するが、ここは幸いにも並列計算が可能なので、かなり細かく分解する。ここで計算が終わったら、その結果を「Deinterleaver」で受け取って組み合わせるわけだが、実はこれ1発のサイクルでは終わらないのが問題となる。実際は信頼度と呼ばれるレートが十分に上がるまで、再び計算をやり直すことになる。この信頼度の計算を行うのが「Decision Aided Equalizer」であり、このループを何度か回して信頼度が十分になったところで、復号化が完了ということになり出力が行われる形になる。

エラー訂正を実行するLDPC Decoder IPの回路規模は増大、65nm世代で実用化の見通し?

 これはラフな概略図で、実際にはもう少し複雑であり、以下はDesign&Reuseというサイトで販売中のGMR-1というFPGA/ASIC用のLDPC Decoder IPの内部構造だが、696bitづつデータを読み込み、これを87並列でブン回す仕組みになっている。2000年以前にこんな回路を作ると、ものすごく巨大なサイズになり、しかも「CMOSだと速度が間に合わない可能性があるからECLで作ろう」とかいう話になりかねず、到底Ethernetには使えないレベルだったが、2006年頃ともなると、ファウンダリはで90nmプロセスが利用可能で、65nm世代も間もなく、といった時期である。90nm世代を利用すれば、とりあえずチップは製造可能であり、その先の世代を使えばリーズナブルなコストと消費電力に落とすことが可能であろう、というのがこの当時の見通しだった。

出典は「LCD01G - GMR-1 High Speed LDPC Decoder」。GMR(GEO Mobile Radio)とあるように衛星通信用のLDPCデコーダなので、データサイズなどは10GBASE-Tと合わないが、基本的な構造はほぼ一緒だ

 Networld+Interop Tokyo 2004の提案一覧に戻り、消費電力を確認すると、7W~12Wという、とてもEthenetとは思えない値が並んでいる。これが許容されたのは、「プロセスの微細化が進めば、さらなる大規模化(並列処理数を上げる)と、動作周波数の向上、消費電力低下を実現できるだろう」という、いわばムーアの法則がまだ信じられていたためである。このあたりがどうなったか、という話は次回。

 ちなみに、10GBASE-Tでは、最終的に1723bitのデータに325bitのLDPCコードを付けて2048bitにする、という方式となった。効率としては1723÷2048≒84.1%ほど。データ中の16%が誤り訂正に使われるかたちだ。このため、実効転送速度としては11.2Gbps×84.1%=9.42Gbpsほどになる。微妙に10Gbpsには届いてないが、おおむねこれで良いだろうと判断された。

 もう一つ、そのLDPCのエラー訂正能力について。以下の画像は、受信した信号をイコライザーを使って段々補正してゆき、最後にLDPCのエラー訂正を利用して信号を整えるまでの状況を比較したものだ。FEXT(Far End CrossTalk:遠端クロストーク)Cancellationが終わった段階でもまだ信号はほとんどスペクトルといった具合なのが、ISI(Intersymbol interference:シンボル間干渉)Removalを経ると、一応信号レベルがきちんと見えてくる。これをきちんと16レベルの電圧(PAM16で認識できるレベル)に補正できるのがLDPCの強み、ということになる。

 最後のケーブルについては、CAT5/CAT5eの利用を断念し、CAT6/6a/6e/7のみのサポートとなったわけだが、長くなるので次回にまとめよう。

出典はEthernet Allianceのホワイトペーパー「10GBASE-T: 10 Gigabit Ethernet over Twisted-pair Copper Version 1.0 August 2007」より。掲載データの出典はSolarflare Communications

 今回は、標準化された10GBASE-Tの仕様に採用された要素技術の詳細について解説しました。次回10月24日更新分では、10GBASE-Tでの利用が可能なのケーブルのカテゴリーと、その仕様について解説していきます。

大原 雄介

フリーのテクニカルライター。CPUやメモリ、チップセットから通信関係、OS、データベース、医療関係まで得意分野は多岐に渡る。ホームページはhttp://www.yusuke-ohara.com/