Cacheadres opsplitsen en gemiddelde geheugentoegangstijd

Voer de cachegrootte, regelgrootte en associativiteit in om te zien hoe een adres wordt opgesplitst in tag, index en offset, weergegeven als aantallen bits en als balk. De calculator berekent ook de gemiddelde geheugentoegangstijd (AMAT) uit hittijd, missrate en miss penalty, zodat je ziet hoe de cache-organisatie de prestaties beïnvloedt.

Cache-organisatie

Resultaten

Adresopbouw (meest significante bits links)

Regels
–
Sets
–
Tag
–
Index
–
Offset
–
Gemiddelde geheugentoegangstijd (AMAT)
–

Een adres opsplitsen in drie velden

Een cache bewaart data uit het hoofdgeheugen in eenheden die regels (blokken) heten. Het aantal regels is grootte ÷ regelgrootte, en het aantal sets is regels ÷ associativiteit. Vanaf de onderkant van het adres kiest de offset een byte binnen de regel en beslaat log₂(regelgrootte) bits, kiest de index een set en beslaat log₂(sets) bits, en vormen de resterende hogere bits de tag. Met de standaardwaarden 32 bits, 32 KB, 64 B en 8 ways zijn er 512 regels en 64 sets, wat een offset van 6 bits, een index van 6 bits en een tag van 32 − 6 − 6 = 20 bits geeft.

Wat associativiteit verandert

Een verdubbeling van de associativiteit bij gelijke grootte en regelgrootte halveert het aantal sets, zodat de index één bit verliest en de tag er één bij krijgt. Eén way is een direct-mapped cache, en het aantal ways gelijk maken aan het aantal regels (512 bij de standaardwaarden) geeft een fully associative cache met één set en een index van 0 bits. Hogere associativiteit vermindert conflictmisses, die ontstaan doordat adressen zich in dezelfde set opeenhopen, maar er moeten meer tags parallel worden vergeleken, wat comparatoroppervlak, vermogen en hittijd kost.

Gemiddelde geheugentoegangstijd (AMAT)

Caches vergelijk je op gemiddelde geheugentoegangstijd, niet alleen op missrate. AMAT = hittijd + missrate × miss penalty, wat met de standaardwaarden 4 + 0,05 × 100 = 9 cycli is. Zelfs een missrate van 5% maakt het gemiddelde ruim twee keer zo groot, omdat de penalty groot is. Een lagere missrate dankzij een grotere of meer associatieve cache helpt niet als de hittijd toeneemt, want die betaalt elke toegang. Bij caches met meerdere niveaus vervang je de L1-miss penalty door L2-hittijd + L2-missrate × L2-miss penalty.

Gebruik in ontwerpen en valkuilen

Grotere regels benutten ruimtelijke lokaliteit en verlagen de missrate, maar elke miss verplaatst meer data, wat de miss penalty verhoogt, en minder regels betekenen meer conflicten; de meeste huidige CPU's gebruiken 64 B. L1-caches gebruiken vaak een virtually indexed, physically tagged (VIPT) ontwerp dat de set uitleest terwijl de TLB het adres vertaalt. Als index en offset binnen de pagina-offset moeten blijven, is de grootte beperkt tot paginagrootte × associativiteit, bijvoorbeeld 4 KB × 8 ways = 32 KB. De tagbreedte bepaalt ook de grootte van de tagopslag.

Oefenvragen over de geheugenhiërarchie

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?

  1. A15 bits
  2. B19 bits
  3. C17 bits
Antwoord en toelichting tonen

Antwoord: C. 17 bits

Een regelgrootte van 64 byte = 2⁶ betekent een offset van 6 bits. Het aantal regels is 32 KB ÷ 64 B = 32768 ÷ 64 = 512 = 2⁹; bij direct-mapped is het aantal regels gelijk aan het aantal sets, dus de index is 9 bits. De rest vormt de tag: 32 − 9 − 6 = 17 bits. 19 bits is de waarde bij een 4-weg set-associatieve cache, waar de index 2 bits korter is; dat geldt niet voor direct-mapped.

Hoeveel sets heeft een 4-weg set-associatieve cache met 32-bits adressen, een capaciteit van 32 KB en een regelgrootte van 64 byte?

  1. A128
  2. B512
  3. C32
Antwoord en toelichting tonen

Antwoord: A. 128

Het aantal regels is 32 KB ÷ 64 B = 512. Bij 4 wegen passen er 4 regels in één set, dus het aantal sets is 512 ÷ 4 = 128 = 2⁷; de index is dan 7 bits en de tag 32 − 7 − 6 = 19 bits. 512 is het aantal regels zelf en tevens het aantal sets bij direct-mapped. Een hogere associativiteit verlaagt het aantal sets; daardoor neemt het aantal tagbits toe en zijn er meer comparatoren nodig. 32 is het resultaat van de regelgrootte 64 ten onrechte door het aantal wegen te delen.

De hittijd van de cache is 2 cycli, de missratio 4% en de misstraf 150 cycli. Hoeveel cycli bedraagt de gemiddelde geheugentoegangstijd?

  1. A8 cycli
  2. B6 cycli
  3. C152 cycli
Antwoord en toelichting tonen

Antwoord: A. 8 cycli

Gemiddelde geheugentoegangstijd = hittijd + missratio × misstraf = 2 + 0,04 × 150 = 2 + 6 = 8 cycli. De hittijd geldt voor alle toegangen, en de misstraf komt er alleen bij wanneer een miss optreedt. 6 cycli is de waarde waarbij alleen de bijdrage van de misses is berekend en de hittijd is vergeten. 152 cycli is de tijd van één toegang met miss en niet het gemiddelde. Zelfs bij een missratio van slechts 4% wordt de gemiddelde tijd viermaal zo groot.

In een cache met regelgrootte 64 byte en 64 sets: welk setnummer krijgt het adres 0x1234?

  1. A4
  2. B52
  3. C8
Antwoord en toelichting tonen

Antwoord: C. 8

De offset is 64 = 2⁶, dus de onderste 6 bits; de index is het aantal sets 64 = 2⁶, dus de 6 bits daarboven. 0x1234 = 4660; 4660 ÷ 64 = 72 rest 52, dus het regelnummer is 72. Het setnummer is het regelnummer modulo het aantal sets: 72 mod 64 = 8. 52 is de rest na deling door 64 en geeft de positie binnen de regel (offset) aan. 4 is slechts het laatste hexadecimale cijfer van het adres en heeft niets met de set te maken.

Veelgestelde vragen

Hoeveel tagbits heeft een direct-mapped cache van 32 KB met regels van 64 B en 32-bits adressen?

De offset is log₂64 = 6 bits, en 32 KB ÷ 64 B = 512 regels geeft een index van 9 bits, dus de tag is 32 − 9 − 6 = 17 bits. Maak je de cache 8-way, dan daalt het aantal sets naar 64, met een index van 6 bits en een tag van 20 bits.

Hoeveel indexbits heeft een fully associative cache?

Nul. Er is maar één set, dus elk bit behalve de offset is tag, en de tag wordt met elke regel vergeleken. Je kunt dit hier controleren door de associativiteit gelijk te maken aan het aantal regels.

Wat helpt meer: de missrate halveren of de hittijd met één cyclus verkorten?

Met de standaardwaarden (hittijd 4 cycli, missrate 5%, miss penalty 100 cycli) verlaagt een missrate van 2,5% de AMAT van 9 naar 6,5 cycli, terwijl een hittijd van 3 cycli 8 cycli geeft, dus hier weegt de missrate zwaarder. Bij een kleine miss penalty kan het antwoord omslaan, dus vergelijk met de AMAT-formule.

Verwante begrippen

Cachegeheugen Cacheregel (cache line) Direct-mapped cache Set-associatief Fully associative Gemiddelde geheugentoegangstijd (AMAT) Miss penalty Conflictmiss (conflict miss)

Halfgeleider-rekentools

Calculator voor dies per wafer en yieldDies per wafer, yield (Poisson, Murphy, negatief binomiaal) en kosten per goede die, met wafermapCalculator voor lithografie-resolutie en focusdiepteResolutie (half-pitch), focusdiepte en pitchsplitsing uit golflengte, NA en k1Calculator voor setup- en hold-timingSetup- en hold-slack en maximale klokfrequentie voor een flipflop-naar-flipflop-padMOSFET-I-V-karakteristiek (ID–VDS)Wijzig Vth, W/L en λ en bekijk de ID–VDS-curven en het werkpunt: gebied, ID, gm en roVragenset makenKies onderwerpen en een aantal vragen en krijg een deelbare quizlink voor lessen en trainingenCalculator voor junctietemperatuur en thermische weerstandJunctietemperatuur, marge tot Tj(max) en maximaal vermogen uit gedissipeerd vermogen en thermische weerstandCalculator voor geheugenbandbreedtePiek- en effectieve bandbreedte van DDR, LPDDR, GDDR en HBM uit transfersnelheid en busbreedteADC-SNR en effectief aantal bits (ENOB)SNR en effectief aantal bits van een ADC uit resolutie, klokjitter en oversamplingWet van Amdahl en parallelle speedupSpeedup en parallelle efficiëntie uit de parallelle fractie en het aantal processors, volgens de wetten van Amdahl en GustafsonVermogensverbruik van CMOS (dynamisch en statisch)Dynamisch en statisch vermogen uit activiteitsfactor, capaciteit, spanning, frequentie en lekstroom, plus het vermogen na DVFSIngebouwde spanning en depletiebreedte van een pn-junctieIngebouwde spanning, depletiebreedte, piekveld en junctiecapaciteit van een pn-junctie uit dotering en sperspanningDikte van thermisch oxide (Deal-Grove-model)Dikte van siliciumoxide en verbruikt silicium uit temperatuur, tijd, droge of natte atmosfeer en oriëntatie, met het Deal-Grove-model