Cache
Cache speichert häufig benötigte Daten zwischen für schnelleren Zugriff.
Wie ein Notizzettel mit den wichtigsten Sachen für schnellen Zugriff.
Cache Typen
CPU-Cache (Hardware)
Schneller Zwischenspeicher zwischen Registern und RAM, der den von-Neumann-Flaschenhals entschärft (siehe von-Neumann-Zyklus). Hält häufig benutzte Daten vor.
- Kriterium = Lokalität:
- zeitlich: zuletzt benutzte Daten kommen bald wieder dran.
- räumlich: benachbarte Daten werden vermutlich auch bald gebraucht → es wird gleich der ganze Block geladen.
- 3 Ebenen: L1 (am nächsten an der CPU, am schnellsten) → L2 → L3. L1+L2 pro Core, L3 gemeinsam. Einordnung: siehe Speicherhierarchie.
Block-Mapping (Modulo)
L2-Cache mit 512 Zeilen, Zeilengröße 64 Byte. Byte mit Adresse 222433:
Ist die Zeile schon belegt → alter Inhalt wird verdrängt (Cache Eviction). Echte Caches haben mehrere Spalten = Assoziativität (z.B. 8-fach assoziativ).
Cache & Sicherheit
Unterschiedliche Ladezeiten (Cache-Hit vs. -Miss) werden für Cache-Timing-Angriffe ausgenutzt — auch Meltdown & Spectre (2017) basieren darauf.