IA-32 インテル ®
2.2. 主な技術的進化の詳細
2.2.2. Intel NetBurst ® マイクロアーキテクチャ
Intel NetBurst
®マイクロアーキテクチャには、次の機能がある。・
高速実行エンジン- プロセッサの2倍の周波数で動作する算術論理ユニット(ALU)
- プロセッサの1/2のクロック間隔で基本整数演算を実行
- スループットの向上と実行レイテンシの削減
・
ハイパー・パイプライン・テクノロジ- 深いパイプラインにより、デスクトップ PC およびサーバ用として業界トップレベ ルのクロック・レートを実現
- 余裕のある周波数とスケーラビリティにより、将来もリーダーシップを維持
・
高度なダイナミック・エグゼキューション- 深いアウトオブオーダーのスペキュレーティブ実行エンジン
・
最大126個の命令を段階的に処理・
パイプライン内で最大48のロードと24のストアを処理2- 拡張された分岐予測機能
IA-32インテル® アーキテクチャの概説
2
・
パイプライン段数の増加による分岐の予測ミスのペナルティを軽減・
高度な分岐予測アルゴリズム・
4K エントリの分岐ターゲット配列・
新しいキャッシュ・サブシステム- 1次キャッシュ
・
高度な実行トレース・キャッシュにより、デコード済みの命令を格納・
実行トレース・キャッシュにより、メイン実行ループからデコーダのレイテン シを除去・
実行トレース・キャッシュにより、プログラムの実行フローのパスを1つのラ インに統合・
レイテンシが小さいデータ・キャッシュ- 2次キャッシュ
・
フルスピードのユニファイド 8 ウェイ 2 次オンダイ・アドバンスト・トランス ファ・キャッシュ・
プロセッサの周波数と共に帯域幅とパフォーマンスを向上・ Intel NetBurst マイクロアーキテクチャ・システム・バスに対する高性能クワッド
ポンプ型バス・インターフェイス
- クワッドポンプ型のスケーラブルなバスクロックにより、実効速度を最大4倍に向 上
- 最大3.2~6.4GB/秒の帯域幅を実現
・
スーパースケーラ構造により並列処理が可能・
ハードウェア・レジスタを拡張してレジスタ名変更機能を追加し、レジスタ名空 間の制限を解消・ 64
バイトのキャッシュ・ライン・サイズ(最大2
ライン/
セクタのデータを転送)2. 90nm プロセスのIntel NetBurst マイクロアーキテクチャに基づく IA-32 プロセッサは、24個のストアを処理 できる。
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル 上巻:基本アーキテクチャ
2-10
図
2-2.
は、Intel NetBurst
マイクロアーキテクチャの概要を示している。このマイクロ アーキテクチャ・パイプラインは、次の3
つの部分で構成される。(1
)フロントエン ド・パイプ・ライン、(2
)アウトオブオーダー実行コア、(3
)リタイアメント・ユニット。2.2.2.1. フロントエンド・パイプライン
フロントエンドは、命令をプログラムの順序でアウトオブオーダー・コアに供給する 部分である。フロントエンドは、以下の機能を行う。
・
実行されそうな命令をプリフェッチする・
まだプリフェッチされていない命令をフェッチする・ IA-32
命令をデコードし、マイクロオペレーションに変換する・
複雑な命令と特殊目的コード用のマイクロコードを生成する・
デコードされた命令を実行トレース・キャッシュから取り出す・
積極的に分岐予測を実行する図2-2. Intel NetBurst® マイクロアーキテクチャ フェッチ/
デコード
トレース・
キャッシュ マイクロコード
ROM
実行 アウトオブ オーダー・コア
リタイアメント L1キャッシュ
4ウェイ L2キャッシュ
8ウェイ
BTB/分岐予測 バスユニット システムバス
使用頻度の高いバス 使用頻度の低いバス
フロントエンド L3キャッシュ
オプション
分岐履歴の更新
OM16521
IA-32インテル® アーキテクチャの概説
2
パイプラインは、パイプライン型高速マイクロプロセッサの一般的な問題に対処する ように設計されている。特に、次の
2
つの問題は、遅延の主な原因となる。・
ターゲットからフェッチされた命令のデコードに時間がかかる。・
分岐または分岐ターゲットがキャッシュ・ラインの中間にあるために、デコード 帯域幅が浪費される。パイプラインのトレース・キャッシュの操作によって、これらの問題に対処できる。
命令は、トランスレーション・エンジン(フェッチ
/
デコード・ロジックの一部)に よって絶えずフェッチされてデコードされ、トレースと呼ばれる一連のμops
に変換 される。常に、複数のトレース(プリフェチされた分岐で表される)が、トレース・キャッシュに格納される。アクティブ分岐に後続する命令が、トレース・キャッシュ 内で検索される。見つかった命令もプリフェチされた分岐内の最初の命令である場合 は、メモリ階層からの命令のフェッチとデコードは中止され、そのプリフェチされた 分岐が命令の新しいソースになる(図
2-2.を参照)
。トレース・キャッシュとトランスレーション・エンジンは、協調する分岐予測ハード ウェアを持つ。分岐ターゲットは、分岐ターゲット・バッファ(
BTB
)を使用して、リニアアドレスに基づいて予測され、できるだけ速やかにフェッチされる。
2.2.2.2. アウトオブオーダー実行コア
アウトオブオーダー実行コアが命令をアウトオブオーダーで実行できる機能は、並列 処理を可能にする主要な要素である。この機能により、ある μ
ops
の処理が遅れる場 合、プロセッサは命令の順序を変更して、他の μops
を先に処理できる。プロセッサ は、複数のバッファを使用して、μops
の流れを円滑にする。実行コアは、並列実行向けに設計されている。このコアは、
1
サイクル当たり最大6
つ の μops をディスパッチできる(この値は、トレース・キャッシュとリタイアメント・セクションの μops 帯域幅を超えていることに注意する)。ほとんどのパイプライン は、1サイクルごとに新しい μops の実行を開始できるため、各パイプラインで複数 の命令を一度に段階的に処理できる。多くの算術論理ユニット(ALU)命令は、1サ イクル当たり
2
つの μop を開始できる。多くの浮動小数点命令は、2サイクルごとに1
つの μop を開始できる。2.2.2.3. リタイヤ
リタイアメント・ユニットは、実行された μop の結果をアウトオブオーダー実行コ アから受け取り、元のプログラムの順序にしたがってアーキテクチャ上の状態が更新 されるように、それらの結果を処理する。
μ
ops
が完了し、結果が書き込まれた時点で、そのμops
はリタイヤされる。1
サイク ル当たり最大3
つのμops
をリタイヤさせることができる。リオーダー・バッファIA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル 上巻:基本アーキテクチャ
2-12
(
ROB
)は、完了したμops
をバッファに入れる、アーキテクチャ・ステートを順序 どおりに更新する、例外の順序を管理するなどの機能を持つ、プロセッサ内のユニッ トである。また、リタイアメント部は、分岐を監視し、更新された分岐ターゲット情報を
BTB
に送信する。次に、BTB
は不要になったプリフェチされたトレースをパージする。