Write-Through vs. Write-Back Cache: Unterschiede im Überblick
Eine Schreibstrategie legt fest, was passiert, wenn die CPU auf Daten schreibt, die im Cache liegen. Ein Write-Through-Cache aktualisiert Cache und Hauptspeicher gleichzeitig, sodass der Speicher immer aktuell ist, aber jeder Schreibzugriff Speicherverkehr verursacht. Ein Write-Back-Cache aktualisiert nur den Cache, markiert die Zeile als dirty und schreibt sie später in den Speicher, wenn die Zeile verdrängt wird. Write-Back ist schneller und braucht weniger Bandbreite, ist aber aufwendiger konsistent zu halten.
| Aspekt | Write-Through | Write-Back |
|---|---|---|
| Schreibstrategie | Jeder Schreibzugriff geht sowohl in den Cache als auch in die nächste Speicherebene | Ein Schreibzugriff aktualisiert nur den Cache und setzt das Dirty-Bit; der Speicher wird bei der Verdrängung aktualisiert |
| Speicherverkehr | Hoch: Jeder Schreibzugriff wird weitergeleitet | Geringer: Wiederholte Schreibzugriffe auf eine Zeile werden zu einem Write-Back zusammengefasst |
| Schreibgeschwindigkeit | Ohne Hilfsmittel langsamer; ein Schreibpuffer verbirgt einen großen Teil der Verzögerung | Schneller: Schreibzugriffe werden mit Cache-Geschwindigkeit abgeschlossen |
| Konsistenz mit dem Speicher | Der Speicher ist immer aktuell, was die gemeinsame Nutzung mit DMA und anderen Kernen vereinfacht | Der Speicher kann veraltet sein, bis die Zeile zurückgeschrieben wird; die Kohärenz erfordert daher mehr Sorgfalt |
| Komplexität | Einfach | Aufwendiger: Dirty-Bits, Write-Back bei der Verdrängung, Kohärenzprotokolle |
| Kosten der Verdrängung | Gering: Es muss nichts geschrieben werden | Das Verdrängen einer Dirty-Zeile kostet einen zusätzlichen Schreibzugriff auf den Speicher |
| Übliche Write-Miss-Strategie | No-Write-Allocate | Write-Allocate |
| Typische Verwendung | Einige L1-Caches sowie einfache oder auf Zuverlässigkeit ausgelegte Systeme | Die meisten modernen CPU-Caches, besonders L2 und L3 |
Die Zahlenangaben sind typische Größenordnungen und variieren je nach Prozessgeneration und Produkt.