CPU での命令の実行プロセス:
ほぼすべてのノイマン型コンピューター CPU の動作は 5 つの部分に分割できます。ステージ: 命令のフェッチ、デコード命令、命令の実行、データへのアクセス、結果のライトバック。
1.命令フェッチ フェーズ
命令フェッチ (IF) フェーズは、メイン メモリから命令レジスタに命令をフェッチするプロセスです。
プログラム カウンタ PC の値は、メイン メモリ内の現在の命令の位置を示すために使用されます。命令がフェッチされると、PC の値は命令ワード長に従って自動的にインクリメントされます。シングルワード長の命令の場合は (PC) 1àPC、ダブルワード長の命令の場合は、 (PC) 2àPC など。
2.命令デコード フェーズ
命令をフェッチした後、コンピュータはすぐに命令デコード (ID) フェーズに入ります。
命令デコード段階では、命令デコーダが所定の命令フォーマットに従って取得した命令を分割して解釈し、異なる命令カテゴリとオペランドを取得するさまざまな方法を識別して区別します。
組み合わせロジックによって制御されるコンピュータでは、命令デコーダは、異なる命令オペコードに対して異なる制御電位を生成して、異なるマイクロ操作シーケンスを形成します。マイクロプログラムによって制御されるコンピュータでは、命令デコーダは、命令を実行するマイクロプログラムのエントリ ポイントが指定され、このエントリ ポイントから実行が開始されます。
3.実行命令フェーズ
命令フェッチ、命令デコードステージを経て、実行命令(Execute、EX)ステージに入ります。
この段階のタスクは、命令によって指定されたさまざまな操作を完了し、命令の機能を具体的に実装することです。この目的のために、CPU のさまざまな部分が接続され、必要な操作が実行されます。
4.アクセスおよびアクセス フェーズ
命令の要件によっては、メイン メモリにアクセスしてオペランドを読み取る必要があり、アクセスおよびアクセス (メモリ、MEM) フェーズに入ることがあります。
このステージのタスクは、命令アドレス コードに従って、メイン メモリ内のオペランドのアドレスを取得し、演算のためにメイン メモリからオペランドを読み出すことです。
5.結果ライトバックステージ
最後のステージとして、結果ライトバック(Write Back、WB)ステージは、実行命令ステージの実行結果データを何らかの記憶形式に「書き戻す」:
結果データは、後続の命令ですぐにアクセスできるように、CPU の内部レジスタに書き込まれることがよくあります;
場合によっては、結果データは比較的ゆっくりと書き込むこともできますが、メイン メモリのコストが低くなります。より大きな容量で。多くの命令は、プログラム ステータス ワード レジスタ内のフラグ ビットのステータスも変更します。これらのフラグ ビットは、さまざまな演算の結果を識別し、プログラムの動作に影響を与えるために使用できます。
命令が実行され、結果データが書き戻された後、予期しないイベント (結果のオーバーフローなど) が発生しなければ、コンピュータはプログラム カウンタ PC から次の命令アドレスを取得して開始します。新しいサイクル 次の命令サイクルでは、次の命令が順番にフェッチされます。
以上がCPUにおける命令の実行過程の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。