最終更新日:2026年7月29日
fe fe-technology computer-architecture cpu memory
まず結論
プログラム格納方式とは、プログラムを主記憶に格納し、CPUが命令を順番に読み出して実行する方式です。
別名として、プログラム内蔵方式とも呼ばれます。
基本情報技術者試験では、次の表現が判断の決め手になります。
主記憶にプログラムを格納し、CPUが命令を読み出しながら実行する
プログラムを主記憶に格納
↓
CPUが命令を読み出す
↓
命令を解読する
↓
処理を実行する
直感的な説明
プログラム格納方式は、CPUが主記憶に置かれた「作業手順書」を読みながら作業するイメージです。
- 主記憶:命令やデータを置く場所
- CPU:命令を読み、解読し、実行する装置
主記憶へ別のプログラムを読み込めば、同じコンピュータで別の処理を実行できます。
つまり、装置の配線を毎回変更しなくても、プログラムを入れ替えることで処理内容を変えられることが大きな特徴です。
定義・仕組み
プログラム格納方式では、一般に次の流れを繰り返します。
- 命令を主記憶から取り出す
- 命令を解読する
- 命令を実行する
- 次に実行する命令へ進む
この一連の動作は、命令サイクルと呼ばれます。
ノイマン型コンピュータとの関係
プログラム格納方式は、ノイマン型コンピュータの中心的な考え方です。
ノイマン型では、基本的にプログラムとデータを同じ主記憶に置き、同じ経路を使ってCPUへ送ります。
主記憶
├─ プログラム
└─ データ
↓
CPU
ただし、「命令を順番に読む」といっても、必ず上から最後まで一直線に実行するわけではありません。
分岐命令や繰返し命令によって、次に実行する命令の位置は変化します。
どんな場面で使う?
現在の一般的なコンピュータは、プログラム格納方式を基本としています。
- パソコン
- サーバ
- スマートフォン
- 組込み機器
- 制御装置
同じハードウェアでも、読み込むプログラムを変えることで、文書作成、計算、通信、機械制御など、異なる処理を実行できます。
試験で一緒に知っておきたい方式
ハーバード型アーキテクチャ
ハーバード型は、命令用メモリとデータ用メモリを分ける方式です。
| 比較項目 | ノイマン型 | ハーバード型 |
|---|---|---|
| 命令とデータ | 同じメモリに置く | 別々のメモリに置く |
| 通信経路 | 基本的に共用 | 命令用とデータ用を分離 |
| 特徴 | 構成が比較的単純 | 命令とデータへ同時アクセスしやすい |
ノイマン型
命令・データ → 共通の経路 → CPU
ハーバード型
命令 → 命令用経路 → CPU
データ → データ用経路 → CPU
試験では、次のように切り分けます。
プログラムとデータを同じ記憶装置で扱う
→ ノイマン型
命令用とデータ用の記憶装置を分ける
→ ハーバード型
なお、ハーバード型もプログラムをメモリに格納して実行するため、プログラム格納方式そのものの反対語ではありません。命令とデータの記憶構成を比べる別の分類軸です。
固定プログラム方式
処理内容が回路として固定され、プログラムの入替えを前提としない装置は、固定プログラム方式と考えられます。
処理内容をプログラムの読込みで変更
→ プログラム格納方式
処理内容が回路として固定
→ 固定プログラム方式
ただし、基本情報技術者試験では「プログラム格納方式」と「ノイマン型」の関係が中心であり、固定プログラム方式は補助的な比較として押さえれば十分です。
RISC・CISCとの関係
RISCとCISCは命令セットの設計方針です。
- RISC:単純な命令を中心に構成
- CISC:複雑で多機能な命令を持つ
これらは、プログラム格納方式の反対ではありません。
プログラムをどう保存・実行するか
→ プログラム格納方式
CPUの命令をどう設計するか
→ RISC・CISC
よくある誤解・混同
DMA制御方式との混同
DMAは、入出力装置と主記憶の間で、CPUを介さずにデータを転送する方式です。
CPUを介さずにデータ転送
→ DMA
主記憶のプログラムをCPUが実行
→ プログラム格納方式
アドレス指定方式との混同
アドレス指定方式は、命令が処理対象のデータ位置をどのように指定するかを表します。
- 直接アドレス指定
- 間接アドレス指定
- 即値アドレス指定
- 相対アドレス指定
データの場所をどう指定するか
→ アドレス指定方式
プログラムをどこに置いて実行するか
→ プログラム格納方式
仮想記憶方式との混同
仮想記憶は、補助記憶装置を利用して、主記憶より大きなアドレス空間を扱えるようにする仕組みです。
主記憶の容量を補う
→ 仮想記憶
主記憶から命令を読み出して実行
→ プログラム格納方式
ハーバード型はプログラム格納方式ではない
これは誤りです。
ハーバード型も、命令をメモリへ格納してCPUが実行します。違いは、命令用メモリとデータ用メモリを分ける点です。
CPUは必ず命令を上から順番に実行する
分岐や繰返しがあるため、単純に上から最後まで進むとは限りません。
CPUは、プログラムカウンタが示す次の命令を読み出して実行します。
まとめ(試験直前用)
- 主記憶にプログラムを格納し、CPUが読み出して実行するのがプログラム格納方式
- プログラム格納方式は、プログラム内蔵方式とも呼ばれる
- ノイマン型は、基本的に命令とデータを同じ主記憶・経路で扱う
- ハーバード型は、命令用とデータ用のメモリや経路を分ける
- DMAは入出力装置と主記憶のデータ転送
- 仮想記憶は主記憶の容量不足を補う仕組み
- アドレス指定方式は、命令がデータの場所を指定する方法
- RISC・CISCは命令セットの設計方針であり、別の分類軸
試験では、次の一文で切り分けます。
主記憶に置いたプログラムをCPUが読み出して実行するなら、プログラム格納方式