ハイパースレッディングとは何ですか?


回答:


38

ハイパースレッディングは、プロセッサが2つの物理プロセッサコアを持っているふりをする場所ですが、1つだけの余分なジャンクがあります。

ハイパースレッディングのポイントは、プロセッサでコードを実行しているときに、アイドル状態のプロセッサの部分が何度もあることです。CPUレジスタの追加セットを含めることにより、プロセッサは2つのコアを持つように動作し、プロセッサのすべての部分を並行して使用できます。2つのコアの両方がプロセッサの1つのコンポーネントを使用する必要がある場合、1つのコアは当然待機します。これが、デュアルコアなどのプロセッサを置き換えることができない理由です。


6
+1は、ハイパースレッディングがIntelのSMT実装に固有であることを追加する必要があります。たとえば、SPARCプロセッサには異なる形式のSMTが実装されていますが、同様の目標があります。
sybreon

@Earlzは、コアを2つに分割することにより、プロセッサが2つのスレッドを実行していることを示唆していますか?または、実際に行われた並列処理のように見えますか?
ドーピードゥー

4
@DoopyDooどちらも。基本的に、プロセッサには2つの「実行コア」があり、これは命令などのパイプラインであり、2セットのレジスタおよびその他の重要なものもあります。ただし、ハイパースレッディングと通常のデュアルコアの違いは、複製されました。たとえば、ALUは1つだけです。つまり、デュアルコアプロセッサは2つの別個の数値セットを同時に追加できますが、ハイパースレッディングプロセッサは仮想コアの1つをALUが有効になるまで待機させる必要があります。もちろん、これは簡単な例です
-Earlz

12

ハイパースレッディングは、1つのシングルスレッドコア上で2つのスレッドを実行できる場所です。問題のコア上のスレッドがストールまたは停止状態にある場合、ハイパースレッディングにより、コアは代わりに2番目のスレッドで動作できます。

ハイパースレッディングにより、OSはプロセッサーのコア数が2倍になり、多くの場合パフォーマンスが向上しますが、全体で15〜30%程度になります-状況によっては、実際にパフォーマンスヒット(= <20%)。

現在、ほとんどのAtomチップとすべてのi7(およびXeonに相当するチップ)には、一部の古いP4と同様に、ハイパースレッディングがあります。Atomの場合、消費電力を大幅に増加させることなくパフォーマンスを向上させるという必死の試みです。i7sの場合、i5のチップ範囲と区別します。

複雑な処理作業はHTの恩恵をあまり受けませんが、ビデオエンコーディングなどの特定の(単純で高度にマルチスレッド化された)タスクはHTの恩恵を受けます。現実には、それほど多くはありません...


95%正しい。通常のコア= A + Bの場合、ハイパースレッディングコアはA + 2 x Bに似ています。両方のスレッドがAを必要としない限り、2つのスレッドを同時に実行できます。
Vincent Vancalbergh

5

シングルコアがデュアルコアとして機能できる場合

それはハイパースレッディングです

詳細に

インテルの同時マルチスレッドの実装は、ハイパースレッディングテクノロジー、またはHTテクノロジーとして知られています。

HTテクノロジーは、ソフトウェアの
観点から、単一のプロセッサーを複数の論理プロセッサーとして表示します。これにより、オペレーティングシステムとアプリケーション
は、マルチプロセッサシステムの場合と同様に、論理プロセッサへの複数のスレッドをスケジュールできます。


ハイパースレッディングにより、シングルプロセッサは2つのスレッドを同時に実行できますが、すべての条件ではありません。

ハイパースレッディングはシステムのパフォーマンスを2倍にするものではなく、アイドルリソースをより有効に活用することでパフォーマンスを向上させ、特定の重要なワークロードタイプのスループットを向上させることができます。ビジーコアの1つの論理プロセッサで実行されているアプリケーションは、非ハイパースレッドプロセッサで単独で実行されている場合に得られるスループットの半分をわずかに超えることが予想されます。ハイパースレッディングのパフォーマンスの向上はアプリケーションに大きく依存し、アプリケーションによっては、多くのプロセッサリソース(キャッシュなど)が論理プロセッサ間で共有されるため、ハイパースレッディングのパフォーマンスが低下する場合があります。

Intelハイパースレッディングテクノロジーにより、各コアは、メモリキャッシュや機能ユニットなど、コアのほとんどのリソースを共有する2つの論理プロセッサを持つことができます。

主な機能

ハイパースレッディングの目的は、パイプライン内の独立した命令の数を増やすことです。複数の命令が別々のデータを並行して処理するスーパースカラーアーキテクチャを利用します。

Intelは、そうでなければアイドル状態または十分に活用されないリソースを使用するため、ハイパースレッディングは非常に効率的だと言います。

リンク:

ウィキペディア
StackOverflow
マルチコアプログラミングDigital_Edition pg#8

ここに画像の説明を入力してください

Intelイメージ


3

既に述べたことを拡張するために、ハイパースレッディングとは、1つのCPUコアが2つの独立した実行コンテキストを維持し、それらをすばやく切り替えて、ハードウェアレベルで2つのコアを効果的にエミュレートできることを意味します。

通常のシングルコアと比較すると、マルチスレッドワークロードの速度がわずかに向上します。ただし、2つの独立したコアを使用することの利点に近いところはありません。パフォーマンスに関しては、パフォーマンスを2つのコアに近づけるのではなく、シングルコアでのマルチスレッドパフォーマンスの小さな向上と考えるのが最善です。速度向上のサイズは、ワークロードによって異なります-実際、一部のワークロードでは、パフォーマンスの向上はかなりまともです。

ハイパースレッドコアにはメイン実行ユニットが1つしかありませんが、実行状態を処理および維持するための準備完了命令に関連するCPUの他の特定の部分は複製されます。

プロセッサコアには命令パイプラインがあります。これは、実行される将来の命令のキューであり、常に更新され、そのキューの先頭でCPUが命令を実行する準備ができています。CPUはこれらを使用して、これらの将来の命令を確認し、可能な場合は単純で低レベルの前処理を行うことにより、実行速度を最適化します(このような最適化には、「順不同実行」および「分岐予測」が含まれます)。

ハイパースレッドコアにはデュアル命令パイプラインがあり、これと2番目のレジスタセットにより、マルチスレッドワークロードの速度が向上します。スレッドコンテキストを切り替えても、パイプラインやレジスタは破棄されず、他のスレッドのパイプラインとレジスタは準備が整ったまま「ホット」なので、すぐに切り替えて使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.