I en skrivande cache uppdaterar varje skrivoperation både cachen och huvudminnet samtidigt. Detta står i kontrast till cache-back-cache, där skrivningar bara görs till cachen initialt, med uppdateringar av huvudminnet försenas tills cachelinjen utkastas.
Här är en uppdelning av konsekvenserna:
Fördelar med skrivning:
* Data konsistens: Eftersom huvudminnet alltid är uppdaterat finns det inget cache-koherensproblem. Flera processorer eller processer som åtkomst till samma data kommer alltid att se den senaste versionen. Detta förenklar cachehanteringen och undviker behovet av komplexa protokoll för att upprätthålla konsistens.
* enkelhet: Implementeringen är i allmänhet enklare än avskrivning, eftersom det inte finns något behov av en "smutsig bit" för att spåra modifierade cache-linjer eller en skrivbuffert för att kön väntar på minne.
Nackdelar med skrivning:
* Performance flaskhals: Att skriva till minnet är långsammare än att skriva till cache. Skrivoperationen måste vänta på att huvudminnet skrivs till slut innan du fortsätter, vilket minskar skrivprestanda avsevärt, särskilt för ofta skrivningar. Detta kan leda till minskat övergripande systemgenomströmning.
* Ökad busstrafik: Varje skrivoperation genererar trafik på systembussen, ökar striden och potentiellt påverkar andra enheter.
Sammanfattningsvis prioriterar skrivning av cachning datakonsistens och enkelhet framför prestanda. Det är lämpligt för applikationer där datakonsistens är av största vikt och skrivoperationer är sällsynta, eller när prestandakostnaden är acceptabel. Omvänt föredras skriv-back-cachning i prestationskritiska applikationer med många skrivoperationer.