FE EXAM

バスの役割(コンピュータ内部の伝送路)

CPU・メモリ・入出力装置の間でデータをやり取りする共通の伝送路

DIAGRAM
データバスアドレスバス制御バス
3種類のバスがCPU・メモリ・入出力装置を結ぶCPU中央処理装置計算の中心メモリ主記憶装置データを置くI/O装置入出力装置キーボード等データ双方向アドレス単方向制御信号データバス: 実際のデータを運ぶ(読み書き両方向)アドレスバス: どの番地かを伝える(CPU→メモリの一方通行)制御バス: 読み/書き・割込みなどの指示を伝える
バスとは、CPU・メモリ・入出力装置といった部品どうしを結ぶ「共通の通り道(伝送路)」です。役割ごとに データバスアドレスバス制御バス の3種類に分かれています。
解説

📌
バスとは

1本の共通の道を、みんなで使い分けるCPUメモリI/O= 部品どうしを結ぶ共通の伝送路

バス(bus)とは、CPU(中央処理装置=計算を行う部品)・メモリ(データを置く部品)・入出力装置(キーボードやディスプレイなど)の間で、データや信号をやり取りするための共通の伝送路のことです。コンピュータの内部にある「みんなで使う一本道」だと考えると分かりやすいです。

身近な例で言うと、たくさんの人が同じ道路を共有して移動する乗合バス(路線バス)に似ています。バス(bus)という名前も、もともと「乗合バス」と同じ語源で、「1本の経路を多数の利用者が共有する」という発想から来ています。それぞれの部品に専用の配線を引く代わりに、共通の道を時間で使い分けることで、配線をシンプルにできます。

上の図解では、CPU・メモリ・I/O装置の3つが、3本のバスで横一列につながっている様子を示しています。同じ道を共有するため、ある瞬間にバスを使えるのは1つの装置だけ、というのが基本ルールです。

🚌
3種類のバス

バスは運ぶ内容によって、次の3種類に分かれます。
データバス:実際のデータ(数値や文字の中身)を運ぶ。読み出し・書き込みの両方で使うため双方向
アドレスバス:「どの番地(住所)にアクセスするか」を伝える。CPUからメモリへの一方通行(単方向)
制御バス:「読み出せ」「書き込め」「割込みだ」などの指示(制御信号)を伝える

バスの種類運ぶもの向き
データバスデータの中身そのもの双方向
アドレスバスアクセスする番地単方向(CPU→メモリ)
制御バス読み/書きの指示・割込み信号方向は信号ごと

配送便にたとえると分かりやすいです。アドレスバスは宛先の「住所」、データバスは箱の中身である「荷物」、制御バスは「受け取れ/渡せ」といった配達員への「指示」にあたります。3つがそろって初めて、正しい相手に正しいデータが届きます。

⚙️
役割と特徴

バス幅が広いほど一度に多く運べる細い(8本)広い(64本)線の本数 = バス幅 = 一度に運べるビット数

バスの役割は、各部品を結んでデータと指示を正しく行き来させることです。バスがあるおかげで、CPUは「メモリのこの番地から読み出せ」「この入出力装置に書き込め」といった操作を、決まった手順で実行できます。

バスの性能を左右する大事な要素がバス幅です。バス幅とは、同時に通せる信号線の本数のこと。線が1本あれば1ビットを運べるので、たとえば32本のデータバスなら一度に32ビットをまとめて運べます。高速道路の車線が多いほど一度に多くの車が通れるのと同じイメージです。

覚えておきたい特徴をまとめると、次のようになります。
共有資源:同じバスを多数の部品が共有するため、同時に使えるのは原則1つ
バス幅が広いほど高速:1回の転送で運べるデータ量が増える
役割分担:データ・アドレス・制御をそれぞれ専用のバスに分けることで、整理して処理できる

📌
なぜバスを共有するのか

専用配線(バスなし)CPUメモリI/O 1I/O 2配線が多い・複雑バスあり(共有)CPUメモリI/O1本の線をみんなで共有部品が増えても配線はほぼ変わらない

結論:部品ごとに専用の配線を引くと、部品の数が増えるほど配線が爆発的に増えてしまうからです。CPU・メモリ・入出力装置のすべてにそれぞれ専用の線を引いたら、たとえば部品が10個あれば組み合わせの数だけ配線が必要になります。

バスはこれを解決します。1本の共通の道を「時間を分けて」使い回すことで、部品がいくつ増えても配線はほぼ1セットで済みます。これを時分割(=時間を分割して複数の利用者が交代で使う仕組み)といいます。
バスありのメリット:配線が少ない・設計がシンプル・部品を後から追加しやすい
バスありのデメリット:1本を複数で奪い合うため、同時に使えるのは1つだけ(待ち時間が生じる)

身近な例で言うと、全員に専用の電話線を引くのではなく、交換台(共有線)を1本通して使い分ける電話交換機のようなものです。線は少ないが、同時に全員がかけることはできません。バスもこれと同じ発想で動いています。

📌
アドレスバスが単方向な理由

CPUメモリアドレスバス →← データバス →番地を指定するのはいつもCPUメモリは番地を送り返さない

結論:アドレス(番地)を指定するのは、常にCPUだけだからです。メモリやI/O装置は「ここを見せて」と住所を言うことなく、CPUに言われた番地に応じるだけです。そのためアドレスバスはCPUからメモリへの一方通行(単方向)で十分なのです。

3種類のバスの向きをまとめると次のとおりです。
アドレスバス:CPU → メモリ(単方向)。「どの番地か」を指定するのはCPUのみ
データバス:双方向。読み出し(メモリ→CPU)と書き込み(CPU→メモリ)の両方で使う
制御バス:信号の種類によって向きが変わる。「読め」「書け」はCPU→メモリ、「割込み(=急ぎの処理が発生したという知らせ)」はI/O→CPUの方向

身近な例で言うと、図書館で「棚番号Aの本を取ってきて」と番号(アドレス)を言うのはあなた(CPU)だけで、本棚(メモリ)が「棚番号Bに置いてください」と返してくることはありません。だから棚番号の伝達は一方通行で済みます。取り出した本(データ)のやり取りは、返却のときは逆方向になるので双方向です。

関連コンテンツ