応用情報技術者試験

応用情報技術者試験に頻出するCPUのレジスタとコンピュータの命令実行の流れについてまとめました。

CPUのレジスタとコンピュータの命令実行の流れ

CPUのレジスタとは

コンピュータの処理装置であるCPU(Central Processing Unit)には、演算装置と制御装置があります。それらの演算や制御を行う際にレジスタと呼ばれる小規模で一時的な記憶装置を使用します。

代表的なレジスタ

様々なレジスタがありますが、代表的なレジスタは以下になります。

レジスタ一覧

いまいちこれだけを見てもピンとこないと思いますので、次項でどのようなときに使われるか、コンピュータの命令実行の流れより説明します。

コンピュータの命令実行の流れ(レジスタの使われ方)

コンピュータの命令実行順序

基本的にコンピュータの命令実行順序は以下の①~④になります。
①命令フェッチ(取り出し)
②命令の解読
③オペランド(演算データ)読出し
④命令の実行

具体的な処理概要やレジスタの使われ方は以下になります。

具体的な処理概要やレジスタの使われ方

①命令フェッチ(取り出し)
 プログラムレジスタを見て命令を主記憶装置から取り出し、命令レジスタに命令を格納します。
 命令レジスタに格納する命令は以下の構成です。
 ・命令部    → 実行する命令のコード
 ・オペランド部 → 演算に必要なデータのアドレス
 格納後、プログラムレジスタの値を次の命令レジスタの値に変更します。

②命令の解読
 命令レジスタに格納した命令部を、命令デコーダ(解読器)を使って解読する。

③オペランド(演算データ)読出し
 仮に演算する際にデータが必要であれば、命令レジスタのオペランド部より対象データのアドレスを取り出し、対象データを読み出します。
 読み出す際に色々な種類がありますが、その際にベースレジスタやインデックスレジスタが使われます。
 読みだしたデータはアキュムレータに格納します。
(アキュムレータの代わりに汎用レジスタが使われることもあります)

④命令の実行
 解読した命令とアキュムレータに読みだしたデータを使い、ALU(演算装置)で演算します。演算結果はアキュムレータに格納します。

なお、順序は①~④の通りですが、「必ずこのレジスタを使う」「この処理をする」というものでもないため、説明は一例です。

演習問題

実際の試験の過去問を解いてみましょう。

応用情報技術者試験 令和元年秋期 午前問9 問題

IPA 応用情報技術者試験(AP) 問題より

問9 CPUのプログラムレジスタ(プログラムカウンタ)の役割はどれか。

選択肢
ア 演算を行うために、メモリから読み出したデータを保持する。
イ 条件付き分岐命令を実行するために、演算結果の状態を保持する。
ウ 命令のデコードを行うために、メモリから読み出した命令を保持する。
エ 命令を読み出すために、次の命令が格納されたアドレスを保持する。

応用情報技術者試験 令和元年秋期 午前問9 解答

CPUのプログラムレジスタ(プログラムカウンタ)とは、次に実行する命令のアドレス(場所)を格納する役割です。プログラムレジスタを見て、どの命令を実行するか判断します。

ア 演算を行うために、メモリから読み出したデータを保持する。
 →汎用レジスタの役割です。

イ 条件付き分岐命令を実行するために、演算結果の状態を保持する。
 →アキュムレータの役割です。

ウ 命令のデコードを行うために、メモリから読み出した命令を保持する。
 →命令レジスタの役割です。

エ 命令を読み出すために、次の命令が格納されたアドレスを保持する。
 →プログラムレジスタの役割です。

以上から、答えは「エ」となります。

CPUのレジスタとコンピュータの命令実行の流れの解説は以上です。

こちらに応用情報技術者試験の問題について、
解説を掲載していますので、良かったらご覧ください。
当ブログ「応用情報技術者解答解説」まとめページはこちら

今回の記事が何かの参考になれば幸いです。来訪ありがとうございました♪