このページの本文へ

前へ 1 2 3 4 次へ

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

バスの歴史を振り返る EISA~VL Bus編

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

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

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

 今回は、PCの基礎を築いた「ISA Bus」に引き続き、「EISA」と「VL Bus」について解説しよう。

ISA Busの限界でPCの性能が制約される

 前回も少し触れたが、ISA Busにせよその前身である「XT Bus」にせよ、登場の時点ではCPUのバスと同じスピードで動く、言ってみれば高速なバスだった。ところが1985年の「i80386」の登場以降、急速にCPUの性能が上がっていき、バスの帯域も足りなくなってきた。

 例えば「i80286」の場合、8MHz駆動でCPUのバス幅は16bitだったから、外部との帯域は16MB/秒に過ぎない。ところがi486-33MHzになると、33MHzで32bit幅だからバスの帯域は132MB/秒にもなり、ほぼ10倍に跳ね上がっている。ところがISA Busは33MHzを4分周した8.33MHzで駆動されており、バス幅も16bitでしかない。帯域は16.7MB/秒で、i486本来の8分の1である。

 そのうえ、「ODP」(Over Drive Processor)などという製品も登場して、CPUの速度はさらに上がっていく。CPUの性能向上ペースを完全に追従するのは無理だとしても、もう少し性能を引き上げないとギャップが大きすぎる。

 加えて言えば、ISA Bus自身が実は、それほど効率のいいバスではなかった。これはXT Busの元になった「i8088」の転送サイクル自身が、割とのんびりしたものだったことに起因している。

 例えば、「PCI」などでは高速転送に必須とされている「バースト転送」の類を、ISA Busは一切サポートしていない。また複数デバイスの「Overlapped Transaction」(複数デバイスが同時に転送することで、バスの空き時間を減らして効率を上げる方法)などは、もちろんサポートされていない。

 その結果、ISA Busは理論上は16.7MB/秒といいつつも、実際には5MB/秒も出ればいいほう。実際のデータ転送速度は2~3MB/秒なんてこともザラだった。また前回はISA Busの高速化技法として、「IRQとDMAを併用する」という話を説明したが、IRQはともかくDMAに関しては、場合によっては「使わない方が早い」なんて状況もあった。

 これは筆者の経験した話だが、アダプテックの「AHA-1542B」というDMAバスマスター転送対応のSCSIカードと、「AHA-1522」というPIO転送のみのSCSIカードで性能比較をしたところ、AHA-1522の圧勝だったことがある。当時のCPUはおそらくIntel 486DX2-66MHz辺りだったと思う(486DX4/100MHzだったかもしれない)。このクラスのCPUではPIO転送を高速に行なうほうが、DMAの管理でバスを余分に占有するよりも早いという、前回のDMAについての説明を根底からひっくり返すような状況が、しばしば発生していたのは事実である。

 DMA転送が遅かった理由のひとつは、「Intel 8237 DMAC」(DMAコントローラー)の能力の低さである。例えばバスの周波数が8.33MHzの場合、8237は半分の4.165MHzで動作する。実効転送速度は通常モードで2.78MB/秒、「Compressed Timing」という多少高速化したモードでも、4.16MB/秒でしかない。

 この遅さを嫌って自前でDMAコントローラーを搭載した拡張カードもあり、AHA-1542Bもこの代表例である。CPUの性能が上がっていった結果、これらのDMAコントローラーを使うよりも、CPUをブン回したほうが早いという結果になってしまったわけだ。要するに、全体としてISA Busの限界性能が低かったことが、最大の要因といえる。

前へ 1 2 3 4 次へ

この連載の記事

注目ニュース

ASCII倶楽部

最新記事

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

ピックアップ

ASCII.jp RSS2.0 配信中

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