ハイパースレッディング・テクノロジー
そこで一つのコアに搭載しているデコードやスケジュールをする装置を複数に増やし、一つのコアを論理的に複数のコアとして動作させることで、空いているパイプラインを埋めて効率を向上させることが考えられた。
ただしコードやデータの間にはお互いに依存関係があり並行処理できない場合がある。また複数の論理的なコアは一つのL2キャッシュを共有しておりデータやキャッシュ不整合が発生した場合はロックがかかり効率が低下する。
コアはキャッシュに対し速度が遅いメインメモリーの入出力が必要になるとパイプラインが空いていても処理できない。最近のCPUは処理するコードやデータの量がL2キャッシュの容量を超えるほど肥大化しメインメモリーの入出力が必要な場合が増えているため、メモリーコントローラーをチップセットではなくCPU自体に内蔵させてメインメモリーの入出力速度を向上させている。
ハイパースレッディングが特に有効なのは、整数処理と浮動小数点処理やマルチメディア処理というように異なるパイプラインを多用するソフトウェアや、多数のスレッドがあるがメモリアクセスの遅延が律速になるようなプログラムである。殆どのソフトウェアでは論理部分の大半は整数処理であり、浮動小数点処理と多重化できる可能性が高い。
キャッシュミスによりCPUがメインメモリにアクセスすると、データがレジスタに乗るまでに数百クロックの間待たなければならない(ストール)。
ハイパースレッディングの利点を以下に挙げる。
マルチスレッドコードのサポートを改善する。
複数のスレッドが同時に動作することを可能にする。
メモリー入出力のレイテンシーを隠蔽しスループットを改善する。
インテルによると、NetBurstマイクロアーキテクチャにおける最初の実装は「通常の」プロセッサへ5%の領域のみを追加するだけで、15 - 30%の性能向上をもたらしたとしている。
しかし、ハイパースレッディングは、論理的なコアが物理的なコアの1次キャッシュメモリーや2次キャッシュメモリーを共有する構造になっているため、共有しているキャッシュメモリーの離れた領域を複数の論理的なコアが読み書きするようなソフトウェアでは、キャッシュの入れ替え(偽共有(英語版))が多発し性能が低下することが指摘されている。インテルは「ほとんどのベンチマークにおいて、ハイパースレッディング技術は良い結果を出している」と述べている。