Cacheminnen: skrivning ● Träff ● Skrivbuffert ● Miss.

Slides:



Advertisements
Liknande presentationer
Meningsbyggnad.
Advertisements

PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
IPad grundkurs.
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
PowerPoint laget av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
X-mas algebra Är du redo? Klicka!!.
Syo PRAO ver. 3.0 Välkommen till presentationen av Syo PRAO Vi kommer att gå igenom de flesta funktionerna i Syo PRAO.
En genomgång av spelet: Dubbelkrig-Grön
Simulering av MIPS32 4K med TLB och CACHE Andrei Krougliak Simon Olsson Luleå tekniska universitet 2005.
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Föreläsning 7, Kapitel 7 Designa klasser Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Word Word är ett av de vanligaste ordbehandlingsprogrammen. Vi skall idag gå igenom de vanligaste funktionerna i programmet. Fördelarna med att använda.
PowerPoint laget av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Ersättning för extra djuromsorg för suggor -villkor och riktlinjer
Flynns taxonomi ● Single Instruction, Single Data (SISD) – en instruktion i taget opererar på ett värde i taget ● Single Instruction, Multiple Data (SIMD)
Datorarkitekturer och operativsystem
Display för GymAssistWear - Huvudmeny Välj Av/På Upp i Menyn Ned i Menyn Meny Tillbaka Antal repetitioner Göra Playlist Sparade Playlist Visa statistik.
Funktioner och programorganisation
Att skriva en artikel.
Jag vill gärna att du kommer över på en liten afterwork-öl, ta gärna med dig familjen eller några vänner och titta in.
Persondatorer Datorns internminne (Kapitel 6)
Logikprogrammering Ons, 25/9
Minnesteknologier Teknologi Accesstid Kostnad $/GB SRAM 1 ns 1000 DRAM
Programmeringsteknik Föreläsning 4 Skolan för Datavetenskap och kommunikation.
Filhantering Grundprincipen för filhantering Öppna filen
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.
Skrivning i cacheminnen zTräff zMiss zSkrivbuffert.
Denna föreläsning zVad kursen handlar om zKursupplägg, litteratur, bra att veta zPrestanda - ämnet för dagen.
En vanlig femstegspipeline FDEMW FDEMW FDEMW FDEMW tid.
Adressöversättning Repetition av virtuellt minne
Programmeringsteknik K och Media
Distribuerade filsystem
DAV B04 - Databasteknik Indexering (kap 14).
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Information om hur man spelar Trafik!. Din väckarklocka ringer på morgonen och du går upp och gör dig i ordning. Efter en smaskig frukost är du på väg.
Sektorn för Socialtjänst
DAV B04 - Databasteknik Återhämtning (kap 19).
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
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.
Mat och hälsa åk 6.
| Föredragsnamn, Föredragshållare, ååmmdd Snart dags för Saco Studentmässa 21 november 9-16 på Malmömässan i Hyllie.
EKÄNGENS IF NÄRVAROREGISTRERING MEDLEMSHANTERING ADMINISTRATION.
2G1510 Datorteknik fk Föreläsning 1, hösten 2003.
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.
Välkommen till! Varför QualisTorget – vad kan QualisTorget göra för Er skola? QualisTorget beskriver denna webbtjänsts funktion på ett bra sätt, eftersom.
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.
Pipelining Föreläsning 4. T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c —
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.
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.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
1 Ingenjörsmetodik IT & ME 2007 Föreläsare Dr. Gunnar Malm.
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.
Föreläsning 1 Introduktion till kursen. Algoritmer
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.
Denna föreläsning zVad kursen handlar om zKursupplägg, litteratur, bra att veta zPrestanda - ämnet för dagen.
William Sandqvist Låskretsar och Vippor Låskretsar (latch) och vippor (flip-flop) är kretsar med minnesfunktion. De ingår i datorns minnen.
Kommunikationspass Jag heter
Webbanmälan till högskolestudier HT 2017
Målvaktsutbildning del 2
Primälvalsförfarande samt tillvalsförfarande
Grundläggande datavetenskap, 4p
Presentationens avskrift:

Cacheminnen: skrivning ● Träff ● Skrivbuffert ● Miss

Skrivträff ● Rätt adress finns i giltig adresslapp ● Ska huvudminnet uppdateras? – Ja = genomskrivning (write-through) – Nej = återskrivning (write-back, write-behind, copy-back)

Write-through ● Enkelt ● Primärminnet har alltid aktuella data ● Minus: kräver mycket busstrafik

Write-back ● Cacheminnet kan ha senaste värdet ● Uppdatera primärminnet när blocket byts ● "Dirty bit" anger om blocket skrivits ● Minskar busstrafiken – flera skrivningar till samma block kombineras ● Extra krångligt och extra nödvändigt i flerprocessorsystem

Mätning av skrivningar ● andel skrivningar till block med dirtybit = 1 ● enklare att mäta än write-back-trafik – data kvar i cache vid programslut ● linpack, liver

Skrivningar i pipeline ● Direktmappat, write-through IFRFALUMEMWB Loadläs tag + data läs tag och skriv data ● Associativt och/eller write-back IFRFALUMEMWB Loadläs tag + data Store tar 2 cyklerläs tagskriv data Store tar 1 cykel

Skrivbuffert ● Vi vill inte stoppa processorn medan skrivning sker till primärminnet ● Lösning: skrivbuffert mellan cacheminne och primärminne ●...eller mellan två cacheminnesnivåer

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

Enklast möjliga skrivbuffert ● Endast ett ord ● Alla cacheminnen behöver minst denna buffert ● Sparcstation SLC (1990): 1 STORE tar 1 cykel, 2 STORE i följd tar 18 cykler (minnets hastighet) adressdata giltigbit v

Write-through + skrivbuffert ● Alla skrivningar ska till skrivbufferten ● Skrivbufferten full vid skrivningar i tät följd ● Write-through är enkelt, därför snabbt men behöver en bra skrivbuffert

Write-back + skrivbuffert ● Skrivningar i följd till samma block slås ihop ● Hela blocket skrivs till primärminnet när det kastas ut ur cacheminnet (om dirty-biten = 1) ● Mindre skrivtrafik – enklare skrivbuffert räcker

Store-instruktioner i oordning ● Alla Store i rätt ordning – bara om – write-through – och enklast möjliga skrivbuffert ● Write-back och Store-instruktioner – till samma ord: bara det senaste värdet skrivs – till intilliggande ord: ordningen kan ändras ● Skrivbuffert och Store-instruktioner – beror på graden av sammansmältning

Sammansmältning ● En sammansmältande skrivbuffert (coalescing write buffer) kan ändra ordning på Store-instruktioner ● Olika varianter på sammansmältning beroende på hur många adresser som jämförs – alla adresser i skrivbufferten, eller – bara den senast inlagda

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

Bred skrivbuffert ● Ska 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 ● Ingen sammansmältning – ny plats för varje skrivning – STORE körs i ordning ● Begränsad sammansmältning – endast översta platsen i skrivbufferten kollas – fångar upp skrivningar till flera ord i följd ● Full sammansmältning – alla skrivbuffertplatser kollas ● Jouppi förutsätter full sammansmältning

Tömningspolicy ● Skrivbufferten töms så snart något finns i den – inga tillfällen till sammansmältning – slöseri med bandbredd på minnesbussen ● Skrivbufferten töms först när den blir full – kallas write cache av Jouppi – kan kombineras med "vanlig" skrivbuffert – kan fungera som victim cache också om även block med dirtybit=0 läggs i write cache

Load-instruktioner och skrivbuffert ● Load läser plats som Store nyligen skrivit STORE 0(R3) <- … LOAD … <- 0(R3) ● Ska Load kolla i skrivbufferten för att slippa vänta?

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

Write-before-hit ● Data skrivs medan adresslapp läses ● Träff – allt OK ● Miss – invalidera cacheblocket! ● Direktmappat, write-through IFRFALUMEMWB Loadläs tag + data läs tag och skriv dataStore tar 1 cykel

Alternativ vid skrivmiss

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

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 1 1 1

Write-validate ● Reservera plats (släng ut något vid behov) ● Hämta inget ● Kräver giltigbitar för varje ord i blocket! ● Minskar busstrafik

Exempel (i datacache med bara 1 block) Write-validate LOADI R1 <- #$ LOADI R2 <- #$0123 STORE 0(R1) <- R2 Medför platsreservation men ingen hämtning......skrivning görs 4711ABCD adresslappord 0ord 1ord 2ord ABCD A0123CD

Write-around ● Ingen platsreservation ● Ingen hämtning (förstås) ● Ingen write-before-hit ● Cacheinnehåll helt opåverkat av skrivmiss ● Enkelt 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 1 1

Write-invalidate ● Cacheminnet skrivs alltid ● Adresslappen uppdateras inte vid miss - blocket måste ogiltigförklaras ● Enkel logik ● Endast 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 1 1 0

Träff och miss ● I princip oberoende ● I praktiken: – genomskrivning (write-through) vid träff - ofta write-around vid miss – återskrivning (write-back) vid träff - ofta fetch-on-write vid miss ● Med tanke på skrivning av flera ord i följd