プロセッサではどのような流れで命令が実行されているのでしょうか?この記事ではプロセッサとメモリがどのように関連して命令を実行していくかを整理してみます。
命令実行までの流れ概要
最初にざっくりした流れの概要を書きます。試験に出題される形で書くので単語としても覚えておきましょう。
1.命令フェッチ(命令の取得)
2.命令デコード(命令の解読)
3.実行(有効)アドレス計算
4.オペランドフェッチ(対象データの読み出し)
5.命令実行
このような流れでプロセッサ内では命令が実行されていくんですね。では具体的にみてみます。
命令フェッチ|命令の取得
プログラムカウンタ(メモリ内にある命令の番地ですね)を確認して主記憶(メモリ)から命令を取り出します。
命令デコード|命令の解読
まずは命令の構成を見てみます。
![](https://www.xn--4grr4jzer0z13b8ydc6hw8c14slx0cfdtdwftp3d.website/wp-content/uploads/2023/12/命令レジスタ.gif)
命令部:実行させたい命令の種類を示すコード番号が入っています。
オペランド部:処理対象となるデータを収めたメモリアドレスなどが入っています。メモリの種類によってはオペランド部がない場合もあります。
そして命令部が命令デコーダへ送られます。
命令デコーダは命令部のコードを解読して担当の装置に制御信号を送り動かします。例えば演算処理の場合はALUに制御信号を送ります。
実行(有効)アドレス計算
次に処理対象のデータを探すためにオペランド部を確認します。そして計算処理をすることで主記憶のアドレスがわかります。
オペランドフェッチ|対象データの読み出し
ここでは実行アドレス計算で出した主記憶のアドレスをもとに対象データを取り出して汎用レジスタに保存します。
命令実行
最後に命令が実行されます。演算処理を例に見てみると、汎用レジスタからデータがALUに渡され、計算し、汎用レジスタに戻します。これで一連の命令実行が完了します。
コメントを残す