1.26k likes | 1.38k Views
Les 10: Geheugenhi ërarchie. Parkinson's laws: "Work expands so as to fill the time available for its completion“ "Expenditure rises to meet income“ “Programs expand to fill all available memory”. Doelstelling.
E N D
Les 10: Geheugenhiërarchie Parkinson's laws: "Work expands so as to fill the time available for its completion“ "Expenditure rises to meet income“ “Programs expand to fill all available memory”
Doelstelling Aanbieden van de illusie van een zeer groot, parallel toegankelijk, goedkoop en snel geheugen, opgebouwd uit • Kleine snelle geheugens (duur) • Grote trage geheugens (goedkoop)
Inhoud • Soorten geheugens • Lokaliteit • Caches • Impact op prestatie • Ingebedde systemen • Eindbeschouwingen
Geheugenhiërarchie registers elektronisch Kleiner Sneller duurder on-chip L1 cache (SRAM) On/off-chip L2/L3 cache (SRAM) hoofdgeheugen (DRAM, ROM) Storage class memory (SCM) Flash, SSD mechanisch lokaal secundair geheugen (mechanische schijven) Groter Trager goedkoper gedistribueerd secundair geheugen (netwerkbestanden, Web servers) Off-line geheugen (tapes,CD,DVD)
Prijsevolutie $/MiB RAM HD Wet van Machrone: prijs geheugen/hard disk voor meest krachtige systemen blijft gelijk
Evolutie in de toegangstijd ns 100000000 10000000 1000000 100000 SCHIJF ‘access time gap’ 10000 DRAM SRAM 1000 SCM 100 geheugenbarrière 10 1 1980 1985 1990 1995 2000
Registers • Aantal 8 256 • Grootte: 2-8 bytes • Parallel toegankelijk. Tegelijk lezen en schrijven mogelijk (meerdere lees- en schrijfpoorten). • Extreem snel, parallel toegankelijk, zeer duur • Tijdens uitvoering moeten alle gegevens in registers zitten (IR, data- en adresregisters)
Hoofdgeheugen of RAM:Random Access Memory Twee technologieën: • statisch geheugen: gebaseerd op latches. • dynamisch geheugen: gebaseerd op een lading in een condensator Niet parallel toegankelijk: ofwel lezen ofwel schrijven.
Statische geheugencel: principe D Q CLK Write enable (puls) Chip select Output enable Data in/uit 4-6 transistors
6T SRAM cell woordllijn bitlijn bitlijn
Geheugenarray bitlijn output enable w s d o woordlijn decoder adres 2 D[1] D[0] write enable output enable
Geheugenconfiguraties 16 ki x 1 bit 8 ki x 2 bit 4 ki x 4 bit … … … 14 inputs 1 output 13 inputs 2 outputs 12 inputs 4 outputs hoogte x breedte
Dynamische geheugencel woordlijn Schrijven Lezen Condensator verliest lading • bij het lezen • na 8-64 ms Bitlijn
Dynamisch geheugen byte op adres 010 011 rijdecoder a5 0 1 0 kolomdecoder 0 1 1 a0 Nu: 4 Gi x 1 bit
Refresh • Geheugen 32 Mib = 225 • Rij-adres = 12 bit • Kolomadres = 13 bit • Eerst rij-adres aanleggen, en dan kolomadres • Per 64 ms moeten 4096 rijen gerefresht worden (lezen + schrijven), d.i. 1 rij per 15 s (64 kHz). • Een refresh-cyclus duurt 100 ns per rij en tijdens een refresh is de geheugenmodule inactief. De overhead is dus <1%
Kenparameters Latentie: tijd die verstrijkt tussen het aanleggen van een adres en het verschijnen van het eerste byte. Bandbreedte: aantal byte/s dat maximaal kan getransfereerd worden (van opeenvolgende locaties). Effectieve snelheid van het geheugen wordt door deze twee parameters bepaald. Hoe lager in de hiërarchie, des te groter de discrepantie tussen latentie en bandbreedte
SDRAM klok adres rij kol kol ras cas data
Permanente geheugentypes • ROM: Read Only Memory, eigenlijk geen geheugen, maar een combinatorisch circuit. • PROM: Programmable ROM (1 x)
Permanente geheugentypes • EPROM: Erasable PROM (n x), wissen met UV licht • EEPROM: Electrically Erasable PROM, elektrisch te wissen via speciale pin • FLASH: snelle versie van EEPROM • Compactflash • USB sticks • Solid State Disks
Flash geheugencel woordlijn Control gate Floating gate Multi Level Cell Bitlijn Single Level Cell
Secundair geheugen • Hard disk >100 GB • CD-ROM, CD-RW 650 MB • DVD-ROM, DVD-RAM 4,7-17 GB • Zip-Drive 100-250-750 MB = 95,7-238-714MiB • Floppy disk 1,44 MB = 1,38 MiB • Jaz drive 2 GB • HD-DVD (20 GB) Blu-Ray (27 GB) – in meerdere lagen reeds to 200 GB (één highres film is ongeveer 12 GB) • Solid State Drive (SSD)
Magnetische opslag 8.5 nm partikels [Vermoedeljike max densiteit 50 Tbpsi] 100 nm
Inhoud • Soorten geheugens • Lokaliteit • Caches • Impact op prestatie • Ingebedde systemen • Eindbeschouwingen
Instructiegedrag Buitenlus Frequentie 5.41% 11.26% Veel programma’s spenderen 90% van hun uitvoeringstijd in 10% van de code 23.24% Binnenlus 60.09% Binnenlus adres
Lokaliteit • Temporele lokaliteit: sommige geheugenlocaties komen vaak terug in in de adresstroom • Spatiale lokaliteit: geheugenlocaties in een adresstroom liggen niet ver uit elkaar (b.v. volgen elkaar op). Lokaliteit: temporeel Lokaliteit: spatiaal
Instructieadres Tijd Adresstroom
Werkverzameling (working set) Verzameling van alle geheugenlocaties die een programma tijdens een interval t gebruikt. aantal t
Inhoud • Soorten geheugens • Lokaliteit • Caches • Werking • Indexering • Vervangingsstrategie • Lees/schrijf strategie • Prestatieverbetering • Impact op prestatie • Ingebedde systemen • Eindbeschouwingen Cache keeps intruders away from backcountry supplies
Cachegeheugen Snel geheugen om een deelverzameling van de locaties uit de working set bij te houden. geheugen CVE Cache 10.6 GB/s
Werking cache hoofdgeheugen cache 00 08 10 18 20 28 30 38 40 48 50 58 60 CVE
Indexering • Direct-mapped caches • Set-associatieve caches • Volledig associatieve caches
Direct-mapped cache valid dirty tag index offset adres Cache: direct mapped = data eerder beschikbaar dan hit/miss-informatie treffer data
4-wegs set-associatief adres = = = = multiplexer Cache: set-associatief
Volledig associatieve cache Cache: volledig associatief
Cachetypes Grootte = #sets x associativiteit x blokgrootte Direct mapped = tag 2-wegs SA, 4 sets = data 4-wegs SA, 2 sets Volledig associatief
Tags tag index offset Direct mapped Set-associatief Volledig Assoc Cache: tags
Vervangingsstrategie • Als de set volzet is, dan moet er een blok uit de set verwijderd worden. • Keuze • LRU: least recently used (langst niet gebruikt geweest) • FIFO: first-in first-out (oudste blok) • Random: willekeurig blok • Opt: blok dat het langst niet gebruikt zal worden Cache: vervangingsstrategie
Miss rates ifv vervangingsstrategie [Data cache, Spec 2000, 64 byte blokken (alpha)] [instructiecache]
Cache leesstrategie lees 90%-98% data in cache cachetreffer data niet in cache cachemisser stuur door naar CVE load through load & forward Cache: leesstrategie
Cache schrijfstrategie schrijf Cache: schrijfstrategie data in cache cachetreffer data niet in cache cachemisser write through write back write allocate write no allocate geheugen cache cache + geheugen cache (+ geheugen)
Gemiddelde toegangstijd Gemiddelde toegangstijd (AMAT) = Hit Time + (Miss Rate x Miss Penalty) = (Hit Rate x Hit Time) + (Miss Rate x Miss Time) [AMAT: Average Memory Access Time] 3 + 0.02 x 100 = 5 0.98 x 3 + 0.02 x 103 = 5 Miss rate ↓ Miss penalty ↓ Hit time ↓ AMAT ↓
AMAT AMAT = Hit Time + (Miss Rate x Miss Penalty)
Misserclassificatie: 3C model • Compulsory (cold) of koude missers: nodig om een blok de eerste keer in de cache te brengen. • INF = oneindig grote cache • koude missers = missers(INF) • Capaciteitsmissers: cache is te klein om de werkverzameling te bevatten. • VA = volledig associatieve cache, LRU vervanging • capaciteitsmissers = missers(VA) - missers(INF) Cache: koude misser Cache: capaciteitsmisser