Table of Contents
指示レベルの並列性(ILP)は、現代のCPUの性能を向上させる重要な要因です。 これにより、複数の指示を同時に実行し、スループットを最大化することができます。 ILPの分析と改善は、プロセッサのアーキテクチャを理解し、並列実行を制限するボトルネックを特定する必要があります。
指示レベルの並列分析
ILP を分析するために、パフォーマンス カウンターやプロファイリング ソフトウェアなどのツールが使用されます。これらのツールは、指示スループット、パイプライン スタッズ、キャッシュ ミスなどのメトリックを測定します。これらのメトリックのパターンを特定すると、並列化が制限される段階をピンポイントするのに役立ちます。
説明の依存性を調べることは重要です。 読み書き(RAW)などのデータハザードは、並列で実行する指示を防ぐことができます。 危険性を制御し、ブランチの指示からステミングし、また、屋台を導入することによってILPに影響を与えます。
ILPを改善する戦略
いくつかの技術は、現代のCPUでILPを強化することができます。 注文外実行では、依存関係によって引き起こされる屋台を減らすために、指示が利用可能なリソースとして処理されることを可能にします。 分岐実行は、パイプラインが埋め込まれている保つためにブランチの結果を予測します。
コンパイル最適化もロールを再生します。 指示を並べ替え、依存関係を最小限に抑え、ループをアンロールすることで、並列性が向上します。 ハードウェア機能 レジスタの名前変更などのヘルプは、偽の依存関係を排除し、さらに ILP を改善します。
最適化のための重要な技術
- ]指示の並べ替え:[ 危険物の軽減のための指示を並べ替え。
- ]Loop Unrolling:[]] より平行な指示を露出するためにループを拡大します。
- [ 再命名:] を登録すると、追加のレジスタを使用して、虚偽の依存関係を回避できます。
- []ブランチ予測:[ブランチの結果を予測して、屋台を最小限に抑えます。
- [] アウト・オブ・オーダー・実行:[[ リソースとして指示を実行できます。