EMZETT.
Login

Speicherhierarchie und Cache-Lines

Kurz: Computer haben mehrere Speicherstufen: Register, L1–L3-Cache, Arbeitsspeicher, SSD, Festplatte. Je näher an der CPU, desto schneller, aber kleiner. Daten werden in Cache-Lines (meist 64 Byte) bewegt.

Genauer: Der Zugriff auf den Arbeitsspeicher dauert grob hundertmal länger als auf den L1-Cache. Programme, die Daten nacheinander und nah beieinander lesen (räumliche und zeitliche Lokalität), laufen deutlich schneller.

Im Detail

  • Größenordnungen: L1 ≈ 1 ns, L2 ≈ 4 ns, L3 ≈ 15 ns, RAM ≈ 80–100 ns, SSD ≈ 100 µs, HDD ≈ 10 ms.
  • Cache-Line: Kleinste Einheit des Transfers. Ein Byte lesen holt 64 Byte.
  • Lokalität: Arrays durchlaufen ist schnell, verkettete Listen springen im Speicher.
  • False Sharing: Zwei Threads schreiben auf verschiedene Variablen derselben Cache-Line und bremsen sich aus.
  • Struct of Arrays vs. Array of Structs: Anordnung entscheidet über Cache-Effizienz.
  • Prefetching: CPU lädt vorausschauend.

Siehe auch: Caching-Strategien und Cache-Invalidierung, Amdahlsches Gesetz und Skalierung