Multicore- und Chip-Multiprozessoren
Ein Chip-Multiprozessor integriert mehrere Prozessorkerne auf einem einzigen Chip, die Caches und eine Speicherschnittstelle gemeinsam nutzen, sodass die Leistung nicht durch höhere Taktraten, sondern durch Thread-Level-Parallelität gesteigert wird.
Definition
Ein Multicore-Prozessor oder Chip-Multiprozessor ist eine einzelne integrierte Schaltung, die mehrere unabhängige Prozessorkerne enthält, die einige On-Chip-Ressourcen und ein Speichersystem gemeinsam nutzen und darauf ausgelegt sind, mehrere Threads oder Programme gleichzeitig auszuführen.
Scope
Dieses Thema behandelt die Organisation von Multicore-Chips: Kernanzahl und -heterogenität, gemeinsame und private Cache-Hierarchien, On-Chip-Verbindungen und wie die Leistung mit der Anzahl der Kerne gemäß Amdahls Gesetz skaliert. Es behandelt die Hardwarestruktur von Multicore-Systemen. Ausgenommen sind Kohärenz- und Konsistenzmechanismen, die mit anderen Shared-Memory-Themen (Shared-Memory-and-Coherence, Cache-Kohärenzprotokolle) und dem Single-Core-Engine (Prozessor-Mikroarchitektur) geteilt werden.
Core questions
- Warum wechselten Prozessoren von einzelnen schnellen Kernen zu mehreren Kernen?
- Wie sind Kerne, Caches und Interconnect auf einem Chip organisiert?
- Wie begrenzt Amdahls Gesetz die Beschleunigung durch das Hinzufügen von Kernen?
- Wann sind heterogene Kerne identischen Kernen vorzuziehen?
Key concepts
- Chip-Multiprozessor
- Thread-Level-Parallelität
- gemeinsame vs. private Caches
- On-Chip-Interconnect
- Kernanzahl und Skalierung
- heterogene (big.LITTLE) Kerne
- Amdahls Gesetz
- Leistungs- und thermische Grenzen
Key theories
- Amdahls Gesetz für Multicore-Skalierung
- Der serielle Anteil einer Arbeitslast begrenzt die Beschleunigung, die durch das Hinzufügen von Kernen erreicht werden kann; diese Grenze erklärt, warum eine einfache Erhöhung der Kernanzahl zu abnehmenden Erträgen führt und motiviert die Reduzierung serieller Engpässe und die Verwendung heterogener Designs.
Mechanisms
Ein Multicore-Chip platziert mehrere Kerne auf einem Die, typischerweise mit privaten Caches der ersten Ebene, einem gemeinsamen Cache der letzten Ebene und einem On-Chip-Netzwerk oder Ring, der sie mit Speichercontrollern verbindet. Workloads erzielen Leistungssteigerungen, indem sie Threads auf verschiedenen Kernen ausführen. Heterogene Designs kombinieren große Hochleistungskerne mit kleinen, effizienten Kernen und planen die Arbeit dem am besten geeigneten Kern zu, um Geschwindigkeit und Energie auszugleichen.
Clinical relevance
Multicore ist heute das dominierende Prozessordesign, von Telefonen bis zu Servern, da die Frequenzskalierung aufgrund von Leistungsgrenzen stagnierte. Sein Aufkommen verlagerte die Last der Leistung auf parallele Software: Anwendungen müssen Multithreading-fähig sein, um davon zu profitieren, was Parallelität zu einem zentralen Programmierproblem und Amdahls Gesetz zu einer praktischen Einschränkung realer Systeme macht.
History
Forschungschip-Multiprozessoren wie Stanfords Hydra in den 1990er Jahren nahmen die Multicore-Ära vorweg. Der Zusammenbruch der Frequenzskalierung um 2004–2005 drängte Mainstream-CPUs zu Dual- und dann zu Many-Core-Designs. Heterogene Architekturen, die Leistungs- und Effizienzkerne kombinieren, wurden später üblich, insbesondere in Mobil- und Laptop-Prozessoren.
Debates
- Mehr Kerne versus stärkere Kerne
- Angesichts fester Leistung und Fläche diskutieren Designer, ob sie viele einfachere Kerne, weniger leistungsstarke Kerne oder eine heterogene Mischung hinzufügen sollen; die beste Wahl hängt davon ab, wie parallel die Ziel-Workloads sind, wobei Amdahls Gesetz starke Kerne bevorzugt, wenn serielle Anteile signifikant sind.
Key figures
- Gene Amdahl
- John L. Hennessy
- David A. Patterson
- Kunle Olukotun
Related topics
Seminal works
- hennessy2019
- amdahl1967
Frequently asked questions
- Warum verdoppelt sich die Leistung nicht, wenn die Anzahl der Kerne verdoppelt wird?
- Nach Amdahls Gesetz begrenzt jeder Teil eines Programms, der seriell ausgeführt werden muss, den Nutzen zusätzlicher Kerne. Kommunikation, Synchronisation und Konflikte um gemeinsam genutzte Ressourcen verursachen zusätzlichen Overhead, sodass die tatsächliche Beschleunigung typischerweise deutlich unter der idealen linearen Skalierung liegt.
- Was sind heterogene (big.LITTLE) Kerne?
- Heterogene Designs kombinieren große, hochleistungsfähige Kerne mit kleineren, energieeffizienten Kernen auf demselben Chip. Das System plant anspruchsvolle Aufgaben auf den großen Kernen und leichte oder Hintergrundaufgaben auf den kleinen Kernen, wodurch die Energieeffizienz verbessert wird, ohne die Spitzenleistung zu beeinträchtigen.