CPU・メモリ・入出力装置の間でデータをやり取りする共通の伝送路
バス(bus)とは、CPU(中央処理装置=計算を行う部品)・メモリ(データを置く部品)・入出力装置(キーボードやディスプレイなど)の間で、データや信号をやり取りするための共通の伝送路のことです。コンピュータの内部にある「みんなで使う一本道」だと考えると分かりやすいです。
身近な例で言うと、たくさんの人が同じ道路を共有して移動する乗合バス(路線バス)に似ています。バス(bus)という名前も、もともと「乗合バス」と同じ語源で、「1本の経路を多数の利用者が共有する」という発想から来ています。それぞれの部品に専用の配線を引く代わりに、共通の道を時間で使い分けることで、配線をシンプルにできます。
上の図解では、CPU・メモリ・I/O装置の3つが、3本のバスで横一列につながっている様子を示しています。同じ道を共有するため、ある瞬間にバスを使えるのは1つの装置だけ、というのが基本ルールです。
バスは運ぶ内容によって、次の3種類に分かれます。
・データバス:実際のデータ(数値や文字の中身)を運ぶ。読み出し・書き込みの両方で使うため双方向
・アドレスバス:「どの番地(住所)にアクセスするか」を伝える。CPUからメモリへの一方通行(単方向)
・制御バス:「読み出せ」「書き込め」「割込みだ」などの指示(制御信号)を伝える
| バスの種類 | 運ぶもの | 向き |
|---|---|---|
| データバス | データの中身そのもの | 双方向 |
| アドレスバス | アクセスする番地 | 単方向(CPU→メモリ) |
| 制御バス | 読み/書きの指示・割込み信号 | 方向は信号ごと |
配送便にたとえると分かりやすいです。アドレスバスは宛先の「住所」、データバスは箱の中身である「荷物」、制御バスは「受け取れ/渡せ」といった配達員への「指示」にあたります。3つがそろって初めて、正しい相手に正しいデータが届きます。
バスの役割は、各部品を結んでデータと指示を正しく行き来させることです。バスがあるおかげで、CPUは「メモリのこの番地から読み出せ」「この入出力装置に書き込め」といった操作を、決まった手順で実行できます。
バスの性能を左右する大事な要素がバス幅です。バス幅とは、同時に通せる信号線の本数のこと。線が1本あれば1ビットを運べるので、たとえば32本のデータバスなら一度に32ビットをまとめて運べます。高速道路の車線が多いほど一度に多くの車が通れるのと同じイメージです。
覚えておきたい特徴をまとめると、次のようになります。
・共有資源:同じバスを多数の部品が共有するため、同時に使えるのは原則1つ
・バス幅が広いほど高速:1回の転送で運べるデータ量が増える
・役割分担:データ・アドレス・制御をそれぞれ専用のバスに分けることで、整理して処理できる
結論:部品ごとに専用の配線を引くと、部品の数が増えるほど配線が爆発的に増えてしまうからです。CPU・メモリ・入出力装置のすべてにそれぞれ専用の線を引いたら、たとえば部品が10個あれば組み合わせの数だけ配線が必要になります。
バスはこれを解決します。1本の共通の道を「時間を分けて」使い回すことで、部品がいくつ増えても配線はほぼ1セットで済みます。これを時分割(=時間を分割して複数の利用者が交代で使う仕組み)といいます。
・バスありのメリット:配線が少ない・設計がシンプル・部品を後から追加しやすい
・バスありのデメリット:1本を複数で奪い合うため、同時に使えるのは1つだけ(待ち時間が生じる)
身近な例で言うと、全員に専用の電話線を引くのではなく、交換台(共有線)を1本通して使い分ける電話交換機のようなものです。線は少ないが、同時に全員がかけることはできません。バスもこれと同じ発想で動いています。
結論:アドレス(番地)を指定するのは、常にCPUだけだからです。メモリやI/O装置は「ここを見せて」と住所を言うことなく、CPUに言われた番地に応じるだけです。そのためアドレスバスはCPUからメモリへの一方通行(単方向)で十分なのです。
3種類のバスの向きをまとめると次のとおりです。
・アドレスバス:CPU → メモリ(単方向)。「どの番地か」を指定するのはCPUのみ
・データバス:双方向。読み出し(メモリ→CPU)と書き込み(CPU→メモリ)の両方で使う
・制御バス:信号の種類によって向きが変わる。「読め」「書け」はCPU→メモリ、「割込み(=急ぎの処理が発生したという知らせ)」はI/O→CPUの方向
身近な例で言うと、図書館で「棚番号Aの本を取ってきて」と番号(アドレス)を言うのはあなた(CPU)だけで、本棚(メモリ)が「棚番号Bに置いてください」と返してくることはありません。だから棚番号の伝達は一方通行で済みます。取り出した本(データ)のやり取りは、返却のときは逆方向になるので双方向です。