Formel zur Berechnung des MIPS-Taktzyklus

Geben Sie hier die Bildbeschreibung ein

Wie viele Taktzyklen dauert die Ausführung dieses Segments auf der einfachen Pipeline ohne Weiterleitung oder Umgehung, wenn das Ergebnis der Verzweigungsanweisung (neuer PC-Inhalt) nach der WB-Stufe verfügbar ist. Zeigen Sie das Timing eines Schleifenzyklus in der Tabelle unten.

Dies ist die Frage und hier ist die Antwort auf dem zweiten Foto, aber ich habe nicht verstanden, wie wir die Anzahl der Taktzyklen für die Segmentausführung auf einem Pipeline-Prozessor erhalten haben. Mein Arzt hat es so gelöst:

Anzahl der Zyklen in der Schleife = 15 cc
Anzahl der Taktzyklen für die Segmentausführung auf dem Pipeline-Prozessor =
= 1 cc (IF-Stufe des Anfangsbefehls) + (Anzahl der Taktzyklen in der Schleife L1) x
Anzahl der Schleifenzyklen = 1 + 15 x 400/4 = 1501 cc
Beschleunigung des Pipeline-Prozessors im Vergleich zu einem Prozessor ohne Pipeline =
= Anzahl der Taktzyklen für die Segmentausführung auf einem Prozessor ohne Pipeline /
Anzahl der Taktzyklen für die Segmentausführung auf einem einfachen Prozessor mit Pipeline =
= 3005 cc / 1501 = 2 mal

Können Sie mir bitte erklären, woher wir die 1 haben? Welche Formel hat er verwendet?

Geben Sie hier die Bildbeschreibung ein

Bitte bearbeiten Sie Ihre vorherige Frage , anstatt sie als neue Frage neu zu posten.
Sie erhalten sie wahrscheinlich aus dem Schleifencode, der irgendwo in der Frage stehen sollte.
@Unknown - Nur eine Beobachtung: Dies ist (mindestens) Ihre 3. Frage zu diesem Thema. Indem Sie frühere Fragen löschen, anstatt sie zu verbessern, reduzieren Sie die Anzahl der Personen, die die Zeit aufwenden möchten, um Ihnen zu helfen. Das liegt daran, dass Sie diese Frage möglicherweise wie zuvor löschen , nachdem jemand Zeit damit verbracht hat, Ihre Frage zu verstehen und zu klären (oder sogar nachdem Sie eine Antwort geschrieben haben). Möchten Sie jemandem helfen und dann Ihre Arbeit löschen lassen? Das ist die Frage, die sich die Leser stellen werden. Denken Sie also bitte daran, dass Sie weniger Hilfe erhalten, wenn Sie die Zeit anderer verschwenden.

Antworten (1)

Können Sie mir bitte erklären, woher wir die 1 haben? Welche Formel hat er verwendet?

Ich vermute, wenn Sie "die 1" sagen, beziehen Sie sich auf die "1 cc" am Anfang des Ausdrucks

Anzahl der Taktzyklen für die Segmentausführung auf dem Pipeline-Prozessor == 1 cc (IF-Stufe des Anfangsbefehls) + (Anzahl der Taktzyklen in der Schleife L1) x Anzahl der Schleifenzyklen = 1 + 15 x 400/4 = 1501 cc

Aus den Informationen in Ihrer Frage kann ich nicht bestimmen, was zum zusätzlichen Taktzyklus beiträgt.


:: KOMMENTARE ::

Typischerweise wird eine Speicheradresse (ein Zeiger) im Register R4 gespeichert, und in diesem speziellen Fall muss die Adresse wortausgerichtet sein , was bedeutet, dass die beiden niedrigstwertigen Bits der Adresse Nullen sind – dh ADRESSE mod 4 = 0. Aber wenn man bedenkt, wie der Wert von R4 in den letzten beiden Anweisungen (SUB und BNEZ) verwendet wird, scheint es unwahrscheinlich, dass R4 eine Speicheradresse enthält.

Die letzten beiden Befehle (SUB und BNEZ) treffen die Entscheidung, ob die Schleife fortgesetzt werden soll oder nicht, und sie hängen vom Wert des Registers R4 ab, um diese Entscheidung zu treffen. Mit anderen Worten, der im Register R4 gespeicherte Anfangswert, der SUB-Befehl und der BNEZ-Befehl bestimmen die Schleifeniterationszahl. Die Frage lautet also: "Welcher Anfangswert ist in Register R4 gespeichert?" Wenn der Anfangswert von Register R4 nicht definiert ist, kann man nicht definitiv sagen, dass die Schleife 400/4-mal wiederholt wird, wie in Ihrer Frage angegeben.

Wenn der Anfangswert von R4 beispielsweise 3 ist, wie oft wird die Schleife durchlaufen? (Hinweis: Entfernen Sie die LW-, ADDI- und SW-Anweisungen und verwenden Sie nur die SUB- und BNEZ-Anweisungen, um die Anzahl der Schleifeniterationen zu bestimmen, wenn der Anfangswert von R4 ein beliebiger Wert ist, der KEIN ganzzahliges Vielfaches von 4 ist - z. B. 7 , 11 , 2 usw.)