ITパスポート 2012年 秋期 問76
問題文
コンピュータにおける命令の実行順序に関する次の記述中のa、bに入れる字句の適切な組合せはどれか。
コンピュータにおける命令の実行順序は、
(1) プログラムカウンタの参照
(2) 命令の[ a ]
(3) 次の命令の主記憶アドレスをプログラムカウンタにセットする。
(4) 命令の[ b ]
(5) 命令に応じた処理を実行
(6) (1)へ戻る。
を繰り返す。

選択肢
ア:
イ:
ウ:(正解)
エ:
🔒 解説は解答すると表示されます
命令の実行順序(フェッチ・デコード)【ITパスポート 解説】
正解の理由
命令の実行は「命令サイクル(fetch-decode-execute)」と呼ばれる流れで行われます。まず、プログラムカウンタ(次に実行する命令の主記憶上のアドレスを指すレジスタ)を参照して、そのアドレスから命令を「読み込み(fetch:主記憶から命令をCPUに取ってくる)」ます。次に、プログラムカウンタに次の命令アドレスをセットしておき、読み込んだ命令を「解読(decode:命令の種類やオペランドを解釈する)」します。したがって、(2) は「読み込み」、(4) は「解読」となるため、選択肢は ウ が正しいです。
解法ステップ
- 「プログラムカウンタ」を確認:次に実行する命令の所在を示す。初出時に意味を押さえる(レジスタの一種)。
- 命令サイクルの基本順序を思い出す:フェッチ(読み込み)→(PCの更新)→デコード(解読)→実行。
- 問題文の順序と照らし合わせる:
- (1) PC参照 → (2) 命令を取ってくる=読み込み
- (3) 次の命令アドレスをPCにセット(PC更新)
- (4) 命令を解釈=解読
- よって a=読み込み、b=解読 → 選択肢ウを選ぶ。
選択肢別の誤答解説
- ア(a:解読、b:読み込み)
- 誤り。命令を解読する前に命令本体を主記憶から読み込む必要があり、順序が逆になっています。
- イ(a:書込み、b:解読)
- 誤り。「書込み」は主記憶やレジスタにデータを保存する操作で、命令を取ってくる段階には関係ありません。
- ウ(a:読み込み、b:解読)
- 正答。命令フェッチ(読み込み)→PC更新→命令デコード(解読)→実行、の正しい順序です。
- エ(a:読み込み、b:書込み)
- 誤り。命令を読み込んだ後にすぐ「書込み」を行うわけではなく、まず命令を解釈してから実行(場合によって書込みを行う)します。
よくある誤解
- 「読み込み」と「解読」を逆に覚えてしまう
- 実際には命令を手に入れてから(読み込み)、それをどう処理するか判断する(解読)流れです。先に判断はできません。
- プログラムカウンタ(PC)の更新位置を混同する
- 多くの説明ではPCは命令の読み込み直後に次のアドレスへ更新します。これは次回のフェッチ準備のためです。更新を実行後にするか実行途中にするかは設計で差がありますが、基本的な流れは「読み込み → PC更新 → 解読 → 実行」と覚えておけば試験問題には対応できます。
- 「書込み」を命令フェッチの一部だと思う
- 書込みは実行時にデータを主記憶やレジスタへ保存する処理であり、命令自体の取得・解釈とは別です。
補足コラム
- 命令サイクルは基本概念ですが、実際のCPUでは「パイプライン(pipeline)」という手法でフェッチ・デコード・実行を重ね合わせて高速化しています。これは工場の流れ作業のように、別々の段階を同時進行で進めるイメージです。
- 主記憶(主メモリ)は一般にRAM(Random Access Memory:読み書き可能な記憶装置)を指します。命令やデータは一旦ここに置かれます。
- 命令の「解読」では、命令の種類(演算、分岐、読み出し/書き込みなど)と使うデータの場所(レジスタや主記憶のアドレス)を決めます。この情報に基づいて「実行」段階で具体的な動作が行われます。
FAQ
Q1. プログラムカウンタ(PC)とは何ですか?
A1. 次に実行すべき命令の主記憶アドレスを保持するレジスタです。命令を順番に実行するために使います。
A1. 次に実行すべき命令の主記憶アドレスを保持するレジスタです。命令を順番に実行するために使います。
Q2. 命令の「読み込み」と「解読」は同じですか?
A2. いいえ。読み込み(fetch)は命令そのものを主記憶からCPUへ取ってくる操作。解読(decode)は取ってきた命令が何を意味するかを判別する操作です。
A2. いいえ。読み込み(fetch)は命令そのものを主記憶からCPUへ取ってくる操作。解読(decode)は取ってきた命令が何を意味するかを判別する操作です。
Q3. すべての命令でPCを更新しますか?
A3. 通常は次の命令のアドレスをPCにセットしますが、分岐命令やジャンプ命令の場合は別のアドレス(命令の指示)にPCをセットします。
A3. 通常は次の命令のアドレスをPCにセットしますが、分岐命令やジャンプ命令の場合は別のアドレス(命令の指示)にPCをセットします。
関連キーワード: プログラムカウンタ、命令フェッチ、命令デコード、命令実行、主記憶、CPU、命令サイクル、パイプライン、フェッチ・デコード・実行

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

