CPUの制御ユニットは、IR(命令レジスタ)に保持されている命令をデコードしますが、デコードされた後、CPUはどこに命令を格納しますか?
どこにも?
単純なプロセッサでは、実行される各命令は命令レジスタにロードされます。命令レジスタは、デコード、準備、最終的に実行され、いくつかの手順を実行できます。
(私の強調)
ソース 命令レジスタ-ウィキペディア
各コンピューターのCPUは、異なる命令セットに基づいて異なるサイクルを持つことができますが、次のサイクルと同様になります。
- 命令のフェッチ:次の命令は、現在プログラムカウンタに格納されているメモリアドレスからフェッチされ、命令レジスタに格納されます。フェッチ操作の最後に、PCは次のサイクルで読み取られる次の命令を指します。
- 命令のデコード:このサイクル中に、命令レジスタに存在するエンコードされた命令がデコーダによって解釈されます。
- 実効アドレスの読み取り:メモリ命令(直接または間接)の場合、実行フェーズは次のクロックパルスの間になります。命令に間接アドレスがある場合、実効アドレスがメインメモリから読み取られ、必要なデータがメインメモリからフェッチされて処理され、データレジスタに配置されます(クロックパルス:T3)。命令が直接の場合、このクロックパルスの間は何も行われません。これがI/O命令またはレジスタ命令の場合、動作はクロックパルス中に実行されます。
- 命令の実行:CPUの制御ユニットは、デコードされた情報を一連の制御信号としてCPUの関連する機能ユニットに渡し、レジスタから値を読み取ってALUに渡して実行するなど、命令に必要なアクションを実行します。それらの数学関数または論理関数、および結果をレジスタに書き戻します。 ALUが関係している場合、ALUは条件信号をCUに送り返します。操作によって生成された結果は、メインメモリに保存されるか、出力デバイスに送信されます。 ALUからのフィードバックに基づいて、PCは次の命令がフェッチされる別のアドレスに更新される場合があります。
その後、このサイクルが繰り返されます。
ソース 命令サイクル-ウィキペディア