命令実行を理解する

CPUは命令をフェッチし、解読し、必要なオペランドを用意して実行し、結果を保存する。この順序を理解すると、プログラムカウンタ・命令レジスタ・ALUの関係やパイプラインの前提が分かる。

この単元で学ぶこと

  • フェッチの意味と役割を説明できる
  • デコードの意味と役割を説明できる
  • オペランドの意味と役割を説明できる
  • 命令サイクルの各段階と関連レジスタを順序立てて説明できる

本文解説

基本的な命令サイクルはフェッチ、デコード、実行、結果格納として整理できる。実機では段階分けがさらに細かい場合もあるが、FEでは各段階で「何を取得し、誰が解釈し、何を更新するか」を追うことが重要である。

フェッチ プログラムカウンタが示すアドレスから命令を主記憶などから取り出す段階。 取り出した命令は命令レジスタへ渡される。

デコード 取り出した命令の種類やオペランド指定を解読する段階。 制御装置が必要な動作を決める。

オペランド 命令が処理対象とする値や、その値の所在を指定する情報。 レジスタや主記憶上のデータが対象になる。

実行 命令の意味に従って演算・比較・分岐などを行う段階。 必要に応じALUやアドレス計算機構を使う。

結果格納 実行結果をレジスタや主記憶へ書き戻す段階。 命令によってはフラグやプログラムカウンタも更新される。

処理順序問題では「命令を取る前に解読はできない」「解読前に実行内容は決まらない」という依存関係で並べる。分岐命令では通常の次アドレス更新と分岐先への変更を区別する。

PC=100番地を指しているとき、100番地の命令をフェッチして命令レジスタへ格納し、デコード後に実行する。順次実行ならPCは次命令へ進み、分岐成立なら分岐先へ変更される。

図解

命令サイクル
フェッチ、解読、実行、結果格納をレジスタと対応付けて追う。

重要ポイント

  • フェッチ: プログラムカウンタが示すアドレスから命令を主記憶などから取り出す段階。
  • デコード: 取り出した命令の種類やオペランド指定を解読する段階。
  • オペランド: 命令が処理対象とする値や、その値の所在を指定する情報。
  • 実行: 命令の意味に従って演算・比較・分岐などを行う段階。
  • 基本順序はフェッチ→デコード→実行→結果格納。分岐ではPC更新が重要。

間違えやすい点

  • デコード前に命令内容を実行できると考えない。
  • オペランドと命令コードそのものを同じ概念として扱わない。
  • 分岐命令でも必ず次の連続番地へ進むとは限らない。

用語解説

フェッチ
プログラムカウンタが示すアドレスから命令を主記憶などから取り出す段階。
デコード
取り出した命令の種類やオペランド指定を解読する段階。
オペランド
命令が処理対象とする値や、その値の所在を指定する情報。
実行
命令の意味に従って演算・比較・分岐などを行う段階。
結果格納
実行結果をレジスタや主記憶へ書き戻す段階。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。