takumiblog

新人エンジニアの技術ブログ

CPUの命令実行手順について

はじめに

今回は、基本情報技術書の「CPUが命令(プログラム)に指示を受けてから実行するまでの手順について」学習したのでその内容についてまとめていきたいと思います!

まずは、CPUの実行手順を知る前にノイマン型コンピューターについて少し触れていきます。

※そもそもCPUって?と思う方は、下記の記事で説明しているのでそちらをご覧ください。

ノイマン型コンピュータとアドレスについて

ノイマン型コンピュータとは

現代のコンピュータのほとんどはノイマン型コンピュータになっていて、下記の手順で命令を実行するコンピュータのことを言います!

  1. 補助記憶装置に入っているプログラムを主記憶装置にいったん移す(読み込ませることを「ロードする」と言います)
  2. CPUが主記憶装置に入ったプログラムの内容をひとつずつ取り出して実行していくこと

主記憶装置のアドレスとは

主記憶装置には様々なデータが入っています。

正確に欲しいデータを取り出すために、決められた番号が割り振られている。それをアドレスという。

CPUの命令実行手順とレジスタについて

では、CPUが命令を受けてから、実行するまでの手順を解説していきたいのですが、その前にレジスタについて理解した方がよりわかりやすいので先に解説していきます!

レジスタとは

CPUが解読して実行した情報をCPU内部に記憶することのできる記憶装置のこと。

要するに、CPU内部にも少しのデータを記憶できる記憶装置があるってことです!

レジスタの種類と役割

[table id=1 /]

CPUの命令実行手順

では、実際命令がきてから実行されるまでの手順を解説していきます!

①主記憶装置から命令を一個取り出す(フェッチ)

取り出すべき命令を取り出し、それを記憶する!

使うレジスタと使われる順番

❶プログラムカウンター

取り出すべき命令を知っている。

❷命令レジスタ

プログラムカウンターが示すアドレスを取得し、その命令を記憶する。

②命令の解読

命令の解読を行い、その命令のデータに適した装置に情報を飛ばす!

使うレジスタと使われる順番

❶命令レジスタ

取り出した命令が記憶されています。

命令レジスタは、「命令部」と「オペランド部」に分かれていて…

命令部=実行する命令のコード番号が記憶されている

オペランド部=実行する命令のメモリアドレスが記憶されている

※メモリアドレス=コード番号の対象データの位置を示した番地

❷命令デコーダ

命令デコーダ=命令レジスタに入っているコード番号を解読して、適切な装置に飛ばすことができるもの

(例)演算が必要な命令だったら演算装置に飛ばす

③解読したデータ(オペランド)のアドレスを読み出し

解読したデータを読み出して、記憶する!

使うレジスタと使われる順番

❶命令レジスタ

オペランド部のメモリアドレス(対象データ)を取り出す

❷汎用レジスタ

❶で取り出した対象データを記憶する

④実行

実行する!

使うレジスタと使われる順番

❶汎用レジスタ

対象データを取り出す

❷演算装置等のデータに適した装置

❶汎用レジスタから取り出された内容に適した装置にデータがいき、実行させる。

④の実行が終わったらまた、①命令の取り出しに戻り、この一連の作業が繰り返される仕組みになっています!

まとめ

ノイマン型コンピュータ=補助記憶装置から記憶装置にデータを移し、一つずつ実行していく仕組みのコンピュータのこと

・命令実行手順=「命令の取り出し」→「命令の解読」→「命令の読み出し」→「実行」

以上、CPUが命令を実行するまでの手順についての解説でした。

最後まで読んでいただきありがとうございました!