マルチコアおよびチップマルチプロセッサ
チップマルチプロセッサは、単一のダイ上に複数のプロセッサコアを統合し、キャッシュとメモリインターフェースを共有することで、クロック速度の向上ではなくスレッドレベルの並列処理によってパフォーマンスの成長を促進します。
Definition
マルチコアプロセッサ、またはチップマルチプロセッサとは、複数の独立したプロセッサコアを含む単一の集積回路であり、これらのコアは一部のオンチップリソースとメモリシステムを共有し、複数のスレッドまたはプログラムを同時に実行するように設計されています。
Scope
このトピックでは、マルチコアチップの構成、すなわちコア数と異種性、共有およびプライベートキャッシュ階層、オンチップ相互接続、そしてアムダールの法則の下でパフォーマンスがコア数に応じてどのようにスケーリングするかについて扱います。マルチコアシステムのハードウェア構造について説明します。他の共有メモリトピック(共有メモリとコヒーレンス、キャッシュコヒーレンスプロトコル)と共有されるコヒーレンスおよび一貫性メカニズム、およびシングルコアエンジン(プロセッサマイクロアーキテクチャ)は除外します。
Core questions
- プロセッサはなぜ単一の高速コアから複数のコアへと移行したのでしょうか?
- コア、キャッシュ、相互接続はチップ上でどのように構成されていますか?
- アムダールの法則は、コアを追加することによる高速化をどのように制限しますか?
- 同種のコアよりも異種のコアが好ましいのはどのような場合ですか?
Key concepts
- チップマルチプロセッサ
- スレッドレベル並列処理
- 共有キャッシュとプライベートキャッシュ
- オンチップ相互接続
- コア数とスケーリング
- 異種(big.LITTLE)コア
- アムダールの法則
- 電力と熱の制限
Key theories
- マルチコアスケーリングに関するアムダールの法則
- ワークロードの逐次部分は、コアを追加することによって達成できる高速化を制限します。この限界は、単にコア数を増やすだけでは収穫逓減が生じる理由を説明し、逐次ボトルネックを減らし、異種設計を使用する動機付けとなります。
Mechanisms
マルチコアチップは、複数のコアを1つのダイ上に配置し、通常はプライベートな第1レベルキャッシュ、共有の最終レベルキャッシュ、およびメモリコントローラに接続するオンチップネットワークまたはリングを備えています。ワークロードは、異なるコアでスレッドを実行することによりパフォーマンスを向上させます。異種設計では、大規模な高性能コアと小型で効率的なコアを組み合わせ、速度とエネルギーのバランスを取るために最も適切なコアに作業をスケジュールします。
Clinical relevance
マルチコアは、電力制限による周波数スケーリングの停滞により、今日では携帯電話からサーバーまで、主要なプロセッサ設計となっています。その台頭は、パフォーマンスの負担を並列ソフトウェアに移しました。アプリケーションは恩恵を受けるためにマルチスレッド化される必要があり、これにより並行処理が主流のプログラミング上の懸念事項となり、アムダールの法則が実際のシステムにおける実用的な制約となっています。
History
1990年代のスタンフォード大学のHydraなどの研究用チップマルチプロセッサは、マルチコア時代を予期していました。2004年から2005年頃の周波数スケーリングの限界により、主流のCPUはデュアルコア、そしてマルチコア設計へと移行しました。その後、特にモバイルおよびラップトッププロセッサにおいて、性能と効率コアを組み合わせた異種アーキテクチャが一般的になりました。
Debates
- より多くのコアか、より強力なコアか
- 固定された電力と面積を前提として、設計者はより多くの単純なコアを追加するか、より少ない強力なコアを追加するか、あるいは異種混合にするかについて議論します。最適な選択は、ターゲットワークロードの並列度によって異なり、逐次部分が significant な場合、アムダールの法則は強力なコアを支持します。
Key figures
- Gene Amdahl
- John L. Hennessy
- David A. Patterson
- Kunle Olukotun
Related topics
Seminal works
- hennessy2019
- amdahl1967
Frequently asked questions
- コア数を2倍にしてもパフォーマンスが2倍にならないのはなぜですか?
- アムダールの法則により、プログラムの逐次的に実行されなければならない部分は、追加されたコアの恩恵を制限します。通信、同期、および共有リソースの競合はさらなるオーバーヘッドを追加するため、実際の高速化は通常、理想的な線形スケーリングをはるかに下回ります。
- 異種(big.LITTLE)コアとは何ですか?
- 異種設計は、同じチップ上に大規模で高性能なコアと小型でエネルギー効率の高いコアを組み合わせたものです。システムは、要求の厳しい作業をビッグコアに、軽量な作業やバックグラウンド作業をリトルコアにスケジュールすることで、ピーク性能を犠牲にすることなくエネルギー効率を向上させます。