2013-11-25 18 views
5

Ich bin hoffnungslos auf einem Hausaufgaben-Problem stecken, und ich würde gerne etwas helfen, es besser zu verstehen. Hier ist, was ich gegeben wurde:So berechnen Sie effektive CPI für einen 3-Level-Cache

  1. CPU Basis CPI = 2, Taktrate = 2GHz
  2. Primär-Cache Miss Rate/Instruction = 7%
  3. L-2-Cache-Zugriffszeit = 15 ns
  4. L-2-Cache, Local-Miss-Rate/Instruction = 30%
  5. L-3 Cache-Zugriffszeit = 30 ns
  6. L-3 Cache, globale Miss-Rate/Instruction = 3%, Hauptspeicherzugriffszeit = 150 ns

Was ist die effektive CPI?

Es ist mein Verständnis, dass ich die Miss Strafe für jede Cache-Ebene berechnen muss.

  • L1 Miß penalty = Zugriffszeit von L2 = 15 ns/(1ns/2cc) = 30 Taktzyklen
  • L2-Mißerfolg penalty = Zugriffszeit von L3 = 30 ns/(1ns/2cc) = 60 Taktzyklen
  • L3 Miss penalty = Zugriffszeit von MM = 150 ns/(1 ns/2 cc) = 300 Taktzyklen

Jetzt brauche ich die effektiven CPI zu berechnen. Dies ist, wo ich ein bisschen verwirrt bin.

Ich glaube, die Formel sein sollte:

CPI = BaseCPI + (% L1 MR/Instr * L1 Fräulein Penalty) + (% L1 MR/Instr * % L2 MR/Instr * L2 Fräulein Penalty) + (% Global MR/Instr * L3 Fräulein Penalty)

Wenn ich das tue, erhalte ich

CPI = 2,0 + (0,07 * 30) + (0,07 * 0,3 * 60) + (0,03 * 30 0) = 14,36


Nach meinem Lehrer E-Mail, weil niemand in der Klasse, die 1-2 Minuten Erklärung der globalen und lokalen verstanden, wurde mir gesagt, dass meine Antwort ist in der Nähe, aber falsch. Wenn jemand etwas Einblick geben könnte, oder mich sogar auf ein gutes Tutorial hinweisen könnte, wäre ich dankbar. Ich kann verstehen, wie effektiv CPI für 1- und 2-Level-Caches herauszufinden. Den Sprung zu 3 zu machen, verwirrt mich.

+1

Verwandte Diskussion: [http://stackoverflow.com/questions/20483999/calculating-actual-effective-cpi-for-3-level-cache/20617511](http://stackoverflow.com/questions/ 20483999/calcting-actual-effective-cpi-für-3-level-cache/20617511) – chus

Antwort

0

Es könnte helfen, aus einer anderen Richtung darüber nachzudenken. Wenn wir davon ausgehen, dass wir 1.000.000 Instruktionen ausführen werden, werden 93% von diesen getroffen und benötigen nur 2CPI. 7% oder 70.000 müssen niedrigere Cache-Level erreichen. Von diesen 70.000 werden 70% (49.000) in L2 ankommen und erfordern 15 ns (oder 30CPI). Das ergibt 21.000, die von L3 oder niedriger kommen müssen. 97% (20370) treffen in L3 und benötigen 60CPI. Die verbleibenden 630 benötigen Speicherzugriff bei 300CPI.

Also die gesamte Uhr für den ganzen Stapel ist 930,000 * 2 + 49,000 * 30 + 20370 * 60 + 630 * 300, was insgesamt 4,741,200 ist, was angesichts der Instruktionszählung von 1,000,000 einen effektiven CPI von ergibt 4.7412.

Das mag immer noch nicht stimmen, da ich nicht ganz sicher bin, was der Unterschied zwischen der globalen/lokalen Fehlschlagrate in dieser speziellen Frage ist und wie man sie hier anwendet, aber dies zeigt zumindest einen anderen Ansatz Helfen Sie, die Frage zu verstehen. Es wird auch angenommen, dass zum Beispiel die Fehlbestrafung in L2 von 60 Takten die gesamte Strafe ist - mit anderen Worten, braucht ein Zugriff, der in Primär und L2 verfehlt und von L3 abrufen muss, nur 60 Takte oder 60 Clocks, um es von L3 in L2 zu holen und dann weitere 30 Takte, um es von L2 in die Primär- und dann die üblichen 2 Takte zu bringen, für insgesamt 92 Takte auf einem L2-Fehltreffer? Vielleicht ist das der Unterschied zwischen lokal/global?

+0

Zuerst, danke für die Antwort. Ich habe etwas gemacht, was du zuerst vorgeschlagen hast. Nachdem ich wieder mit meinem Professor gesprochen hatte, sagte er, dass meine Formel richtig sei. Ich denke, mein Problem liegt in den Fehlstrafen. Wenn ich Ihren Beitrag richtig gelesen habe, versuchen Sie dies auch zu zeigen. Zurück zu einigen Zahlen. – user2990107

-1

WCU Problem, richtig? Ich habe die gleiche Klasse.

Überprüfen Sie D2L. Seiten 18-20 des vollständigen Kapitels 5 pdf, das zur Verfügung gestellt wird. Das erforderliche Lehrbuch Computer Organisation und Design geht ziemlich genau auf diese Art von Problemen ein. Von einem kurzen Blick denke ich, dass Sie vielleicht ein paar falsche Operationen machen. Richtige Zahlen ... falsche Operationen. Ich arbeite selbst an dem Problem. Ich werde hier posten, wenn ich meine Antwort finden

0
  • Hey Jungs, ich bin auch in 242, ich weiß nicht, ob dies der richtige entweder ist aber das ist, was ich erhielt ..

    Haupt Miss Strafe = 150ns/(1/2) = 300 Zyklen. L2 Miss = 15 ns/(1/2) = 30 Zyklen. L3 Fehltreffer = 30 ns/(1/2) = 60 Zyklen.

    so die cpi = 2 + (. 07 * 300) + (. 07 * 0,3 * 30) + (. 03 * 60) = 25,43

0

Hey so mailte ich ihn darüber zu fragen Lösung

Effektive CPI = 2,0 + 0,07 x 30 + .30 x 60 + 0,03 x 300 = 31,1

und seine Antwort war, dass L1 und L3 korrekt war, aber dass ich die lokale Rechnung zu tragen Fehlschlagrate für L2. Nicht sicher, was das bedeutet, aber hoffe, diese kleine Info hilft

-1

Nach dem Gespräch mit dem Professor, sagte er, dass diese Formel richtig ist, aber sagte mir, dass er mir nicht sagen konnte, ob die Antwort richtig war oder nicht. Er schien darauf hinzuweisen, dass es richtig war, aber es konnte nur ein Sprachbarrieren-Missverständnis sein.

1

Was ist, wenn es so ist: für einen zwei-Level-Cache Der effektive CPI ist:

CPi = CPI (normal) + MissRAteL1 * MissPenaltyL2 + GlobalMissRAte * TotalMissPenalty

dann für drei-Level-Cache könnte es sein:

CPI = CPI + MissRateL1 * MissPenaltyL2 + (MISSRATEL2/MissRAteL1) (MissPEnaltyL1 + MissPEnaltyL2) + GlobalMiss Bewerten (MissPEnaltyL1 + MissPEnaltyL2 + MissPEnaltyL3)

CPI = 2 + 7% x60 + (7%/30%) x (60 + 30) + 3% x (300 + 60 + 90) ..