Ik weet hoe ik de CPI of cycli per instructie uit de hit-and-miss-ratios, maar ik weet niet precies hoe ik de miss ratio moet berekenen die 1 - hit ratio zou zijn als ik me niet vergis. Ik weet dat de trefferratio wordt berekend door treffers / toegangen te delen, maar het probleem zegt dat gezien het aantal treffers en missers, de misserratio moet worden berekend.

Mijn redenering is dat met het aantal treffers en missers, we hebben eigenlijk het aantal toegangen = hits + missers, dus de eigenlijke formule zou zijn:

hit_ratio = hits / (hits + missers)

Dus de miss ratio zou zijn

miss_ratio = 1 – hit_ratio

Als mijn redenering juist is, toch?

Wat zijn de wisselvallige latenties? Omdat ik ze nodig heb om de mean access time te berekenen met behulp van de hit- en miss-ratios en de hit- en miss-latenties (in cycli) …

Antwoord

Ja. De hit ratio is de fractie van toegangen die een hit zijn. De miss ratio is de fractie van toegangen die een misser zijn. Er geldt dat $$ \ text {miss rate} = 1- \ text {hit rate}. $$

De (hit / miss) latentie (AKA-toegangstijd) is de tijd die nodig is om de gegevens in het geval van een treffer / misser. Als de toegang een hit was, is deze tijd vrij kort omdat de gegevens al in de cache staan. Maar als het een misser was – die tijd blijft nog lang hangen omdat het (langzame) L3-geheugen moet worden benaderd. De latentie hangt af van de specificatie van uw machine: de snelheid van de cache, de snelheid van het trage geheugen, enz.

Opmerkingen

  • Kunt u laat me een eenvoudig voorbeeld zien van hoe je de mean access time zou berekenen van wat ik je heb verteld?
  • gemiddelde toegangstijd == de gemiddelde tijd die nodig is om toegang te krijgen tot het geheugen . Als er X cycli nodig zijn voor een treffer en Y cycli voor een misser, en 30% van de tijd een treffer is (dus 70% is een misser) – > wat is het gemiddelde (gemiddelde) tijd die nodig is om toegang te krijgen ??
  • Nou, we weten dat $ X * 0,30 $ het totale aantal cycli is waarin we een treffer hebben, en dat respectievelijk $ Y * 0,70 $ het totaal is aantal cycli waarbij we een misser hebben, daarom is het totale aantal cycli de som van beide: total_number_of_cycles = $ X * 0,30 $ + $ Y * 0,70 $. Maar we hebben nog steeds geen gemiddelde van iets, we moeten het verdelen over de totale tijd: mean_access_time = total_number_of_cycles / 1.0, is het toch?
  • @RanG. Kun je mijn vraag over caching / missers bekijken? cs.stackexchange.com/questions/43235/…

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *