IA-32 インテル ®
2.3. SIMD 命令
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル 上巻:基本アーキテクチャ
2-12
(
ROB
)は、完了したμops
をバッファに入れる、アーキテクチャ・ステートを順序 どおりに更新する、例外の順序を管理するなどの機能を持つ、プロセッサ内のユニッ トである。また、リタイアメント部は、分岐を監視し、更新された分岐ターゲット情報を
BTB
に送信する。次に、BTB
は不要になったプリフェチされたトレースをパージする。
IA-32インテル® アーキテクチャの概説
2
以下も参照のこと。
・ 5.4.
節「MMX®
命令」および第9
章「インテル® MMX®
テクノロジによるプログ ラミング」・ 5.5.
節「SSE」および第10
章「ストリーミングSIMD
拡張命令(SSE)によるプロ グラミング」・ 5.6.
節「SSE2
」および第11
章「ストリーミングSIMD
拡張命令2
(SSE2
)による プログラミング」・ 5.7.
節「SSE3
」および第12
章「ストリーミングSIMD
拡張命令3
(SSE3
)による プログラミング」IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル 上巻:基本アーキテクチャ
2-14
図2-3. SIMD 拡張命令、レジスタのレイアウト、データ型
SSE
SSE2/SSE3
SIMD 拡張命令 レジスタのレイアウト データ型
MMX テクノロジ
MMX レジスタ
8個のパックドバイト整数 4個のパックドワード整数 2個のパックド・ダブルワード整数 クワッドワード
MMX レジスタ
8個のパックドバイト整数 4個のパックドワード整数 2個のパックド・ダブルワード整数 クワッドワード
XMM レジスタ
4個のパックド単精度浮動小数点値
MMX レジスタ
2個のパックド・ダブルワード整数 クワッドワード
XMM レジスタ
2個のパックド倍精度浮動小数点値 16個のパックドバイト整数 8個のパックドワード整数 4個のパックド・ダブルワード整数
2個のクワッドワード整数 ダブル・クワッドワード
IA-32インテル® アーキテクチャの概説
2
2.3.1.
ハイパー・スレッディング・テクノロジハイパー・スレッディング(HT)テクノロジは、マルチスレッドのオペレーティン グ・システムおよびアプリケーション・コードや、マルチタスク環境におけるシング ルスレッド・アプリケーションを実行する際の IA-32 プロセッサの性能を向上するた めに開発された。このテクノロジを利用すると、単一の物理プロセッサ上で複数の異 なるコード・ストリーム(スレッド)を同時に実行できる。
アーキテクチャ面で見ると、
HT
テクノロジに対応したIA-32
プロセッサは複数の論 理プロセッサからなり、それぞれが個別のIA-32
アーキテクチャ・ステートを持って いる。各論理プロセッサは、IA-32
データレジスタ、セグメント・レジスタ、コント ロール・レジスタ、デバッグレジスタで構成され、MSR
の大半も含まれている。さら にそれぞれが、個別のAdvanced Programmable Interrupt Controller
(APIC
)を備えている。図
2-4.
では、HT
テクノロジ対応プロセッサ(論理プロセッサを2
つ搭載)と、従来の デュアルプロセッサ・システムを比較している。個別の物理
IA-32
プロセッサを複数搭載した従来のMP
システム構成と異なり、HT
テ クノロジ対応IA-32
プロセッサ内の論理プロセッサは、物理プロセッサのコアのリ ソースを共有する。このリソースには、実行エンジンやシステムバス・インターフェ イスも含まれる。電源投入および初期化後、各論理プロセッサに対して別々に、指定 されたスレッドの実行、割り込み、停止を命令できる。図2-4. HT テクノロジ対応 IA-32 プロセッサと従来のデュアルプロセッサ・システムとの比較
プロセッサ・コア プロセッサ・コア プロセッサ・コア
AS AS AS AS
( ) 従来のマルチ・プロセッサ MP システム HT テクノロジ対応
IA-32 プロセッサ
AS = IA-32 アーキテクチャ・
ステート
IA-32 プロセッサ IA-32 プロセッサ 2つの論理プロセッサ
が1つのコアを共有
各プロセッサは個別 の物理パッケージ IA-32 プロセッサ
OM16522
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル 上巻:基本アーキテクチャ
2-16
HT
テクノロジは、単一のチップ上に複数の論理プロセッサを設ければ、先進的なオ ペレーティング・システムや高性能アプリケーションにおけるプロセスレベルおよび スレッドレベルの並列処理を活用している。この構成では、各物理プロセッサ上で同 時に複数のスレッド3を実行できる。各論理プロセッサはアプリケーション・スレッ ドの命令実行時に、プロセッサ・コア内のリソースを使用する。コアは、アウトオブ オーダー命令スケジューリングによってクロックサイクルごとの実行ユニット使用 率を最大限に高めながら、各スレッドを同時に実行する。2.3.1.1. 導入時の注意事項
すべての
HT
テクノロジ構成は、以下の要素を必要とする。・ HT テクノロジに対応したプロセッサ
・ HT テクノロジに対応したチップセットおよび BIOS
・
最適化されたオペレーティング・システム詳細は、http://www.intel.co.jp/jp/info/hyperthreading/ を参照のこと。
ファームウェア(BIOS)レベルでは、
HT テクノロジ対応プロセッサ内の論理プロセッ
サを初期化するための基本的な手順は、従来の DP プラットフォームや MP プラット フォーム4と同じである。
『Multiprocessor Specification, Version 1.4』で説明されている、MP システムの物理プロセッサに電源を投入し初期化するためのメカニズムが、 HT テ
クノロジ対応プロセッサ内の論理プロセッサにも適用される。
従来の
DP
プラットフォームまたはMP
プラットフォーム上で運用するように設計さ れたオペレーティング・システムは、CPUID
を利用して、HT
テクノロジ対応IA-32
プロセッサの有無と、同プロセッサが持つ論理プロセッサの数を判断する。従来のオペレーティング・システムやアプリケーション・コードも
HT
テクノロジ対 応プロセッサ上で正しく動作するが、最大限のメリットを得るには、コードを一部修 正することが推奨される。修正方法については、『IA-32
インテル®アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル、下巻』の第
7
章「マルチ・プロセッサ 管理」の「必要なオペレーティング・システムのサポート」の項を参照のこと。3.本書では以後、「プロセス」および「スレッド」の総称として「スレッド」を用いる。
4. MP 初期化アルゴリズムに対する比較的簡単な修正が必要。
IA-32インテル® アーキテクチャの概説