CPUの命令実行手順 上

前回は、CPUの命令実行手順と、レジスタの概要についてまとめました。

これから、命令実行のプロセスをもう少し具体的に見ていきたいと思います。今回は、命令の取り出しから解読までの流れをまとめていきます。

その1 命令の取り出し

命令の実行で最初に行われるのは命令の取り出しです。命令の取り出し作業は、フェッチとも呼ばれます

*フェッチ(fetch): 動詞  【意味】 取ってくる、呼んでくる

この作業では、命令レジスタとプログラムカウンタが役割を担います。

プログラムカウンタ内には、取り出す命令が格納されているメモリのアドレスが入っています。

なので、プログラムカウンタが保持するアドレスを参照して命令を取り出し、それを命令レジスタに記憶させます。

命令レジスタへの格納が終わったら、プログラムカウンタの値を1つ増加させます。これで、命令の取り出し作業が完了しました。

その2 命令の解読

処理する命令がどれかわかれば、次はその命令の中身を解読する作業に移ります。この作業では、命令レジスタと命令デコーダが役割を担います。

命令レジスタに格納した命令は、命令部とオペランド部に分かれています。命令部には、実行したい命令の種類を示すコードが格納されています。オペランド部には、処理の対象となるデータのアドレスなどが入っています。

*オペランド(operand): 【意味】被演算数。演算における値や変数のこと。

命令デコーダが解読するのは、命令部の中身(具体的な)命令です。そして、命令に応じて、必要な機器に制御信号を送ります。

例えば、命令が演算だった場合は、ALU(上図参照)に制御信号を送ります。

まとめ

単に命令といっても、いろんな情報が含まれているんですね。

確かにどのデータを使って処理するとかの情報も含めてあげないと、CPU的には困っちゃいますもんね(;^_^A

次回はCPUの命令実行手順のうち、オペランドの読み出しと実行の部分にフォーカスしていこうと思います!

ではでは👋