Forum: Compiler & IDEs Branch im Branch delay slot (MIPS)


von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

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?

von (prx) A. K. (prx)


Lesenswert?

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."

von René D. (Firma: www.dossmatik.de) (dose)


Lesenswert?

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?

von (prx) A. K. (prx)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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
Noch kein Account? Hier anmelden.