ディープパイプラインCPUは、実行プロセスを多くのステージに分割することにより、指示スループットを増加させます。しかし、この設計は、遅延を引き起こし、パフォーマンスを削減することができるパイプラインハザードを紹介します。これらのハザードを計算し、削減する方法を理解して、CPUの効率性を最適化するために不可欠です。

パイプラインの危険のタイプ

パイプラインの危険物は構造的、データ、および制御危険の3つの主要なタイプに分類されます。 構造的な危険物は、ハードウェアリソースが不足しているときに発生します。 指示が前の指示の結果に依存したときにデータハザードが起こります。 制御ハザードは、実行の流れを変更するブランチの指示に関連しています。

パイプラインの危険物の計算

パイプラインの危険を計算するには、指示シーケンスを分析し、潜在的な競合を特定します。データハザードについては、読み書き(RAW)、書き込み後(WAR)、書き込み後書き込み後書き込み(WAW)などのデータ依存性を調べます。 危険検出アルゴリズムを使用して、競合を解決するために必要なステルや遅延の数を決定します。

危険を減らすための戦略

パイプラインの危険を減らすことはハードウェアとソフトウェア技術を含みます。ハードウェアソリューションには、転送(バイパス)とリソースの可用性を高めることが含まれます。ソフトウェア技術は、依存関係を最小限に抑え、制御の危険を効果的に処理するためのブランチ予測を最小限にするために、指示スケジューリングを含みます。

  • []Forwarding:]]] パイプラインステージ間でデータを直接渡して、スタイルを回避します。
  • []指示書:[データ依存性を減らすための注文指示。
  • ブランチ予測:[ パイプラインフローを維持するためにブランチの結果を推測します。
  • リソースの増加:[]] 構造的な危険を防止するためにハードウェアユニットを追加。