web-dev-qa-db-ja.com

なぜマルチコアプロセッサなのか?

チップに含まれるコアの数が増えるのはなぜですか?より大きなシングルコアプロセッサを製造してみませんか?製造は簡単ですか?プログラムが別々のコアを使用してマルチスレッド化できるようにするためですか?

16
rkrauter

マルチコアへの傾向は、CPU設計者が、周波数スケーリングの増加に伴う消費電力の問題を回避するのに役立つエンジニアリングアプローチです。 CPU速度が3〜4 Ghzの範囲に上昇すると、高速化に必要な電力量が法外になり始めました。これの技術的な理由は複雑ですが、熱損失や漏れ電流(何も実行せずに回路を単純に通過する電力)などの要因は、周波数が上がるにつれて速く増加します。 6 GHzの汎用x86 CPUを構築することは確かに可能ですが、効率的に構築することは経済的に証明されていません。これがマルチコアへの移行が始まった理由であり、少なくとも並列化の問題が克服できなくなるまで、この傾向が続くことがわかるでしょう。現時点では、仮想化への傾向がサーバーの分野で役立っています。これにより、現時点では、集約ワークロードを効率的に並列化することができます。

実際の例として、E5640 Xeon(4コア@ 2.66 GHz)の電力エンベロープは95ワットですが、L5630(4コア@ 2.13 GHz)の電力エンベロープはわずか40ワットです。これは、ほとんどの部分で機能互換性のあるCPUの場合、電力が137%増加し、CPU電力が24%増加します。 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を構築するよりもはるかに優れたアプローチです。

この傾向はしばらく続きますが、課題があり、コアの数を継続的にスケールアウトすることは容易ではありません(コアの数が増えるにつれて、メモリ帯域幅を十分に高く保ち、キャッシュの管理をより困難にします)。つまり、ソケットあたりのコア数の現在のかなり爆発的な増加は、数世代のうちに減速する必要があり、他のアプローチが見られます。

25
Helvick

それらを便利に速くするのは難しくなりすぎていました。

問題は、大量の命令を一度に処理する必要があることです。現在のx86 CPUは、80以上の命令を同時に処理しており、P4でヒットしたため、それが限界であるようです。 、Pentium Proは1995年に40を実行しました。通常の命令ストリームは、一度に複数の命令を実行するためにそれを超えて予測することはできません(ブランチ、メモリアクセスなどを推測する必要があります)(486は5、Pentiumは10、かろうじて) 。

したがって、それらをより広く(命令の各部分を実行するためのより多くの機能ユニット)、より長く(レイテンシーを隠すためのより深いパイプライン)することはできますが、あまり効果がないようです。そして、クロック速度も壁にぶつかったようです。そして、私たちはまだメモリを使い果たしています。そのため、多数のCPUに分割することはメリットがあるようです。さらに、キャッシュを共有できます。

これにはかなり多くのことがありますが、要約すると、従来のプログラムは、設計と構築の方法を想像できるどのハードウェアでも大幅に高速に実行することはできません。

たとえば、予測可能性が問題ではない場合、たとえば、多くの科学的な問題やグラフィックス(要約すると、この数値のセットにその数値のセットを掛ける)の場合はそうではなく、IntelのIA64( Itanium)とGPUは、高速化を続けていますが、Wordの実行を改善するのに役立ちません。

5
Ronald Pottol

単一のプロセッサの計算能力とクロック周波数は数年前にピークに達しました。現在のプロセッサよりも強力なプロセッサや高速なプロセッサを作成するのは簡単ではありません。そのため、主要なCPUメーカー(Intel、AMD)は戦略を切り替え、マルチコアに移行しました。もちろん、これには、マルチタスクの能力を最大限に活用するために、アプリケーション開発者によるより多くの作業が必要です。単一のタスクで実行されるプログラムは、マルチコアCPUから何のメリットも得られません(システムは単一のプロセスが単一のCPUを100%使用する場合、ロックされないため、全体的なボーナス)。

物理アーキテクチャ(複数のシングルコアプロセッサではなくマルチコアプロセッサ)について...インテルに問い合わせる必要があります。しかし、これは単一のCPUソケットを備えたマザーボードと関係があり、複数のボードを備えたボードよりも設計と製造がはるかに簡単だと確信しています。

4
Massimo

クロック速度を上げるには、チップ上のシリコントランジスタがより速く切り替わる必要があります。これらの高速化には、より高い入力電圧と半導体製造プロセスが必要であり、その結果、 リーク が大きくなり、どちらも消費電力と熱出力が増加します。最終的には、過剰な電力を必要とせず、またはエキゾチックな冷却ソリューションを使用しないと、クロックレートをこれ以上上げることができないポイントに到達します。

この問題を説明するために、2つの最新のAMDプロセッサを比較します。 AMD FX-9590は、箱から出して最大5 GHzのクロック速度を達成できますが、最大1.912 Vのコア電圧で動作します。これは32nmチップとしては非常に高く、異常な電力を消費します220ワットの熱。同じダイをベースにしたFX-8350は、最大4.2 GHzで動作しますが、最大1.4 Vで動作し、125ワットを消費します。

その結果、エンジニアはクロックをさらに増やすのではなく、複数のプロセスを同時に実行するように設計することでマルチコアプロセッサを設計するなど、他の方法でチップの動作を高速化しようと努めてきました。

1
bwDraco

ムーアの法則 。基本的にプロセッサーはこれ以上速くすることはできません(周波数が5 GHz前に3 GHzに達し、それを超えることはありませんでした)。

0
wazoox