マルチコアプロセッサ:常に優れているか?
1つに複数のコアを追加する プロセッサー 最新のオペレーティングシステムのマルチタスクの性質のおかげで、大きなメリットがあります。 ただし、目的によっては、コアを追加するコストと比較して、コアの数に実際的な上限があります。
マルチコアテクノロジーの進歩

マルチコアプロセッサは、 パソコン 2000年代初頭以来。 マルチコア設計は、プロセッサが物理的な上限に達するという問題に対処しました クロック速度に関する制限と、どれだけ効果的に冷却して維持できるか 正確さ。 シングルプロセッサチップ上の追加のコアに移行することで、メーカーは、処理できるデータの量を効果的に増やすことで、クロック速度の問題を回避しました。 CPU.
それらが最初にリリースされたとき、メーカーは単一のCPUで2つのコアしか提供していませんでしたが、現在は4つ、6つ、さらには10以上のオプションがあります。 コアの追加に加えて、Intelのハイパースレッディングなどの同時マルチスレッディングテクノロジーは、仮想コアを2倍にすることができます。 オペレーティング・システム を参照してください。
プロセスとスレッド
NS 処理する プログラムのように、コンピューター上で実行される特定のタスクです。 プロセスは、1つ以上のスレッドで構成されます。
NS スレッド コンピュータのプロセッサを通過するプログラムからのデータの単一のストリームです。 各アプリケーションは、実行方法に応じて、独自の1つまたは複数のスレッドを生成します。 マルチタスクがないと、シングルコアプロセッサは一度に1つのスレッドしか処理できないため、システムはスレッドをすばやく切り替えて、一見並行してデータを処理します。
複数のコアを持つことの利点は、システムが複数のスレッドを同時に処理できることです。 各コアは、個別のデータストリームを処理できます。 このアーキテクチャは、並行アプリケーションを実行しているシステムのパフォーマンスを大幅に向上させます。 サーバーは一度に多くの同時アプリケーションを実行する傾向があるため、このテクノロジーは元々、 企業のお客様—しかし、パーソナルコンピュータがより複雑になり、マルチタスクが増加するにつれて、パーソナルコンピュータも 余分なコア。
ただし、すべてのプロセスは、単一のコアのみを占有できるプライマリスレッドによって管理されます。 したがって、ゲームやビデオレンダラーなどのプログラムの相対速度は、プライマリスレッドが消費するコアの機能に厳しく制限されます。 プライマリスレッドはセカンダリスレッドを他のコアに完全に委任できますが、コアを2倍にしても、ゲームの速度は2倍になりません。 したがって、ゲームが1つのコア(プライマリスレッド)を完全に最大化することは珍しくありませんが、セカンダリスレッドに他のコアが部分的にしか利用されていないことがわかります。 プライマリコアがレートリミッターであるという事実を回避するコアダブリングの量はありません アプリケーション、およびこのアーキテクチャに敏感なアプリは、 そうではありません。
ソフトウェアの依存関係
マルチコアプロセッサの概念は魅力的に聞こえますが、このテクノロジには大きな注意点があります。 マルチプロセッサの真のメリットを享受するには、コンピュータで実行されているソフトウェアをマルチスレッドをサポートするように作成する必要があります。 このような機能をサポートするソフトウェアがないと、スレッドは主に単一のコアを介して実行されるため、コンピューターの全体的な効率が低下します。 結局のところ、クアッドコアプロセッサのシングルコアでしか実行できない場合は、ベースクロック速度が高いデュアルコアプロセッサで実行する方が実際には高速である可能性があります。
現在の主要なオペレーティングシステムはすべて、マルチスレッド機能をサポートしています。 ただし、マルチスレッドもアプリケーションソフトウェアに書き込む必要があります。 コンシューマーソフトウェアでのマルチスレッドのサポートは、何年にもわたって改善されてきましたが、多くの単純な プログラム、マルチスレッドのサポートは、ソフトウェアの複雑さのためにまだ実装されていません 建てる。 たとえば、メールプログラムやWebブラウザは、コンピュータが複雑な計算を処理するグラフィックスやビデオ編集プログラムほど、マルチスレッド化に大きなメリットが見られない可能性があります。
この傾向を説明する良い例は、典型的なコンピュータゲームを見ることです。 ほとんどのゲームでは、ゲームで何が起こっているかを表示するために、何らかの形式のレンダリングエンジンが必要です。 さらに、ある種の人工知能がゲーム内のイベントやキャラクターを制御します。 シングルコアでは、両方のタスクがそれらを切り替えることによって実行されます。 このアプローチは効率的ではありません。 システムに複数のプロセッサが搭載されている場合、レンダリングとAIはそれぞれ別々のコアで実行できます。これは、マルチコアプロセッサにとって理想的な状況です。
8> 4> 2ですか?
特定のコンピューター購入者の答えは、彼または彼女が通常使用するソフトウェアに依存することを考えると、2つのコアを超えることにはさまざまな利点があります。 たとえば、多くのクラシックゲームでは、2コアと4コアのパフォーマンスにほとんど違いがありません。 最新のゲーム(一部は8コアを必要とする、またはサポートしているとされる)でさえ、6コアマシンよりもパフォーマンスが優れていない可能性があります。 プライマリスレッドの有効性がマルチスレッドの効率を左右することを考えると、より高いベースクロック速度 パフォーマンス。
一方、ビデオをトランスコードするビデオエンコーディングプログラムには、次のような大きなメリットがあります。 個々のフレームレンダリングを異なるコアに渡してから、 ソフトウェア。 したがって、コアが8つあると、4つあるよりもさらに有益になります。 本質的に、プライマリスレッドは比較的豊富なリソースを必要としません。 代わりに、プロセッサのコアを最大限に活用する娘スレッドにハードワークをファームアウトすることができます。
クロック速度

一般的に、クロック速度が高いほど、プロセッサが高速になります。 プロセッサは複数のデータを処理するため、複数のコアに関連する速度を考慮すると、クロック速度はより曖昧になります。 追加のコアのおかげでスレッドが作成されますが、熱的な制限があるため、これらの各コアは低速で実行されます。
たとえば、デュアルコアプロセッサは各プロセッサで3.5 GHzの基本クロック速度をサポートし、クアッドコアプロセッサは 3.0GHzでのみ動作します。 それぞれのシングルコアを見るだけで、デュアルコアプロセッサは クアッドコア。 したがって、シングルスレッドのみのプログラムがある場合、実際にはデュアルコアプロセッサの方が効率的です。 また、ソフトウェアが4つのプロセッサすべてを使用できる場合、クアッドコアプロセッサは実際にはそのデュアルコアプロセッサよりも約70%高速になります。
結論
ほとんどの場合、コア数の多いプロセッサを使用する方が一般的に優れています。 ソフトウェア そして典型的なユースケースはそれをサポートします。 ほとんどの場合、デュアルコアまたはクアッドコアプロセッサは、基本的なコンピュータユーザーにとって十分なパワーを備えています。 専門外のソフトウェアがそれを利用することはほとんどないため、大多数の消費者は、4つのプロセッサコアを超えることによる具体的なメリットは見られません。 コア数の多いプロセッサの最適な使用例は、デスクトップビデオ編集、ある種のハイエンドゲーム、複雑な科学および数学プログラムなどの複雑なタスクを実行するマシンに関連しています。
についての私たちの考えをチェックしてください PCの速度はどれくらい必要ですか? コンピューティングのニーズに最適なプロセッサのタイプをよりよく理解するため。