Cache-Kohärenz
Das Problem — und die Lösung —, mehrere CPU-Kerne mit privaten Caches über den Wert derselben Speicheradresse einig zu halten. Ändert ein Kern Daten, die ein anderer bereits gecacht hat, muss das System verhindern, dass irgendjemand einen veralteten Wert liest.
Warum es schwierig ist: Jeder Kern hat eigene L1/L2-Caches für Geschwindigkeit. Schreibt Kern A auf Adresse X und Kern B hält noch eine alte Kopie in seinem Cache, muss B's Kopie ungültig gemacht oder aktualisiert werden. Kohärenzprotokolle — meist aus der MESI-Familie — verfolgen den Zustand jeder Cache-Zeile und stimmen sich per Snooping oder über ein Verzeichnis ab.
Der Gewinn: Programmierer müssen sich darum nicht kümmern, der Speicher wirkt konsistent. Der Preis: Der Kohärenzverkehr zwischen den Kernen wird bei vielen Kernen zum Flaschenhals, und False Sharing — zwei Kerne schreiben in verschiedene Variablen derselben Cache-Zeile — kann die Leistung ruinieren. Grundlage jeder Mehrkern- und SMP-Architektur.