Ich weiß, wie man die CPI
oder Zyklen pro Befehl aus berechnet die Treffer- und Fehlerquoten, aber ich weiß nicht genau, wie ich die miss ratio
berechnen soll, die 1 - hit ratio
wäre, wenn ich mich nicht irre. Ich weiß, dass die Trefferquote durch Teilen von Treffern / Zugriffen berechnet wird, aber das Problem besagt, dass angesichts der Anzahl der Treffer und Fehler die Fehlerquote berechnet wird.
Meine Argumentation ist, dass die Anzahl der Treffer und Fehler, Wir haben tatsächlich die Anzahl der Zugriffe = Treffer + Fehler, daher lautet die tatsächliche Formel:
hit_ratio = Treffer / (Treffer + Fehler)
Die Fehlerquote wäre also
miss_ratio = 1 – hit_ratio
Wenn meine Argumentation richtig ist, richtig?
Was sind die Latenzzeiten für Treffer und Fehler? Weil ich sie brauche, um die mean access time
unter Verwendung der Treffer- und Fehlerquoten sowie der Treffer- und Fehlerlatenzen (in Zyklen) zu berechnen …
Antwort
Ja. Die Trefferquote ist der Anteil der Zugriffe, bei denen es sich um Treffer handelt. Das Miss-Verhältnis ist der Anteil der Zugriffe, bei denen es sich um einen Miss handelt. Es gilt, dass $$ \ text {miss rate} = 1- \ text {hit rate}. $$
Die (Treffer- / Miss-) Latenz (AKA-Zugriffszeit) ist die Zeit, die zum Abrufen der benötigt wird Daten im Falle eines Treffers / Fehlschlags. Wenn der Zugriff ein Treffer war – diese Zeit ist ziemlich kurz, da sich die Daten bereits im Cache befinden. Aber wenn es ein Fehlschlag war – diese Zeit ist viel länger, da auf den (langsamen) L3-Speicher zugegriffen werden muss. Die Latenz hängt von der Spezifikation Ihres Computers ab: der Geschwindigkeit des Caches, der Geschwindigkeit des langsamen Speichers usw.
Kommentare
- Können Sie Zeigen Sie mir ein einfaches Beispiel, wie Sie die
mean access time
berechnen, die ich Ihnen gesagt habe? - mittlere Zugriffszeit == die durchschnittliche Zeit, die für den Zugriff auf den Speicher benötigt wird . Wenn für einen Treffer X-Zyklen und für einen Fehlschlag Y-Zyklen erforderlich sind und 30% der Zeit ein Treffer sind (70% sind ein Fehlschlag) – > Was ist der Durchschnitt? (mittlere) Zeit, die für den Zugriff benötigt wird?
- Nun, wir wissen, dass $ X * 0,30 $ die Gesamtzahl der Zyklen ist, in denen wir einen Treffer haben, und dass jeweils $ Y * 0,70 $ die Summe ist Anzahl der Zyklen, bei denen wir einen Fehler haben, daher ist die Gesamtzahl der Zyklen die Summe aus beiden:
total_number_of_cycles
= $ X * 0,30 $ + $ Y * 0,70 $. Aber wir haben immer noch keinen Durchschnitt von etwas, wir müssen es für die Gesamtzeit teilen:mean_access_time
=total_number_of_cycles
/ 1.0, Ist es richtig? - @RanG. Können Sie sich meine Caching-Hit / Miss-Frage ansehen? cs.stackexchange.com/questions/43235/…