ハイパースレッディングという用語が最近登場したことを聞いたことがありますが、ハイパースレッディングとは正確に何で、なぜ重要なのですか?
ハイパースレッディングという用語が最近登場したことを聞いたことがありますが、ハイパースレッディングとは正確に何で、なぜ重要なのですか?
回答:
ハイパースレッディングは、プロセッサが2つの物理プロセッサコアを持っているふりをする場所ですが、1つだけの余分なジャンクがあります。
ハイパースレッディングのポイントは、プロセッサでコードを実行しているときに、アイドル状態のプロセッサの部分が何度もあることです。CPUレジスタの追加セットを含めることにより、プロセッサは2つのコアを持つように動作し、プロセッサのすべての部分を並行して使用できます。2つのコアの両方がプロセッサの1つのコンポーネントを使用する必要がある場合、1つのコアは当然待機します。これが、デュアルコアなどのプロセッサを置き換えることができない理由です。
ハイパースレッディングは、1つのシングルスレッドコア上で2つのスレッドを実行できる場所です。問題のコア上のスレッドがストールまたは停止状態にある場合、ハイパースレッディングにより、コアは代わりに2番目のスレッドで動作できます。
ハイパースレッディングにより、OSはプロセッサーのコア数が2倍になり、多くの場合パフォーマンスが向上しますが、全体で15〜30%程度になります-状況によっては、実際にパフォーマンスヒット(= <20%)。
現在、ほとんどのAtomチップとすべてのi7(およびXeonに相当するチップ)には、一部の古いP4と同様に、ハイパースレッディングがあります。Atomの場合、消費電力を大幅に増加させることなくパフォーマンスを向上させるという必死の試みです。i7sの場合、i5のチップ範囲と区別します。
複雑な処理作業はHTの恩恵をあまり受けませんが、ビデオエンコーディングなどの特定の(単純で高度にマルチスレッド化された)タスクはHTの恩恵を受けます。現実には、それほど多くはありません...
シングルコアがデュアルコアとして機能できる場合
インテルの同時マルチスレッドの実装は、ハイパースレッディングテクノロジー、またはHTテクノロジーとして知られています。
HTテクノロジーは、ソフトウェアの
観点から、単一のプロセッサーを複数の論理プロセッサーとして表示します。これにより、オペレーティングシステムとアプリケーション
は、マルチプロセッサシステムの場合と同様に、論理プロセッサへの複数のスレッドをスケジュールできます。
ハイパースレッディングにより、シングルプロセッサは2つのスレッドを同時に実行できますが、すべての条件ではありません。
ハイパースレッディングはシステムのパフォーマンスを2倍にするものではなく、アイドルリソースをより有効に活用することでパフォーマンスを向上させ、特定の重要なワークロードタイプのスループットを向上させることができます。ビジーコアの1つの論理プロセッサで実行されているアプリケーションは、非ハイパースレッドプロセッサで単独で実行されている場合に得られるスループットの半分をわずかに超えることが予想されます。ハイパースレッディングのパフォーマンスの向上はアプリケーションに大きく依存し、アプリケーションによっては、多くのプロセッサリソース(キャッシュなど)が論理プロセッサ間で共有されるため、ハイパースレッディングのパフォーマンスが低下する場合があります。
Intelハイパースレッディングテクノロジーにより、各コアは、メモリキャッシュや機能ユニットなど、コアのほとんどのリソースを共有する2つの論理プロセッサを持つことができます。
ハイパースレッディングの目的は、パイプライン内の独立した命令の数を増やすことです。複数の命令が別々のデータを並行して処理するスーパースカラーアーキテクチャを利用します。
Intelは、そうでなければアイドル状態または十分に活用されないリソースを使用するため、ハイパースレッディングは非常に効率的だと言います。
リンク:
既に述べたことを拡張するために、ハイパースレッディングとは、1つのCPUコアが2つの独立した実行コンテキストを維持し、それらをすばやく切り替えて、ハードウェアレベルで2つのコアを効果的にエミュレートできることを意味します。
通常のシングルコアと比較すると、マルチスレッドワークロードの速度がわずかに向上します。ただし、2つの独立したコアを使用することの利点に近いところはありません。パフォーマンスに関しては、パフォーマンスを2つのコアに近づけるのではなく、シングルコアでのマルチスレッドパフォーマンスの小さな向上と考えるのが最善です。速度向上のサイズは、ワークロードによって異なります-実際、一部のワークロードでは、パフォーマンスの向上はかなりまともです。
ハイパースレッドコアにはメイン実行ユニットが1つしかありませんが、実行状態を処理および維持するための準備完了命令に関連するCPUの他の特定の部分は複製されます。
プロセッサコアには命令パイプラインがあります。これは、実行される将来の命令のキューであり、常に更新され、そのキューの先頭でCPUが命令を実行する準備ができています。CPUはこれらを使用して、これらの将来の命令を確認し、可能な場合は単純で低レベルの前処理を行うことにより、実行速度を最適化します(このような最適化には、「順不同実行」および「分岐予測」が含まれます)。
ハイパースレッドコアにはデュアル命令パイプラインがあり、これと2番目のレジスタセットにより、マルチスレッドワークロードの速度が向上します。スレッドコンテキストを切り替えても、パイプラインやレジスタは破棄されず、他のスレッドのパイプラインとレジスタは準備が整ったまま「ホット」なので、すぐに切り替えて使用できます。