L1-, L2- und L3-Cache
Kurz: Der Cache ist ein sehr schneller Zwischenspeicher in der CPU, der Daten und Befehle bereithält, die bald gebraucht werden. Es gibt drei Ebenen: L1 (klein, am schnellsten), L2 (mittel) und L3 (groß, geteilt, langsamer).
Genauer: Der Arbeitsspeicher ist für eine CPU sehr langsam: Ein Zugriff dauert so lang wie Hunderte Rechenschritte. Der Cache überbrückt das mit der Beobachtung, dass Programme dieselben Daten wiederholt (zeitliche Lokalität) und benachbarte Daten (räumliche Lokalität) brauchen. Mehrere Ebenen sind ein Kompromiss: Je schneller ein Speicher, desto teurer und kleiner ist er.
Im Detail
| Ebene | Typische Größe | Zugriffszeit | Gehört zu | Besonderheit |
|---|---|---|---|---|
| L1 | 32 – 64 KB (je Daten und Befehle) | ~4 Takte | jedem Kern | Am schnellsten und kleinsten, getrennt in L1d (Daten) und L1i (Befehle) |
| L2 | 256 KB – 2 MB | ~12 Takte | meist jedem Kern | Puffer zwischen L1 und L3 |
| L3 | 8 – 128 MB (und mehr, 3D V-Cache) | ~40 Takte | allen Kernen gemeinsam | Tauscht Daten zwischen Kernen aus |
| RAM | GB | ~200+ Takte | extern | zum Vergleich |
Funktionsweise:
- Daten werden in Cache-Zeilen von 64 Byte geladen.
- Treffer (Hit): Die Daten sind da, schnell. Fehlgriff (Miss): Daten müssen von der nächsten Ebene geholt werden, die CPU wartet.
- Verdrängung: Wenn der Cache voll ist, fliegt meist das am längsten ungenutzte raus (LRU-ähnlich).
- Kohärenz: Verändert ein Kern Daten, müssen andere Kerne ihre Kopien aktualisieren oder verwerfen (Protokolle wie MESI).
Warum mehrere Ebenen?
- Ein einziger großer Cache wäre langsam (längere Wege, mehr Verwaltung).
- Ein kleiner, schneller L1 fängt die meisten Zugriffe ab. Was nicht hineinpasst, liegt in L2 und L3.
- So erhält man eine Kombination aus hoher Geschwindigkeit und genug Kapazität.
Praxis:
- Programme laufen schneller, wenn sie Daten der Reihe nach lesen (Arrays) und nicht in Sprüngen (verkettete Listen, Zufallszugriffe).
- Spiele und Datenbanken profitieren stark von großem L3 (AMD X3D, 3D V-Cache).
- Cache-Größe ist neben Takt und Kernzahl ein Kaufkriterium.
- Angriffe wie Spectre und Meltdown nutzten Zeitunterschiede im Cache aus.
Siehe auch: CPU-Aufbau: Rechenwerke und Cache, Speicherhierarchie und Cache-Lines, Caches