Ich mache einige Fragen zu Pipelines. Mit diesem brauche ich Hilfe.Pipeline-Blockierung nach einer Ladeanweisung, aber nicht nach einer Additionsanweisung
Warum kann nach einem Ladebefehl ein Pipelinestall auftreten, aber nicht nach ein add Befehl?
Ich weiß, dass ein unbenutzter Steckplatz in der Pipeline einen Pipeline-Stall genannt wird. Meine Vermutung ist, dass es sich um einen Pipeline-Block nach einer Ladeanweisung handeln kann, weil wir auf ein Register warten müssen, das möglicherweise aktualisiert wird. Aber ich kann keine Antwort darauf finden, warum ein add-Befehl keinen Pipelinestall erzeugen kann. Vielleicht liegt es daran, dass wir zu diesem Zeitpunkt schon aus einem Register gelesen haben?
Add ist oft nur 1 Zyklus Latenz, also mit Weiterleitung (auch bekannt als Bypass) das Ergebnis Ein Add kann von der nächsten Anweisung verwendet werden. [Dieses Q & A könnte relevant sein] (http://stackoverflow.com/questions/19041315/pipeline-stalling-and-bypassing-examples), aber ich habe es nicht gelesen. –