リタイアした命令は、実行を完了した命令数を示す重要なハードウェア・パフォーマンス・イベントです。
現代のプロセッサーは、プログラムフローが必要とするよりも多くの命令を実行します。これは、投機的実行 (speculative execution) と呼ばれます。プログラムの実行フローで実際に必要であったと「証明された」命令は、「リタイア」します。
コアのアウトオブオーダー・パイプラインのリタイアユニットの命令は、最終的に実行され、その結果が正しいもので、インオーダーで実行されたかのようにアーキテクチャー状態で見えます。
リタイアと可視レジスターへの状態のライトバックは、正しい実行パス上の命令とマイクロオペレーションに対してのみ行われます。誤って予測されたパスの命令とマイクロオペレーションは、予測ミスが特定されるとフラッシュされ、正しいパスが続行されます。正しい実行パスの命令のリタイアは、次の 2 つの条件を満たす場合に行われます。
命令に関連するマイクロオペレーションが完了して命令全体のリタイアが可能な場合、または非常に多くのマイクロオペレーションで構成される命令ではリタイアウィンドウが一杯になった場合。
正しく予測されたパス上の先行する命令と関連するマイクロオペレーションがリタイア済みの場合。
インテル® VTune™ プロファイラーは、サンプリング・モードのパフォーマンス・モニタリング・カウンター (PMC) として知られるハードウェア・イベントベース・サンプリング (EBS) に基づくすべての解析タイプのリタイアした命令イベントをモニターします。命令リタイアイベントは、アプリケーションの実行に影響するレイテンシー量を示す リタイアした命令あたりのクロック数 (CPI) 基本メトリックの一部でもあります。
パフォーマンス解析では、OOO パイプラインで実行を開始した命令数 (ISSUED カウンター、または EXECUTED カウンター) をチェックし、リタイアした命令数と比較します。比較の差が大きい場合、CPU は不必要なワークを実行し、電力を浪費していることを示します。