リプレイシステムは、 Intel Pentium 4プロセッサ内のサブシステムです。[1] その主な機能は、プロセッサのスケジューラによって誤って実行のために送信された操作をキャッチすることです。リプレイシステムによってキャッチされた操作は、適切な実行に必要な条件が満たされるまでループで再実行されます。[2]
概要
リプレイ システムは、インテルがクロック速度の向上を追求した結果生まれたものです。クロック速度が速くなると、非常に長いパイプライン( Prescottコアでは最大 31 ステージ) が必要になります。このため、Prescott コアではスケジューラと実行ユニットの間に 6 つのステージがあります。許容できるパフォーマンスを維持するために、インテルのエンジニアはスケジューラを非常に楽観的に設計する必要がありました。[2]
Pentium 4 プロセッサのスケジューラは非常に積極的であるため、正常に実行される保証がない操作を実行に送ります (特に、スケジューラはすべてのデータがレベル 1 の「トレース キャッシュ」CPU キャッシュにあると想定します)。実行が失敗する最も一般的な理由は、必要なデータが利用できないことです。これは、キャッシュ ミスが原因である可能性が最も高いです。これが発生すると、再生システムはスケジューラに停止を通知し、失敗した一連の依存操作を正常に完了するまで繰り返し実行します。[2] [3]
パフォーマンスに関する考慮事項
当然のことながら、場合によっては、リプレイ システムがパフォーマンスに非常に悪い影響を与えることがあります。通常の状況では、Pentium 4 の実行ユニットは、約 33% の時間使用されています。リプレイ システムが呼び出されると、ほぼすべての利用可能なサイクルで実行ユニットが占有されます。これは、ますます重要なアーキテクチャ設計指標である電力を浪費しますが、実行ユニットはアイドル状態のままであるため、パフォーマンスの低下は発生しません。ただし、ハイパースレッディングが使用されている場合、リプレイ システムは他のスレッドが実行ユニットを使用できないようにします。これが、ハイパースレッディングに関するパフォーマンス低下の真の原因です。Prescott では、Pentium 4 にリプレイ キューが追加され、リプレイ システムが実行ユニットを占有する時間が短縮されました。[2]
各スレッドが異なるタイプの操作を処理している場合、再生システムは干渉せず、パフォーマンスの向上が見られることがあります。これが、ハイパースレッディングのパフォーマンスがアプリケーションに依存する理由です。[2]
参照
参考文献
- ^ Carmean, Doug (2002 年春)。「Intel® Pentium® 4 プロセッサ」(PDF)。
- ^ abcde リプレイ: NetBurst コアの知られざる機能 (2005-06-06)。「リプレイ: NetBurst コアの知られざる機能」X-bit labs。2014-04-08 にオリジナルからアーカイブ。2014-04-07に取得。
- ^ González, Antonio; Latorre, Fernando; Magklis, Grigorios (2010)。プロセッサマイクロアーキテクチャ:実装の観点。Morgan & Claypool Publishers。p. 68。ISBN 978-1-60845-452-5。
