最終更新日:2026年10月7日
fe fe-technology computer-architecture cpu
まず結論
CPU周辺の用語は、個別に暗記するより「CPUが1命令を実行する流れ」に置くとつながります。
プログラムを主記憶に置く
↓
プログラムカウンタ
「次の命令はどこ?」
↓
命令をフェッチ
↓
命令レジスタ
「取り出した命令を保持」
↓
命令語を解読
「何をする?何を対象にする?」
↓
アドレス指定
「対象データは実際にどこ?」
↓
オペランドを読み出す
↓
演算・実行
↓
次の命令へ
そして、このCPU内部の処理をタイミングよく進める基準になるのがクロックです。
このページは個々の用語を詳しく暗記するための記事ではなく、それぞれがCPUのどこでつながるのかを見るための地図です。
直感的な説明
CPUを「手順書を見ながら作業する人」と考えます。
手順書を机に置く
→ プログラム記憶方式
次に読む場所を覚える
→ プログラムカウンタ
指示を取ってくる
→ 命令フェッチ
今読む指示を手元に置く
→ 命令レジスタ
指示の意味を読む
→ 命令語・命令デコーダ
必要な材料の場所を調べる
→ アドレス指定
材料を用意する
→ オペランド読出し
作業する
→ 命令実行
これまで別々に見えていた用語は、実際には同じ処理の違う部分を説明しています。
定義・仕組み
1. プログラムを主記憶に置く
プログラム記憶方式では、実行するプログラムを主記憶に置き、CPUが命令を読み出して実行します。
詳しくはプログラム記憶方式で整理しています。
2. 次の命令の場所を確認する
CPUは、次に読み出す命令のアドレスをプログラムカウンタ(PC)で管理します。
PC
→ 次の命令のアドレス
PCを含むレジスタ全体はレジスタとは?で確認できます。
3. 命令をフェッチする
PCが示す場所を使って、主記憶から命令を読み出します。
PC
↓ アドレス
主記憶
↓ 命令を読み出す
命令レジスタ
これが命令フェッチです。
4. 命令レジスタに保持する
取り出した命令は命令レジスタ(IR)に保持されます。
PC → 命令の「場所」
IR → 取り出した「命令そのもの」
ここを切り分けると、PCと命令レジスタを混同しにくくなります。
5. 命令語を解読する
命令語は、基本的に次の二つの視点で読みます。
命令コード
→ 何をする?
オペランドの指定
→ 何を対象にする?
詳しくは命令語の構成で整理しています。
6. 対象データの場所を求める
命令に対象の指定がある場合、実際に使う値や番地を求めます。
ここで関係するのがアドレス指定方式です。
即値
直接
間接
指標
基底
相対
…
指標レジスタ、基底レジスタ、PCなどがアドレス計算に使われる場合もあります。
詳しくはアドレス指定方式で確認できます。
7. オペランドを読み出す
命令を実行するために必要なデータを用意します。
命令フェッチ
→ 命令を読む
オペランド読出し
→ 命令で使うデータを読む
同じ「読み出し」でも対象が違います。
8. 命令を実行する
必要なデータがそろったら、演算装置などが処理を実行します。
基本の命令実行サイクルは、
フェッチ
↓
解読
↓
オペランド読出し
↓
実行
です。
詳しくはCPUの命令実行サイクルで整理しています。
9. この動作を刻むのがクロック
CPU内部の処理は、クロック信号を基準に進みます。
命令実行の流れ
+
処理タイミングの基準
↓
クロック
クロック周波数や内部・外部クロックはCPUのクロック周波数で確認できます。
CPU性能の計算まで進むと、MIPSとCPIにつながります。
また、CPUが扱う命令セットをどのような方針で設計するかは、RISCとCISCの違いで整理しています。
科目Aでどう出る?
問題を見たら、まずCPUの流れのどこを聞いているかを探します。
| 問題文の中心 | 関係するテーマ |
|---|---|
| プログラムを主記憶へ置く | プログラム記憶方式 |
| 次の命令のアドレス | プログラムカウンタ |
| 現在の命令を保持 | 命令レジスタ |
| 命令の「何をする/何を対象にする」 | 命令語 |
| 実際に使う番地を求める | アドレス指定方式 |
| フェッチ・解読・読出し・実行 | 命令実行サイクル |
| CPU動作のタイミング | クロック |
| 1命令に必要なクロック数 | CPI |
| 1秒間の百万命令数 | MIPS |
用語だけを見るのではなく、
「CPUが命令を実行する流れの、どの部分について聞かれている?」
と考えるのが判断の軸です。
どんな場面で使う?
この全体像は、CPU分野を学び始めるときの入口として使います。
個別問題で分からない用語が出た場合も、まず地図へ戻します。
レジスタで迷った
→ CPUが何を一時保持している?
アドレス指定で迷った
→ データの場所をどう求めている?
命令語で迷った
→ 命令の中身はどう構成されている?
クロックで迷った
→ CPUをどのタイミングで動かしている?
個別記事を読み終えたあとにもう一度この流れへ戻ると、知識を位置付けやすくなります。
よくある誤解・混同
命令語と命令実行サイクルは同じ?
違います。
命令語
→ CPUが読む「指示の中身」
命令実行サイクル
→ その指示をCPUが「どう処理するかという流れ」
レジスタは命令実行サイクルとは別のテーマ?
別々の用語ですが、実際には命令実行の途中で使われます。
PCは命令フェッチ、命令レジスタはフェッチ後の命令保持、汎用レジスタなどはデータや途中結果の保持に関係します。
命令語とアドレス指定方式は同じ?
違います。
命令語
→ 命令が何で構成されている?
アドレス指定方式
→ 指定情報から実際の値・番地をどう求める?
プログラム記憶方式とアドレス指定方式は同じ「アドレス」の話?
扱う範囲が違います。
プログラム記憶方式
→ プログラム全体をどこに置いて実行する?
アドレス指定方式
→ 1命令が対象データをどう指定する?
クロック周波数が命令実行サイクルそのもの?
クロックは処理を進めるタイミングの基準です。フェッチ・解読・実行などの処理内容そのものではありません。
まとめ(試験直前用)
CPU分野で迷ったら、まずこの一本へ戻ります。
主記憶にプログラム
↓
PCで次の命令位置
↓
命令フェッチ
↓
IRに命令を保持
↓
命令語を解読
↓
アドレス指定
↓
オペランド読出し
↓
実行
↓
次の命令へ
- プログラム記憶方式:プログラム全体をどう保持・実行するか
- レジスタ:CPUが処理中の情報を一時保持する場所
- 命令語:CPUへの指示の中身
- アドレス指定方式:実際に使う値・番地の求め方
- 命令実行サイクル:CPUが1命令を処理する流れ
- クロック:CPU動作のタイミングの基準
個別用語を覚える前に、その用語がこの流れのどこにあるかを確認する。