Știu cum să calculez CPI sau ciclurile pe instrucțiune din raporturile de lovire și ratare, dar nu știu exact cum să calculez miss ratio care ar fi 1 - hit ratio dacă nu mă înșel. Știu că raportul de acces este calculat împărțind accesări / accesări, dar problema spune că, având în vedere numărul de accesări și ratări, calculați raportul de ratări.

Raționamentul meu este că având numărul de accesări și ratări, avem de fapt numărul de accesări = accesări + ratări, deci formula reală ar fi:

hit_ratio = accesări / (accesări + ratări)

Deci raportul de rate ar fi

miss_ratio = 1 – hit_ratio

Dacă raționamentul meu este corect, nu-i așa?

Care sunt latențele hit-and-rate? Pentru că am nevoie de ei pentru a calcula mean access time folosind raporturile de lovire și ratare și latențele de lovire și ratare (în cicluri) …

Răspunde

Da. raportul de accesări reprezintă fracțiunea de accesări care sunt accesate. rata ratată este fracțiunea de accesări care sunt ratate. Acesta susține că $$ \ text {rate rate} = 1- \ text {rate de accesare}. $$

Latența (accesare / ratare) (timpul de acces AKA) este timpul necesar pentru a prelua date în caz de lovitură / ratare. Dacă accesul a fost un hit – acest timp este destul de scurt, deoarece datele sunt deja în cache. Dar dacă a fost o lipsă – timpul durează mult, deoarece memoria (lentă) L3 trebuie accesată. Latența depinde de specificațiile mașinii dvs.: viteza cache-ului, viteza memoriei lente etc.

Comentarii

  • Puteți arată-mi un exemplu simplu despre cum ai calcula mean access time după ce ți-am spus?
  • timpul de acces mediu == timpul mediu necesar pentru a accesa memoria . Dacă durează X cicluri pentru o lovitură și Y cicluri pentru o ratare, iar 30% din timp este o lovitură (deci 70% este o ratare) – > care este media (medie) timpul necesar pentru a accesa ??
  • Ei bine, știm că $ X * 0,30 $ este numărul total de cicluri în care avem o lovitură și că respectiv $ Y * 0,70 $ este totalul numărul de cicluri în care avem o ratare, prin urmare numărul total de cicluri este suma ambelor: total_number_of_cycles = $ X * 0,30 $ + $ Y * 0,70 $. Dar încă nu avem o medie a ceva, trebuie să îl împărțim pentru timpul total: mean_access_time = total_number_of_cycles / 1.0, este nu?
  • @RanG. Puteți să aruncați o privire la întrebarea mea de succes / pierdere în cache? cs.stackexchange.com/questions/43235/…

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *