Zurück zur Übersicht

Begriff

Cache Coherency

Hardware Computer Science S4
2 Quellen 0 Lernpfade 0 Backlinks enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Du hast 2 CPUs. Beide haben einen eigenen Cache (L1). Im RAM steht X = 0. CPU A lädt X, rechnet X = 1. Das steht jetzt in Cache A. CPU B lädt X. Was sieht sie?

  • Ohne Kohärenz: Sie sieht 0 (aus dem RAM). Falsch!
  • Mit Cache Coherency: Die Hardware sorgt magisch dafür, dass CPU B erfährt: "Achtung, X wurde geändert!". Entweder CPU A schreibt es sofort in den RAM (Write-Through) oder signalisiert B "Dein Wert ist ungültig" (Invalidate). Das passiert in Hardware (MESI Protokoll). Ohne das wäre Multithreading unmöglich.

Merksatz: Ein Mechanismus in Mehrprozessorsystemen, der sicherstellt, dass alle Prozessoren eine konsistente Sicht auf den gemeinsamen Arbeitsspeicher haben, auch wenn Daten in lokalen Caches zwischengespeichert und geändert werden.


Quick-Check

  1. Volatile (Java)?
    Cache Coherency garantiert, dass der Cache konsistent ist. volatile garantiert zusätzlich Sichtbarkeit im Programmiermodell (Memory Model) und verhindert Reordering durch den Compiler/CPU.
  2. GPU?
    GPUs haben oft KEINE Cache Coherency zwischen den Cores (oder nur sehe eingeschränkt). Deshalb müssen Grafik-Shader so geschrieben sein, dass sie nicht gesharten Speicher gleichzeitig beschreiben.
  3. Teuer?
    Ja. Cache-Kohärenz-Verkehr verbraucht viel Bandbreite. Deshalb skalieren Systeme nicht linear (100 CPUs sind nicht 100x schneller).