Hallo, gegeben sei eine 5 Stufige Pipeline mit den Phasen: IF ID EX MEM WB Der Prozessor kann 'Stalling' und 'Forwarding' nur von MEM/WB nach ID/EX Wenn ich nun folgende Instruktionen habe: mul $t0,$t1 mflo $t2 Stimmt da mein Pipelining Diagramm? IF ID EX MEM WB IF nop ID EX MEM WB mit nop = stall. Oder ist das Resultat erst nach der WB Phase im Lo? Gruss bert
Bert Siegfried schrieb: > Stimmt da mein Pipelining Diagramm? Ohne nun diese MIPS auswendig zu kennen: Wieviele Takte braucht denn die Multiplikation? Ist das LO Register Teil eines result buses mit forwarding? Unabhängig davon wird ein Befehl, der hier vmtl. auf etwas wartet, das mit seiner Funktion zu tun hat, kaum zu einem Zeitpunkt warten, zu dem diese Funktion noch nicht bekannt ist.
Ich habe hier mal noch ein Bild zum Datenpfad hochgeladen. Die Multiplikation ist damit eigentlich nach der EX Stufe bekannt. Forwarding wird aber nicht von Ex->Ex unterstützt, sondern nur von Mem->Ex
Die ursprüngliche MIPS Architektur hat einen Multiplier, der zwar von der normalen Pipeline gestartet wird, aber sein Ergebnis eben in LO/HI platziert, nicht in normalen Registern. Infolgedessen stellt sich die Frage, ob das Resultat des Multipliers auf einem jener Buse aufkreuzt, der forwarded wird. Da dieses Bild keinen Multiplier anführt, hilft es in dieser Frage nur begrenzt weiter.
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.
