Bei einem Prozessor (mein Problem kommt von der MIPS) mit Branch delay slot wird der Befehl hinter dem Branch auch noch ausgeführt. Was ist aber, wenn zwei Branchbefehler hinter einander stehen? Anggenommen die Zustände sind so, das beide Branch auch springen. Dann springt der erste Branch und anschließen der Zweite. Oder wird von der hardware ein Hazard entdecht und der zweite Branch für ungültig erklärt? Beispiel: Branch A, -> Addresse X Branch B, -> Addresse Y A springt und B ist im Branch delay slot. Was passiert genau jetzt?
René D. schrieb: > Was ist aber, wenn zwei Branchbefehler hinter einander stehen? MIPS32 Referenz: "Processor operation is UNPREDICTABLE if a branch, jump, ERET, DERET, or WAIT instruction is placed in the delay slot of a branch or jump."
Das ist interessant. In der MPIS ISA steht bei den Sprungbefehlen. Restrictions: None Bei der MISP32 wurde der Fall mit in Manual aufgenommen. -> A. K. (prx) Beschäftigst du dich auch mit der MIPS intensiver?
Nein, aber ich bin mit Rechnerarchitekturen ganz allgemein recht gut vertraut. Ich nahm daher zunächst auch ohne Detailkenntnis von MIPS an, dass es entsprechende Restriktionen geben könnte und wurde bei einem kurzen Blick in die Ref auch nicht enttäuscht.
René D. schrieb: > In der MPIS ISA steht bei den Sprungbefehlen. > Restrictions: None IDT R30xx Ref 1994: "A delay slot may not itself be occupied by a jump or branch instruction; however, this error is not detected and the results of such an operation are undefined."
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.