• Không có kết quả nào được tìm thấy

248966-024JA.pdf - Intel

N/A
N/A
Nguyễn Gia Hào

Academic year: 2023

Chia sẻ "248966-024JA.pdf - Intel"

Copied!
788
0
0

Loading.... (view fulltext now)

Văn bản

インテルは、インテル製品の販売または使用に関して、明示的または黙示的保証を行いません。同じテクノロジーをサポートするシステム、チップセット、BIOS、OS が必要です。パフォーマンスは使用するハードウェアとソフトウェアによって異なります。 HTテクノロジーをサポートするプロセッサの情報など、詳しくはhttp://www.intel.co.jp/jp/info/hyperthreading/をご覧ください。

マルチコアとハイパースレッディング・テクノロジー 8-1

64 ビット・モードのコーディング・ガイドライン 9-1

アプリケーションのチューニング

対象領域の分析と特定に役立つツールです。このツールは、インテル® Core™ i7 プロセッサー、インテル® Core™2 Duo プロセッサー、インテル® Core™ Duo プロセッサー、およびインテル® Pentium® 4 プロセッサーで動作します。

本書について

Intel® Atom™ マイクロアーキテクチャを対象としたマイクロアーキテクチャおよびソフトウェア最適化技術。

参考情報

インテル® Pentium® M プロセッサーは、パフォーマンスのバランスをとったエネルギー効率の高いマイクロアーキテクチャを備えています。インテル® Xeon® LV デュアルコア・プロセッサー、インテル® Core™ Solo プロセッサー、およびインテル® Core™ Duo プロセッサーは、改良されたインテル® Pentium® M プロセッサー・マイクロアーキテクチャーを使用しています。インテル® Core™ 2 プロセッサー・ファミリー、インテル® Core™ 2 Extreme プロセッサー・ファミリー、クアッドコア プロセッサー ファミリーのインテル® Core™ 2 プロセッサーおよびインテル® Xeon® プロセッサー シリーズは、エネルギー効率に優れた高性能のインテル プロセッサーです。

インテル ® マイクロアーキテクチャー Sandy Bridge

  • インテル ® マイクロアーキテクチャー Sandy Bridge のパイ プラインの概要
    • レガシー・デコード・パイプライン
    • 分岐予測
    • マイクロオペレーション(µOP)キューおよびループストリーム検出器

レガシーデコードパイプラインによってデコードされた命令キャッシュ c.デコードされた命令キャッシュをウォームアップしています。

図 2-1 に、インテル ® マイクロアーキテクチャー  Sandy Bridge をベースとするプロセッ サー・コアのパイプラインおよび主要構成要素を示す。パイプラインは以下で構成されて いる。
図 2-1 に、インテル ® マイクロアーキテクチャー Sandy Bridge をベースとするプロセッ サー・コアのパイプラインおよび主要構成要素を示す。パイプラインは以下で構成されて いる。

LSD)

リネーマー

マイクロオペレーションのソースと宛先 (μOP) の名前をマイクロアーキテクチャのソースと宛先に変更します。リソースをマイクロオペレーション (μOP) に割り当てます。たとえば、ロード バッファ、セーブ バッファなどです。

スケジューラー

実行後、送信ポートと結果のデータ型に応じて、ライトバック バスに書き戻されます。異なる遅延を伴う同じポート上で送信されるマイクロオペレーション 表 2-3 ディスパッチ ポートと実行スタック。

表 2-3 ディスパッチ・ポートと実行スタック
表 2-3 ディスパッチ・ポートと実行スタック

キャッシュ階層

  • ロード操作とストア操作の概要
  • L1 D キャッシュ
  • リング・インターコネクトとラストレベルキャッシュ

以下の場合、ストレージはロードに転送できません。 次の条件が満たされる場合、ロード操作によってデータのプリフェッチがトリガーされます。

表 2-6 ルックアップ順序とロード・レイテンシー
表 2-6 ルックアップ順序とロード・レイテンシー

インテル ® Core™ マイクロアーキテクチャーと拡張 版インテル ® Core™ マイクロアーキテクチャー

  • フロントエンド
  • インテル ® アドバンスト・メモリー・アクセス
    • データ・プリフェッチ・ロジック
    • メモリー・ディスアンビゲーション
    • ロード
    • ストア

命令フェッチとプリデコード命令キュー 128 ビット命令の実行は、待ち時間が長く、スループットが低くなります。

図 2-2 インテル ®  Core™ マイクロアーキテクチャーのパイプラインの構造Decode
図 2-2 インテル ® Core™ マイクロアーキテクチャーのパイプラインの構造Decode

インテル ® マイクロアーキテクチャー Nehalem

  • マイクロアーキテクチャー・パイプライン
  • キャッシュとメモリー・サブシステム
  • REP 文字列の強化
  • システム・ソフトウェアの強化

命令デコーダは、それぞれ 1 つずつの 3 つのデコーダ ユニットで構成されます。インテル マイクロアーキテクチャ Nehalem は、64 ビット モードでもマクロのマージをサポートするようになり、次の命令シーケンスをサポートします。

図 2-6 インテル ®  マイクロアーキテクチャー Nehalem のパイプラインの構造
図 2-6 インテル ® マイクロアーキテクチャー Nehalem のパイプラインの構造

Intel NetBurst ® マイクロアーキテクチャー

  • 設計目的
  • パイプライン
    • デコーダー
    • 分岐予測
  • 実行コアの詳細
    • 実行ユニットと発行ポート
    • キャッシュ
    • データ・プリフェッチ

実行トレース キャッシュからデコードされた命令を提供するアウトオブオーダー スーパースカラー実行コア。

図 2-5 に、 Intel NetBurst ® マイクロアーキテクチャーのパイプラインに関連する主な機能ブ ロックのダイアグラムを示す。以下の各項では、概要を説明する。
図 2-5 に、 Intel NetBurst ® マイクロアーキテクチャーのパイプラインに関連する主な機能ブ ロックのダイアグラムを示す。以下の各項では、概要を説明する。

インテル ® Pentium ® M プロセッサー・マイクロアー キテクチャー

  • フロントエンド
  • データ・プリフェッチ
  • アウトオブオーダー・コア

アライメント: ストア操作はキャッシュ ラインの境界を越えることはできません。ロード操作のリニア アドレスもストア操作のリニア アドレスと同じである必要があります。

図 2-12 インテル ®  Pentium ®  M プロセッサー・マイクロアーキテクチャー
図 2-12 インテル ® Pentium ® M プロセッサー・マイクロアーキテクチャー

インテル ® Core™ Solo プロセッサーとインテル ® Core™ Duo プロセッサーのマイクロアーキテク

  • マイクロアーキテクチャー・パイプライン、HT テクノロジー
  • 実行コア
  • リタイアメント

アーキテクチャの状態は論理プロセッサごとに複製されます。アーキテクチャ ロジック プロセッサは、次の理由によりパイプライン ステージを利用できない場合があります。

図 2-13 SMP 上のハイパースレッディング・テクノロジー
図 2-13 SMP 上のハイパースレッディング・テクノロジー

マルチコア・プロセッサー

  • マイクロアーキテクチャー・パイプラインとマルチコア・プ ロセッサー
  • インテル ® Core™ Duo プロセッサーの共有キャッシュ

インテル® Core™ Duo プロセッサーには、L2 キャッシュと単一のバス インターフェイスが備わっています。 Core™ Duo プロセッサの 2 つのコアで実行される 2 つのスレッドは、L2 キャッシュを共有します。

図 2-14 インテル ®  Pentium ®  D プロセッサー、インテル ®  Pentium ®  プロセッサー エクスト リーム・エディション、  インテル ®  Core™ Duo プロセッサー、インテル ®  Core™ 2  Duo プロセッサー、インテル ®  Core™ 2 Quad プロセッサー
図 2-14 インテル ® Pentium ® D プロセッサー、インテル ® Pentium ® プロセッサー エクスト リーム・エディション、 インテル ® Core™ Duo プロセッサー、インテル ® Core™ 2 Duo プロセッサー、インテル ® Core™ 2 Quad プロセッサー

インテル ® 64 アーキテクチャー

新しいキャッシュ ライン用のスペースを確保するために、変更されたキャッシュ ラインを削除する必要がある場合があります。変更されたキャッシュ ラインは、新しいデータのフェッチと並行して削除されるため、追加の遅延は必要ありません。ただし、データがメモリに書き戻されるとき、ドレインにはキャッシュ帯域幅とバス帯域幅が使用されます。変更されたキャッシュ ラインが短期間に削除されるようなキャッシュ ミスが複数回発生した場合、全体的なキャッシュ ミスの応答時間は低下します。所有権の読み取りは、完了としてマークされる前に完了する必要があります。所有権の読み取りとデータ ストアは命令のリタイア後に発生し、リタイアの順序に従います。 Busbutik のレイテンシは、実際のショップの指示には影響しません。ただし、一部の順次ストアでは待ち時間が蓄積し、パフォーマンスに影響を与える可能性があります。

SIMD 技術

  • SIMD テクノロジーのまとめ
    • インテル ® MMX ® テクノロジー
    • ストリーミング SIMD 拡張命令
    • ストリーミング SIMD 拡張命令 2
    • ストリーミング SIMD 拡張命令 3
    • ストリーミング SIMD 拡張命令 3 補足命令
    • SSE4.1
    • SSE4.2

パッケージ化された混合を簡素化するための 6 つの指示。 AES キー スケジュールの生成手順をサポートする 2 つの命令が含まれています。

図 2-16 SIMD 命令のレジスターの利用
図 2-16 SIMD 命令のレジスターの利用

AVX)

パフォーマンス・ツール

  • インテル ® C++ コンパイラーとインテル ® Fortran コンパイ ラー
  • インテル ® VTune™ パフォーマンス・アナライザー

プロファイル駆動最適化 (PGO) テクニック コンパイラーの最適化とベクトル化の比率。

プロセッサーの相違

  • スレッディング手法とハードウェア・マルチスレッディン グ・サポート

CPUID 命令が機能シート 4 (キャッシュ パラメーター シート) をサポートしている場合、このシートは、キャッシュ階層の各レベルのレポート パラメーターをキャッシュするインテル® 64 プロセッサー ファミリと IA-32 プロセッサー ファミリ間の上位互換性のある方法です。特定のキャッシュ レベルのパラメーターに依存するエンコードの場合、キャッシュ パラメーターを使用して、エンコード技術が将来の世代のインテル® 64 プロセッサーおよびプロセッサーと互換性があることを確認できます。

コーディング規則、推奨事項、チューニングのヒント

現在および将来の世代のインテル® 64 および IA-32 プロセッサーの場合、ハードウェア マルチスレッドの潜在的なパフォーマンスを最大限に活用するには、アプリケーション設計中にスレッドを使用する必要があります。さらに、マルチスレッド ソフトウェアは、さまざまなコンピュータに対応できるように、ハードウェアのマルチスレッド サポートがなくても、単一のプロセッサ上で適切に動作する必要があります。また、単一の論理プロセッサ上の非スレッド ソフトウェアと同等のパフォーマンスを発揮する必要があります (比較が可能な場合)。一般に、これを実現するには、スレッド同期のオーバーヘッドを最小限に抑えるようにマルチスレッド アプリケーションを設計する必要があります。マルチスレッドの詳細なガイドラインは、第 8 章「マルチコアおよびハイパースレッディング テクノロジ」に記載されています。

フロントエンドの最適化

  • 分岐の排除
  • 静的予測
  • 分岐タイプの選択
  • ループのアンロール
  • レングス変更プリフィクス( LCP )
  • インテル ® マイクロアーキテクチャー Sandy Bridge における LSD マイ クロオペレーション( µOP )拡散帯域幅の活用
  • インテル ® Pentium ® M プロセッサーのデコーダーのスケジューリング規 則

受け入れられない間接分岐を予測します。デコードされた命令キャッシュ モードでの 2 つの分岐。

表 3-1 インテル ®  マイクロアーキテクチャー Sandy Bridge におけるマクロフュージョン
表 3-1 インテル ® マイクロアーキテクチャー Sandy Bridge におけるマクロフュージョン

実行コアの最適化

  • 命令の選択
    • INC 命令と DEC 命令の使用
    • 整数除算
    • LEA 命令の使用
    • インテル ® マイクロアーキテクチャー Sandy Bridge における ADC およ び SBB
    • ビット単位のローテーション
    • アドレス計算
    • 比較
    • NOP の使用
    • SIMD データタイプの混在
    • スピル・スケジューリング
  • 実行コアでのストールの回避
    • 実行ドメイン間のバイパス
    • パーシャル・フラグ・レジスター・ストール
    • 浮動小数点 /SIMD オペランド
    • 代替パック手法

インテル® マイクロアーキテクチャでは、命令のパフォーマンス属性を持つ 1 つの UNPCKHPD 命令のシーケンスを常に使用する必要があります。

図 3-1.  部分的にベクトル化されたコードの一般的なプログラムフロー
図 3-1. 部分的にベクトル化されたコードの一般的なプログラムフロー

メモリーアクセスの最適化

  • インテル ® マイクロアーキテクチャー Sandy Bridge でのロード帯域幅の 利用
  • インテル ® マイクロアーキテクチャー Sandy Bridge における L1D キャッシュ・レイテンシー
  • レジスタースピルの軽減
  • スペキュレーティブ・エグゼキューションとメモリー・ディ スアンビゲーションの拡張

例 3-34 L1D キャッシュ バンクの競合と解決策の例 16 ビット データを整列された 4 バイト ワード内に収まるように整列させます。

図 3-2 に、キャッシュライン境界にまたがるデータ要素にアクセスした状態を示す。
図 3-2 に、キャッシュライン境界にまたがるデータ要素にアクセスした状態を示す。

Hình ảnh

表 C-10 ストリーミング SIMD 拡張の単精度浮動小数点命令 .................................................. C-20
図 2-1 インテル ® マイクロアーキテクチャー  Sandy Bridge のパイプラインの構造
表 2-1 インテル ® マイクロアーキテクチャー  Sandy Bridge のフロントエンドの構成要素
表 2-2 インテル ® マイクロアーキテクチャー  Sandy Bridge の命令キャッシュと ITLB
+7

Tài liệu tham khảo

Tài liệu liên quan

Chúng tôi đã cài đặt thử nghiệm cho thuật toán IMBN_Detection được đề xuất ở trên, bởi ngôn Visual C++ 9.0, với cấu hình máy intel pentium dual core > = 2.0.2GB RAM.