Jämförelse av skrivtekniker till cacheminne
1 Innehåll 1. Sammanfattning 2. Inledning 3. Diskussion 4. Referenslista 1. Sammanfattning En rapport innehållande jämförelser av olika skrivtekniker till minnen såsom write-through, write-around och write-back. De olika skrivteknikerna kommer med sina för- och nackdelar. Write-through skriver synkront till cache och minne medan Write-back till en början skriver till cache varpå data skrivs till primärminne. Write-around påminner lite om den teknik write-through använder.
2 2. Inledning För att på ett snabbt sätt kunna nå data i processorn används cacheminne. Information sparas i ett minne som går snabbt att nå. Ett vanligt minne som till exempel en hårddisk är långsam och tar tid att leta igenom. Man brukar prata om en minneshierarki där cacheminnet ligger närmre processorn än ramminnet som i sin tur är följt av någon slags lagringsenhet, exempelvis en hårddisk. När en instruktion ska hämtas men inte finns i cacheminnet kallas det för en miss. Förhoppningen är att dessa i så stor utsträckning som möjligt ska undvikas. Desto längre ner vi går i minneshierarkin desto längre tid tar det att läsa och skriva. Om dessa operationer görs om på nytt vill vi att de ska finnas i cacheminnet för att ge färre cache-missar. Ett cacheminne går att förbättra på många sätt. Till exempel genom att bestämma vilka data som ska sparas i det och även på vilket sätt. Färre skrivningar till minnet ger ett mer effektivt program, men kan istället kosta i exempelvis säkerhet. Vilken typ av skrivningar som kommer görs avgör vilken metod som ger bäst resultat. De flesta program är beroende av läsa och skriva. Därmed kommer dess prestanda bero på hur minnet fungerar. Syftet med denna rapport är att jämföra skrivstrategier till cacheminnet.
3 3. Diskussion Jämförelsen består av de tre olika typer av skrivteknikstrategierna: write-through, write-around samt write-back. Dessa har olika effektivitet beroende på läsningar och skrivningar som ska göras (Chris Evans, Computer Weekly). Dessutom finns en säkerhetsaspekt som innebär att data kan gå förlorad som ett pris till dess förmåga. Till exempel kan en snabb algoritm innebära flera cacheträffar samtidigt som data kan skrivas över och gå förlorad. Write-through fungerar på följande vis. Input och output-data skrivs till cacheminnet synkront som datan läggs på primärminnet. När detta sker innebär det att ny data nu finns både att hämta snabbt i cacheminnet samt på exempelvis en hårddisk. Vad som nu tar tid är att skriva till minnet och inte till cacheminnet. Därmed är Write-trough en teknik som är säker men också långsam. Varje skrivning, till exempelvis till en hårddisk, är dyr tidsmässigt. Eftersom dessa skrivningar också görs synkront till cacheminnet är tanken att mycket data förhoppningsvis ska läsas om. Om datan i cacheminnet gång på gång skrivs över kan en annan teknik vara bättre för detta fall. Då föredras istället Write-around som skrivteknik. För att data inte ska gå förlorad skrivs med write-around till en början till
4 lagringsenheten. Om många skrivningar görs till cachen innbär att write-through skulle fylla cachen gång på gång trots att informationen inte kommer användas. Poängen här är att undvika just det. Det innebär att vi får cache miss om data ska läsas som precis har skrivits i cacheminnet. Därmed måste denna data hämtas från primärminnet. Det är alltså helt beroende på vilka läsningar som ska göras som bestämmer den mest effektiva tekniken mellan dessa två.
5 Den tredje tekniken write-back fungerar lite annorlunda. Data som ska skrivas hamnar direkt i cachen och inte på lagringsenheten. Det resulterar i en mycket snabb skrivteknik med sämre säkerhet. I sin rapport beskriver Radhika Nagpal (1994) hur denna teknik fungerar. När dessa skrivs till cachen utan att uppdatera minnet så markeras denna rad som en dirty eller smutsig rad. Dessa block i cachen kommer endast skrivas till minnet om raden måste ersättas av en annan. Datan kan alltså hämtas direkt från cachen tills den blivit överskriven. Problemet är som sagt att det bara finns en kopia i cachen när en rad är dirty. Samtidigt är denna skrivtekniken den snabbaste av de tre. Det är upp till användaren huruvida risken är värd effektiviteten beroende på vilka skrivningar som ska göras. I sin rapport kommer Norman P. Jouppi fram till huruvida Write-back eller Write-through fungerar bäst i fall där hög prestanda efterfrågas. Båda teknikerna är krävande ur en komplexitetsaspekt. För write-back behövs ett slags register för de smutsiga raderna medan write-through-tekniken använder en skrivbuffert för att inte behöva skriva lägre ner till minneshierarkin. Norman P. Jouppi menar på att de extra platserna för dirty bits i write-back motsvarar den hårdvara skrivbufferten write-through kräver.
6 Referenser 1. Chris Evans (april 2014). Computer Weekly, 2012-2015, TechTarget. Kan nås via goo.gl/lbykjq. Information hämtad 2015-11-25 3. Norman P. Jouppi (december 1991). Cache Write Policies and Performance. Western Research Laboratory. Information hämtad 2015-12-04 2. Nagpal Radhika (1994). Single cycle store instructions in write-through, write-back and set associative caches. Massachussetts Institute of Technology. Information hämtad 2015-12-01.