このページの本文へ

前へ 1 2 3 次へ

ロードマップでわかる!当世プロセッサー事情 第105回

IBM PC BusからPCI Expressまで PC用拡張バスの歴史

2011年06月13日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/

  • この記事をはてなブックマークに追加
  • 本文印刷

グラフィックス用の「AGP」
サーバー用の「PCI-X」の登場

PC用拡張バスのロードマップ

 VL BusやEISAが姿を消した一方で、ISA Busは低速デバイス向けとして引き続き市場で使われていた。ところが、ISA Busに対応した拡張カードによる「リソース競合問題」が、特にWindows 95以降のOSでは大問題になっていた。

 MS-DOSの時代、拡張カードが利用する割り込み番号やI/Oポートアドレス、DMAチャネル番号といった「リソース」は、拡張カード側でハードウェア的に解決する仕組みが一般的だった。だがWindows 95やWindows NTでは、リソースの管理をソフトウェア的に解決する仕組みを盛り込んだ。しかしソフトウェアが用意されても、ハードウェアが対応しなかったら意味がない。これを解決するために「PnP ISA」(Plug and Play ISA)と呼ばれるISAの拡張機能も発表されたが、PnP ISAに対応しないカードでは意味がないし、対応しているカードでもしばしば問題が起きていた。

 そこで1998年頃から、ISA Busを撤廃する動きがマイクロソフトを中心に盛り上がってきた。インテルも1999年にリースした「Intel 810」チップセット以降では、「原則として」ISA Busを撤廃している。「原則」と言うのは、実際にはISA Busに代わって用意された「LPC」というオンボードデバイス専用バスに、LPC/ISAブリッジチップを搭載してISA Busスロットを用意する製品が、しばらくは出続けていたからだ。だがこうした製品も、2000年に入ると姿を消すようになった。

 ISA Busと入れ替わるように広く普及し始めたのが、1997年に登場した「AGP」(Accelerated Graphics Port)である。名前のとおりグラフィックスカード専用の規格であり、PCI Busをベースとしながら転送速度を2倍(AGP 1.0)~8倍(AGP 3.0)まで引き上げた規格である。

 AGPの本来の目的は、グラフィックスカードに3D表示機能が追加されたことで、メインメモリー上にあるテクスチャデータを高速にグラフィックスカードに転送する、というものだった。ビデオメモリーを大量に搭載できない低価格の製品では、AGP経由でテクスチャ情報を高速に転送できることに意味はあった。しかし実際には、グラフィックスカード上に大量のビデオメモリーが搭載されるようになり、テクスチャはそこに置くのが一般的になったため、AGP自体はそれほど3D描画性能の改善には寄与しなかった、というのが正直なところだ。

 AGPはPCIをベースとしており、2倍速あるいは4倍速という転送速度は、後述する「PCI-X」と同じだ。それを生かして、AGPとPCI-Xの両対応というチップセットを作り、デスクトップとワークステーション/ローエンドサーバーの両方のマーケットを狙ったりしたチップセットベンダーもあった。しかし、肝心のチップセットがワークステーション/ローエンドサーバーではほとんど採用されず、折角の両対応チップセットもPCI-X用として使われることはなかった、なんて話もある。

 AGPが登場する一方で、PCI自身の強化も進んでいた。もともとPCIは33MHz駆動で、バス幅は32bitと64bitが定義されていたが、1995年に制定された「PCI Bus 2.1」の仕様では、66MHz駆動もサポートされた。その結果、デスクトップ向けは「32bit、33MHz」、サーバー向けは「64bit、33MHz/66MHz」という差別化も可能となった。

 サーバー向けの規格として、PCIをさらに性能を強化したのが「PCI-X」である。バス幅は64bitながら、転送速度は66/100/133MHzに引き上げられた。さらに、2003年に制定された「PCI-X 2.0」では、266/533MHzの転送速度も追加された。だが、流石にこのあたりになってくると制約も大きく、広く普及が始まる前に「PCI Express」へ移行することになってしまった。

現在の主力、PCI Expressとその拡張

 最後はそのPCI Expressである。「PCIとはまったく異なる接続方式とすることで、性能を大幅に引き上げよう」というのが規格化の動機であり、2002年に1.0仕様がリリースされる。ところが、この1.0の仕様のままでは通信できないという問題があり、いくつかの問題を修正した「1.0a」が2004年に、さらに修正を加えた「1.1」が2005年にリリースされる。

 当初は、PCI Expressに対応する製品と言えば、チップセットとグラフィックスカードしかなかったが、「PCI Express 2.0」がリリースされた2006年頃から、Gigabit EthernetコントローラーやRAIDコントローラー、SATAコントローラーなど、対応する製品も増えてきて現在に至っている。

 2009年には、プロトコル拡張とエラー修正を施した「2.1」もリリースされた。そして2010年には、次世代向けとなる「PCI Express 3.0」がリリースされた。1.x/2.xでは、仕様が定まる少し前からチップセットやグラフィックスカードなどが先行してこれらの仕様を実装していたのに対して、3.0ではやや動きが鈍い。最初の対応製品は、2011年末~2012年あたりに出てくる見込みである。

 こうしてPCI Expressが普及してゆく一方で、PCI Busは次第に、PC用からフェードアウトを始めている。すでにインテルのいくつかのチップセットは、PCI Busのサポートを段階的に廃止しており、将来的にはPCI Expressのみで一本化される見込みだ。もっともISA Busと異なり、PCI Bus自身はまだ組み込み向けなどで広く利用されていくと見られており、おそらく2010年代後半もまだ生き残っていると見られる。

 今回はPCに利用されるバスを大雑把に紹介したが、次回からはもう少し細かく説明していきたい。

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン