Verstehen der Ausführung der Sequenz von Pipeline-Anweisungen

Ich brauche Hilfe beim Verständnis der Lösung aus dem Lösungshandbuch. Die Frage stammt aus der Übung 4.22.2 von Kapitel 4 im Buch Computer Organization and Design von Patterson und Hannessey (4. Auflage). Die Frage betrifft die Verzweigung in der Befehlspipeline.

Die Frage
Wir nehmen an, dass der folgende MIPS-Code auf einem Pipeline-Prozessor mit einer 5-Stufen-Pipeline, vollständiger Weiterleitung und einem Predict-Take-Branch-Prädiktor ausgeführt wird. Betrachten Sie die Anweisungssequenz:
Label1: LW R2,0(R2)
BEQ R2,R0,Label ; Taken once, then not taken
OR R2,R2,R3
SW R2,0(R5)
Zeichnen Sie das Pipeline-Ausführungsdiagramm für diesen Code, vorausgesetzt, es gibt Verzögerungsschlitze und dass Verzweigungen in der EX-Stufe ausgeführt werden.

Die angegebene Lösung lautet wie folgt:

Die Lösung
Geben Sie hier die Bildbeschreibung ein

Zweifel

  • Warum gibt es ***in Zyklus 7 einen Stillstand (hervorgehoben) für LW(vierte ausgeführte Anweisung)? Ich verstehe, dass LWliest R2, was geändert wird durch OR(ausgeführt im Verzögerungsschlitz nach BEQ, vor LW). Aber ORliest es in Zyklus 6 in der EXPhase. Sollte also LWin der Lage sein, die Stufe in Zyklus 7 auszuführen EX(da eine vollständige Weiterleitung erlaubt ist). Aber warum wird das nicht so dargestellt?
  • Beachten Sie auch, dass in Zyklus (Spalte) 4 für die Anweisung (2. Anweisung) ein Stall (dh ) BEQsteht . ***Dies liegt daran, dass BEQgelesen wird R2, was durch LW(1. Anweisung) in seiner MEMStufe geladen wird. BEQMuss also warten, bis LWes MEMfertig ist. Die gleiche Situation tritt jedoch in den Befehlen 4 und 5 auf. Aber in diesem Fall BEQdarf der (5. Befehl) seine EXStufe in demselben Zyklus wie LWdie Stufe (3. Befehl) ausführen MEM. Sollte BEQ(5. Anweisung) nicht erneut angehalten werden, damit es wartet, bis LWdie (4. Anweisung) MEWabgeschlossen ist?
  • Außerdem ist mir aufgefallen, dass es zwei vierte Stufen gibt. In einigen Anweisungen ist die 4. Stufe gekennzeichnet MEM(z. B. 1. Anweisung LW, 4. Zyklus) und in einigen Anweisungen ist sie gekennzeichnet MEB(z. B. 2. Anweisung LW, 6. Zyklus). Was sind die Unterschiede zwischen MEMund MEB? Ich habe das ganze Buch durchsucht, aber es wird nicht erwähnt MEB, nur im Lösungshandbuch ist es angegeben. Oder vielleicht habe ich einige Seiten übersehen.

Antworten (1)

Ihre Zweifel scheinen begründet, es könnte ein Fehler im Lösungshandbuch enthalten sein. Auch MEM und MEB könnten Tippfehler sein, ich habe das H&P-Lehrbuch nicht mehr, aber ich kann mich nicht erinnern, etwas über zwei verschiedene Gedächtnisstufen gelernt zu haben.

Haben Sie einen Professor, den Sie fragen können, der dieses Problem zugewiesen hat?

Ich habe festgestellt, dass viele (fast alle) Lösungen zwei Zustände MEMund MEBhaben, daher glaube ich nicht wirklich, dass dies ein Tippfehler sein kann, wenn ich angebe, wie gut dieses Buch ist und wie oft sich dies in den Lösungen wiederholt hat. Der Autor muss wirklich etwas damit gemeint haben, aber er hat es versäumt, es im Detail zu beschreiben. Allerdings habe ich einmal einen Tippfehler in der anderen Lösung gefunden. Und nein, ich habe keinen Professor, der das fragt. Ich mache einen Job und lerne dies selbstständig für eine Ingenieur-Aufnahmeprüfung.