In een doorschrijfcache wordt bij elke schrijfbewerking zowel de cache als het hoofdgeheugen tegelijkertijd bijgewerkt. Dit staat in contrast met terugschrijfcaching, waarbij in eerste instantie alleen naar de cache wordt geschreven, waarbij updates van het hoofdgeheugen worden uitgesteld totdat de cacheregel wordt verwijderd.
Hier volgt een overzicht van de gevolgen:
Voordelen van doorschrijven:
* Gegevensconsistentie: Omdat het hoofdgeheugen altijd up-to-date is, is er geen probleem met de cachecoherentie. Meerdere verwerkers of processen die toegang hebben tot dezelfde gegevens zullen altijd de meest recente versie zien. Dit vereenvoudigt het cachebeheer en vermijdt de noodzaak van complexe protocollen om de consistentie te behouden.
* Eenvoud: De implementatie is over het algemeen eenvoudiger dan terugschrijven, omdat er geen "vuile bit" nodig is om gewijzigde cacheregels bij te houden, of een terugschrijfbuffer om lopende geheugenschrijfbewerkingen in de wachtrij te zetten.
Nadelen van doorschrijven:
* Prestatieknelpunt: Schrijven naar het geheugen is langzamer dan schrijven naar de cache. De schrijfbewerking moet wachten tot het schrijven in het hoofdgeheugen is voltooid voordat verder kan worden gegaan, waardoor de schrijfprestaties aanzienlijk worden verminderd, vooral bij veelvuldig schrijven. Dit kan leiden tot een verminderde totale systeemdoorvoer.
* Toegenomen busverkeer: Elke schrijfbewerking genereert verkeer op de systeembus, waardoor de conflicten toenemen en mogelijk andere apparaten worden beïnvloed.
Samenvattend geeft write-through caching prioriteit aan gegevensconsistentie en eenvoud boven prestaties. Het is geschikt voor toepassingen waarbij gegevensconsistentie van het grootste belang is en schrijfbewerkingen niet vaak voorkomen, of wanneer de prestatieoverhead acceptabel is. Omgekeerd heeft write-back caching de voorkeur in prestatiekritische applicaties met veel schrijfbewerkingen. |