1 / 126

Les 10: Geheugenhi ërarchie

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.

Download Presentation

Les 10: Geheugenhi ërarchie

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

  2. 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)

  3. Inhoud • Soorten geheugens • Lokaliteit • Caches • Impact op prestatie • Ingebedde systemen • Eindbeschouwingen

  4. 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)

  5. Prijsevolutie $/MiB RAM HD Wet van Machrone: prijs geheugen/hard disk voor meest krachtige systemen blijft gelijk

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

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

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

  9. Statische geheugencel: principe D Q CLK Write enable (puls) Chip select Output enable Data in/uit 4-6 transistors

  10. 6T SRAM cell woordllijn bitlijn bitlijn

  11. Geheugenarray bitlijn output enable w s d o woordlijn decoder adres 2 D[1] D[0] write enable output enable

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

  13. Dynamische geheugencel woordlijn Schrijven Lezen Condensator verliest lading • bij het lezen • na 8-64 ms Bitlijn

  14. Dynamisch geheugen byte op adres 010 011 rijdecoder a5 0 1 0 kolomdecoder 0 1 1 a0 Nu: 4 Gi x 1 bit

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

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

  17. SDRAM klok adres rij kol kol ras cas data

  18. Geheugentypes

  19. Permanente geheugentypes • ROM: Read Only Memory, eigenlijk geen geheugen, maar een combinatorisch circuit. • PROM: Programmable ROM (1 x)

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

  21. Flash geheugencel woordlijn Control gate Floating gate Multi Level Cell Bitlijn Single Level Cell

  22. 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)

  23. Magnetische opslag 8.5 nm partikels [Vermoedeljike max densiteit 50 Tbpsi] 100 nm

  24. Inhoud • Soorten geheugens • Lokaliteit • Caches • Impact op prestatie • Ingebedde systemen • Eindbeschouwingen

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

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

  27. Instructieadres Tijd Adresstroom

  28. Werkverzameling (working set) Verzameling van alle geheugenlocaties die een programma tijdens een interval t gebruikt. aantal t

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

  30. Geheugenbarrière

  31. Cachegeheugen Snel geheugen om een deelverzameling van de locaties uit de working set bij te houden. geheugen CVE Cache 10.6 GB/s

  32. Werking cache hoofdgeheugen cache 00 08 10 18 20 28 30 38 40 48 50 58 60 CVE

  33. Indexering • Direct-mapped caches • Set-associatieve caches • Volledig associatieve caches

  34. Direct-mapped cache valid dirty tag index offset adres Cache: direct mapped = data eerder beschikbaar dan hit/miss-informatie treffer data

  35. Direct-mapped cache

  36. Direct-mapped cache

  37. 4-wegs set-associatief adres = = = = multiplexer Cache: set-associatief

  38. Set-associatieve cache

  39. Set-associatieve cache

  40. Volledig associatieve cache Cache: volledig associatief

  41. Volledig associatieve cache

  42. Cachetypes Grootte = #sets x associativiteit x blokgrootte Direct mapped = tag 2-wegs SA, 4 sets = data 4-wegs SA, 2 sets Volledig associatief

  43. Tags tag index offset Direct mapped Set-associatief Volledig Assoc Cache: tags

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

  45. Miss rates ifv vervangingsstrategie [Data cache, Spec 2000, 64 byte blokken (alpha)] [instructiecache]

  46. Cache leesstrategie lees 90%-98% data in cache cachetreffer data niet in cache cachemisser stuur door naar CVE load through load & forward Cache: leesstrategie

  47. 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)

  48. 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 ↓

  49. AMAT AMAT = Hit Time + (Miss Rate x Miss Penalty)

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

More Related