De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Geheugen-hiërarchie.

Verwante presentaties


Presentatie over: "Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Geheugen-hiërarchie."— Transcript van de presentatie:

1 slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Geheugen-hiërarchie

2 slide 2Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers geheugenhiërarchie (slide uit H1) n axioma van hardware ontwerp: klein is snel u klein: signalen moeten minder ver gaan u meer voeding mogelijk per cel Z wel veel duurder n van groot belang bij geheugens u grote bandbreedte (in MB/sec.) u kleine toegangstijden n data toegang u meest recent gebruikt komt vaak terug (temporal locality) u wat in de buurt ligt is vaak ook nodig (spacial locality) n combinatie van deze elementen met de wet van Amdahl: geheugen hiërarchie is de oplossing (fig. 1.15)

3 slide 3Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers geheugenhiërarchie (vervolg) n doelstelling van geheugenhiërarchie u kost van het geheel moet bijna gelijk zijn aan het goedkoopste deel van de hiërarchie u snelheid van het geheel moet bijna gelijk zijn als het snelste deel uit de hiërarchie n organisatie u meestal is elk deel een subset van een ander deel u het laagste deel uit de hiërarchie bevat alles n invloed op adressen u adressen moeten vertaald (+ gechecked, beveiliging) worden van een grotere adresruimte naar een kleinere adresruimte n fig 1.16: typische waarden van grootte en snelheid van de verschillende delen van de hiërarchie

4 slide 4Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers belang van caches n basisprobleem: performantieverbetering van CPU stijgt sneller over de jaren dan de performantieverbetering van geheugens (fig. 5.1) n het verschil tussen de snelheid van de CPU en die van het hoofdgeheugen wordt opgevangen door caches momenteel vaak meerdere niveaus: l snelheid van cache wordt mede bepaald door grootte: hoe kleiner, hoe sneller l cache moet aansluiten bij de snelheid van de CPU maar groot genoeg zijn of er zijn teveel cache misses l oplossing: 2 of zelfs 3 caches van verschillend niveau

5 slide 5Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers de werking van een cache n een cache wordt getypeerd door 4 eigenschappen: l plaatsing van een blok l zoeken van een blok l vervanging van een blok door een ander l strategie voor het wegschrijven van gewijzigde blok u plaatsing van een blok s volledig associatief (elk blok kan overal) s directe plaatsing (elk blok kan maar op 1 plaats) s ‘set associative’ (elk blok kan op een verzameling plaatsen) –als verzameling 1 groot is = directe plaatsing –als verzameling de hele cache is = volledig associatief

6 slide 6Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers de werking van een cache n 4 eigenschappen (vervolg) u zoeken van een blok l gebeurt in parallel l in elk adres –eerste deel (tag) bepaalt welk blok in de verzameling –tweede deel (index) bepaalt de verzameling –derde deel (offset) bepaalt element in het blok l hoe groter de verzameling, hoe kleiner de index (bij volledige associativiteit valt de index weg) l zie ook voorbeeld figuur 5.5 block offset indextag block address

7 slide 7Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers de werking van een cache (vervolg) n 4 eigenschappen (vervolg) u vervanging van een blok door een ander l bij cache miss komt er een nieuw blok in de cache –welk blok gaat er dan uit ? –bij direct mapping heel eenvoudig: geen keuze mogelijke –bij set-associatieve of volledig associatieve geheugens: –random (is goedkoop) –LRU (is duur)

8 slide 8Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers de werking van een cache (vervolg) n 4 eigenschappen (vervolg) u strategie voor het wegschrijven van gewijzigde blok l write through –informatie wordt weggeschreven in cache en hoofdgeheugen –dit kan leiden tot vertraging bij een write (schrijven naar hoofdgeheugen is traag) –oplossing: write buffer l write back: –informatie wordt eerst enkel in de cache gewijzigd –blok wordt naar hoofdgeheugen gekopieerd bij vervanging

9 slide 9Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers performantie van caches verbeteren n performantie van een cache kan verbeterd worden door u het aantal cache misses te verminderen u de tijd die je verliest bij een cache miss te verminderen u de ‘hit tijd’ te verminderen (de tijd die nodig is om te zien of iets in de cache aanwezig is) _ deze methoden worden elk uitgewerkt in de volgende slides

10 slide 10Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers performantie van caches verbeteren (vervolg) n het aantal cache misses verminderen u soorten cache misses l verplicht –bij het eerste gebruik heb je altijd een cache miss l grootte van de cache –als het programma voortdurend meer gegevens gebruikt dan in de cache passen heb je veel cache misses l conflict in blokken –een blok verdwijnt niet omdat het niet meer gebruikt wordt, maar vanwege een conflict –zo kun je 2 blokken telkens om beurt weer moeten inladen

11 slide 11Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n het aantal cache misses verminderen (vervolg) u oplossingen l grotere blokken –verlaagt missen bij eerste gebruik –verhoogt kost bij een miss –verhoogt eventueel het aantal conflict-misses l grotere associativiteit (minder conflicten) –kost meer tijd bij nakijken of blok er is (hit tijd) l slachtoffer-cache: bijhouden van enkele blokken die er als slachtoffer uitgingen –bv 1 tot 5 blokken –interessant bij direct associatieve caches performantie van caches verbeteren (vervolg)

12 slide 12Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n het aantal cache misses verminderen (vervolg) u oplossingen l pseudo-associatieve caches: –eerst zoek je direct-associatief –daarna nog ergens anders (bv inverteren meest significante bit van index) l hardware gecontroleerde prefetch naar een speciale buffer tussen hoofdgeheugen en cache –bij elke fetch ook het volgende blok inladen l compiler gecontroleerde prefetch l compiler optimisaties (verhogen van temporele en ruimtelijke localiteit, herordenen van procedures) performantie van caches verbeteren (vervolg)

13 slide 13Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n de tijd die je verliest bij een cache miss verminderen u voorrang geven aan read misses boven writes l bij read miss niet wachten tot alles weggeschreven is maar ook checken in write buffers of gezocht blok daar in zit u werken met sub-blokken als blokken erg groot zijn l elk sub-blok heeft ‘valid’ bit, niet alle sub-blokken inlezen l een sub-blok binnenhalen bij cache miss is sneller dan de hele blok u woord snel doorgeven aan CPU (voordat heel blok in cache is) l van zodra gevraagd woord binnen is: doorgeven l of zelfs eerst woord ophalen en dan heel blok u niet-blokkerende caches l bij een miss, terwijl cache gegevens ophaalt, andere aanvragen behandelen (belangrijk bij multiple issue) performantie van caches verbeteren (vervolg)

14 slide 14Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n de tijd die je verliest bij een cache miss verminderen (vervolg) u invoeren van een L2-cache l groter wordend verschil tussen snelheid CPU en hoofdgeheugen: –of cache sneller maken (dichter bij CPU) –of cache groter maken (dichter bij hoofdgeheugen) l dit dilemma oplossen door een nieuw niveau van cache te plaatsen, dan is het antwoord op beide vragen ‘ja’ –L1 cache klein genoeg: werkt op kloksnelheid van CPU –L2 cache groot genoeg: bijna geen misses meer (buiten de eerste) performantie van caches verbeteren (vervolg)

15 slide 15Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n ‘hit tijd’ verminderen (tijd nodig om zien of geg. in cache) u hit tijd van groot belang: beïnvloedt de kloksnelheid van CPU u oplossingen l kleine, eenvoudige caches –bv directe plaatsing, vergelijken van tag in parallel met sturen naar CPU (als niet klopte dan data tegenhouden) l geen adresvertaling (van virtueel naar fysisch) –gebruik virtuele adressen in de cache –bij proces-switch moet cache geflushed worden –of toevoegen van een PID l pipelining van writes –normaal: eerst checken van tag (zeker zijn dat dit het juiste blok is), dan pas schrijven –bij pipelining: één write per cycle performantie van caches verbeteren (vervolg)

16 slide 16Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers hoofdgeheugen n belangrijke tijden: access time en cycle time n huidige technologie: DRAM u D staat voor dynamisch: elke bit gebruikt 1 transistor l deze bit wordt verstoord bij het lezen een gelezen geheugenplaats moet herschreven worden: daardoor is cycle time groter dan access time l deze bit heeft regelmatig een ‘refresh’ nodig of het verliest zijn informatie u door het groter worden van de DRAMs is vaak bespaard op adreslijnen: men gebruikt de helft van de adreslijnen l de eerste helft van een adres wordt verstuurd: Row Access Strobe (RAS) l gevolgd door de tweede helft van het adres: Column Access Strobe (CAS)

17 slide 17Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n snellere (maar duurdere technologie): SRAM u S staat voor statisch: elke bit wordt door 4 tot 6 transistors voorgesteld l dus veel duurder l cycle time is gelijk aan access time l cycle time is 8 tot 16 keer sneller dan bij DRAMs l bijna alle caches gebruiken SRAM n VRAM, RAMBUS: een chip dat een geheugensysteem voorstelt: u geen RAS/CAS, maar een speciale bus u na 1 aanvraag kan de chip variabele hoeveelheid informatie teruggeven aan grote snelheid u wordt gebruikt voor grafische schermen (VRAM = Video RAM) hoofdgeheugen (vervolg)

18 slide 18Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers n methoden voor het verhogen van de bandbreedte van het hoofdgeheugen (fig. 5.31) u breed hoofdgeheugen l ipv 1 woord tegelijk te lezen, leest men 2 of 4 woorden tegelijk (bv 256 bits in de Alpha AXP 21064) l bus moet dan zo breed worden l multiplexer (tussen L2-cache en L1-cache, of tussen L1-cache en CPU) kiest dan juist gedeelte u gebruik van interleaving met verschillende geheugenbanken l hier gebruikt men het parallellisme tussen DRAMs l bandbreedte van de verschillende banken worden opgeteld u gebruik van onafhankelijke geheugenbanken (elk ev. eigen bus) u RAMBUS of VRAM (zie eerder) hoofdgeheugen (vervolg)


Download ppt "Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Geheugen-hiërarchie."

Verwante presentaties


Ads door Google