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 med en 1,4 GHz Duron?... blir det med 256 Mbyte RAM-minne jämfört med 128 Mbyte RAM-minne?... blir det med 50 ns accesstid till DRAM jämfört med 70 ns?
6/3/2015© Mats Brorsson2 Föreläsning 7 Datorteknik ak Minnen DRAM och SRAM Minneshierarkier Cacheminnen
6/3/2015© Mats Brorsson3 SRAM — DRAM SRAM-cellen är snabb och kan hålla data utan behov av uppdatering DRAM-cellen är mindre och billigare men långsam och behöver uppdatering SRAM-cell (princip)DRAM-cell
6/3/2015© Mats Brorsson4 Avkodning av adresser DRAM innehåller fler minnesceller vilket leder till långsammare avkodare R a d a v k o d a r e Kolumnavkodare 512 4 cellmatris Inbuffer D i f f. - f ö r s t ä r k a r e A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 0 A 1 0 A 1 1 A 1 2 A 1 3 A 1 4 A 1 5 A 1 6 A 1 7 I/O CE WE OE 2048 cellmatris Kolumnavkodare Drivare/förstärkare R a d a d r e s s K o l u m n a d r e s s Adress Data buffert RD/WR Klock- och uppdateringskretsar RAS CAS R a d a v k o d a r e Data SRAM DRAM
6/3/2015© Mats Brorsson5 Minnesteknologier Snabba minnen är dyra! Billiga minnen är långsamma! Hur kan vi skapa det dyra (och snabba) minnets prestanda till det långsamma minnets kostnad?
6/3/2015© Mats Brorsson6 Referenslokalitet Tidslokalitet – De minnesceller som nyss använts kommer med stor sannolikhet snart användas igen. Rumslokalitet – De minnesceller som ligger nära de som nyss använts kommer med stor sannolikhet att användas även de.
6/3/2015© Mats Brorsson7 Minneshierarki Ett sätt att utnyttja referenslokalitet Nivå M 1 –M 2 sköts av ett cache-minne Nivå M 2 kallas ofta huvudminne Nivå M 2 –M 3 kallas virtuellt minne CPU M1M1 M2M2 M3M3 SRAM DRAM Disk 1CPUn försöker accessa minnet på adress A. Om A finns i M 1 utförs minnesreferensen. 2Annars överförs ett block minne (B 1 ) innehållande A från M 2 till M 1. Referens utförs i M 1. 3Om adress A ej heller finns i M 2 hämtas ett block (B 2, B 2 > B 1 ) innehållande A från M 3 till M 2. Återgå till punkt 2. B2B2 B1B1
6/3/2015© Mats Brorsson8 Prestandaaspekter Två nivåers minneshierarki: M 1 – M 2 Kostnad: Träffsannolikhet (hit ratio): Medelaccesstid: S: storlek på minnet c: kostnad per bit N: Totala antalet minnesreferenser N 1 : Antalet minnesreferenser som kan göras i M 1 t 1 : Accesstid i M 1 t miss :Tidsåtgång vid miss i M 1
6/3/2015© Mats Brorsson9 Minneshierarkier – problem Antag en 2-nivåers hierarki, M 1 och M 2 Fyra frågor: 1.Var i M1 kan ett block placeras? (block placement) 2.Hur hittar man ett givet block i M 1 ? (block identification) 3.Om M1 är fullt, vilket block ska då bytas ut för att ge plats åt ett nytt block? (block replacement) 4. Vad händer vid skrivningar? (write policy)
6/3/2015© Mats Brorsson10 Cache – adressavbildning Enklaste exemplet: direkt adressavbildning Minne 4 block cache med direkt adressavbildning Adress A B C D E F Cache Index En cache med k block avbildar block i i minnet på block i mod k i cacheminnet.
6/3/2015© Mats Brorsson11 Adressetikett (tag) och index Ex: 0x03Exempel: 0x50 0x50 Index N -1 : 2 N Byte cache Direkt adressavbildning Byte 0 Byte 1 Byte 2 Byte 3 Byte 2 N -1 0N31 : Adressetikett (tag) Adressetiketten lagras som en del av cacheminnets tillstånd “Valid”-bit : 32 bitars adress 2 N byte i cacheminnet, blockstorlek 1 byte Index är de N minst signifikanta bitarna i adressen
6/3/2015© Mats Brorsson12 Exempel på cacheaccess Access Start M [00001] (miss) TagDataV Access Misshantering: Läs Data Skriv Tag & Sätt V M [01010] 000M [00001] Läs Data Skriv Tag & Set V M [00001] 010M [01010] Access (Träff) 000M [00001] 010M [01010]Access (Träff) Tråkig nödvändighet: Det blir många missar vid starten Kallmissar
6/3/2015© Mats Brorsson13 Större cacheblock tagvalid =? & Träff/Miss? Data tagindex block offset block 0 block 1 block 2 block 3 block 4 block 5 block 6 block 7 Byte Cache med 64 byte Blockstorlek 8 byte
6/3/2015© Mats Brorsson14 Alternativa adressavbildningar Hög grad av associativitet ger större frihet vid placering av block Låg grad av associativitet ger färre block att söka för att avgöra om blocket finns i cachen eller ej
6/3/2015© Mats Brorsson15 Organisationen hos en cache med fullt associativ adressavbildning word 0word 1word 2word n-1tagvalid... =? & Hit/Miss? Data tag block offset =? & & 1 block 0 block 1 block b-1
6/3/2015© Mats Brorsson16 Organisationen hos en cache med mängdassociativ adressavbildning word 0word 1word 2word n-1tagvalid =? & Hit/Miss? Data tagindex block offset block 0 block 1 block b-1 block b-2 =? & mängd 0 mängd b/2-1
6/3/2015© Mats Brorsson17 Vad händer vid en skrivning? Antag att blocket finns i cacheminnet: 1.Write through – Skrivningen utförs i både cacheminnet och huvudminnet 2.Write back – Skrivningen utförs endast i cacheminnet, blocket måste skrivas tillbaka till huvudminnet vid blockutbyte Två sätt att hantera missar vid skrivning: 1.”Allocate on write” – Blocket läses in i cacheminnet 2.”No allocate on write” – Blocket läses inte in i cacheminnet, men huvudminnet uppdateras
6/3/2015© Mats Brorsson18 Blockstorlekens effekt på prestanda Större block utnyttjar rumslokaliteten men tar lång tid att hämta vid miss och fyller cachen snabbt. Mindre block utnyttjar tidslokaliteten men man hämtar inte så mycket varje gång.
6/3/2015© Mats Brorsson19 Variationer på DRAM FPM, EDO Utnyttjar det faktum att minnesaccesser inte är slump- mässiga En rad i DRAM- matrisen läses in i ett register SDRAM Har ett synkront gränssnitt till processorn (max 800 Mbyte/s) Rambus En ny busstandard för DRAM (max 1,6 Gbyte/s)
6/3/2015© Mats Brorsson20 Minnen: Sammanfattning SRAM och DRAM SRAM används för cacheminnen DRAM används för huvudminne Minneshierarkier Cacheminnen Var i cachen kan ett block placeras? Hur hittar man ett givet block i cachen? Om cachen är full, vilket block ska då bytas ut för att ge plats åt ett nytt block? Vad händer vid skrivningar?