パソコン・アーキテクチャに久しぶりに変化が起こりそうだ。一つは2004年からのPCI Expressの登場。これにより,グラフィックス用のAGP,ギガビット・イーサネット用のCSAなどの用途別インタフェースがPCI Expressで統一される。もう一つは,シリアルATAのコントローラ回路がチップセットに搭載されること。こちらは2003年の大きな変化である。

図1●米Intel社のPCアーキテクチャの変遷
2003年にシリアルATA,2004年にPCI Expressがチップセットに取り込まれる。2004年中ごろもMCH(ノースブリッジ)とICH(サウスブリッジ)の間はHab-Interfaceだが,将来的にはPCI Expressに移行していくと思われる。
図2●PCI Expressの利点
 パソコンの歴史は,処理とデータ転送の高速化の歴史である。この数年を見ても,CPU,メモリー,グラフィックスといった基幹部品は日々高速化していることが分かる(図1[拡大表示])。

 このような高速化の中で,登場してから今日までの約10年間,ほとんど変化なく搭載され続けてきたものがある。PCIバスである。米Intel社がPentiumと同時に投入したPCIはPC AT時代の主流だったISAバスを置き換え,チップ間のバスとしてだけでなく,周辺機器の拡張用バスとしても成功した。

 ただ,成功したがゆえの問題も出てきた。新たな拡張を施しにくいことだ。PCIはバス構造を採用しているため,速度を高めるにはバス全体のクロックアップが必要となる。しかし,クロップアップすれば過去のPCI対応製品が使えなくなってしまう。

 そこで,IntelはPCIバス(132Mバイト/秒)以上の速度を要求するデバイスに対しては,個別に独自の高速インタフェースを設けるという手法を選んだ。グラフィックス専用の「AGP」(Accelerated Graphics Port),チップセットのチップ間インタフェース「Hub-Interface」である。そして2003年には,ギガビット・イーサネット専用の「CSA」(Communication Streaming Architecture)を追加した(2003年6月号スペシャルレポート参照)。

PCI Expressですべてを統一

 ところがこの状況も,2004年後半から大きく変わりそうだ。PCIに代わる新しいインタフェース「PCI Express」が登場するからである。PCI Expressの速度は片方向250Mバイト/秒。しかもこのリンクを最大32本束ねる拡張機構があり,速度を8Gバイト/秒まで高速化できる。

 Intelのロードマップによれば,最終的にAGPやCSAといった個別インタフェースはなくなり,PCI Expressで統一される。2004年中ごろではチップ間のインタフェースはHub-Interfaceだが,将来はPCI Expressに移行するものと予想される。つまり,PCI登場当初と同様,一つのインタフェースで出来上がったシンプルなアーキテクチャに戻るのである。

 PCI Expressは頭文字の「PCI」は付くものの,PCIとは全く異なるアーキテクチャの新しいインタフェースである。ただし,既存のソフトウェア資産を生かすために,OSからはPCI ExpressにつながるデバイスはPCIデバイスと同様に見えるようにしている。つまり,OSがPCIデバイスを呼ぶためのコマンドやアドレス指定,エラー処理などはPCIと同じものが利用できる。

スイッチ構造を採用

 PCI ExpressとPCIの最大の違いは,PCI Expressがスイッチ・アーキテクチャを採用したことにある(図2[拡大表示])。

 PCIのようなバス構造はデータの制御に無駄が出てしまう。デバイスがデータを送る際,必ずバスをチェックし,他のデバイスにデータの送出を通知してからデータを流さなければならないからだ。また,信号の伝送クロックはバス上ですべて同じであるため,1台だけ転送速度を上げることが難しいという問題もあった。

 一方,PCI Expressではデバイスはスイッチチップと1対1でつながる。スイッチチップは,各デバイスの信号を一度メモリーにストアし,そのあて先デバイスがつながる線にだけデータを流す。このように信号がスイッチチップで終端されるので,同じスイッチチップにつながる異なるインタフェースに対して,異なるクロックで通信できる。他のデバイスに影響を与えることなく高速化できるようになったのだ。

 通信の制御も容易である。例えば,通信にプライオリティをつけて,特定のアドレス向けだけを優先的に流したり,デバイス同士の通信中に他のデバイス同士が通信できる。PCIには優先制御機構がなかった。このため,複数のデバイスが一度にデータを流すと,バスが一杯になり,リアルタイム性を要求するアプリケーションがうまく再生できないという問題があった。PCI Expressでは特定のデータを優先的に流せるので,こうした問題はなくなる。

 ただし,この優先制御を利用するためにはOS側の対応が必要になる。どのデータを優先するかを判断して,PCI Expressデバイスに通知する必要があるからだ。しかし,現状のOSは未対応である。現行のOSはPCI ExpressデバイスをPCIデバイスとして制御するからだ。これがサポートされるのは,2005年に出荷予定の次期Windows「Longhorn」からになりそうだ。

(中道 理)