IntelのCPU高速化技術の一つで、SMT技術を用いたもの。IDF Fall 2001で発表された。
Pentium 4ベースのサーバー向けXeon(130nm(0.13μm)プロセス版)から搭載された。通常のPentium 4は3.06GHz版(Northwood)から搭載されている。
スーパースケーラを採用しているIntelプロセッサは、1クロックあたり1個以上の命令を同時に実行できる。
しかし実際に効率が倍になることはなく、良くて3割程度効率が向上するのみである。
そこで考えられたのがハイパー・スレッディング・テクノロジで、1個の物理プロセッサを2個の論理プロセッサに見せかけることで、同時に2個のスレッドを実行する。
機能の有無は、EAXレジスタに1を代入してCPUID命令を実行し、EDXレジスタに得られたフラグのビット28が1かどうかで確認できる。
この方法により、OSはプロセスやスレッドがあたかも2個の物理プロセッサで動作しているかのようにスケジューリングでき、一方、CPU側からみると2個の論理プロセッサに渡された命令は1個の物理プロセッサでリソースを共有しながら、同時に実行される。
もちろん実際のデュアルプロセッサシステムに効率で勝るわけはないが、この技術を使い、CPUの利用効率を向上させれば、シングルプロセッサであってもパイプラインを極力無駄なく使うことで全体のパフォーマンスを向上させることができる。
この技術がない場合、全てのパイプラインやキャッシュは一つのスレッドで利用される(但し、命令の依存でパイプラインがアイドル状態にもなる)が、この技術があれば、空きライプラインで他プロセスを動かすため、CPUの資源を複数スレッドで分け合うことができる。このため、この技術を利用するためには、マルチスレッド化されたアプリケーションと、マルチスレッド対応のOSが必要である。
Windows 2000/XP以降のWindows環境はマルチスレッド対応OSであるので、OSとしての性能は満たしている。また、製品未発表時点で発売されたWindows 2000も、この機能に既に対応している。
あとは性能を生かせるアプリケーションがあれば良いことになるが、幸いなことに現在の多くのWin32対応製品はマルチスレッド化されている。従って、この条件を満たす多くの条件において、CPU内部の実行ユニットの処理効率が高まり、プラットフォーム全体のパフォーマンスが向上することが期待できる。
結果として、この技術は特定のスレッドの実行速度が肝要なプログラム(ゲームやベンチマークテスト)などでは逆にスコアが落ち、マルチスレッド前提で設計されたアプリケーションの場合はパイプラインが効率的に利用されて処理能率が向上することになる。
ハイパー・スレッディング・テクノロジは、トータルとしてパフォーマンスを向上させる技術なのである。