Geheugenhiërarchie en prestaties

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?

  1. ABij afwisselend uitvoeren verdubbelt het aantal instructies dat elk programma uitvoert
  2. BBij afwisselend uitvoeren wordt de capaciteit van de cache opnieuw op de helft ingesteld
  3. CDe data van het andere programma verdringen de eigen data, waardoor meer opnieuw moet worden ingelezen
Antwoord en toelichting tonen

Antwoord: C. De data van het andere programma verdringen de eigen data, waardoor meer opnieuw moet worden ingelezen

Bij het wisselen tussen programma's raken cache en TLB gevuld met data van het andere programma, zodat bij terugkeer van de eigen beurt de benodigde data zijn verdrongen. Toegangen die bij afzonderlijk draaien hits waren, worden daardoor misses en kosten tijd voor het opnieuw inlezen uit het hoofdgeheugen. Hoe korter het wisselinterval, hoe groter dit effect. Het aantal uitgevoerde instructies verandert niet, en de cachecapaciteit wordt niet opnieuw ingesteld; het gaat om het effect van het delen van de cache.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Geheugenhiërarchie en prestaties

  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?

Vergelijkingen bij dit onderwerp