vad är en skrivmiss?
I samband med datorminnesystem, särskilt cachar, skriver en miss inträffar när CPU (eller en annan enhet) vill skriva data till en specifik minnesplats, men den platsen är för närvarande inte i cachen .
Här är en uppdelning:
1. cache -uppslag: När CPU vill skriva till en specifik minnesadress kontrollerar den först cachen för att se om en kopia av motsvarande minnesblock redan lagras där.
2. taggjämförelse: Cachen använder minnesadressen för att bestämma vilken cache -linje (om någon) som ska innehålla de begärda data. Den jämför sedan "taggen" associerad med den cachelinjen med den relevanta delen av minnesadressen. Om taggarna matchar är det en cache -hit; Om de inte matchar, eller cachelinjen är tom, är det en miss.
3. Skriv miss: Om taggjämförelsen misslyckas (vilket innebär att data inte finns i cachen), skriver en Miss inträffar.
Påverkan på datorsystemets prestanda
Skrivmissar kan påverka prestandan hos ett datorsystem avsevärt eftersom de kräver att systemet hämtar de nödvändiga data från huvudminnet (RAM), vilket är mycket långsammare än att komma åt cachen. Så här::
1. stalling: När en skrivmiss inträffar måste CPU vanligtvis stall (pausutförande). Detta beror på att CPU inte kan skriva data förrän motsvarande minnesblock har tagits in i cachen.
2. Minnesåtkomst latens: Att komma åt huvudminnet tar betydligt längre tid än att komma åt cachen. Denna latens läggs till i programmets övergripande exekveringstid.
3. cache -linjesersättning: Efter att ha hämtat de nödvändiga uppgifterna från huvudminnet måste cachen ge utrymme för det. Detta innebär ofta att utöva (ta bort) en befintlig cache -linje för att göra utrymme. Valet av vilken linje som ska avvisas bestäms av cache -ersättningspolicyn (t.ex. minst nyligen använt - LRU). Om den utkastade linjen var smutsig (modifierad) måste den skrivas tillbaka till huvudminnet innan den utkastas, vilket ytterligare ökar latensen.
4. Ökad minnestrafik: Skriva missar genererar ytterligare trafik på minnesbussen, som är kommunikationskanalen mellan CPU och huvudminnet. Ökad minnestrafik kan leda till stridighet och ytterligare avmattning av systemet.
Sammanfattningsvis, skriv missar försämrar prestanda på grund av:
* CPU -bås medan du väntar på data från huvudminnet.
* Den inneboende latensen för att komma åt huvudminnet.
* Potentiella skrivbackar av smutsiga cache -linjer till huvudminnet före utkastning.
* Ökad trafik på minnesbussen.
Strategier för att mildra effekterna av skrivmissar
Flera tekniker används för att minimera effekterna av skrivmissar:
* Större cachestorlekar: En större cache har en högre sannolikhet för att innehålla de data som behövs för en skrivoperation, vilket minskar sannolikheten för en skrivmiss.
* associerande cachar: Associativa cachar tillåter ett minnesblock att placeras i någon av flera cachelinjer, vilket minskar chansen för konfliktmissar (där flera minnesblock tävlar om samma cache -plats).
* Skrivbuffertar: Skrivbuffertar är små, snabba lagringsområden som tillfälligt håller data som väntar på att skrivas till huvudminnet. CPU kan skriva data till skrivbufferten och fortsätta bearbeta medan skrivbufferten asynkront överför data till huvudminnet. Detta döljer en del av latensen för huvudminnet.
* Skrivning kontra skriv-back-cachar:
* skriv-genom cachar: Varje skrivning till cachen uppdaterar också omedelbart huvudminnet. Detta förenklar cache -koherensprotokollet men kan generera betydande minnestrafik.
* skriv-back-cachar: Skrivningar görs initialt endast till cachen. Cache -linjen är markerad som "smutsig." Uppgifterna är skrivna tillbaka till huvudminnet endast när cachelinjen kastas ut. Detta minskar minnetrafiken men kräver mer komplexa cache -koherensprotokoll.
* cache Prefetching: Tekniker som hårdvara eller mjukvaruföredragning kan förutsäga vilka data som kommer att behövas i framtiden och proaktivt föra dessa data in i cachen, vilket potentiellt kan undvika skrivmissar.
* Datalokalitet: Optimering av kod för att förbättra datalokaliteten (att hålla relaterade data nära varandra i minnet) kan öka chansen för cache -träffar och minska förekomsten av skrivmissar.