レジスタの解説(基本情報技術者シラバス用語)

目次

レジスタとは

レジスタとは、コンピュータの頭脳であるCPU(中央処理装置)の内部に設けられた、ごく少量のデータを一時的に保管するための超高速な記憶領域のことです。CPUはデータを処理する際、データを主記憶装置(メインメモリ)から読み込みますが、メインメモリとのデータのやり取りには時間がかかります。そこで、現在計算している最中のデータや、次に実行する命令のアドレスなどをCPUのすぐ近くにあるレジスタに置いておくことで、極めて高速に計算処理を行うことができます。レジスタにはいくつかの種類があり、次に実行する命令の場所を指し示す「プログラムカウンタ」や、現在実行中の命令そのものを格納する「命令レジスタ」などがあります。

具体例

料理に例えると、主記憶装置(メインメモリ)は食材が保管されている「冷蔵庫」であり、レジスタはまな板のすぐ横にある「調味料入れや一時的な小皿」です。料理をする(計算する)際、いちいち冷蔵庫(メインメモリ)へ食材を取りに行くよりも、手元の小皿(レジスタ)に置いておいたほうが素早く調理を進められます。プログラムの動作イメージとしては、CPUが以下のように計算を行う際にレジスタが使われます。

// 処理の内部的なイメージ(CPUの動作)
// 1. メモリからレジスタAに数値5を読み込む
// 2. レジスタAの値に3を足す(結果の8がレジスタAに保存される)
// 3. レジスタAの値をメモリに書き戻す

もう少し詳しく

コンピュータの階層的な記憶システムにおいて、レジスタは最も頂点に位置する超高速かつ極小容量の記憶装置です。レジスタはCPUの回路の内部に直接組み込まれており、CPUの動作クロックと完全に同期してデータを読み書きできるため、主記憶装置(メインメモリ)やキャッシュメモリと比較しても桁違いの速度でアクセスすることが可能です。しかしながら、その容量は非常に小さく、数バイトから数十バイト程度しかデータを保持することができません。

CPUがプログラムを実行する際の一連の流れ(命令サイクル)は、「命令のフェッチ(取り出し)」、「デコード(解読)」、「オペランド(対象データ)の読み込み」、「実行」、そして「結果の書き込み」というステップで構成されますが、これらのすべてのステップにおいて多様な専用レジスタが連携して働いています。

  • プログラムカウンタ (PC):CPUが次に実行すべき命令が格納されている、主記憶装置上のアドレス(場所)を記憶しておくレジスタです。命令を一つ読み込むごとに自動的に値が増加し、次の命令を指し示すように働きます。
  • 命令レジスタ (IR):主記憶装置から読み込まれた命令そのものを、解読(デコード)するために一時的に保持しておくレジスタです。
  • 汎用レジスタ:特定の用途に限定されず、計算途中のデータや一時的なアドレス計算などに自由に使えるレジスタです。
  • アキュムレータ:演算処理の対象となるデータや、演算の最終的な結果を格納するために特化したレジスタです。多くの演算命令はアキュムレータ上のデータに対して行われます。
  • ベースレジスタ / インデックスレジスタ:メモリアドレスの計算において、基準となるアドレスやそこからの相対的なズレ(オフセット)を保持し、効率的なメモリアクセスを実現するために使用されます。
  • フラグレジスタ (ステータスレジスタ):直前の演算結果がゼロであったか、桁あふれ(オーバーフロー)が発生したか、マイナスの値になったかといった、CPUの現在の状態をビット単位のフラグとして記憶するレジスタです。条件分岐の際に参照されます。

このように、各種レジスタが役割分担をしながら情報をリレーすることで、CPUは複雑なプログラムを高速かつ正確に処理していくことができるのです。

試験でのポイント

情報処理技術者試験では、各種レジスタの名称とその役割を正しく結びつける問題が頻出です。特に出題頻度が高いのは「プログラムカウンタ(次に実行する命令のアドレスを保持)」と「命令レジスタ(実行中の命令そのものを保持)」の違いです。この二つを混同させるような選択肢がよく作られるため、「アドレス(場所)」を指すのか、「命令(中身)」を保持するのかを明確に区別して覚えておくことが重要です。

また、フラグレジスタ(ステータスレジスタ)の役割についても問われることがあります。「演算結果が負になったか、ゼロになったか、桁あふれしたかを保持し、条件分岐命令の判定に使われる」という性質を問う問題がよく出ます。さらに、記憶階層の問題として、「レジスタ、キャッシュメモリ、主記憶装置、補助記憶装置」をアクセス速度の速い順、または容量の大きい順に並べ替えさせる問題も定番です。速度はレジスタが最速であり、容量は最も小さいという位置づけを確実に押さえておきましょう。

関連する用語

レジスタと密接に関連する用語として、CPUの負担を減らすためにレジスタと主記憶装置の間に配置される高速なキャッシュメモリや、次に実行する命令の場所を示すプログラムカウンタ、演算結果の状態を保持するフラグレジスタなどが挙げられます。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ