本文へスキップ

平成24年度 秋期 ITパスポート試験 問76

この問題の解説と、これまでの解答の記録です。

問76
頻出度★☆☆

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

出典 平成24年度 秋期 ITパスポート試験 問76
解説

問 76

  • 不正解ア

    a-解読、b-読込みは、正しい順序をちょうど逆にしたもので誤り。(1) の段階でプログラムカウンタから分かっているのは命令が置かれている主記憶の番地だけで、命令の中身はまだ CPU の中に入っていない。手元に無い命令を解読することはできないので、解読が読込みより先に来ることはあり得ない。また、この並びだと (5) の「命令に応じた処理を実行」の直前に行うのが読込みになってしまい、何の命令かを判定しないまま実行することになって筋が通らない。

  • 不正解イ

    b-解読は正しいが、a-書込みが誤り。(1) でプログラムカウンタを参照した直後に行うのは、その番地の命令を主記憶から CPU へ読み出す動作であって、主記憶へ何かを書き込む動作ではない。命令の実行サイクルは主記憶にあるプログラムを読んで実行する流れであり、「命令を書き込む」という段階そのものが存在しない。なお主記憶への書込みが起こるとすれば、それは (5) の実行の結果として演算結果などのデータを格納する場合であって、実行前の取出し段階の話ではない。

  • ウ

    正解 正解はウ「a-読込み,b-解読」。CPU は電源が入っている間、主記憶に置かれた機械語命令を 1 つずつ取り出して実行することを繰り返しており、この一巡を命令の実行サイクル (命令サイクル) と呼ぶ。設問の (1)〜(6) はその一巡をそのまま並べたものである。まず (1) でプログラムカウンタ (命令アドレスレジスタ) を参照する。プログラムカウンタは「次に実行する命令が主記憶のどの番地にあるか」を保持するレジスタなので、ここで取り出すべき命令の在りかが決まる。続く (2) では、その番地の内容を主記憶から CPU 内部の命令レジスタへ取り込む。これが命令の読込み (命令の取出し、命令フェッチ) であり、a に入るのは「読込み」である。命令を取り込んだら (3) でプログラムカウンタを次の命令の主記憶アドレスに更新しておく。こうしておけば、いま取り出した命令の処理が終わったあと、そのまま次の周回で連続した次の命令を取り出せる。次に (4) では、命令レジスタに入った命令を命令デコーダ (解読器) が調べ、命令部からそれが加算なのか転送なのか分岐なのかを判定し、オペランド部から対象となるデータの所在を求める。これが命令の解読 (デコード) であり、b に入るのは「解読」である。何の命令かが分かって初めて (5) の「命令に応じた処理を実行」が可能になり、制御装置が演算装置や記憶装置へ制御信号を送って処理を進める。そして (6) で (1) に戻る。要するに順序は「取り出してから読み解き、読み解いてから実行する」であり、a=読込み、b=解読 の組合せをもつウが正解となる。

  • 不正解エ

    a-読込みは正しいが、b-書込みが誤り。(4) は読み込んだ命令が何を指示しているかを命令デコーダで判定する段階であり、ここを書込みとすると、命令の種類を判定しないまま (5) の実行に進むことになって処理を決められない。書込みは実行 (5) の結果を主記憶やレジスタへ格納する場合に出てくる動作で、しかも対象は命令そのものではなく処理されたデータである。読み込んだ命令に対して行う次の動作は解読であり、書込みではない。

ここがポイント
  • 命令の実行サイクルの順序 — プログラムカウンタの参照 → 命令の読込み (フェッチ) → プログラムカウンタの更新 → 命令の解読 (デコード) → 命令の実行、を繰り返す。プログラムカウンタは次に実行する命令の主記憶アドレスを保持するレジスタで、命令を取り出した直後に次の命令のアドレスへ更新される。
  • 各段階を担う装置と場所 — 命令は主記憶から命令レジスタへ読み込まれ、命令デコーダがその命令部を解読して種類を判定し、制御装置が演算装置や記憶装置へ制御信号を出して実行させる。「取り出す・読み解く・実行する」の順は入れ替わらず、書込みは実行結果をデータとして格納する場面の動作である。
用語

解答の記録