インテル命令セット・アーキテクチャー拡張

同カテゴリーの次の記事

最適なインテルの並列プロセッサーを選択する方法: プロセッサーのモデルナンバーを理解する

このページは、インテル命令セット・アーキテクチャー拡張に関連する記事の参考訳や参考資料へのリンクをまとめています。

IDZ_isa

はじめに

概要

ツールとダウンロード

  • インテル® Software Development Emulator (Intel® SDE)
    このバージョンには、次のサポートが含まれます:
    • 将来の世代のインテル® プロセッサーで導入される、インテル® AVX-512、インテル® Secure Hash Algorithms Extensions およびインテル® Memory Protection Extensions (インテル® MPX) 命令
    製品概要 (英語) | ダウンロード (英語)
  • インテル® Architecture Code Analyzer
    インテル® Architecture Code Analyzer は、インテル® アドバンスト・ベクトル・エクステンション命令をサポートするプロセッサーが登場する以前に、それらの命令セットを使用したプログラムを迅速に分析することができます。

    製品概要 (英語) | ダウンロード (英語)
  • インテル® C++ コンパイラー
    ライセンスをお持ちの利用者は、インテル® レジストレーション・センターからインテル® C++ コンパイラーをダウンロードすることができます。また、30 日間利用可能な評価版も、無料でダウンロードできます。
  • インテル組込み関数 (イントリンジックス) ガイド
    インテル組込み関数ガイドは、インテル組込み関数命令向けのインタラクティブなリファレンス・ツールです。インテル組込み関数は、多くのインテル® アーキテクチャーの命令へのアクセスを提供する C スタイルの関数が提供され、アセンブリーコードを記述することなく、インテル® ストリーミング SIMD 拡張命令[XX] (インテル® SSE[XX])、インテル® アドバンスト・ベクトル拡張 (インテル® AVX) などを利用できます。
  • gcc コンパイラー
    gcc コンパイラーと glibc は、インテル® AVX、インテル® AVX2、インテル® AVX-512、およびインテル® MPX 命令セットをサポートします。対応バージョンは、GPL ライセンスの元、Intel Software Development Emulator (英語) ページからダウンロードできます。

インテル® AVX

インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX)

コンピューティング性能への必要性は、業界全体で高まり続けています。急増する要求と進化する利用モデルをサポートするため、私たちは今日の製品に実装されるインテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) による技術革新を継続していきます。

インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) は、インテル® ストリーミング SIMD 拡張命令 (インテル® SSE) の新しい 256 ビット命令セットの拡張で、浮動小数点 (FP) 演算を多用するアプリケーション向けに設計されています。インテル® AVX は、2011 年にインテル® マイクロアーキテクチャー (コード名 Sandy Bridge) ファミリーの 1 つの機能として登場し、ノート PC からサーバーまで幅広いプラットフォームで利用されています。インテル® AVX は、より幅の広いベクトル、新しい拡張可能な構文、豊富な機能により、パフォーマンスを向上させます。その結果、画像、オーディオ/ビデオ処理、科学シミュレーション、金融解析、3D モデリングなどの、データ処理および汎用アプリケーションの開発が容易になります。

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512)

将来的に、いくつかの新製品は、512 ビット SIMD サポートにより大きく飛躍します。この新たな機能により、プログラムは、8 つの倍精度と 16 個の単精度浮動小数点値のみならず 8 つの 64 ビットおよび 16 個の 32 ビット整数値を 512 ビット長のベクトルにパックできるようになります。つまり、1 つの命令で AVX/AVX2 が処理できるデータ要素数の 2 倍 (SSE の 4 倍) の処理を行えます。

インテル® AVX-512 命令は、計算集約型のタスクでより高いパフォーマンスを発揮します。また、設計段階でかつてないレベルの豊富な機能を追加することにより、最も高度なコンパイラー・オプションを提供しています。

インテル® AVX-512 には、32 個の 512 ビット幅のレジスターと 8 つの専用マスクレジスターが用意されます。インテル® AVX-512 は、ブロードキャストのサポート、プレディケーションを可能にするマスクの組込み、浮動小数点丸め制御の組込み、浮動小数点フォルトの抑制、スキャッター命令、高速演算命令、そして大きなディスプレースメント値のコンパクト表現などを含む柔軟な命令セットを提供します。

インテル® AVX-512 は、前世代の SIMD 操作の移行に比べ、より高いインテル® AVX との互換性を提供します。インテル® SSE とインテル® AVX の混在には、パフォーマンス上のペナルティーがありましたが、インテル® AVX とインテル® AVX-512 命令の混在は、ペナルティーなしでサポートされます。インテル® AVX のレジスター YMM0 – YMM15 は、インテル® AVX-512 のレジスター ZMM0 – ZMM15 (x86-64 モードでは) にマップされ、インテル® SSE のレジスターがインテル® AVX のレジスターにマップされるのと非常に良く似ています。そのため、インテル® AVX-512 をサポートするプロセッサーでは、インテル® AVX とインテル® AVX2 命令は、最初の 16 個の ZMM レジスターの、下位 128 ビットもしくは 256 ビットで動作します。

インテル® AVX-512 に関するより詳しい情報は、「AVX-512 Instructions (英語) 」のブログでもご覧いただけます。命令セットは、「Intel® Architecture Instruction Set Extensions Programming Reference」に記載されています。このページの「はじめに」タブをご覧ください。

技術資料とブログ

こちら (英語) もご覧ください。

インテル® SGX

インテル® Software Guard Extensions (インテル® SGX)

インテルのビジョン

コンピューティングのワークロードは、今日、各地に分散した異なるチームから提供される膨大なソフトウェア・モジュールによって複雑さが増加しています。オープン・プラットフォーム上でのワークロードの分離は、オペレーティング・システムとアプリケーション間に特権レベルを作成するため保護モード・アーキテクチャーなどにより継続的に取り組まれています。近年のマルウェア攻撃には、特権モードに侵略し、プラットフォーム上のすべてのソフトウェアを制御できるものも現れました。

インテル® Software Guard Extensions (インテル® SGX) は、「逆サンドボックス」メカニズムによって、ソフトウェアのセキュリティーを高めるために設計されたインテル® アーキテクチャー拡張の名称です。このアプローチは、プラットフォーム上のすべてのマルウェアを特定して隔離しようとするより、正当なソフトウェアを堅個に封じ込めて、マルウェアからの攻撃から特権レベルにかかわらず保護しようとします。これは、より洗練されたロックや警告システムが侵入者を検知できるようになるまで、家庭内で貴重品を守るため宅内金庫を設置することに似た、マルウェアからの攻撃からプラットフォームを保護することを補完するでしょう。

はじめに (すべての ISA に共通)

概要

ツールとダウンロード

  • 既存のコンテンツに変更はありません。

技術資料

こちら (英語) もご覧ください。

インテル® MPX

インテル® Memory Protection Extensions (インテル® MPX)

コンピューター・システムは、高度な悪意ある攻撃に直面していますが、その一般的な傾向の一つとして、ソフトウェアにおけるバッファー・オーバーラン (またはアンダーフロー) を利用するものがあります。

インテル® Memory Protection Extensions (インテル® MPX) は、ソフトウェアの堅牢性を高めるために設計されたインテル® アーキテクチャー拡張の名称です。インテル® MPX は、コンパイル時に意図されているメモリー参照が、実行時に危険にならないよう、コンパイラーの変更と併せて利用できるハードウェア機能を提供します。インテル® MPX の最も重要な 2 つの目標は、新たにコンパイルされるコードのために低オーバーヘッドでこの機能を提供することと、従来のソフトウェア・コンポーネントとの互換性メカニズムを提供することです。インテル® MPX は、将来のインテル® プロセッサーで利用可能となります。

技術資料とブログ

こちら (英語) もご覧ください。

インテル® SHA

インテル® Secure Hash Algorithm Extensions (インテル® SHA)

セキュア・ハッシュ・アルゴリズム (SHA) は、最も良く利用される暗号化アルゴリズムの 1 つです。SHA の主な用途には、データの整合性、メッセージ認証、デジタル署名、およびデータ重複除外があります。セキュリティー・ソリューションをこれまで以上に広く利用すると、SHA は多くのアプリケーションで使用されるようになります。インテル® SHA 拡張は、インテル® アーキテクチャー・ベースのプロセッサー上で、これらの計算集約的なアルゴリズムの性能を改善するよう設計されています。

インテル® SHA 拡張は、7 つのインテル® ストリーミング SIMD 拡張 (インテル® SSE) ファミリー・ベースの命令とともに使用して、インテル® アーキテクチャー・ベースのプロセッサー上で SHA-1 および SHA-2 のパフォーマンスを向上できます。日々コンピューティング・デバイスにおいて SHA の重要性が高まることを考慮すし、この新しい命令は、シングルバッファーのデータに対するハッシュ性能の向上を支援するように設計されています。パフォーマンス上の利点は、特定のアプリケーションの応答性と電力効率を向上させるだけではなく、開発者がユーザー体験の目標を達成しつつ、新しいアプリケーションでデータを保護するために SHA を導入することを可能にします。命令セットは、ほとんどのソフトウェア・ライブラリーにおけるアルゴリズムの処理フローへのマッピングを簡素化する方法で定義されています。

技術資料とブログ

こちら (英語) もご覧ください。

記事とサポート

記事

インテル® 64 および IA-32 アーキテクチャー最適化リファレンス・マニュアルが更新されました

インテル® 64 アーキテクチャーおよび IA-32 アーキテクチャー最適化リファレンス・マニュアル

サポート

インテル命令セット・アーキテクチャー拡張のディスカッションについては、デベロッパーゾーンのフォーラム (英語) をご覧ください。

関連記事