インテルは2001年9月27日,東京で開催している「Intel Developer Forum 2001 Fall Japan」で,新しい高速化技術「Hyper Threading」を初めて実機でデモンストレーションした。OSやアプリケーション・ソフトから見ると,物理的には1個のCPUが論理的に2個のCPUと認識される。デモでは,2個のCPU(写真左)が,OS上では4個と認識されていた(写真右)。

 従来のCPUは,ある瞬間をとらえてみると一つのスレッドしか実行できない。いわゆるマルチタスクOSでは,複数のスレッドを切り替えて,時間をずらしてスレッドを実行することによって,見かけ上マルチスレッドを実現していた。Hyper Threadingでは,同一CPU内で2個のスレッドを同時に実行できる。

 この技術のメリットは,CPU内部の命令の実行効率が上がることだ。基本的に異なるスレッドであれば,命令に依存関係がないので同時に実行できるという特質を利用する。命令の依存関係によっては,その割り振りによってパイプラインが一時的に空いてしまうことがある。Hyper Threadingは,二つのスレッドの命令をパイプラインに同時に詰め込めるので,この空きが少なくなる。CPUが効率よく動作するようになるので,結果としてソフトウェアの実行が高速化する。

 Hyper Threadingには,サーバ向けのマルチプロセサ対応CPU「Xeon MP」が対応する。出荷開始は2002年初めの予定。Xeon MPは,汎用レジスタなどを一つのCPUに2セット持つ。二つの論理CPUがそれぞれのスレッドを実行する際に利用する。このために必要なダイ・サイズの増加は5%程度だという。その他のCPUリソースは,二つの論理CPUが共有する。パイプラインのうち,演算器に命令を渡すまでの部分は,論理CPUが排他的にしか使えない。演算器は論理CPUが同時に使用できるが,演算器の空きがない場合は待つ必要がある。こうしたリソースの競合により,期待したような性能が得られない可能性もある。

 Hyper Threadingを利用するには,BIOSやOSが対応する必要がある。OSはWindows XPが対応する予定。デモでは,Windows XP Professionalを使用していた。アプリケーションは,マルチスレッドに対応していればHyper Threadingの恩恵が受けられるが,より性能を引き出すにはHyper Threading向けに最適化する必要がある。

 インテルは,Hyper Threadingを利用した際のベンチマーク・テストの結果も公表した。Active Directoryで18%,SQL Serverで22%,Exchangeで23%,IISで30%性能が向上したという。テストに用いたこれらのソフトはHyper Threadingには最適化していないため,さらに性能が向上し得る。

(大森 敏行=日経バイト)