ハイパースレッディングとマルチコアの違いは何ですか?


42

ネットワーク管理者との会話の中で、私は自分のマシンがデュアルコアであると述べました。彼はそうではないと言った。タスクマネージャーを起動し、パフォーマンスタブに移動して、2つのCPU使用率グラフがあることを示しました。自宅にクアッドコアマシンがあり、4つのグラフがあります。彼は、ハイパースレッディングのために、この特定のマシンに2つのグラフがあると語った。以前は、ハイパースレッドペンティアム4プロセッサを使用していましたが、その意味を完全には理解していませんでした。それでは、ハイパースレッディングとデュアルコアの違いは何ですか?そして、あなたはあなたが持っているものをどのように見分けますか?

回答:


20

ハイパースレッディングは、単一の物理 CPU コアに対して複数の論理コアを公開します。簡単に言えば、ハイパースレッディングにより、各CPUコアのコンテキスト切り替えがより効率的になります。

一方、デュアルコアチップには、異なるプロセスを同時に実行できる2つの物理CPUコアがあります。

3つ以上のコアを持つ他のマルチコアチップもあり、Svishが述べたように、Intelの最新のマルチコア製品はすべてのコアでハイパースレッディングもサポートしています。

CPU-ZなどのCPU識別ユーティリティを使用して、使用しているコアの数を判断できます。スクリーンショットの下部にあるように、この場合のCPUには2つの物理コアがあります。スレッドの数がコアの数よりも多い場合、ハイパースレッディングが有効になります。これまでのハイパースレッディングを備えたすべての消費者向けCPUには、コアごとに2つのスレッドがあるため、HTが有効になっている場合、スレッド数はコア数の2倍になります。

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

Intel CPUをお持ちの場合は、代わりにIntelのCPU IDユーティリティをダウンロードできます。


また、ハイパースレッディングをサポートするマルチコアチップにより、2倍の量の論理コアを取得できます。
Svish

感謝!使用しているCPUの種類を(OS内から)どうやって知るのですか?
ジョシュストドラ

3
UltraSparc T2 +は8つのコアを有し、その各々は単一のチップ上に64の仮想CPUを作る8つのスレッドをサポートする:en.wikipedia.org/wiki/UltraSPARC_T2
jlliagre

使用しているCPUを知る方法は、実行しているOSによって異なります。
jlliagre

@jilliagre:いいね!
ロブ

16

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

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

参照:この質問


6

ハイパースレッディングは、デュアルコアを使用するよりも安価で低速な代替手段です

インテル・マニュアル第3巻プログラミングガイドシステム- 325384-056US 2015年9月 8.7「インテルハイパースレッディング・テクノロジーアーキテクチャは、」HTを簡単に説明します。次の図が含まれています。

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

TODOそれは実際のアプリケーションで平均してどのくらいの割合で遅くなりますか?

ハイパースレッディングは、最新のシングルCPUコアが命令パイプラインhttps://en.wikipedia.org/wiki/Instruction_pipeliningで複数の命令を一度に実行するため、可能です

命令パイプラインは、メモリの読み取り、命令のデコード、命令の実行など、回路の各部分がいつでも使用されることを保証するために、単一コア内の機能を分離したものです。

ハイパースレッディングは、次を使用して機能をさらに分離します。

  • パイプラインで実際に命令を実行する単一のバックエンド。

    デュアルコアには2つのバックエンドがあり、これによりコストとパフォーマンスが向上します。

  • 2つのフロントエンド。2つの命令ストリームを受け取り、ハザードを回避して単一のバックエンドのパイプライン使用を最大化する方法でそれらを順序付けます

    デュアルコアには、各バックエンドに1つずつ、合計2つのフロントエンドがあります。

    命令の並べ替えによって利益が得られず、ハイパースレッディングが役に立たない場合があります。しかし、それは平均で大幅な改善をもたらします。

1つのコア内の2つのハイパースレッドは、L3のみを共有する2つの異なるコアよりも多くのキャッシュレベルを共有します(TODOはいくつですか?L1?)。

各ハイパースレッドがオペレーティングシステムに公開するインターフェイスは、実際のコアのインターフェイスに似ており、両方を個別に制御できます。したがってcat /proc/cpuinfo、それぞれ2つのハイパースレッドを持つ2つのコアしか持っていなくても、4つのプロセッサが表示されます。

ただし、オペレーティングシステムは、同じコア上にあるハイパースレッドを知ることを利用して、特定のプログラムの複数のスレッドを単一のコア上で実行できます。これにより、キャッシュの使用率が向上します。

このLinusTechTipsのビデオには、技術的な説明はありません:https : //www.youtube.com/watch?v =wnS50lJicXc


1
「TODO」の質問に答えますか?
pacoverflow

1
@pacoverflowいつか答えを学ぶか、誰かが私のために答えを編集するなら:-)
Ciro Santilli新疆改造中心法轮功六四事件
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.