Skrivning i cacheminnen zTräff zMiss zSkrivbuffert.

Slides:



Advertisements
Liknande presentationer
Välkommen till BNK! • Om ni har en bokad tid (har fått en kallelse hit) ber vi er vänta i väntrummet. Vi kommer och hämtar er där. • Det finns ett till.
Advertisements

IPad grundkurs.
Intagningssystemets databas Ögonblicksbild Kopia av intagningsdatabasen Uppdateras 3 ggr per dag 07:15 – 12:15 – 15:15 Roller Skola, kommun Periodiseras.
Mina Aktiviteter Integration med befintliga webbplatser.
Simulering av MIPS32 4K med TLB och CACHE Andrei Krougliak Simon Olsson Luleå tekniska universitet 2005.
Flynns taxonomi ● Single Instruction, Single Data (SISD) – en instruktion i taget opererar på ett värde i taget ● Single Instruction, Multiple Data (SIMD)
Persondatorer Datorns internminne (Kapitel 6)
Minnesteknologier Teknologi Accesstid Kostnad $/GB SRAM 1 ns 1000 DRAM
Tips och råd för att uppfylla krav enligt BVF 810.0
Det här arbetar vi med för att du ska kunna nå kunskapskraven
23 August 2014 IS1200 Datorteknik vt09, föreläsning 10, (E och I mfl)1 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory.
Adressöversättning zRepetition av virtuellt minne zTLB - cacheminne för sidtabellinformation zVirtuellt eller fysiskt adresserat cacheminne zTricket -
Tumregel z10 procent av minnet används 90 procent av tiden.
Denna föreläsning zVad kursen handlar om zKursupplägg, litteratur, bra att veta zPrestanda - ämnet för dagen.
Adressöversättning Repetition av virtuellt minne
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
Programmeringsteknik K och Media
Laplacetransformering av elektriska kretsar (komplement till Kap 3 ”Modellering av dynamiska system”) Vi antar att alla begynnelsevärden är noll vid t=0.
Distribuerade filsystem
Artikeluppgifter Minst 120 ord.
DAV B04 - Databasteknik Indexering (kap 14).
Föreläsning 5.  Idag  Kap 7 i Dawson  Filer  Felhantering med try…except.
Du ÖnskAs en rigtigt gOD jul GOD JUL Först, klicka på stjärnan på julgranen, så vi kan få ljus i den….
DAV B04 - Databasteknik Återhämtning (kap 19).
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Föreläsning 5 måndag 5e november 2007 Datorsystem 1 och Datorarkitektur 1 Föreläsning 5 måndag 5e november 2007 Datorsystem 1 och Datorarkitektur 1.
Det här arbetar vi med för att du ska kunna nå kunskapskraven
Max start-guide Liten och väldigt snabbt ihopkastad.
Tips och råd för att uppfylla krav enligt BVF 810.0
Elisabeth Ingesson, Kalmar Läns Landstingsavdelning 097
Föreläsning 14 ”Enkel” Filhantering.
Prestanda ● Vad påverkar datorprestanda ● Hur mäter man datorprestanda ● Räkna klockcykler - ett sätt att analysera ● Amdahls lag - gräns för förbättringar.
Av Ewa Ögren Tullengymnasiet 2008
KÄLLKRITIK & INFORMATIONSSÖKNING
31 March 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
William Sandqvist Övning 8 Minnessystem Lokalitet Cacheminnen William Sandqvist
1 386 Från s bits adressbuss –=>4GB minne kan adresseras 32 bits databuss max klockfrekvens: 40MHz Protected mode –virtuellt minne –segmentering.
Cacheminnen: skrivning ● Träff ● Skrivbuffert ● Miss.
Minnesarkitektur Problem: Snabbare och snabbare processorer men minnena hänger inte med. Lösning: Minneshierarkier.
Varför inte köra alla instruktioner samtidigt? zMåste vänta på: yresultat från andra instruktioner yatt resurser i processorn ska bli lediga yatt få veta.
BVForum - en genomgång för revisorer Sören Thuresson.
F6 - Pekare 1 Programmeringsteknik, 4p vt-00 Pekare & adresser Alla variabler är knutna till en viss adress i minnet int i; adressen till denna fås med.
William Sandqvist ReadModifyWrite-problemet PORTB = 0; PORTB.0 = 1; PORTB = PORTB; Vilket värde har portpinnen RB1 nu ? Förmodligen ”1”,
Varför inte köra alla instruktioner samtidigt? zMåste vänta på: yresultat från andra instruktioner yatt resurser i processorn ska bli lediga yatt få veta.
Antalet operander/instruktion z0 - stackmaskin yADD - adderar värdena överst på stacken, tar bort dem och lägger dit summan z1 - ackumulatormaskin yADD.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
6/3/2015© Mats Brorsson1 Hur mycket snabbare blir det med PC133 SDRAM jämfört med PC100 SDRAM?... blir det med en 1,4 GHz Athlon- processor jämfört.
12 June G1518, Föreäsningl 8, vt07 (E/I/CL)1 2G1518 Datorteknik Föreläsning 8 Cache Memory vt 2007 (period 3-4) för E, I och CLMDA.
14 July 2015 IS1200/2G1518 Datorteknik, föreläsning 2, ht2007 (D2)1 IS1200 Datorteknik Föreläsning 2 Vi bygger en processor Kursboken, valda delar av kapitel.
Pulpetenbladet Juni 2015 Uppfräschning av lokalen Tvärtom om vad vi skrev under aktuellt fliken i förra pulpetenbladet så kommer vi inte att ta in någon.
Kommunikationspass Jag heter
Instruktion – sekretariatet Ekhallen/Ekrinken. Såhär ser kontrollpanelen ut:
Webbanmälan till högskolestudier HT 2017
Webbanmälan till högskolestudier HT 2016
Införande av blodsamverkan
Gemensam information i Ladok och NyA
Förberedelser alias/skyddade personuppgifter inför produktionssättning
Primälvalsförfarande samt tillvalsförfarande
Från antagning till gu-kort
Kort kärnfull rubrik Datum för evenemang, tid och plats om lämpligt
LATHUND BLODOMLOPPET 2017 Gå in på
IT Fördjupning Jon Wide
Validera hjärtstartare i Sveriges Hjärtstartarregister
Kort kärnfull rubrik Datum för evenemang, tid och plats om lämpligt
Kort kärnfull rubrik Datum för evenemang, tid och plats om lämpligt
Grundläggande datavetenskap, 4p
Vad tycker du om boken Stjärnlösa nätter?
Kort kärnfull rubrik Datum för evenemang, tid och plats om lämpligt
Att använda nya Olweus dataweb Uppdaterat 17e oktober 2011
Presentationens avskrift:

Skrivning i cacheminnen zTräff zMiss zSkrivbuffert

Skrivträff zRätt adress finns i giltig adresslapp zSka huvudminnet uppdateras? yJa = genomskrivning (write-through) yNej = återskrivning (write-back, write- behind)

Write-through zEnkelt zPrimärminnet har alltid aktuella data zMinus: kräver mycket busstrafik

Write-back zCacheminnet kan ha senaste värdet zUppdatera primärminnet när blocket byts z"Dirty bit" anger om blocket skrivits zMinskar busstrafiken zExtra krångligt och extra nödvändigt i flerprocessorsystem

Skrivmissar z1. Skrivs nya värdet till cacheminnet? Ja = platsreservation vid skrivmiss (allocate on write miss) z2. Hämtas gamla värdet till cacheminnet? Ja = hämtning vid skrivmiss (fetch on write) z3. Skrivs cacheminnet medan adresslappen läses? Ja = write before hit

Alternativ vid skrivmiss

Fetch-on-write zReservera plats (släng ut något vid behov) zHela gamla blocket hämtas  Efter hämtningen är det ingen miss längre - STORE kan köras igen, enkel logikkrets

Exempel (i datacache med bara 1 block) Fetch-on-write 4711ABCD adresslappord 0ord 1ord 2ord 3 LOADI R1 <- #$ LOADI R2 <- #$0123 STORE 0(R1) <- R2 Medför platsreservation och hämtning XYZW …följt av skrivning 11147X0123ZW

Write-validate zReservera plats (släng ut något vid behov) zHämta inget zKräver giltigbitar för varje ord i blocket zMinskar busstrafik

Exempel (i datacache med bara 1 block) Write-validate 4711ABCD adresslappord 0ord 1ord 2ord 3 LOADI R1 <- #$ LOADI R2 <- #$0123 STORE 0(R1) <- R2 Medför platsreservation men ingen hämtning …följt av skrivning anger nollställd giltigbit

Write-around zIngen platsreservation zIngen hämtning (förstås) zIngen write-before-hit zCacheinnehåll helt opåverkat av skrivmiss zEnkelt att bygga

Exempel (i datacache med bara 1 block) Write-around 4711ABCD adresslappord 0ord 1ord 2ord 3 LOADI R1 <- #$ LOADI R2 <- #$0123 STORE 0(R1) <- R2 Cacheminnet påverkas inte, skrivning endast till primärminnet 4711ABCD

Write-invalidate zCacheminnet skrivs alltid zAdresslappen uppdateras inte vid miss - blocket måste ogiltigförklaras zEnkel logik zEndast direktmappade cacheminnen av genomskrivningstyp (write-through)

Exempel (i datacache med bara 1 block) Write-invalidate 4711ABCD adresslappord 0ord 1ord 2ord 3 LOADI R1 <- #$ LOADI R2 <- #$0123 STORE 0(R1) <- R2 Skrivning före adresslappskontroll A0123CD …leder till att adresslappen inte stämmer - ogiltigförklara blocket ogiltigtA0123CD

Träff och miss zI princip oberoende zI praktiken: ygenomskrivning (write-through) vid träff - ofta write-around vid miss yåterskrivning (write-back) vid träff - ofta fetch-on-write vid miss zMed tanke på skrivning av flera ord i följd

Skrivbuffert zCacheminne av genomskrivningstyp är enkelt och bra zMen vi vill inte stoppa processorn medan skrivning sker till primärminnet zLösning: skrivbuffert mellan cacheminne och primärminne

Skrivbuffert zEndast skrivningar zBlir skrivbufferten full så måste processorn vänta, annars inte Processor Cacheminne Skriv- buffert Primärminne

Enklast möjliga skrivbuffert zEndast ett ord zSparcstation SLC (1990) z1 STORE tar 1 cykel, 2 STORE i följd tar 18 cykler adressdata giltigbit v

Nackdel med skrivbuffert  Problem: STORE 0(R3) <- … LOAD … <- 0(R3) zLoad kollar i skrivbufferten för att slippa vänta

Pentium Pro (och senare) zSTORE körs i programmets ordning zLOAD får köras före andra LOAD zLOAD får köras före STORE

Sammansmältning zNär STORE ej körs i programmets ordning zEn sammansmältande skrivbuffert (coalescing write buffer) kan ändra ordning på STORE-instruktioner zOlika varianter på sammansmältning finns

Skrivbuffert med flera platser zSka skrivningar till samma adress slås ihop eller ska man ta en ny plats? adressdatav adressdatav adressdatav

Bred skrivbuffert zSka skrivningar till intilliggande adresser slås ihop eller ska man ta en ny plats? adressv v v ABCD ord 0ord 1ord 2ord 3 ABCD ABCD

Grader av sammansmältning zIngen sammansmältning yny plats för varje skrivning ySTORE körs i ordning zBegränsad sammansmältning yendast översta platsen i skrivbufferten kollas yfångar upp skrivningar till flera ord i följd zFull sammansmältning yalla skrivbuffertplatser kollas