命令フェッチ 基本情報

ご覧いただきありがとうございます。
雪ウサギといいます。

今回は、CPUがどのように命令を実行しているかについてまとめてみました。

命令フェッチ 基本情報

  • CPUの動きとレジスタ
  • レジスタの種類と役割
  • CPUの命令実行手順
    • 命令のフェッチ
    • 命令の解読
    • オペランドの読み出し
    • 命令の実行
  • 命令実行の流れ

CPUは、ハードディスクなどの補助記憶装置からメモリ(主記憶装置)に読み込まれた命令を読み込み、実行します。
また、その時にメモリから読み込んだ命令をCPUの内部に保持するのですが、その保持する記憶装置をレジスタといいます。

命令フェッチ 基本情報

レジスタの種類と役割

レジスタの種類と役割について以下のようにまとめてみました。

命令フェッチ 基本情報

CPUの命令実行手順

では、実際にCPUがどのような手順で命令を実行しているのか見ていきましょう。

命令のフェッチ

まず、CPUはメモリ(主記憶装置)に格納されている命令を取り出します(フェッチ)。
その時に、プログラムカウンタに命令が存在するメモリのアドレスを格納されているます。
よって、プログラムカウンタに格納されているアドレスを参照し、そこから取得した命令を命令レジスタに格納します。

命令フェッチ 基本情報

命令の解読

命令を取り出した後は、その命令の解読をおこないます。
取得した命令は、命令の種類を示すコード番号(命令部)と、処理対象となるデータを納めたメモリアドレスなど(オペランド部)に分かれており、
この命令部を「命令デコーダ」に送ります。

命令フェッチ 基本情報

オペランドの読み出し

命令部の次は「オペランド部」の処理です。
処理対象となるデータがメモリのどこに存在するかは、この「オペランド部」を見るとわかるようになっていますので、
そのオペランド部から取得した処理対象のデータを汎用レジスタに格納します。
※オペランド部から対象のデータを取得する方法は次で説明します。

命令フェッチ 基本情報

命令の実行

最後は、③で汎用レジスタに取得した演算データをALUに送ります。
そして、ALUで演算された結果をまた汎用レジスタに格納して終了です。

命令フェッチ 基本情報

命令実行の流れ

全体の流れはこのようになります。
CPUはこの①から④までの処理を繰り返すことで、命令を実行していきます。

命令フェッチ 基本情報

命令フェッチの順番は?

つまり実行順序として適切なものは「命令フェッチ命令の解読→オペランド読出し→命令の実行」です。

3種類の演算命令が合計1,000,000命令実行されるプログラムを,クロック周波数が1GHzのプロセッサで実行するのに必要な時間は何ミリ秒か。?

1,000,000 命令実行しようとすれば、1,000,000命令×2.8CPI=2,800,000サイクル必要で す。 クロック周波数が1GHz のプロセッサは、1秒間に1Gサイクル実行できるので、2,800,000÷ 1,000,000,000=0.0028=2.8ミリ秒必要です。

CPUのデータの流れは?

CPU動作の流れ.
記憶装置に保存された命令を取り出します。( Fetch:フェッチ).
取り出した命令を解読し、命令の内容を特定します。( Decode:デコード).
解読した命令に従って、各装置を制御し、処理を実行します。( Execute:エクスキュート).

現在実行されている命令の次の命令アドレスを示すカウンタを何と言うか?

プログラムカウンタとは、マイクロプロセッサ(MPU/CPU)内部でデータを保持するレジスタの一種で、実行すべき命令が格納されているメモリ上の番地(アドレス)を保存しているもの。