Presentation laddar. Vänta.

Presentation laddar. Vänta.

Minnesarkitektur Problem: Snabbare och snabbare processorer men minnena hänger inte med. Lösning: Minneshierarkier.

Liknande presentationer


En presentation över ämnet: "Minnesarkitektur Problem: Snabbare och snabbare processorer men minnena hänger inte med. Lösning: Minneshierarkier."— Presentationens avskrift:

1 Minnesarkitektur Problem: Snabbare och snabbare processorer men minnena hänger inte med. Lösning: Minneshierarkier.

2 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?

3 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.

4 Minneshierarki Ett sätt att utnyttja referenslokalitet  Nivå M 1 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 nå minnet på en viss 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.

5 Prestandaaspekter Två nivåers minneshierarki: M 1 – M 2 Kostnad: SS ScSc c    Träffsannolikhet (hit ratio): N N H 1 = Medelaccesstid: missA tHHtt)1( 1  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 Minneshierarkier – problem Antag en 2-nivåers hierarki, M 1 och M 2 Fyra frågor: 1.Var i M 1 kan ett block placeras? (block placement) 2.Hur hittar man ett givet block i M 1 ? (block identification) 3.Om M 1 ä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)

7 Cache – adressavbildning Enklaste exemplet: direkt adressavbildning Minne 4 block cache med direkt adressavbildning Adress Cache Index En cache med k block avbildar block i i minnet på block i mod k i cacheminnet A B C D E F

8 Adressetikett (tag) och index Ex: 0x03Exempel: 0x50 0x5 0 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

9 Exempel på cacheaccess Access Start M [00001] (miss) TagDataV Access Misshantering: Läs Data Skriv Tag & sätt V M [01010] 000 M [00001] Läs Data Skriv Tag & sätt V M [00001] 010 M [01010] Access (Träff) 000 M [00001] 010 M [01010] Access (Träff) Tråkig nödvändighet:  Det blir många missar vid starten s.k. kallmissar

10 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

11 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 Cache block no. Memory block no. Direkt2-vägs mängdassociativFullt associativ

12 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

13 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

14 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

15 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.

16  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)

17  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?


Ladda ner ppt "Minnesarkitektur Problem: Snabbare och snabbare processorer men minnena hänger inte med. Lösning: Minneshierarkier."

Liknande presentationer


Google-annonser