CPU の基本: コア、ハイパースレッディング、マルチ CPU とは?
公開: 2023-03-19コンピューターの中央処理装置 (CPU) は計算作業、つまり基本的にプログラムの実行を行います。 しかし、最新の CPU は、複数のコアやハイパースレッディングなどの機能を提供します。 複数の CPU を使用する PC もあります。 違いとその仕組みについて説明します。
ハイパースレッディングと同時マルチスレッディングとは?
CPU コアとは
マルチコア CPU 構成はすべて同じですか?
複数の CPU はどうですか?
ハイパースレッディングと同時マルチスレッディングとは?
同時マルチスレッディング (Intel ではハイパースレッディングと呼ばれる) を使用すると、単一の CPU で複数のタスクを順次ではなく同時に実行できるため、ほとんどの状況でパフォーマンスが向上します。
ハイパースレッディングは、2002 年に Intel が消費者向け PC に並列計算を導入しようとした最初の試みでした。当時の Pentium 4 は 1 つの CPU コアしか搭載していなかったため、一度に 1 つのタスクしか実行できませんでした。マルチタスクのように見えるほど速くタスクを実行できます。 ハイパースレッディング — AMD およびその他のインテル以外のプロセッサで同時マルチスレッディング (SMT) と呼ばれる — は、それを補おうとしました。
注:厳密に言えば、Intel プロセッサのみがハイパー スレッディングを備えていますが、この用語は、あらゆる種類の同時マルチスレッディングを指すために口語的に使用されることがあります。
ハイパースレッディングまたは同時マルチスレッディングを備えた単一の物理 CPU コアは、オペレーティング システムからは 2 つの論理 CPU として認識されます。 CPUはやはりシングルCPUなのでちょっとチートです。 オペレーティング システムはコアごとに 2 つの CPU を認識しますが、実際の CPU ハードウェアには、コアごとに実行リソースのセットが 1 つしかありません。 CPU は、実際よりも多くのコアを持っているふりをし、独自のロジックを使用してプログラムの実行を高速化します。 つまり、オペレーティング システムはだまされて、実際の CPU コアごとに 2 つの CPU を認識します。
ハイパースレッディングにより、2 つの論理 CPU コアが物理的な実行リソースを共有できます。 これにより、多少速度が向上します。1 つの仮想 CPU が停止して待機している場合、他の仮想 CPU がその実行リソースを借りることができます。 ハイパースレッディングはシステムを高速化できますが、実際に追加のコアを使用する場合ほど優れたものではありません。
ありがたいことに、ハイパースレッディングは単なるおまけです。 ハイパースレッディングを備えた元の消費者向けプロセッサには、複数のコアを装った単一のコアしかありませんでしたが、最新の CPU には複数のコアとハイパースレッディングまたは SMT テクノロジの両方が搭載されています。 ハイパースレッディングを備えたヘキサコア CPU はオペレーティング システムに 12 コアとして表示されますが、ハイパースレッディングを備えたオクタコア CPU は 16 コアとして表示されます。 ハイパースレッディングは追加のコアに代わるものではありませんが、ハイパースレッディングを備えたデュアルコア CPU は、ハイパースレッディングを備えていないデュアルコア CPU よりも優れたパフォーマンスを発揮するはずです。
CPU コアとは
もともと、CPU にはシングルコアがありました。 つまり、物理 CPU には単一の中央処理装置が搭載されていました。 パフォーマンスを向上させるために、メーカーは追加の「コア」または中央処理装置を追加しました。 デュアルコア CPU には 2 つの中央処理装置があるため、オペレーティング システムには 2 つの CPU として表示されます。 たとえば、2 つのコアを備えた CPU は、同時に 2 つの異なるプロセスを実行できます。 これにより、コンピューターは一度に複数の処理を実行できるため、システムが高速化されます。
ハイパースレッディングとは異なり、ここにはトリックはありません。デュアルコア CPU は、CPU チップ上に文字通り 2 つの中央処理装置を備えています。 クアッドコア CPU には 4 つの中央処理装置があり、オクタコア CPU には 8 つの中央処理装置があります。
これにより、物理 CPU ユニットを 1 つのソケットに収まるほど小さく保ちながら、パフォーマンスを大幅に向上させることができます。 1 つの CPU ユニットが挿入された 1 つの CPU ソケットだけが必要です。4 つの異なる CPU を備えた 4 つの異なる CPU ソケットではなく、それぞれに独自の電源、冷却装置、およびその他のハードウェアが必要です。 コアがすべて同じチップ上にあるため、コアがより高速に通信できるため、レイテンシが短くなります。
Windows タスク マネージャーは、これをかなりよく示しています。 たとえば、このシステムには 1 つの実際の CPU (ソケット) と 8 つのコアがあることがわかります。 同時マルチスレッド化により、各コアがオペレーティング システムからは 2 つの CPU のように見えるため、16 の論理プロセッサが表示されます。
マルチコア CPU 構成はすべて同じですか?
いいえ、すべてのマルチコア CPU 構成が同じというわけではありません。 マルチコア CPU を見ると、2 つの異なる設計哲学に遭遇します。
構成の 1 つのタイプ (消費者向け PC で長年にわたって一般的であった種類) は、複数の同一のコアを使用します。 これらのセットアップでは、オクタコア システムを使用している場合、これらの 8 つのプロセッサはすべて高性能 CPU であり、すべて同じ方法で最適化されています。
もう 1 つは、異なるコアの混合を使用します (異種コア アーキテクチャと呼ばれることもあります)。 通常、これらのセットアップでは、パフォーマンス コアと効率コアの 2 つの異なるタイプが使用されます。
正確な命名規則は企業やアプリケーションによって多少異なりますが、基本的な考え方は同じです。 効率化コアは、バックグラウンドおよび低需要のタスク用に予約されています。 これらのコアは消費電力が少なくなります。 パフォーマンス コアは正反対です。 消費電力は大幅に増加しますが、ゲームなどの要求の厳しいタスクでははるかに優れたパフォーマンスを発揮します。 この組み合わせにより、必要なときにパフォーマンスが向上しますが、バックグラウンドでのエネルギー使用量は少なくなります。
関連: GPU または CPU の低電圧とは何ですか? また、いつそれを行う必要がありますか?
このヘテロジニアス マルチコア セットアップ (ARM では big.LITTLE と呼ばれる) は、携帯電話やその他のモバイル デバイスで最初に普及したのは、それらが提供する省電力のためでした。 スマートフォンを 1 日中使用する必要がある場合、常に高電力コアを実行してバッテリーを不必要に消耗させるのは理にかなっていません。 Intel は、Alder Lake プロセッサを皮切りに、主流のデスクトップ CPU にもこのアイデアを導入しました。
複数の CPU はどうですか?
ほとんどのコンピュータには単一の CPU しかありません。 その 1 つの CPU に複数のコアまたはハイパースレッディング テクノロジが搭載されている場合がありますが、それでもマザーボード上の 1 つの CPU ソケットに挿入された 1 つの物理 CPU ユニットにすぎません。
関連: CPU クロック速度を使用してコンピューターのパフォーマンスを比較できない理由
ハイパースレッディングやマルチコア CPU が登場する前は、CPU を追加することでコンピュータに処理能力を追加しようとしました。 これには、複数の CPU ソケットを備えたマザーボードが必要です。 マザーボードには、これらの CPU ソケットを RAM やその他のリソースに接続するための追加のハードウェアも必要です。 この種のセットアップには多くのオーバーヘッドがあります。 CPU が相互に通信する必要がある場合、複数の CPU を備えたシステムがより多くの電力を消費し、マザーボードがより多くのソケットとハードウェアを必要とする場合、追加の遅延が発生します。
複数の CPU を搭載したシステムは、今日のホーム ユーザー PC ではあまり一般的ではありません。 複数のグラフィックス カードを搭載した高性能のゲーミング デスクトップでさえ、通常は 1 つの CPU しか搭載していません。 スーパーコンピューター、サーバー、一部のワークステーション、および可能な限り多くの処理能力を必要とする同様のハイエンド システムの中に、複数の CPU システムがあります。
コンピューターに搭載されている CPU またはコアが多いほど、一度に実行できる処理が増え、ほとんどのタスクのパフォーマンスが向上します。 現在、ほとんどのコンピューターには複数のコアを備えた CPU が搭載されています。これは、これまで説明してきた最も効率的なオプションです。 最新のスマートフォンやタブレットでは、複数のコアを備えた CPU を見つけることさえできます。
CPU のクロック速度とその IPC (1 サイクルあたりの命令数) は、パフォーマンスを比較する場合に十分でした。 物事はもはやそれほど単純ではありません。 複数のコアとハイパースレッディングを提供する CPU は、ハイパースレッディングを備えていない同じ速度の CPU よりもパフォーマンスが大幅に向上する場合があります。 また、複数の CPU を搭載した PC には、さらに大きな利点があります。 これらの機能はすべて、PC で同時に複数のプロセスをより簡単に実行できるように設計されており、マルチタスクを行っているときや、ビデオ エンコーダーや最新のゲームなどの強力なアプリの要求の下でパフォーマンスを向上させることができます。
もちろん、コア数が多いことがすべての状況でそれほど重要というわけではありません。 最新のオペレーティング システムは、タスクを複数のコアに分割する点で非常に優れていますが、すべてのプログラムが適切に最適化されているわけではありません。 多くの場合 (特にゲーム)、パフォーマンスは主にコアの合計数ではなく、個々のコアの最大速度によって制限されます。 したがって、 Call of Dutyで 10 億 FPS を達成できると考えて、急いで 64 コアの Threadripper CPU を購入しないでください。