最終更新日:2026年10月4日
fe fe-technology computer-system
まず結論
メモリ容量からアドレス線の本数を求めるときは、「何個の場所を区別する必要があるか」を考えます。
n本のアドレス線では、2のn乗個のアドレスを指定できます。
1Mバイトのメモリをバイト単位でアクセスするなら、
1Mバイト
= 1024 × 1024 バイト
= 2^20 バイト
→ 2^20個の場所を指定する
→ アドレス線は20本
ここで、図に D0〜D7 があっても「8本」と考えないことが重要です。
アドレスバス → どこを読む/書くか
データバス → データを何bitずつ運ぶか
直感的な説明
メモリを「たくさんの引き出し」と考えてみます。
「20番の引き出しを選ぶ」
「中身を運ぶ」
0番、1番、2番…の場所
アドレスバスは「どの引き出しか」を選ぶための線です。
データバスは、その引き出しとCPUの間で「中身を運ぶ」ための線です。
役割が違うので、本数も別々に考えます。
定義・仕組み
アドレスバス
アドレスバスは、CPUがアクセスするメモリや入出力装置の場所を指定するための信号線です。
1本の信号線は0と1の2状態を表せるので、
| アドレス線 | 指定できる数 |
|---|---|
| 1本 | 2個 |
| 2本 | 4個 |
| 3本 | 8個 |
| 10本 | 1,024個 |
| 20本 | 1,048,576個 |
となります。
つまり、
n本 → 2^n個を指定
です。
データバス
データバスは、CPUとメモリなどの間で実際のデータを転送するための信号線です。
例えば D0〜D7 なら8本なので、一度に8bitを扱えます。
D0〜D7
→ 8bit
→ 1byte
ただし、これは「何個の場所を指定できるか」とは別の話です。
1Mバイトならなぜ20本?
問題で「バイト単位でアクセスする」と指定されていれば、1バイトごとに一つのアドレスが必要です。
1K = 2^10
1M = 2^20
1G = 2^30
したがって1Mバイトでは、2^20個のバイト位置を区別するため、20本のアドレス線が必要です。
科目Aでどう出る?
このテーマでは、まずアクセス単位を確認します。
| 問題文の情報 | 見るポイント |
|---|---|
| バイト単位でアクセス | 1バイトを1アドレスとして数える |
| アドレス線がn本 | 2^n個の場所を指定できる |
| D0〜D7 | 8bit幅のデータバス |
| 1K | 2^10 |
| 1M | 2^20 |
| 1G | 2^30 |
試験では次の順番で考えると迷いにくくなります。
1. メモリ容量を確認
2. アクセス単位を確認
3. 必要なアドレス数を求める
4. 2^n と対応させる
どんな場面で使う?
アドレスバスとデータバスは、CPUとメモリの接続やメモリ容量を考えるときの基本です。
例えば「アドレス線が16本なら何バイトまで指定できるか」という問題なら、
2^16 = 65,536
なので、バイト単位なら65,536バイトを指定できます。
逆に「1Mバイトを指定するには何本必要か」と聞かれたら、
1M = 2^20
→ 20本
と逆向きに考えます。
よくある誤解・混同
D0〜D7だから答えは8本?
違います。
D0〜D7はデータバスです。アドレス線の本数を聞かれているなら、A0、A1…側を考えます。
D → Data → データを運ぶ
A → Address → 場所を指定する
1Mだから10本?
1Kが2^10なので混同しやすいところです。
1K = 2^10
1M = 1024K = 2^10 × 2^10 = 2^20
したがって、1M個の場所を指定するなら20本です。
メモリ容量だけ見れば必ず本数が決まる?
アクセス単位にも注意します。
今回のように「バイト単位でアクセス」と明記されていれば、1バイトごとにアドレスを割り当てます。問題文のアクセス単位を読み飛ばさないことが重要です。
メモリそのものの種類を整理したい場合は、DRAM・SRAM・フラッシュメモリ・ROMの違いも確認してください。
まとめ(試験直前用)
- アドレスバス=どこをアクセスするかを指定する
- データバス=データを運ぶ
- n本のアドレス線では2^n個の場所を指定できる
- バイト単位なら、1Mバイト=2^20個のアドレスなので20本
- D0〜D7を見て8本と答えず、「何の本数を聞かれているか」を確認する