Wat is Miss penalty?

Extra tijd die nodig is om bij een cachemiss data uit het onderliggende niveau op te halen. Wordt bepaald door de toegangstijd van het onderliggende niveau en de overdrachtstijd van de regel.

Japanse benaming: ミスペナルティ

Vakgebied: Geheugenhiërarchie en prestaties

Wat de miss penalty bepaalt

De miss penalty is de tijd die nodig is om de ontbrekende regel uit het volgende niveau van de hiërarchie op te halen. Ze bestaat uit twee delen: de latency tot de eerste data binnenkomt en de overdrachtstijd voor de rest van de regel, namelijk de regelgrootte gedeeld door de bandbreedte. In een hiërarchie met meerdere niveaus is de L1-miss penalty simpelweg de gemiddelde toegangstijd van L2. Met een L2-hittijd van 10 ns, een lokale L2-missrate van 20% en een hoofdgeheugen van 100 ns is de L1-miss penalty 10 + 0,2 × 100 = 30 ns, veel korter dan rechtstreeks naar het geheugen gaan.

Hoe ze in AMAT en CPI doorwerkt

De gemiddelde geheugentoegangstijd (AMAT) is hittijd + missrate × miss penalty. Met een hittijd van 2 cycli, een missrate van 4% en een penalty van 150 cycli is de AMAT 2 + 0,04 × 150 = 8 cycli, vier keer de hittijd. In termen van CPI levert een ideale CPI van 1,0 met 1,3 geheugentoegangen per instructie, een missrate van 2% en een penalty van 100 cycli er 1,3 × 0,02 × 100 = 2,6 stallcycli bij op, wat een CPI van 3,6 geeft. Een grote penalty maakt van zelfs kleine missrates grote vertragingen.

Waarom alleen de missrate kan misleiden

Grotere of meer associatieve caches verlagen de missrate maar kunnen de hittijd verlengen, en grotere regels benutten ruimtelijke lokaliteit maar verhogen de miss penalty, omdat elke miss meer data overdraagt. Ontwerpen moeten daarom worden vergeleken op AMAT, niet op missrate. Met een penalty van 20 cycli komt een cache met een hit van 1 cyclus en een missrate van 5% gemiddeld uit op 1 + 0,05 × 20 = 2,0 cycli, terwijl een cache met een hit van 2 cycli en een missrate van 4% gemiddeld 2 + 0,04 × 20 = 2,8 cycli haalt; de cache met de lagere missrate is dus trager.

Technieken die de effectieve penalty verkleinen

Extra cacheniveaus verkorten de weg voor de meeste misses. Critical word first stuurt het door de CPU gevraagde woord vóór de rest van de regel, en early restart laat de uitvoering hervatten zodra dat woord binnen is. Non-blocking caches blijven hits bedienen terwijl een miss uitstaat, en out-of-order-cores laten meerdere misses overlappen zodat hun latencies elkaar deels verbergen. Prefetching verbergt de penalty door vooruit op te halen; een bruikbare vuistregel stelt de prefetchafstand op ruwweg de miss penalty gedeeld door de tijd per lusiteratie.

Veelgestelde vragen

Hoe bereken je de miss penalty in een cache met twee niveaus?

De L1-miss penalty is gelijk aan de gemiddelde toegangstijd van L2: de L2-hittijd plus de lokale L2-missrate maal de toegangstijd van het hoofdgeheugen. Bijvoorbeeld 10 ns + 0,2 × 100 ns = 30 ns.

Wat is het verschil tussen missrate en miss penalty?

De missrate is het aandeel toegangen dat in de cache misst, terwijl de miss penalty de extra tijd is die elke miss kost. De gemiddelde toegangstijd hangt af van hun product plus de hittijd.

Verhoogt een grotere cacheregel de miss penalty?

Ja. Elke miss moet meer bytes overdragen, dus het overdrachtsdeel van de penalty groeit, ook al kunnen grotere regels het aantal misses verminderen bij code met goede ruimtelijke lokaliteit.

Verwante termen

Cacheregel (cache line) Capaciteitsmiss (capacity miss) Compulsory miss Conflictmiss (conflict miss) Direct-mapped cache Fully associative Gemiddelde geheugentoegangstijd (AMAT) Loop blocking (tiling) LRU (least recently used) Non-blocking cache

Naar de woordenlijst