web-dev-qa-db-ja.com

インテルi7-920が4コアではなく8コアを表示するのはなぜですか?

タスクマネージャーに移動すると、8つのプロセッサが表示されますが、4つあることがわかります。なぜですか?

alt text

20

ハイパースレッディング

ハイパースレッディングは、オペレーティングシステムからのタスク切り替えを抽象化します。通常、オペレーティングシステムは、さまざまなCPUを介したスケジューリングプロセスを処理し、システムで実行される各タスクが公平なシェアを持つことを保証する必要がありますが、(他に何か必要な場合は)CPUが多すぎないようにする必要があります。

ハイパースレッディングは、少なくとも少しの間、タスク共有の2番目のプロセスをオペレーティングシステムから切り離す方法です。その理由は、オペレーティングシステムが指示するよりもはるかに速く、プロセッサがタスクスイッチを実行できるためです。そのため、実際には1つしかない場合でも2つの論理プロセッサを提示することで、オペレーティングシステムはタスク切り替え操作の半分しか実行できませんが、CPUスケジューリングが多くなります。しかし、最終的な結果は、おそらくマルチタスク操作におけるより高速なマシンです。

これの実際の利点は、実行しているワークロードによって大きく異なります。ほとんどの人にとって、それをオンにしたりオフにしたりしても害はありません。 4スレッドと8スレッドは、ホームユーザーがフェラーリまたはランボルギーニを選択するようなものです。

ただし、サーバーシナリオでは、大きな違いが生じる可能性があります。たとえば、ハイパーバイザーはCPUスケジューリングの要件が非常に厳しいため、ハイパースレッディングを使用すると速度が大幅に向上することがよくあります。

ただし、SQLサーバーでは、8つの「中」サイズのスレッドよりも4つの「大」スレッドを使用する方がよい場合が多いため、この増加は得られません。

39
Mark Henderson

私の友達は hyper-threading です。

ハイパースレッディングは、同時マルチスレッディングの一種であり、スーパースカラーアーキテクチャを利用しています。別々のデータを並行して操作する複数の命令。 2つのプロセッサとしてOSに表示されるため、OSは2つのプロセスを同時にスケジュールできます。さらに、2つ以上のプロセスが同じリソースを使用できます。 1つのプロセスが失敗した場合、リソースはすぐに再割り当てできます。 OSは同時マルチスレッド化(SMT)をサポートする必要があります。

11
wayoutmind

I7ファミリーは、8スレッドのクアッドコアプロセッサーです。通常のクアッドコアには4つのスレッドがあり、ハイパースレッディングが有効になっているため、コンピューターはこれらの8つのスレッドをプロセッサーとして認識します。

6
tcables