チップに含まれるコアが増えているのはなぜですか?より大きなシングルコアプロセッサを製造してみませんか?製造は簡単ですか?別のコアを使用してプログラムがマルチスレッドできるようにするためですか?
チップに含まれるコアが増えているのはなぜですか?より大きなシングルコアプロセッサを製造してみませんか?製造は簡単ですか?別のコアを使用してプログラムがマルチスレッドできるようにするためですか?
回答:
マルチコア化の傾向は、CPU設計者が周波数スケーリングの増加に伴う消費電力の問題を回避するのに役立つエンジニアリングアプローチです。CPUの速度が3〜4 Ghzの範囲に上昇すると、高速化に必要な電力量が法外になり始めました。この技術的な理由は複雑ですが、熱損失や漏れ電流(何も役に立たずに回路を単に通過する電力)などの要因は、どちらも周波数が高くなるにつれて速く増加します。6 GHzの汎用x86 CPUを構築することは確かに可能ですが、そのように効率的に行うことは経済的ではありません。それがマルチコアへの移行が始まった理由であり、少なくとも並列化の問題が乗り越えられなくなるまで、この傾向が続くと見られる理由です。
実際の例として、E5640 Xeon(4コア@ 2.66 GHz)は95ワットの電力エンベロープを持っていますが、L5630(4コア@ 2.13 GHz)は40ワットしか必要としません。これは、ほとんどの機能が互換性のあるCPUのCPU電力が24%増加するため、電力が137%増加します。X5677は速度を最大3.46 GHzに押し上げますが、処理能力は60%増加し、電力は225%増加します。
次に、X5560(2.8 GHz、4コア、95ワット)と新しいX5660(2.8 GHz、6コア、95ワット)を比較し、ソケットに50%の余分な計算能力がある(可能性として、アムダールの法則が私たちに親切であると仮定して)今)追加の電力を必要とせずに。AMDの6100シリーズCPUは、電力消費をフラットに保ちながら、2400 \ 8400シリーズよりも総合的なパフォーマンスが同様に向上しています。
シングルスレッドタスクの場合、これは問題ですが、要件が分散処理クラスターまたは仮想化クラスターに大量の総CPUパワーを提供する場合、これは合理的なアプローチです。つまり、今日のほとんどのサーバー環境では、各CPUのコア数をスケールアウトする方が、より高速でより良いシングルコアCPUを構築するよりもはるかに優れたアプローチです。
この傾向はしばらく続きますが、課題があり、コアの数を継続的にスケールアウトすることは容易ではありません(コアの数が増えるにつれて、メモリ帯域幅を十分に高く維持し、キャッシュを管理することは非常に難しくなります)。つまり、現在のソケットあたりのコア数のかなり爆発的な増加は、数世代で減速する必要があり、他のアプローチも見られます。
それらを便利に速くするのは難しくなりすぎていました。
問題は、一度に大量の命令を処理する必要があることです。現在のx86 CPUには一度に80以上の命令が処理されています。 、Pentium Proは1995年に40を実行しました。典型的な命令ストリームは、それを超えると予測できません(分岐、メモリアクセスなどを推測する必要があります)。 。
したがって、それらをより広く(命令の各部分を実行するためのより機能的なユニット)、より長く(レイテンシーを隠すためのより深いパイプライン)することができますが、それはあまり良いことではないようです。そして、クロック速度でも壁にぶつかったようです。そして、私たちはまだメモリを使い果たしています。したがって、多くのCPUに分割することは勝利のようです。さらに、キャッシュを共有できます。
これにはかなり多くのことがありますが、結局のところ、従来のプログラムは、設計と構築の方法を想像できるハードウェア上で大幅に高速に実行することはできません。
予測可能性が問題にならない場合、たとえば、多くの科学的な問題やグラフィックス(多くの場合、この数字のセットにその数字のセットを掛けることになります)、これは事実ではないため、IntelのIA64( Itanium)およびGPU。これらは高速化を続けていますが、Wordの実行を改善することはできません。
単一のプロセッサの計算能力とクロック周波数は数年前にピークに達しましたが、現在のものよりも強力で高速なプロセッサを作成するのは簡単ではありません。そのため、主要なCPUメーカー(Intel、AMD)は戦略を切り替えてマルチコアに移行しました。もちろん、これにはマルチタスクのフルパワーを活用するためにアプリケーション開発者からのより多くの作業が必要です:単一のタスクで実行されるプログラムは、マルチコアCPUから利益を得ることはできません(システムは単一のプロセスが単一のCPUを使用して100%使用してもロックされないため、全体的なボーナスです)。
物理アーキテクチャ(複数のシングルコアプロセッサではなくマルチコアプロセッサ)について... Intelにお問い合わせください。しかし、これは単一のCPUソケットを備えたマザーボードと関係があると確信しています。複数のCPUソケットを備えたボードよりも設計と製造がはるかに簡単です。
クロック速度を上げるには、チップ上のシリコントランジスタがより高速にスイッチングできる必要があります。これらの高速化には、より大きな入力電圧と半導体製造プロセスが必要であり、その結果、リークが大きくなり、どちらも消費電力と熱出力が増加します。最終的には、過剰な電力を必要としたり、エキゾチックな冷却ソリューションを使用したりせずに、クロックレートをさらに上げることはできなくなります。
この問題を説明するために、2つの最新のAMDプロセッサーを比較します。AMD FX-9590は、箱から出してすぐに最大5 GHzのクロック速度を達成できますが、最大1.912 Vのコア電圧で動作します。これは、32 nmチップでは非常に高く、非常に大きな220ワットの熱を放散します。同じダイに基づくFX-8350は、最大4.2 GHzで動作しますが、最大1.4 Vで動作し、125ワットを消費します。
その結果、エンジニアは、クロックをさらに増やすのではなく、チップを複数のプロセスを同時に実行するように設計するなど、他の方法でより高速に動作するように努めてきました。
ムーアの法則。基本的に、プロセッサを高速化することはできません(5年前に周波数が3 GHzに達し、それをはるかに超えることはありませんでした)。