3GIOはPCIの皮を被ったInfiniBandか? ――第3世代I/O規格の概要
●バス規格ではなくI/O規格と呼ばれる理由
さて「3GIOは新I/O規格だ!」と言われるとピンとこない方もいると思う.PCIの後継規格ということからわかるとおり,3GIOは明らかに新しいバス規格である.それではなぜ「バス」と言わずに「I/O」というのであろうか?
バスはコンピュータの世界で古くから使われてきたことばであるが,文脈でいろいろな意味を持つ.もともとは「乗り合いバス」のメタファであるという.以下の1)と2)が乗り合いバスに相当する.
1)同時に多数の人がバスに乗るというところから,多数の信号を束ねて扱えるバンドルド・シグナルをバスと呼ぶ.これはEDAツールでもなじみがある.A[31:0]などがその例.
2)複数の人がバス停からバス停までバスを利用する,つまり一つのバスを共有するところから,一つの信号線に複数のドライバとレシーバがぶら下がっている状態をバスと呼ぶ.ドライバはオープン・ドレイン(ワイヤードOR)や3ステートなどである.
2')2)から拡張されて,双方向のI/Oによる接続をバス接続と呼ぶことがある.I/O接続なんて普通はバスをつなぐときしか使わないからこう呼ばれるようになったようだが,これはちょっとこじつけっぽい.
3)データを読んだり書いたりするためのプロトコルや制御信号まで含めて全体をバス,またはバス規格と呼ぶ.ISAバスやPCIバスがこれに当たる.乗り合いバスとは直接の関係はない.
今までは3)のデータ・トランスファの規格の意味で「バス」ということばを使っても,1)のパラレル・コネクションと2)の双方向のマルチ・コネクションの両方にも該当していたので,乗り合いバスのメタファとの間に矛盾はなかった.ISAでもPCIでも接続はパラレルだし,双方向だし,マルチだ.
ところが3GIOはすべて違うのだ.パラレルではなくシリアルである.マルチではなくピア・ツー・ピアだ.双方向ではなく単方向だ.1)の意味でも2)の意味でも,乗り合いバスのメタファと矛盾する.ことばは生き物だから,元の意味からずれていくのはしかたがないことだが,一部厳密に解釈する人がいてバスとは呼びたくないらしい.
Intel社内でも混乱があって,ホワイト・ペーパでは"Creating a Third Generation I/O Interconnect"と言い,プレゼンテーション資料では"Creating a Third Generation IO Bus"と言っている.
InterconnectでもBusでもそんなことどうでもいい,まったくくだらない話だと一笑に付す人もいるかと思う.しかしここで注目してほしいのは,第3世代のバスはもはやバスと呼ぶのもためらわれるようなまったく別の生き物になってしまったという点である.進化は遂に壁を突き破ったのだ.