問題
割込み処理の終了後に割込みによって中断された処理を割り込まれた場所から再開するために,割込み発生時にプロセッサが保存するものはどれか。
- ア:インデックスレジスタ
- イ:データレジスタ
- ウ:プログラムカウンタ
- エ:命令レジスタ
基本情報技術者平成30年秋期 午前問10
問題
基本情報技術者試験や応用情報技術者試験で出題されるプロセッサとレジスタの問題。レジスタの種類と役割を理解していればそこまで難しい問題ではありませんが、理解していないと難しく感じる問題です。
本記事では、プロセッサとレジスタについて図解で分かりやすく解説していきます。
本記事で学べること
- プロセッサ内部にあるレジスタのついて理解する
- レジスタの種類とその役割を覚える
- 基本情報技術者試験の過去問の解き方を学ぶ
目次
レジスタとは
レジスタ(英:register)とは、CPU(プロセッサ)内部にある記憶装置のことです。容量は小さいが高速に読み書きできるのが特徴です。
レジスタの役割
CPU(プロセッサ)は、次のような流れで命令を処理します。命令を取り出して解読、解読した結果から対象データを読み出して実行という流れです。
段階 | 処理内容 |
1 | 命令の取り出し(命令フェッチ) |
2 | 命令の解読(デコード) |
3 | 対象データの読み出し(オペランドの読み出し) |
4 | 命令の実行 |
5 | 結果の書き込み |
このとき「取り出した命令の情報」や「次はどの命令を取り出せばよいかの情報」を覚えておく必要があります。この役割を果たすのがCPU(プロセッサ)内部にあるレジスタです。
スポンサーリンク
レジスタの種類
レジスタには次のような種類があります。
名称 | 説明 |
命令レジスタ | 取り出した命令を一時的に記憶しておくためのレジスタ |
プログラムカウンタ | 次に実行すべき命令のアドレス(メモリ上の番地)を記憶しておくためのレジスタ |
ベースレジスタ | プログラムをメモリ上にロードした時の先頭のアドレス(メモリ上の番地)を記憶しておくためのレジスタ。ベースレジスタを使うことで、プログラムがメモリ上のどの位置にロードされても、命令を変えることなく実行できる |
インデックスレジスタ | 連続したデータの取り出しに使うためのレジスタ。配列などの連続したデータに繰り返し同じ命令を適用する場合に使用する |
アキュムレータ | 演算結果を一時的に記憶しておくためのレジスタ |
汎用レジスタ | 特に役割を限定していないレジスタ。状況に応じて様々な用途に用いることができる |
命令レジスタとプログラムカウンタ
CPU(プロセッサ)が命令を取り出すときに使用するのが、プログラムカウンタです。プログラムカウンタと呼ばれるレジスタを参照しメモリ上から命令を取り出します。
そして、プログラムカウンタを参照してメモリから取り出した命令は、命令レジスタと呼ばれるレジスタに記憶します。
命令を取り出した後は、次の命令に備えてプログラムカウンタの値を加算します。(今回の命令が1002、次の命令が1003の場合は、プログラムカウンタに+1して1003とする)
基本情報技術者試験 過去問の解説
スポンサーリンク
基本情報技術者平成30年秋期 午前問10
問題
割込み処理の終了後に割込みによって中断された処理を割り込まれた場所から再開するために,割込み発生時にプロセッサが保存するものはどれか。
- ア:インデックスレジスタ
- イ:データレジスタ
- ウ:プログラムカウンタ
- エ:命令レジスタ
基本情報技術者平成30年秋期 午前問10
割込みは、すぐに対処しなくてはならない優先度の高い事案が発生したときに、実行中のプログラムを中断する仕組みです。実行中のプログラムを中断して割込み処理を優先します。
割込み処理の終了後に、中断したプログラムを再開するには、中断したプログラムのアドレスを保持しておく必要があります。
解答のア~エの中で、次に実行すべき命令のアドレスを保持するレジスタはどれか確認します。
ア:インデックスレジスタ
→ 配列などの連続したデータの取り出しに使うためのレジスタなので不正解
イ:データレジスタ
→ 演算結果やデータを一時的に記憶しておくレジスタなので不正解
ウ:プログラムカウンタ
→ 次に実行すべき命令のアドレスを記憶しておくためのレジスタなので正解
エ:命令レジスタ
→ 取り出した命令を一時的に記憶しておくためのレジスタなので不正解
基本情報技術者平成30年春期 午前問9
問題
設問の図はメモリ(主記憶)から命令を取り出して(命令フェッチ)CPU(プロセッサ)内部にある「a」に記憶し、命令の解読(命令デコード)を行うまでの流れを表しています。
解答のア~エの中で取り出した命令を記憶しておくレジスタはどれか確認します。
ア:アキュムレータ
→ 演算結果を一時的に記憶しておくためのレジスタなので不正解
イ:データキャッシュ
→ データキャッシュはキャッシュメモリの1つで、キャッシュメモリはプロセッサ外部の装置なので不正解
ウ:プログラムレジスタ(プログラムカウンタ)
→ 次に実行すべき命令のアドレスを記憶しておくためのレジスタなので不正解
エ:命令レジスタ
→ 取り出した命令を一時的に記憶しておくためのレジスタなので正解