3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

基本情報(CPUの命令実行手順とレジスタ)

Posted at

改めてCPUの意味を調べました。
CPUはCentral Processing Unitの意味で計算処理や制御を行うパソコンの頭脳となる部分です。

CPUの性能が高いほど、処理するスピードが早くなります。
処理する流れは

補助記憶装置から主記憶装置へと読み込まれたプログラム
を以下の流れで取り出し、実行します。

①命令の取り出し
②命令の解読
③対象データの読み出し
④命令実行

CPUが命令を実行するために取り出した情報はレジスタと呼ばれるCPU内部の記憶装置に保持します。

それぞれ詳しく見ていきます。

レジスタの種類と役割

レジスタ言うても、たくさんあるっぽいです。

名称 役割
プログラムカウンタ 次に実行するべき命令が入っているアドレスを記憶するレジスタ
命令レジスタ  取り出した命令を一時的に記憶するためのレジスタ
インデックス(指標)レジスタ アドレス修飾に用いるためのレジスタで、プログラムの先頭アドレスを保持する。
ベースレジスタ アドレス修飾に用いるためのレジスタで、プログラムの先頭アドレスを保持する
アキュムレータ 演算の対象となる数や、演算結果を記憶するレジスタ
汎用レジスタ 特に機能を限定していないレジスタ。一時的な値の保持や、アキュムレータなどの代用に使ったりする。

あるレジスタが別のレジスタを代用したりしているケースもあるため、上の表のレジスタがCPU内部に全てあるわけではないようです。

プログラムもそうですがパソコンも精密にできていますね。
先人が発明したものを、一般化して使用できるってのは非常にありがたいことですね。

命令の手順を深く見ていきます。

①命令の取り出し(フェッチ)

まずは一番最初に命令の取り出し(フェッチ)を行います。

fetchの英語の意味を検索してみると

取ってくる、呼んでくる、(行って)取ってくる、連れてくる、出てこさせる、引き出す、誘い出す、吐く、漏らす、出す

のようです。JavaScriptでFetch APIがありますね。

命令レジスタとプログラムカウンタを使用します。
例えばプログラムカウンタ0004があったとします。

プログラムカウンタ0004を命令レジスタに記憶させます。

取り出し終わったら、次の命令に向けてプログラムカウンタの値を
0004から0005に増加させます。

②命令の解読

命令レジスタに取り出した命令は次の構成でできています。

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

「オペランド」の意味は「オペレート(操作)する対象」という意味の言葉らしいです。

プログラミングでも1+2 の1が左オペランドで2が右オペランドと言いますね。

命令部の中身が命令デコーダへと送られます。
命令デコーダは命令部のコードを解読して、必要な装置に「おい出番だ」と
制御信号を飛ばします。

デコードは「エンコードされたデータを元の形式へ戻すこと」ですね。

③対象データ(オペランド)読み出し

命令が加算などの演算処理とすると、その演算の元となる数値が必要となります。
それが先ほどのオペランド部をみると、ありかがわかるようになっています。

オペランド部を参照して、対象データを読み出し、それを汎用レジスタなどに
記憶させます。

④命令実行

最後に、命令を実行するだけとなります。
汎用レジスタから処理対象のデータを取り出して演算を行います。
演算を行った後に演算結果を書き戻して終了です。

まとめ

覚えるのは大変ですが、細かく見ていくのは重要ですね。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?