1 / 17

Minnesarkitektur

Minnesarkitektur. Problem: Snabbare och snabbare processorer men minnena hänger inte med. Lösning: Minneshierarkier. 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?.

carrie
Download Presentation

Minnesarkitektur

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. MinneshierarkiEtt sätt att utnyttja referenslokalitet CPU M3 M2 M1 SRAM DRAM Disk 1 CPUn försöker nå minnet på en viss adress A. Om A finns i M1 utförs minnesreferensen. 2 Annars överförs ett block minne (B1) innehållande A från M2 till M1. Referens utförs i M1. 3 Om adress A ej heller finns i M2 hämtas ett block (B2, B2 > B1) innehållande A från M3 till M2. Återgå till punkt 2. • Nivå M1 sköts av ett cache-minne • Nivå M2 kallas ofta huvudminne • Nivå M2–M3 kallas virtuellt minne

  5. N = 1 H N Prestandaaspekter + c S c S Två nivåers minneshierarki: M1 – M2 Kostnad: = 1 1 2 2 c + S S 1 2 S: storlek på minnet c: kostnad per bit Träffsannolikhet (hit ratio): N: Totala antalet minnesreferenser N1: Antalet minnesreferensersom kan göras i M1 = + - Medelaccesstid: t Ht ( 1 H ) t 1 A miss t1: Accesstid i M1 tmiss: Tidsåtgång vid miss i M1

  6. Minneshierarkier – problemAntag en 2-nivåers hierarki, M1 och M2 Fyra frågor: 1. Var i M1 kan ett block placeras?(block placement) 2. Hur hittar man ett givet block i M1?(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)

  7. Cache – adressavbildningEnklaste exemplet: direkt adressavbildning Adress Minne 0 4 block cache med direkt adressavbildning 1 Cache Index 2 0 3 1 4 5 2 6 3 7 8 9 A En cache med k block avbildar block i i minnet på blocki mod k i cacheminnet. B C D E F

  8. Adressetikett (tag) och index • 32 bitars adress • 2N byte i cacheminnet, blockstorlek 1 byte • Index är de N minst signifikanta bitarna i adressen 31 N 0 Adressetikett (tag) Exempel: 0x50 Index Ex: 0x03 Adressetiketten lagras som en del av cacheminnets tillstånd 2N Byte cache “Valid”-bit Direkt adressavbildning Byte 0 0 Byte 1 1 Byte 2 2 0x50 Byte 3 3 : : : Byte 2N -1 2N-1

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

  10. Större cacheblock Cache med 64 byte Blockstorlek 8 byte block tag index offset valid tag byte76543210 block 0 block 1 block 2 block 3 block 4 block 5 block 6 block 7 =? & Data Träff/Miss?

  11. 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Alternativa adressavbildningar Direkt 2-vägs mängdassociativ Fullt associativ Cache block no. 0 1 2 3 4 5 6 7 Memory block no. • 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 block no.

  12. Organisationen hos en cache med fullt associativ adressavbildning block tag offset valid tag word 0 word 1 word 2 . . . word n-1 block 0 block 1 block b-1 . . . =? =? =? & & Data & ³ 1 Hit / Miss?

  13. Organisationen hos en cache med mängdassociativ adressavbildning block tag index offset valid tag word 0 word 1 word 2 . . . word n-1 block 0 mängd 0 block 1 block b-2 mängd b/2-1 block b-1 . . . =? =? & & Data Hit / Miss?

  14. Vad händer vid en skrivning? Antag att blocket finns i cacheminnet: • Write through – Skrivningen utförs i både cacheminnet och huvudminnet • 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: • ”Allocate on write” – Blocket läses in i cacheminnet • ”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. 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) Variationer på DRAM

  17. 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? Minnen: Sammanfattning

More Related