Average memory access time = Hit time + Miss rate * miss penalty
Presupunem un computer cu un singur nivel de cache. Care este sensul exact al timpului de lovire? Este numărul de cicluri de ceas pentru a accesa datele din cache? SAU Cicluri de ceas pentru a executa o instrucțiune? Cum intră numărul de cicluri de ceas pe instrucțiune în această ecuație?
Comentarii
- Acesta ' De obicei, numărul de cicluri de ceas pentru a accesa datele și este dat în ns.
Răspuns
În primul rând ecuația dvs. este pentru memoria ierarhică, unde trebuie să căutați întreaga memorie în orice caz, indiferent de accesare sau ratare.
Pentru memoria cache simultană, primul termen din partea dreaptă va fi înmulțit și cu timpul de accesare. Timpul de lovire nu este altceva decât timpul necesar pentru a simți prezența datelor în cache, dacă există.
Răspuns
Se întoarce la mecanismul cache-ului. Când CPU dorește date în cache, încercați să citiți datele din cache. Dacă există date în cache, va prelua date din cache. Acest moment de citire a datelor din cache (diferența dintre viteza memoriei cache și registru!) va fi notat cu Hit time
.
Dacă memoria dorită din instrucțiunea aferentă nu există în memoria cache, ar trebui citită din RAM, prin urmare, este nevoie de mai mult ceas cpu pentru a citi adresa specificată și de data aceasta se calculează prin înmulțirea miss rate
și penalizarea acestei rate în timpul citirii datelor din RAM, care este notată cu miss penalty
.