Durchschnittliche Zyklen pro Anweisung

Wir haben zwei verschiedene Computer mit dem gleichen Befehlssatz. Es gibt drei Befehlsklassen (A, B und C) im Befehlssatz. Computer M1 hat eine Taktrate von 80 MHz und Computer M2 hat eine Taktrate von 100 MHz. Die durchschnittliche Anzahl der Zyklen für jede Unterrichtsklasse und ihre Häufigkeit (für ein typisches Programm) sind wie folgt:

Befehlsklasse Maschine M1 Zyklen/Befehlsklasse Maschine M2 Zyklen/Befehlsklasse Häufigkeit

Class    M1 Cycles/Instrctn Class   M2 Cycles/Instrctn Class   Frequency
A               1                               2                   60%
B               2                               3                   30%
C               4                               4                   10%

Berechnen Sie den durchschnittlichen CPI für jede Maschine, M1 und M2.

Meine anfängliche Vermutung wäre, einfach so etwas wie M1 zu machen: 0,6 * 1 + 0,3 * 2 + 0,1 * 4 = 1,6/3 = 0,53 Durchschnitt für M1, aber das macht keinen Sinn.

Antworten (2)

Sie hatten es richtig bis zu dem Punkt, an dem Sie geteilt haben. Da Sie die Werte bereits mit den Gewichtungen multipliziert haben, müssen keine weiteren Berechnungen durchgeführt werden und das Endergebnis ist 1,6.

Aber wie berechne ich die unterschiedlichen Taktraten in MHz? M1 ist 80, M2 ist 100 MHz
Die Taktrate ist irrelevant. Die Frage bezieht sich auf CPI, nicht auf MIPS.

Sie können die durchschnittlichen Zyklen pro Anweisung wie folgt berechnen:

Durchschnittliche Zyklen pro Befehl Für Computer M1: = (1*60 + 2*30 + 4*10)/100 = 1,6 Zyklen/Befehl

Durchschnittliche Zyklen pro Befehl Für Computer M2: = (2*60 + 3*30 + 4*10)/100 = 2,5 Zyklen/Befehl

Wäre M1 nicht /80, weil es 80 MHz hat?
Wenn Sie die durchschnittliche Zeit pro Anweisung berechnen, kommt die Taktfrequenz ins Bild. CPI hängt nicht von der Taktrate ab