Geheugenhiërarchie en prestaties

Leer met meerkeuzevragen over geheugenhiërarchie en prestaties, zoals de opbouw van de cache, berekeningen met tag, set en offset, vervangings- en schrijfbeleid, de drie soorten misses en de gemiddelde geheugentoegangstijd.

Oefen 10 vragenWillekeurige vragen uit dit onderwerp · ongeveer 5 minuten Dit onderwerp oefenenAlle vragen over dit onderwerp in willekeurige volgorde Zwakke vragenAlleen de laatst fout beantwoorde vragen opnieuw oefenen

Geheugenbandbreedte →

Cacheadres opsplitsen →

Geheugenhiërarchie en prestaties: kernpunten

Een CPU-bewerking duurt minder dan een nanoseconde, maar het lezen van gegevens uit het DRAM-werkgeheugen kost enkele tientallen tot 100 nanoseconden. Om dit verschil te overbruggen, ordenen computers geheugens in een hiërarchie, van kleine, snelle caches tot groot, langzaam werkgeheugen en opslag, en plaatsen ze veelgebruikte gegevens op de snelle plekken.

Een cache werkt goed omdat programma's temporele en ruimtelijke lokaliteit vertonen. Wie direct-mapped en set-associatieve organisaties, de berekening waarmee een adres in tag, index en offset wordt verdeeld, de drie soorten misses en de gemiddelde geheugentoegangstijd kent, begrijpt waarom de volgorde van gegevens of lussen de prestaties met een factor kan veranderen.

Alle vragen over Geheugenhiërarchie en prestaties (50)

  1. Welk voorbeeld illustreert temporele lokaliteit het best?
  2. Een tweedimensionale C-array a[i][j] wordt doorlopen met j als binnenste lus. Dit is doorgaans sneller dan met i als binnenste lus. Wat is de reden?
  3. Hoeveel bits heeft de tag bij een direct-mapped cache met 32-bits adressen, een capaciteit van 32 KB en een regelgrootte van 64 byte?
  4. Hoeveel sets heeft een 4-weg set-associatieve cache met 32-bits adressen, een capaciteit van 32 KB en een regelgrootte van 64 byte?
  5. Hoeveel bits van het adres worden bij een volledig associatieve cache voor de index (het selecteren van de set) gebruikt?
  6. De hittijd van de L1-cache is 1 ns, de missratio 5%, de hittijd van de L2-cache 10 ns, de lokale missratio van L2 20% en de toegangstijd van het hoofdgeheugen 100 ns. Wat is de gemiddelde geheugentoegangstijd?
  7. Bij een direct-mapped cache komen elementen van twee arrays op dezelfde cachepositie uit en verdringen elkaar bij elke afwisselende toegang. Tot welke categorie behoort deze miss?
  8. Welke maatregel is effectief om cachemisses te verminderen die optreden bij de allereerste toegang van een programma tot bepaalde data?
  9. Welke miss verdwijnt niet wanneer de cache volledig associatief wordt gemaakt?
  10. Wat is een juist gevolg van het vergroten van de regelgrootte van de cache?
  11. Wat is het belangrijkste doel van een schrijfbuffer bij een write-through cache?
  12. Wat is de juiste rol van de dirty bit die bij elke regel van een write-back cache hoort?
  13. Welke methode schrijft bij een cachemiss op een schrijfactie rechtstreeks naar het lagere niveau zonder de regel in te lezen?
  14. Een volledig associatieve cache met capaciteit van 2 regels en LRU-vervanging is aanvankelijk leeg. Blokken worden in de volgorde A, B, A, C, B, A benaderd. Hoeveel misses treden op?
  15. Bij welke toegang is hardware-prefetching bijzonder effectief?
  16. Welke uitspraak over de prefetch-afstand (hoe ver vooruit data worden gelezen) bij het invoegen van software-prefetchinstructies is juist?
  17. In bovenstaande lus is een int 4 byte, een cacheregel 64 byte, staat de array niet in de cache en begint hij op een regelgrens. Wat is, zonder prefetching, de missratio bij het lezen van de array?
  18. Wat is het belangrijkste doel van loop blocking (tiling), zoals gebruikt bij matrixvermenigvuldiging?
  19. Waarom wordt een bewerking die alleen de x-coördinaten optelt vaak sneller wanneer een array van structuren wordt omgeschreven tot een structuur van arrays (elke component in een eigen array)?
  20. Wat is het belangrijkste voordeel van een gesplitste L1-cache met aparte caches voor instructies (I-cache) en data (D-cache)?
  21. In een systeem met paginagrootte 4 KB en regelgrootte 64 byte wordt een L1-cache met virtuele index en fysieke tag (VIPT) zo opgebouwd dat index en offset alleen uit bits binnen de pagina bestaan. Wat is de maximale capaciteit van de cache bij 8-weg set-associativiteit?
  22. Wat is de belangrijkste reden dat VIPT (virtuele index, fysieke tag) vaak wordt gebruikt voor de L1-cache?
  23. De hittijd van de cache is 2 cycli, de missratio 4% en de misstraf 150 cycli. Hoeveel cycli bedraagt de gemiddelde geheugentoegangstijd?
  24. Een processor heeft bij een ideale cache een gemiddelde CPI van 1,0, gemiddeld 1,3 geheugentoegangen per instructie, een missratio van 2% en een misstraf van 100 cycli. Wat is de werkelijke gemiddelde CPI?
  25. Wat is het belangrijkste voordeel van een non-blocking cache (een cache die tijdens het afhandelen van een miss andere toegangen blijft accepteren)?
  26. De missratio van de L1-cache (als aandeel van alle toegangen) is 4% en de globale missratio van de L2-cache (aandeel van alle toegangen dat ook in L2 mist) is 1%. Wat is de lokale missratio van L2?
  27. Wat is het bereik dat zonder TLB-miss kan worden benaderd (TLB reach) bij een TLB met 64 entries en een paginagrootte van 4 KB?
  28. Welke combinatie van het belangrijkste voordeel en nadeel van het gebruik van grote pagina's (huge pages) is juist?
  29. Wanneer een rij van een tweedimensionale array 4096 byte (een macht van 2) groot is, kunnen er bij het langs de kolom doorlopen van elementen veel misses optreden, ook als de cache voldoende capaciteit heeft. Welke maatregel is daartegen effectief?
  30. Hoeveel keer zo lang duurt een toegang tot het hoofdgeheugen (DRAM) ongeveer in vergelijking met een hit in de L1-cache? (Voor de CPU van een gangbare pc of server.)
  31. Wat is de juiste rol van de valid bit die bij elke cacheregel hoort?
  32. Wat is het belangrijkste effect van een victim cache, een kleine volledig associatieve buffer die uit de L1-cache verdrongen regels tijdelijk bewaart?
  33. Wat is de belangrijkste rol van de L2-cache in een meerniveaucache waarin L2 onder de L1-cache is geplaatst?
  34. Welke uitspraak over de inclusieve opzet, waarbij een lager cacheniveau (zoals L2) alle inhoud van het hogere niveau (L1) bevat, is juist?
  35. Welke verandering treedt op bij de overstap van direct-mapped naar set-associatief?
  36. Hoeveel tags worden bij een 8-weg set-associatieve cache per toegang parallel vergeleken?
  37. In een cache met regelgrootte 64 byte en 64 sets: welk setnummer krijgt het adres 0x1234?
  38. Wat is de belangrijkste reden dat write-back voordeliger is dan write-through bij het herhaaldelijk schrijven naar dezelfde regel?
  39. LRU verdringt wat het langst niet is gebruikt. Welke uitspraak is juist over de methode die verdringt wat in de toekomst het langst niet wordt gebruikt (optimale vervanging, OPT)?
  40. Wat gebeurt er in het algemeen met de hittijd wanneer de capaciteit van de cache wordt vergroot, en welke combinatie met de reden is juist?
  41. Waarom is het doorlopen van bovenstaande gekoppelde lijst doorgaans veel trager dan het sequentieel lezen van een array met evenveel elementen?
  42. Bij een miss wordt een regel van 64 byte gelezen en de wachttijd van het hoofdgeheugen is 100 ns. Als slechts één miss tegelijk kan worden afgehandeld, blijft de leesbandbreedte beperkt tot ongeveer 0,64 GB/s. Hoeveel bedraagt de bandbreedte ongeveer wanneer 10 misses tegelijk kunnen worden afgehandeld? (Andere beperkingen worden buiten beschouwing gelaten.)
  43. Wat is het belangrijkste voordeel van stores die de cache omzeilen (non-temporal stores) bij het wegschrijven van grote data die eenmaal worden geschreven en daarna een tijd niet worden teruggelezen?
  44. Wat is de missratio wanneer de hitratio van de cache 95% is?
  45. Welke techniek stuurt, bij het inlezen van een gemiste regel uit het hoofdgeheugen, eerst het woord dat de CPU nodig heeft en pas daarna de rest?
  46. Waarom wordt het samenvoegen van de twee bovenstaande lussen tot één lus (loop fusion) bij grote N vaak sneller?
  47. Waarom treden bij het transponeren van een grote matrix (b[j][i] = a[i][j]) vaak veel cachemisses op, en welke combinatie met een gangbare oplossing is juist?
  48. Welke eigenschap geldt in de geheugenhiërarchie van een gangbare computer voor hogere niveaus (dichter bij de CPU)?
  49. Waarom moeten cacheprestaties niet alleen op missratio, maar ook op gemiddelde geheugentoegangstijd worden vergeleken?
  50. Wanneer twee programma's afwisselend op dezelfde core worden uitgevoerd, kunnen ze trager zijn dan wanneer elk afzonderlijk draait. Welke verklaring is vanuit de cache bezien het meest passend?

Vergelijkingen bij dit onderwerp

Andere onderwerpen in Computersystemen