技術解説
PCの内部はすべて「シリアル」でつながる
―次世代I/O規格「3GIO」の目指すところ―
1.3GIOの概要
元麻布春男
2001/10/24
|
|
グラフィックス・チップの接続にAGP、チップセット間の接続にHubLinkなどのベンダ独自インターフェイス、そして汎用外部I/OにPCIと、現在のPCにはさまざまなバス/インターフェイスが採用されている。しばらく前のPCが、これらすべてのインターフェイスにPCIバスを用いていたことを考えれば、ずいぶんとPCの内部は複雑になってしまったものだ。だがこうしたトレンドは、再び覆されようとしている。2001年春に開催されたIDF Spring 2001(Intelが主催する開発者向けのカンファレンス)でIntelが発表した「3GIO」が、近い将来、上記すべてのインターフェイスとして利用されることになるからだ。1992年に「PCI Local Bus Specification Revision 1.0」がリリースされてから10年。ようやくPCIの後継が見えてきた。
3GIOが目標とするもの
3GIOの開発目標は、デスクトップやノートといったPCはもちろん、通信機器からサーバまで幅広い分野に適用可能な、ちょうどいまのPCIがカバーしているのと同様な汎用のI/O技術を確立することにある。これらの広範なプラットフォームにおいて、ボード上のチップ間接続、コネクタを介したボード間接続(拡張スロット)、ドッキング・ステーションといった用途に用いることが可能でなければならない。もちろん、用途ごとに異なる帯域幅の要求に応えられるよう、スケーラビリティも必要になる。さらに、現時点で可能な限りの高性能と低価格が両立していなければ、PCIのような幅広い支持を得ることは困難だ。
また、PCIからのスムーズな移行を考えれば、OS側に特別な「対応」を必要とするような(言い換えれば専用のデバイス・ドライバを必要とするような)規格は望ましくない。PCIや3GIOに比べればはるかに用途が限定されているにもかかわらず、USB 2.0の立ち上げに非常に時間がかかっている理由の1つは、新しいデバイス・ドライバのサポートが必要であるからだ。3GIOでは、既存のPCIのソフトウェア・モデルをそのまま利用可能な規格になっている。
逆に、3GIOが目標としないのは、マルチプロセッサ・バス、メモリ・バス(メモリ・インターフェイス)、サーバのクラスタリングといった用途だ。マルチプロセッサ対応プロセッサのFSBが今後どのようなものになるかは不明だが、これまでの慣例からいって、Intelは公開しないものと思われる。これはIntelにとってFSBは、他社との協調が必要な技術ではないためだ。条件さえあえば有償でライセンスするだろうが、わざわざオープンな規格にする必要はないと考えているようだ。メモリ・バスは、対応したメモリをメモリ・ベンダに製造してもらう必要があり、標準化も必要な技術であるが、汎用I/Oとは異なるロードマップが想定されているようだ(筆者は、長期的にはメモリ・バスも現行のパラレル・インターフェイスからシリアル・インターフェイスに移行すると考えている)。これはメモリとI/Oで技術的な最適化が異なるということだけでなく、メモリのロードマップが「市場」というきわめてコントロールしにくい要素と不可分の関係にあるからではないかと思う。サーバのクラスタリングについては、IntelはすでにInfiniBand(サーバ/ワークステーション向けの高速I/O技術)にコミットしており、その位置付けは3GIOが出現しても変わらない、ということだろう。
3GIOの仕様
上記のような目標を実現するものとしてIntelが提唱する3GIOは、図1のようなアーキテクチャ・モデルを採用する。前述したように、ソフトウェア層より上位については、PCIのそれを流用することにより、スムーズな移行を目指す。トランザクション層とデータ・リンク層はパケット・ベースでシリアル・インターフェイスを前提としたものだ(図2)。ピア・トゥー・ピア(Peer-to-Peer)のデータ転送をサポートする。
|
図1 3GIOのアーキテクチャ・モデル |
図のように物理層、データ・リンク層、トランザクション層、ソフトウェア層(ドライバ・モデル)、OSといった階層モデルを採用している。ソフトウェアとOSについては、現行のPCIとまったく同じモデルを用いることで、影響を与えないように考えられている。 |
|
図2 3GIOのパケット・モデル |
フレームとフレームで区切られたパケットに、シーケンス番号とヘッダ、データ、エラー訂正用のCRCが含まれる。 |
データ・リンク層から独立している物理層(フィジカル層)は、将来の技術革新による高速化に備えたものだ。当面は、銅線を用いた差動駆動*1の小振幅電気信号インターフェイスを採用するが、将来的には光インターフェイスへの移行を考えていると思われる。逆に、光インターフェイスへの移行を狙うからこそ、シリアル・インターフェイスでなければならない、ともいえるかもしれない。8B/10Bエンコーディング*2により、クロック信号をデータ信号に多重化することで、クロック・スキュー(受信デバイスに各信号が到達する時刻のバラツキ。スキューが大きくなると受信デバイスが正確にデータを受け取れなくなり、クロックが向上できなくなる)の発生を防止し、高クロックを実現する。2003年後半から2004年といわれる、最初の実用化時期におけるバス・クロックは3GHz前後、データ・レートは2.5Gbits/sとされている。Intelによれば、光インターフェイスに移行するまでに、銅線ベースでも10GHz近くまでバス・クロックが引き上げられるという。図2に示したようなパケット・レベルでのオーバーヘッドに加え、クロックを多重化することによるペナルティにより、バス・クロックに対する実効データ・レート(およびレーテンシ)は低下するが、それを補って余りあるバス・クロックの引き上げが可能、というのがこのような物理層を採用する理由だ(図3)。
*1 差動駆動(差動伝送)とは、2本の信号線を駆動することで1つの信号を伝送する方式の一種で平衡伝送。2本の信号線間の電圧(電位差)で、「0」か「1」を決める。1本の信号線で1つの信号を伝える「不平衡伝送」に比べると、ノイズ耐性に優れ、より高速な伝送を可能とする。USBやIEEE 1394といった高速シリアル伝送でも採用されている。 |
*2 8bitのデータを10bitに変換して送信する符号化方式で、0または1の同符号の連続を避けることができる(出力データ中には必ず「0→1」か「1→0」という遷移が含まれるように符号化する)。これにより、クロック信号とデータ信号の「0」「1」の現れるタイミングをチェックすることで、クロック・スキューの補正が可能になる。 |
|
図3 3GIOの物理層 |
ポイント・ツー・ポイントで一方向のみの接続というシンプルな構成にすることで、高クロックに耐えられる設計となっている。 |
この物理層は、一方向あたり2本の信号線で構成されるため、双方向のデータ転送には、最小構成(1bitシリアル転送)で4本の信号線が必要となる。この最小構成を1レーンと呼び、必要に応じて2レーン、4レーン、8レーン、16レーン、32レーンという具合に複数のレーンを束ねることで、求められる帯域の提供を可能にする(束ねたレーンの数だけ、帯域幅は増える)。接続はポイント・ツー・ポイント(Point-To-Point)であるため、複数デバイスの接続にはスイッチが必要になる。PCIのようなバスというより、10/100BASE-TXイーサネットなどの通信に近いインターフェイスだ。
INDEX |
|
[技術解説]PCの内部はすべて「シリアル」でつながる |
|
1. 3GIOの概要 |
|
2. 3GIOの用途 |
|
System Insider フォーラム 新着記事
- Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
- 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
- IoT実用化への号砲は鳴った (2017/4/27)
スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
- スパコンの新しい潮流は人工知能にあり? (2017/3/29)
スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
System Insider 記事ランキング
本日
月間