Aus dem Kopf würde ich sagen dass das etwa so aussieht.
Zunächst musst du gucken wie für y=0 der Programmablauf ist, das wäre dann so:
Load r1, y
Bnz r1, L1 (Kein Sprung da y=0)
Load r2, x
Add r2,r2,r1
Damit hast du folgende Typen von Befehlen:
Load, Branch, Load, Arithmetik
Das Müsste dann iin der Pipeline irgendwie so aussehen:
Befehl n : IF,ID,EX,DM,WB
Befehl n+1: ##,IF,ID,EX,##,##
Befehl n+2: ##,##,IF,ID,EX,DM,WB
Befehl n+3: ##,##,##,IF,ID, EX,##,WB
Leerstellen habe ich als ## gesetzt und ALU mal wegen der Formatierung durch EX(ecute) ersetzt.
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
|