マナビング基本情報技術者

命令フェッチ後の格納先はどう見分けるか

基本情報技術者試験 平成30年度春期 午前 問9 / コンピュータ構成要素 › プロセッサ

過去問にチャレンジ

平成30年度春期 午前 問9

図はプロセッサによってフェッチされた命令の格納順序を表している。a に当てはまるものはどれか。

平成30年度春期 午前 問9の図
  1. ア

    アキュムレーター

  2. イ

    データキャッシュ

  3. ウ

    プログラムレジスタ(プログラムカウンター)

  4. エ

    命令レジスタ

会話形式の解説

講師講師
図の矢印をたどると、主記憶から取り出した命令が、空欄を通って命令デコーダへ渡ります。空欄には何を保持する装置が必要ですか。
受験者受験者
命令に関係するので、プログラムカウンターかと思いました。ただ、そこに命令そのものが入るのでしょうか。
講師講師
プログラムカウンターが保持するのは、次に取り出す命令のアドレスです。この図の空欄には、すでに取り出された命令そのものが入ります。
受験者受験者
命令の場所を示すアドレスと、取り出した命令を区別するのですね。命令そのものを保持するのは何ですか。
講師講師
命令レジスタです。取り出した命令を保持し、命令デコーダへ渡すので、空欄に当てはまります。
受験者受験者
データキャッシュも何かを保持しますが、この位置には合わないのですか。
講師講師
データキャッシュが保持するのはデータです。図では空欄から命令デコーダへ命令が渡るため、保持する対象が違います。
受験者受験者
アキュムレータも、命令ではなく演算に使うデータや結果を保持するのですね。
講師講師
そのとおりです。したがって正解はエの命令レジスタです。図の空欄を考えるときは、前後の矢印を見て、何が入って何が出るかを確かめましょう。

まとめ

図では、主記憶から取り出した命令が空欄を通り、命令デコーダへ渡ります。取り出した命令を保持するのは命令レジスタなので、正解はエです。プログラムカウンターは次に取り出す命令のアドレスを保持します。データキャッシュとアキュムレータは、命令そのものを保持する役割には当てはまりません。

解答・解説

正解はエです

この問題のテーマ

主記憶から取り出した命令を、プロセッサ内のどこに保持するかを問う問題です。

解き方の考え方

図の矢印は「主記憶 → a → 命令デコーダ」の順に命令が渡ることを示しています。したがって、aには、取り出した命令をデコーダへ渡す前に保持するものが入ります。選択肢ごとに、保持する対象を確かめます。

選択肢ごとの解説

  1. ×ア  アキュムレーター
    アキュムレータは演算に使うデータや結果を保持します。図のaに必要なのは、フェッチされた命令を保持する役割なので当てはまりません。
  2. ×イ  データキャッシュ
    データキャッシュはデータを保持します。図ではaから命令デコーダへ命令が渡されているため、データキャッシュは該当しません。
  3. ×ウ  プログラムレジスタ(プログラムカウンター)
    プログラムカウンターが保持するのは、次に取り出す命令のアドレスです。図のaには主記憶から取り出された命令が入るので、役割が異なります。
  4. ○エ  命令レジスタ
    命令レジスタは、取り出した命令を保持し、その命令を命令デコーダへ渡します。図のaの位置と働きに一致するため、正解はエです。

POINT

  • 図の空欄は、前後の矢印をたどって入るものと出るものを確認します。
  • 「命令そのもの」と「命令のアドレス」は区別して考えます。
  • 各装置の名前だけでなく、何を保持するかで選択肢を判断します。

※出典:平成30年度春期 基本情報技術者試験 午前 問9(一部改変)