Hyper-Threadingテクノロジ

出典: くみこみックス

2008年12月17日 (水) 06:45; S hira (会話 | 投稿記録) による版
(差分) ←前の版 | 最新版を表示 (差分) | 次の版→ (差分)

 単一のCPUをソフトウェア的に複数のCPUに見せ,マルチスレッド処理を実現する技術.Intel社のXEONやPentium 4に実装されている.CPU内部の実行ユニットの空き時間を減らすことで,処理効率を最大30%改善する.

 Pentium 4以来実装されているNetBurstマイクロアーキテクチャは,高速化のために従来に比べて非常に段数の多いパイプライン処理を行っている.またL1キャッシュ・メモリは,x86命令を内部のRISC命令に既にデコード済みの命令を置くトレース・キャッシュとしている.そのため,L1キャッシュにヒットし続けるかぎり,パイプラインは極めて高速に動作する.しかし,いつかはキャッシュ・ミスが起き,L2キャッシュやメモリから読み出すときに,長いパイプラインがストール状態になり,処理の遅延で性能が大幅に低下する.また,CPU内部には整数演算実行ユニットが三つあるが,常にすべてが利用されているわけではない.そこで,x86プロセッサのほぼすべてのレジスタ・セット(x86 Architecture State)を2組もたせた.OSやx86プログラムからは二つのCPUに見え,マルチスレッド・プログラムなら並行処理させることができる.

 こうして,CPU実行ユニットの空きを別のスレッドで使用することができ,特にパイプラインのストール時の性能低下を緩和できる.ただし,Windows XPや.Net Server,Kernel 2.4.17-pre5以降のLinuxなどのOSとアプリケーションの対応が必要.

【出典】Interface編集部 編;組み込み技術用語集,Interface 2007年8月号 別冊付録,CQ出版社,2007年8月.

表示