令和元年度 秋期 午前 問9
コンピュータ構成要素
プログラムカウンタに関する問題
CPU のプログラムレジスタ(プログラムカウンタ)の役割はどれか。
- ア演算を行うために,メモリから読み出したデータを保持する。
- イ条件付き分岐命令を実行するために,演算結果の状態を保持する。
- ウ命令のデコードを行うために,メモリから読み出した命令を保持する。
- エ命令を読み出すために,次の命令が格納されたアドレスを保持する。
答えと解説を見る
✓ これが正解エ命令を読み出すために,次の命令が格納されたアドレスを保持する。
解説
次に読み出す命令の置き場所を覚えているのがこの装置です。
プログラムレジスタは、次に読み出す命令が置かれている番地を保持します。中央処理装置はこの番地を使って主記憶から命令を取り出し、取り出した直後に番地を命令の長さの分だけ進めます。こうして命令は置かれた順に処理されていきます。分岐命令を実行したときは、進めた番地の代わりに飛び先の番地を書き込み、そこから流れを切り替えます。呼び出しと復帰では、戻り先の番地をいったん退避してから書き換えます。割込みが起きたときも、同じように番地を退避してから処理へ移ります。取り出し、解読、実行という一連の流れの中で、この装置は取り出しの起点を決める役目だけを担っています。命令を置いた順に進むという原則を支えているのが、この小さな装置です。プログラムカウンタという別名も、まったく同じ働きを指しています。
ほかの選択肢はなぜ違うのか
- ア演算を行うために,メモリから読み出したデ…:主記憶から読み出したデータを一時的に置くのは、汎用レジスタなどの役目です。計算の材料や途中の結果を持ちますが、次にどの命令へ進むかという情報は扱いません。同じレジスタでも、担っている層がそもそも違います。
- イ条件付き分岐命令を実行するために,演算結…:演算の結果が零になったか、桁があふれたかといった状態を持つのはフラグレジスタです。分岐命令はこの中身を見て進路を決めますが、進んだ先の番地そのものを覚えているわけではありません。判断の材料と、行き先の住所という違いです。
- ウ命令のデコードを行うために,メモリから読…:読み出した命令そのものを解読まで抱えておくのは命令レジスタです。番地を持つ側と、その番地から取り出した中身を持つ側という関係になり、二つは取り出しの前後で役割が分かれます。どちらも欠かせませんが、担当する場面が違います。
出典:令和元年度 秋期 応用情報技術者試験 午前 問9
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)