ハイパースレッディング
ハイパースレッディングは、1つのプロセッサコアで複数のプロセススレッドを同時に実行できるプロセッサの機能です。ハイパースレッディングに対応したCPUは、物理プロセッサコアをそれぞれ2つの仮想コアに分割します。これにより、より負荷の高いアプリケーションを実行できるため、コンピューターの効率が向上します。ハイパースレッディングはIntelが開発し、多くのプロセッサで使用されています。AMDはプロセッサで、同時マルチスレッディング(Simultaneous Multithreading)と呼ばれる同様の技術を使用しています。
CPUの各プロセッサコアには、乗算や加算など、個別の計算機能を実行する実行ユニットのセットが含まれています。ハイパースレッディングがない場合、各実行ユニットは一度に1つのプロセススレッドしか実行できません。また、必要な計算の種類によっては、多くの実行ユニットが待機状態になります。ハイパースレッディングでは、異なる計算タスクを必要とする2つのスレッドを組み合わせることで、別々の2つのスレッドを同時に実行できます。このようにスレッドを並列実行する方法は、2つの物理コアを使う場合ほど高速ではありませんが、1つのスレッドを一度に実行するより効率的です。
ハイパースレッディングはコンピューターをより効率的に動作させるのに役立ちますが、コンピューターのオペレーティングシステムやその他のソフトウェアによる対応が必要です。まず、オペレーティングシステムが各物理プロセッサコアに2つの仮想コアアドレスを割り当てます。次に、仮想コア間で計算が分散され、効率が最大になるようにスレッドを割り当てます。
プログラムがハイパースレッディングのメリットを得るには、タスクを同時に実行できる別々のスレッドに分割するように作られている必要があります。プログラムに一度に1つのプロセススレッドしかない場合、もう一方の仮想コアに2つ目のスレッドを送ることはできません。ただし、コンピューターがシングルスレッドのアプリケーションを実行している場合でも、他のアプリケーションのプロセススレッドを同時に実行できます。これにより、マルチタスク時のコンピューターの処理速度が向上します。
NOTE: ハイパースレッディングは、同等のハイパースレッディング非対応プロセッサより技術的に複雑で、より多くの電力を必要とします。Intelは通常、ハイパースレッディングを上位モデルのプロセッサ向けに採用しています。
知識をテストする