バス幅が広いと速くなる!?
基本的な質問かもしれませんが,バスで32ビットとか64ビットというのは何? また,これが大きいと速くなるのですか?
32とか64というのはバスの幅を指します。厳密には,一度に送れるデータのビット数です。だから32ビットといえば,バス1クロックあたり32ビット=4バイトのデータを送れることを意味します。一般にバスとはデータを送る道路みたいなものなので,広ければ広いほど一度に大量のデータを流すことができます。またバスの速度も当然ながら影響してきます。例えばPCIバスの場合,32ビット/33.3MHzという仕様なので,最大転送レートは33.3MHz×4バイト=133MB/secという計算になります。
速度は最大転送レートで決まり,必ずしもバス幅が広ければ高速というわけではありません。渋滞している3車線の高速道路より,空いている1車線の一般道路のほうが下手すると速いようなものです。
例えば最近のPentiumUマシンの場合,CPU,メモリ,ノースブリッジの間は64ビット,100MHz(=800MB/sec)のFSBを用います。ノースブリッジとビデオカードは64ビット,66.6MHz(=533MB/sec)のAGPバスで接続します。SCSIカードなどには32ビット,33.3MHz(=133MB/sec)のPCIバスで接続するといった具合です。ビデオカード上でも,最近はビデオメモリとビデオチップの間を128ビット,100MHz(=1600MB/sec)のバスでつなぐのが主流になりつつあります。外部はというと,最近はRS-232C(1ビット,230Kbps=23KB/sec)やパラレルポート(8ビット,数百kHz=数百KB/sec)に代わり,USB(1ビット,1.5Mbps=188KB/secあるいは1ビット,12Mbps=1.5MB/sec)やIEEE-1394(1ビット,100MHz=12.5MB/sec)で接続する方向になりつつあります。LANもイーサネット(1ビット,10MHz=1.25MB/secあるいは1ビット,100MHz=12.5MB/sec)で接続するのが普通ですし,HDDについてもWide SCSI(16ビット,10MHz=20MB/sec)よりもFast SCSI(8ビット,20MHz=20MB/sec)のほうが広く利用されつつあります。最近はUltra SCSIやUltra2 SCSIといった,さらに速度の上がったSCSIバスも広まりつつあり,将来は光ファイバによる接続が登場すると考えられています。もちろんこの場合のバス幅は1ビットです。
一般的にバス幅を広げることは,高速化に有効ですが,その反面,配線パターン面積が倍以上に膨れ上がるとか,信号同士での干渉,駆動電力の増加など必ずしもいいことずくめではありません。とくに外部との接続の場合,コネクタの巨大化やケーブルの大型化などはかなり問題になります。それならばむしろバス幅を減らして速度を上げ,トータルの転送レートを上げるという手法が最近の流行です。
(大原雄介)