【コンピュータシステム】一番紛らわしい!「プログラムカウンタ vs 命令レジスタ」|情報処理問題1000本ノック
CPU(中央処理装置)の制御装置内にあるレジスタに関する超頻出の引っかけ問題です。「アドレス(番地)」を覚えているのか、「命令そのもの」を覚えているのかの違いを明確に区別して攻略しましょう。
1. 【 問題 】:コンピュータシステム(CPUのレジスタと命令実行プロセス)
【 問題 】 CPUの制御装置内に存在するレジスタに関する次の記述は、正しい(〇)か、誤り(×)か答えなさい。
「CPUにおいて、主記憶(メモリ)から読み出された命令そのものを一時的に記憶・保持するレジスタを『プログラムカウンタ』と呼ぶ。」
(ア)正しい(〇)
(イ)誤り(×)
2. 正解:
正解:(イ)誤り(×)
3. 解説:「番地」を指すのか、「中身」を置くのか!
問題文の「読み出された命令そのものを記憶する」レジスタは、命令レジスタ(Instruction Register)の説明です。
プログラムカウンタ(Program Counter)は、命令そのものではなく、「次に読み出すべき命令が格納されている主記憶のアドレス(番地)」を記憶するレジスタです。
| レジスタ名 | 記憶している情報 | 例え(本を読む場合) |
|---|---|---|
| ① プログラムカウンタ | 次に読む命令の「アドレス(番地)」 | 「次は 50ページ目 を読む」というページ番号(栞) |
| ② 命令レジスタ | フェッチ(取出し)した「命令そのもの」 | 「50ページ目に書いてあった文(命令)」を書き写したメモ |
1. 理解のコツ: 「図書館で本を借りて読む作業」に例えてみましょう。
・① プログラムカウンタは「本の整理番号(図書分類コード/棚番号)」をメモしたメモ用紙です。「次は【A-12】の棚のデータを取りに行くぞ」と場所だけを指しています。
・② 命令レジスタは、棚から持って帰ってきた「本の中身(テキストそのもの)」を載せる読書台です。
・持ってきた本の中身(命令)を読書台(命令レジスタ)に広げて、それを命令デコーダが読んで「なるほど、こういう意味か」と解読(デコード)します。
2. 試験対策の視点: 基本情報技術者試験やITパスポートなどで最も選択肢の引っ掛けに使われる基本中の基本です。
問題文に「アドレス」「番地」「次に実行する」という言葉があれば ➔ プログラムカウンタ
問題文に「読み出した命令」「フェッチした命令」「取り出した命令」という言葉があれば ➔ 命令レジスタ
このキーワードの一致を意識するだけで、引っかけ問題を100%見抜けるようになります。
4. まとめ
「アドレス(場所)を記憶するのがプログラムカウンタ」、「読み出した命令(中身)を記憶するのが命令レジスタ」。このペアの違いをセットで完璧に整理しておきましょう!