Wat is Write-allocate?

Methode waarbij bij een cachemiss bij schrijven de regel eerst in de cache wordt ingelezen en daarna wordt beschreven. Wordt vaak gecombineerd met write-back. De methode die rechtstreeks naar het onderliggende niveau schrijft zonder in te lezen heet no-write-allocate.

Japanse benaming: ライトアロケート

“Write-allocate” komt voor in 4 oefenvragen uit 1 onderwerpen, bijv. Geheugenhiërarchie en prestaties.

Vakgebied: Geheugenhiërarchie en prestaties

Nu oefenen: vragen over Write-allocate

Wat is het belangrijkste doel van een schrijfbuffer bij een write-through cache?

  1. ADe CPU laten doorgaan met de volgende bewerking zonder te wachten tot het schrijven naar het hoofdgeheugen is voltooid
  2. BDe data in de cache nieuwer houden dan die in het hoofdgeheugen
  3. CErvoor zorgen dat een regel waarop een schrijfmiss optreedt altijd eerst uit het hoofdgeheugen in de cache wordt gelezen voordat erin wordt geschreven
Antwoord en toelichting tonen

Antwoord: A. De CPU laten doorgaan met de volgende bewerking zonder te wachten tot het schrijven naar het hoofdgeheugen is voltooid

Bij write-through wordt bij elke schrijfactie ook naar het hoofdgeheugen geschreven; als op de voltooiing wordt gewacht, komt de CPU geregeld stil te staan. Als schrijfacties tijdelijk in een schrijfbuffer worden opgeslagen, kan de CPU direct met de volgende instructie verdergaan, terwijl de buffer ze op de achtergrond naar het hoofdgeheugen schrijft. De cache nieuwer houden dan het hoofdgeheugen is een eigenschap van write-back; bij write-through zijn beide juist gelijk. Of een gemiste regel wordt ingelezen is de keuze tussen write-allocate en no-write-allocate en staat los van de schrijfbuffer.

Welke methode schrijft bij een cachemiss op een schrijfactie rechtstreeks naar het lagere niveau zonder de regel in te lezen?

  1. AWrite-allocate
  2. BWrite-back
  3. CNo-write-allocate
Antwoord en toelichting tonen

Antwoord: C. No-write-allocate

De methode die bij een schrijfmiss rechtstreeks naar het lagere niveau schrijft zonder de regel in te lezen, is no-write-allocate; ze wordt vaak gecombineerd met write-through. Bij data die na het schrijven niet meer worden teruggelezen, bespaart dit onnodig inlezen. Write-allocate leest juist eerst de regel in en schrijft dan; dit is voordelig als de geschreven data snel weer worden gebruikt en wordt daarom vaak met write-back gecombineerd. Write-back bepaalt hoe schrijfhits worden afgehandeld en is een andere as dan de vraag of bij een miss wordt ingelezen.

“Write-allocate” in de toelichting

Vragen met “Write-allocate” (4)

  1. Wat is het belangrijkste doel van een schrijfbuffer bij een write-through cache?
  2. Welke methode schrijft bij een cachemiss op een schrijfactie rechtstreeks naar het lagere niveau zonder de regel in te lezen?
  3. Wat is het belangrijkste voordeel van stores die de cache omzeilen (non-temporal stores) bij het wegschrijven van grote data die eenmaal worden geschreven en daarna een tijd niet worden teruggelezen?
  4. Welke techniek stuurt, bij het inlezen van een gemiste regel uit het hoofdgeheugen, eerst het woord dat de CPU nodig heeft en pas daarna de rest?

Verwante termen

Write-through Numerieke apertuur (NA) Cacheregel (cache line) Capaciteitsmiss (capacity miss) Compulsory miss Conflictmiss (conflict miss) Direct-mapped cache Fully associative Gemiddelde geheugentoegangstijd (AMAT) Loop blocking (tiling)

Naar de woordenlijst