基本情報技術者試験「命令の実行サイクル」の問題
CPUが1つの機械語命令を処理する基本サイクルの段階を、実行される順に正しく並べたものはどれか。
ア命令の解読(デコード)を行ってから命令を主記憶から取り出し、最後に演算を実行する
イ演算の実行を先に終え、その後で命令を取り出して解読する
ウ命令を主記憶から取り出し(フェッチ)、内容を解読(デコード)し、続いて演算を実行する
エオペランドの実効番地の計算を最初に済ませてから、その後で命令そのものを主記憶より取り出す
正解
ウ.命令を主記憶から取り出し(フェッチ)、内容を解読(デコード)し、続いて演算を実行する
CPUはまずプログラムカウンタが指す命令を主記憶から取り出し(フェッチ)、命令レジスタに置いて種類とオペランドを解読(デコード)し、その指示に従って演算を実行する。この順序が基本サイクルであり正しい。
?選択肢ごとの解説
ア ×デコードを先に置いているが、解読する対象の命令はまだ取り出されておらず、フェッチが先でなければ解読すべきビット列が存在しない。順序が逆である。
イ ×演算の実行を最初に置いているが、何を演算するかは命令を取り出して解読するまで定まらず、実行を先頭にはできない。順序が完全に逆である。
ウ ○CPUはまずプログラムカウンタが指す命令を主記憶から取り出し(フェッチ)、命令レジスタに置いて種類とオペランドを解読(デコード)し、その指示に従って演算を実行する。この順序が基本サイクルであり正しい。
エ ×オペランドの番地計算は命令を取り出し解読した後に行う段階であり、命令フェッチより前には実行できない。先頭に置くのは誤りである。
✎くわしく
命令実行サイクルはフェッチ→デコード→(オペランド取り出し)→実行→(結果書き戻し)と進む。プログラムカウンタはフェッチのたびに次命令を指すよう更新され、分岐命令ではこの値が書き換えられる。各段が順に依存するため順序を入れ替えられない点が核心である。
✓本番での押さえどころ
試験のコツ
『取り出してから読んで、それから動く』と日常動作にたとえて順序を固定する。フェッチが必ず先頭である。
覚え方
フェッチ=本を棚から取る、デコード=内容を読む、実行=指示どおり動く。読む前に取る、と覚える。
よくある誤り
デコードと実行の順序は覚えていても、フェッチが最初に来ることを見落とし、解読を先頭に置いてしまう誤りがある。
コンピュータ構成要素の他の問題
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0145