Home

Mehrkernstrukturen

Mehrkernstrukturen bezeichnen Rechensysteme, in denen mehrere Prozessorkerne auf einem einzigen Chip oder in einer gemeinsamen Gehäuseeinheit vorhanden sind. Jeder Kern führt eigene Befehle aus, teilt jedoch Ressourcen wie Cache, Hauptspeicher und I/O-Busse. Dadurch steigt die Rechenleistung, insbesondere bei parallelisierbaren Anwendungen, ohne dass mehrere Chips benötigt werden.

Typische Architekturen verwenden ein Shared-M-memory-Modell, bei dem Kerne über einen gemeinsamen Hauptspeicher kommunizieren. In größeren Systemen

Vorteile liegen in höherem Durchsatz bei Mehrfachausführung, besserer Auslastung mehrerer Threads und potenzieller Energieeffizienz, da mehr

Typische Einsatzgebiete sind Server-, Desktop- und Mobile-Anwendungen sowie eingebettete Systeme. In der Praxis werden oft heterogene

treten
Konzepte
wie
Symmetric
Multiprocessing
(SMP)
oder
Chip-Level
Multi-Core
(CMP)
auf.
Durch
größere
Systeme
kann
auch
Non-Uniform
Memory
Access
(NUMA)
eine
Rolle
spielen,
bei
der
Speicherzugriffe
je
nach
Kernort
unterschiedliche
Latenzen
haben.
Caches
arbeiten
oft
mit
Protokollen
wie
MESI,
um
Konsistenz
zwischen
Kernen
zu
gewährleisten.
Rechenarbeit
pro
Watt
erzielt
werden
kann.
Gleichzeitig
erfordern
Mehrkernstrukturen
entsprechende
Softwareunterstützung:
Programme
müssen
parallelisiert,
Threads
sicher
synchronisiert
und
Race-Conditions
vermieden
werden.
Die
Skalierbarkeit
ist
durch
Abhängigkeiten
wie
Speicherbandbreite,
Cache-Kohärenz-Verkehr
und
Kommunikationsdominanz
begrenzt
(Prinzip
der
Amdahl-Grenze).
Architekturen
kombiniert,
zum
Beispiel
durch
verschiedene
Kerntypen
oder
konkrete
Energiesparmechanismen
wie
Big.LITTLE-Designs.
Die
Entwicklung
von
Software
für
Mehrkernstrukturen
erfordert
geeignete
Programmierparadigmen,
Tools
und
Bibliotheken
für
Parallelisierung
(z.
B.
Threading,
parallele
Bibliotheken,
SIMD).