Innhold Oversikt over hukommelseshierakiet Ulike typer minne Innledning til cache Konstruksjon av cache 26.03.2001 Hukommelseshierarki-1 1
Hukommelseshierarki Ønsker ubegrenset mye minne som er like raskt som CPU en. I praksis må man velge ut fra flere hensyn. Størrelse Pris per byte Regi stre Cache Hovedminne Magnetisk disk Magnetisk tape Optisk disk Hastighet Tre parametre klassifiserer minnetyper: Antall byte tilgjegelig per enhet Pris per byte Aksesshastighet 26.03.2001 Hukommelseshierarki-1 2
Bruksområder Registre: Intern kladdeblokk for CPU en med rask aksess til innholdet. Cache: Hurtig mellomlager for både instruksjoner og data for jevne ut hastighetsforskjellen mellom CPU en og hurtigminnet. Hurtigminne (RAM): Buffer mellom eksternt lagringsmedium og CPU en med rask både lese- og skrive-aksess. Magnetisk disk: Høy-kapasitets minne for lesing/skriving av program/data. Magnetisk tape: Høykapasitetsmedium for sikkerhetskopiering. CD-ROM og DVD: Lagringsmedium for mindre mengder sikkerhetskopiering og distribusjon av programkode etc. 26.03.2001 Hukommelseshierarki-1 3
Lagringskapasitet Registre: Integrert på CPU en, relativt få (32-64 stykker). Cache: Mellomlager internt (L1) eller i nærheten av (L2) CPU en, typisk kapasitet fra 8 KiloByte(L1) til 512 (L2) KiloByte, og etpar MegaByte (L3). Hovedminne: Internt på hovedkortet i nærheten av CPU en, størrelse opptil etpar GigaByte. Magnetisk disk: Ekstern eller intern lagringsenhet i maskinen, med kapasitet opptil TeraByte. Magnetisk tape: Sekvensielt medium med opptil 10- talls sekunders aksesstid. Optisk disk: (CD-ROM, CD-RW og DVD). Billig eksternt lagringsmedium med kapasitet opptil flere GigaByte (DVD). 26.03.2001 Hukommelseshierarki-1 4
Aksesstider Registre: En klokkesykel, dvs samme hastighet som prosessoren (nano-sekunder). Cache: Samme størrelsesorden som interne registre. Hovedminne: Flere titalls nano-sekunder. Magnetisk disk: 5-6 størrelsesordener langsommere, dvs millisekunder. Magnetisk tape: Sekvensielt medium med opptil flere titalls sekunders aksesstid. Optisk disk: (CD-ROM, CD-RW og DVD): Opptil flere sekunders aksesstid. 26.03.2001 Hukommelseshierarki-1 5
Cache Cache n inneholder en kopi av et subsett av hurtigminnet. CPU en henter data og/eller instruksjoner fra cache istedenfor RAM. Siden cache er mindre enn RAM, må det bestemmes hvilke data/instruksjoner som skal ligge i cache. Cache baserer seg på at instruksjoner/data akesseres Nær hverandre i tid Nær hverandre i rom 26.03.2001 Hukommelseshierarki-1 6
Hvis data/instruksjon CPU en trenger ligger i cache, kalles det for cache hit. Hvis data/instruksjon CPU en trenger ikke ligger i cache, kalles det for cache miss. Ved cache miss må data/instruksjon først kopieres fra hurtigminnet over i cache før CPU en kan bruke det. Cache fylles fra hurtigminnet første gangen en bestemt lokasjon blir referert: X4 X1 Xn 2 X4 X1 Xn 2 Xn 1 X2 Xn 1 X2 Xn X3 Før referanse til Xn X3 Etter referanse tilxn 26.03.2001 Hukommelseshierarki-1 7
Direkte-mapped cache Trenger en logisk kobling mellom lokasjoner i cache og lokasjoner i hurtigminne Den enkleste formen for en slik kobling er direkteavbildet (direct-mapped): 000 001 010 011 100 101 110 111 Cache Hurtigminne 00001 00101 01001 01101 10001 10101 11001 11101 De tre nederste bit ene angir adressen i cache n. Flere lokasjoner i hurtigminnet deler samme lokasjon i cache n. 26.03.2001 Hukommelseshierarki-1 8
Trenger mer informasjon for å identifisere koblingen mellom hurtigminne og cache: Index inneholder nedre del av adressen og peker til rett ord i cache n Tag inneholder øvre del av adressen Valid indikerer om cache-ordet inneholder gyldig data eller ikke Address (showing bit positions) 31 30 13 12 11 2 1 0 Byte offset Hit Tag 20 10 Data Index Index 0 1 2 Valid Tag Data 1021 1022 1023 20 32 Figur 7.7 side 549 26.03.2001 Hukommelseshierarki-1 9
Hvis riktig ord ikke finnes i cache (dvs. cache miss) skjer følgende: 1) Sett PC til PC-4 og skriv verdien tilbake til minnet 2) Sett i gang lesing fra hovedminnet og vent til data er klar 3) Skriv det riktige innholdet til cache og oppdater tag og valid 4) Start opp igjen eksekveringen av neste instruksjon Ved skriving til cache må, det også skrives til hurtigminnet, slik at innholdet blir identisk. Enkleste er alltid å skrive til både cache og hurtigminne (forutsatt at ordet finnes begge steder) (write-though). 26.03.2001 Hukommelseshierarki-1 10
Write-through er ineffektivt, fordi skriving alltid medfører write-miss med påfølgende stopp av prosessoren. Et skrivebuffer kan brukes til å mellomlagre slik at prosessoren ikke må stoppe opp. write-back skriver først til cache, og til hurtigminne når innholdet i blokken skal oppdateres. Effektiviteten kan økes ved å øke blokkstørrelsen (dvs antall ord som kopieres fra hurtigminne over i cache). 26.03.2001 Hukommelseshierarki-1 11
Tag og valid-feltene gjelder for hele blokken Write-miss blir mer komplisert, fordi tag/valid bit gjelder for hele blokken, og ikke bare det ene ordet som ga write-miss Løsning: Les hele tilsvarende blokk fra minnet og oppdater etterpå Ad dress (sho w ing b it po sition s) 31 16 1 5 4 3 2 1 0 H it Tag 16 1 2 2 B yte offset D ata Index Block offset 1 6 bits 12 8 bits V Tag D ata 4K entrie s 16 32 3 2 3 2 32 M ux 32 Figur 7.10 side 557 26.03.2001 Hukommelseshierarki-1 12
Båndbredden mellom cache og hurtigminnet bestemmer effektiviteten. Tre mulige organiseringer av grensesnittet mellom cache og hurtigminne: C P U C PU C PU C a ch e M ultip le xo r C a ch e C a che B us B us B u s M em ory M e m o ry ba n k 0 M em o ry b an k 1 M e m o ry ba n k 2 M em o ry b an k 3 M e m o ry b. W id e m e m o ry o rga nizatio n c. In te rle av e d m e m o ry orga niza tio n Figur 7.13 side 561 a. O n e - w ord -w ide m e m ory o rga nization 26.03.2001 Hukommelseshierarki-1 13
Direkte-mappet cache er ikke den mest fleksible måten å plassere blokker i cache på. Det mest ekstreme andre alternativet er å plassere blokken hvorsomhelst: Full assosiativ cache. En tredje mulighet er set assosiativ (kombinasjon) D ir e c t m a p p e d S e t a s s o c ia tiv e F u lly a s s o c ia ti v e B l o c k # 0 1 2 3 4 5 6 7 S e t # 0 1 2 3 D a ta D a t a D a t a T a g 1 2 T a g 1 2 T a g 1 2 S e a rc h S e a rc h S e a rc h 26.03.2001 Hukommelseshierarki-1 14
Sammenliging mellom direkte-mapped, setassosiativ og fullt assosiativ cache: One-way set associative (direct mapped) Block 0 1 2 3 4 5 6 7 Tag Data Two-way set associative Set 0 1 2 3 Tag Data Tag Data Set 0 1 Four-way set associative Tag Data Tag Data Tag Data Tag Data Eight-way set associative (fully associative) Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data 26.03.2001 Hukommelseshierarki-1 15
Hvordan finne en blokk i set -assosiativ cache: Hvilken blokk skal kastes ut? Address 31 30 12 11 10 9 8 3 2 1 0 22 8 Index V Tag Data V Tag Data V Tag Data V Tag Data 0 1 2 253 254 255 22 32 4-to-1 m ultiplexo r Hit Data 26.03.2001 Hukommelseshierarki-1 16