Hukommelseshierarki når tema pensum 16/3 cache 7.1 7.2 23/3 virtuell hukommelse 7.3 7.5 in 147, våren 1999 hukommelseshierarki 1
Tema for denne forelesningen: en enkel hukommelsesmodell hukommelseshierarki cache in 147, våren 1999 hukommelseshierarki 2
Hukommelse for ett bit C Q D in 147, våren 1999 hukommelseshierarki 3
Hukommelser 8 bit adresse read/ write enable data in data out Statisk RAM < > Dynamisk RAM in 147, våren 1999 hukommelseshierarki 4
Ytterpunkter: Hukommelseshierarki billig og langsom (mye) [DRAM] dyr og rask (lite) [SRAM] Slike komponenter arrangeres i et hierarki, sammen med CPU, disk o.l. CPU cache hovedhukommelse disk Målet med et hukommelseshierarki er å oppnå hastigheten til det høyeste (raskeste og minste) hukommelsesnivået med kapasiteten til det laveste (største og langsomste) hukommelsesnivået. Dette aldri helt, men det går nesten. in 147, våren 1999 hukommelseshierarki 5
Aksesstider access time "sgi_nipling.res" 500 Aksesstider varierer med en faktor 10 0 1M 256K 64K set size 16K 4K 1K 4 16 256 4K stride in 147, våren 1999 hukommelseshierarki 6
Kombinere rask og langsom hukommelse bare rask hukommelse er for dyrt, men vi kan ha så mye vi har råd til den raske hukommelsen kan f.eks. plasseres nederst i adresserommet, men er det alltid gunstig? kanskje vi ofte ønsker at den raske hukommelsen skal ligge et annet sted kanskje dette faktisk varierer fra program til program! men å flytte rundt på en bit med hukommelse er vanskelig ettersom hukommelsen er noe fysisk som sitter fast på et kretskort! kan man finne en «plassering» av den raske hukommelsen som tilpasser seg programmet? langsom rask in 147, våren 1999 hukommelseshierarki 7
Bruksmønster Vi bruker samme bok flere ganger 1) samme materiale 2) annet materiale i samme bok Lokalitet deles inn i to typer; lokalitet i tid og lokalitet i rom. Lokalitet i tid betyr at det er stor sannsynlighet for at elementer som allerede har blitt brukt vil bli brukt om igjen i nær fremtid. løkker Lokalitet i rom betyr at det er stor sannsynlighet for at elementer i nærheten av elementer som allerede har blitt brukt vil bli brukt i nær fremtid. elementer i datastrukturer in 147, våren 1999 hukommelseshierarki 8
Bibliotek < > hukommelse British Library BIBLIOTEK CPU cache memory sluse CPU cache hovedhukommelse BIBLIOTEK British Library in 147, våren 1999 hukommelseshierarki 9
Biblioteksreferanser Anta at 093702658 545 er en unik identifikasjon av starten på «The Basics of Cache» i læreboka. I bibliotekssammenhengen bryter vi dette opp i 3 deler: 1) 0937026 er «nøkkelen» som bekrefter treff 2) 58 er entydig angivelse av hvor i hylla vi leter 3) 545 som er siden i boka vi er interessert i 0937026 58 545 På en lignende måte blir adresser i datamaskinen delt opp for å aksessere cache. in 147, våren 1999 hukommelseshierarki 1 0
Noen begreper blokk: enheten med lagerceller som utveksles mellom to nivåer hit: miss: når en aksess finner det den leter etter i det øvre nivået når en aksess ikke finner det den leter etter i det øvre nivået hit rate: miss rate: hit time: andelen av aksesser som blir funnet i det øvre nivået 1.0 hit rate tiden det tar for å aksessere det øvre nivået, inkludert tiden for å avgjøre at det var hit miss penalty: tiden det tar å erstatte en blokk i ett nivå med en blokk fra nivået under, pluss tiden for å tilfredsstille aksessen in 147, våren 1999 hukommelseshierarki 1 1
Datamaskinen bruker adresser Disse kan vi bryte opp i nøkkel, posisjon i hylla og sidenummer, men nå heter de istedet 1) tag 2) index 3) offset adresse tag index offset Index brukes for å bestemme hvor i cachen dataene hører hjemme. Tag brukes for å sjekke at vi fant det vi lette etter. Offset brukes for å plukke ut en mindre del hvis vi fant det vi lette etter. Enhetene som håndteres i cachen er alle like store! De kan være så små som den enheten arkitekturen bruker som alignment (MIPS: 32 bit), eller de kan være større. Disse enhetene blir omtalt som cachelinjer. På grunn av at adresser er binære tall, så er det enkelt å dividere med potenser av 2. Derfor er alle størrelser potenser av 2. adresserommet in 147, våren 1999 hukommelseshierarki 1 2
Direct mapped cache line innkommende adresse dekoder sjekk og valg (mux) in 147, våren 1999 hukommelseshierarki 1 3
2 eksempler: cache line innkommende adresse dekoder sjekk og valg (mux) Størrelse: 64 Kbyte (fig. 7.8) Organisering: direktemappet med ett ord pr. linje byte offset : offset : index : antall cachelinjer : Størrelse: 64 Kbyte (fig. 7.10) Organisering: direktemappet med fire ord pr. linje byte offset : offset : index : antall cachelinjer : in 147, våren 1999 hukommelseshierarki 1 4
Set associative cache line innkommende adresse dekoder sjekk og valg (mux) in 147, våren 1999 hukommelseshierarki 1 5
Full associative cache line innkommende adresse sjekk og valg (mux) in 147, våren 1999 hukommelseshierarki 1 6
cache line innkommende adresse dekoder sjekk og valg (mux) in 147, våren 1999 hukommelseshierarki 1 7
Ytelse for forskjellige organiseringer av cache 15% 12% 9% Miss rate 6% 3% 0% One-way Two-way Four-way Eight-way Associativity 1 KB 16 KB 2 KB 32 KB 4 KB 64 KB 8 KB 128 KB in 147, våren 1999 hukommelseshierarki 1 8
Mer enn én prosess! stakk 7FFFFFFF stakk dynamiske data statiske data program reservert 10000000 400000 dynamiske data statiske data program reservert in 147, våren 1999 hukommelseshierarki 1 9