レジスタについて

一言で表すと

メモリから取り出した処理を行う際、必要な命令や値を覚えておくためのCPU内にある記憶装置。 容量は小さいが高速に読み書きができる優秀なやつ。

代表的なレジスタ

プログラムカウンタ

次に実行する命令が入っている「アドレス」を記憶するためのレジスタ

命令レジスタ

プログラムカウンタを参照してメモリから取り出した命令を一時的に記憶するためのレジスタ

インデックスレジスタ

連続したデータの取り出しに使用する「増分値」を記憶しておくためのレジスタ

ベースレジスタ

プログラムをメモリ上にロードした時に「先頭のアドレス」を記憶しておくためのレジスタ

アキュムレータ

演算する時に必要になる「数値・演算結果」を記憶するためのレジスタ

汎用レジスタ

一時的な値の保持や、アキュムレータなどの代用に使ったりするレジスタ。他のレジスタと違い、機能を限定していない。

命令の実行手順について

ざっくり言うと以下の手順で行われる。

  1. 命令を取り出す
  2. 命令を解読する
  3. 命令に必要なデータを呼び出す
  4. 命令実行

1. 命令を取り出す(フェッチ)

Image from Gyazo

2. 命令を解読する

フェッチした命令は二つの要素で出来ている。 Image from Gyazo

  • 命令部: 実行させたい命令の種類を示すコード番号が入っている。
  • オペランド部: 処理対象となるデータのアドレスなどが入っている。

命令部を「命令デコーダ」が解析して、必要な装置(ALU等)に呼び掛ける。

3. 命令に必要なデータを呼び出す

Image from Gyazo

4.命令実行

演算処理だったとすると、ALUで処理を行い結果を巻き戻して終了になる!

関連記事

matazoukun.hatenablog.com