バス(バス)とは | 意味や読み方など丁寧でわかりやすい用語解説
バス(バス)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
バス (バス)
英語表記
bus (バス)
用語解説
コンピュータシステムにおいて「バス」とは、各部品間、あるいはコンピュータと周辺機器との間でデータや信号をやり取りするための共通の経路を指す。これは、ちょうど都市の中で人や物を運ぶ道路や鉄道のような役割を果たすもので、情報の通り道と考えると理解しやすい。コンピュータの内部には、中央処理装置(CPU)、メモリ、入出力装置といった様々な部品が存在し、これらの部品が互いに連携して動作するためには、高速かつ効率的に情報を交換する手段が不可欠である。バスはまさにその情報交換のインフラストラクチャであり、コンピュータの性能を左右する重要な要素の一つである。
バスは単に電線や配線の束を指すだけでなく、データ転送のプロトコル(手順や規則)や、信号のタイミングを管理する仕組みまで含んだ概念である。かつては物理的な配線として目に見える形で存在したが、現代の高速バスでは、単一の物理的な接続を複数の論理的な経路として利用する技術も一般的になっている。
詳細として、バスは大きく分けて三つの主要な機能を持つ線群で構成されている。一つ目は「アドレスバス」である。これは、CPUがデータや命令を読み書きするメモリのアドレス、あるいは周辺機器の特定のアドレスを指定するために使われる。アドレスバスは基本的にCPUから他のデバイスへ一方向の信号を伝達し、どの場所にある情報にアクセスしたいかを特定する役割を担う。アドレスバスの幅、つまり同時に扱えるビット数によって、コンピュータが直接アクセスできるメモリ空間の最大値が決定される。例えば、32ビットのアドレスバスであれば約4ギガバイト、64ビットであれば膨大な量のメモリを管理することが可能となる。
二つ目は「データバス」である。これは、実際に転送されるデータ、例えば計算結果、プログラムの命令、テキスト情報などを運ぶための経路である。データバスはCPUとメモリ、あるいはCPUと周辺機器の間で双方向にデータを受け渡す。データバスの幅もまた、バスの性能に大きく影響する。例えば、32ビット幅のデータバスであれば一度に32ビットのデータを転送できるため、より広帯域なデータ転送が可能となる。データバスの幅とクロック周波数(一秒間に何回信号が変化するか)を掛け合わせたものが、バスのデータ転送能力、すなわち帯域幅を決定する主要な要素となる。
三つ目は「コントロールバス」である。これは、データの読み書きの指示、割り込み要求、バスの使用許可といった様々な制御信号を伝達する。例えば、CPUがメモリからデータを読み出す際には「読み出し」の指示を、書き込む際には「書き込み」の指示をコントロールバスを通じて送る。また、周辺機器からの処理要求(割り込み)や、複数のデバイスが同時にバスを使おうとした場合の調停信号などもコントロールバスによってやり取りされる。コントロールバスは双方向性を持つことが多く、コンピュータシステム全体の動作を同期させ、正確に制御するための重要な役割を果たす。
歴史的に見ると、初期のコンピュータではISA(Industry Standard Architecture)バスのようなパラレル(並列)バスが主流であった。パラレルバスは多くの配線(ワイヤー)を使い、複数のビットを同時に転送することで高速化を図ったが、高速になるにつれて信号間の干渉(クロストーク)やタイミングのずれ(スキュー)といった問題が顕著になった。これを解決するために、PCI(Peripheral Component Interconnect)バスが登場し、さらにグラフィック処理に特化したAGP(Accelerated Graphics Port)バスが開発された。
しかし、これらのパラレルバスの限界を打ち破ったのが、現代の主流であるPCI Express(PCIe)のようなシリアル(直列)バスである。シリアルバスは、複数のビットを同時に転送するのではなく、少数の配線で高速にデータを直列に転送する方式を採用している。これにより、信号の同期が容易になり、クロストークの影響も受けにくくなるため、はるかに高い周波数で動作させることが可能になった。また、PCIeはポイントツーポイント接続と呼ばれる方式を採用しており、各デバイスが専用の接続を持つことで、バスの共有によるボトルネックを解消し、スケーラブルな帯域幅を提供している。
バスは接続される対象によっても分類できる。CPUとメモリを接続するバスはかつて「フロントサイドバス(FSB)」と呼ばれていたが、近年ではCPU内部にメモリコントローラが統合されたことで、この概念は希薄になっている。代わりに、CPUと周辺機器、あるいは異なるチップセット間を接続する「I/Oバス」や、USB、SATA、DisplayPortといった標準規格に基づいた「ペリフェラルバス」が存在する。これらのバスは、キーボード、マウス、ストレージ、ディスプレイなど様々な外部デバイスとの接続を可能にしている。
バスの性能を評価する上で重要な指標は、上述のバス幅(ビット数)とバス周波数(クロック速度)である。これらの積が理論的な最大帯域幅を示し、例えば64ビット幅で100MHzのバスであれば、一秒間に800メガバイト(64ビット ÷ 8ビット/バイト × 100メガHz)のデータを転送できる可能性がある。ただし、実際のデータ転送効率はプロトコルやオーバーヘッドによって変動する。
複数のデバイスがバスを共有する場合、どのデバイスがいつバスを使用するかを調停する仕組みが必要となる。これを「バスアービトレーション」と呼ぶ。バスアービトレータと呼ばれる回路が、デバイスからの要求を管理し、優先順位に基づいてバスの使用権を割り当てることで、衝突を防ぎ、効率的なデータ転送を保証する。
現代のコンピュータアーキテクチャでは、単一の共有バスではなく、CPU内部に多数のコントローラが統合され、デバイスごとに高速なポイントツーポイント接続が提供される傾向が強まっている。これにより、バスのボトルネックがさらに緩和され、システムの全体的な性能向上に寄与している。バスという概念は、コンピュータシステムが進化し続ける中で、その形態を変えながらも、常に情報伝達の要として存在し続けている。