Hardware Reference
In-Depth Information
1
DIV
Address,X,8
2
STO
$1,Address
3 ...
4 LDO $3,Y
Beim Speicherzugriff muss also die effektive Adresse aller vorangehenden
Speicherzugriffe bekannt sein. Sowohl die Adresse als auch der dorthin zu
schreibende Inhalt mussen zunachst in Rename Register gelegt werden. Erst
mit der Bestatigung des STO kann der zu speichernde Wert in den Speicher
ubertragen werden. Bis dahin muss die Moglichkeit gegeben sein, die Aus-
wirkungen des Befehls ruckgangig zu machen.
Bei der endgultigen Bestatigung eines Store-Befehls kann dann der Wert in
den Speicher ubertragen werden. Um den Ablauf zu beschleunigen, verfugen
Prozessoren ublicherweise uber einen Schreibpuffer (Write Buffer; gelegent-
lich auch als Store Buffer, Posted-Write Buffer oder Store Queue bezeichnet).
Solange dieser Puffer uber freie Eintrage verfugt, werden zu schreibende Da-
ten dort eingetragen. Wenn der Bus zum Speicher frei ist, kann dieser Puf-
fer geleert werden. Load-Befehle mussen in diesem Puffer nachsehen, ob die
zu ladenden Daten dort eingetragen sind. Store-Befehle konnen Eintrage im
Schreibpuffer uberschreiben. Bei vielen aufeinanderfolgenden Schreibzugrif-
fen auf dieselbe Adresse (z.B. mehreren byteweisen Zugriffen auf ein Octa-
byte) kann dies echte Zugriffe auf den Speicher einsparen. Es kann sich also
lohnen, wenn der Inhalt des Schreibpuffers nicht zu schnell in den Speicher
ubertragen wird.
4.8
4.8 Interrupts bei superskalaren Pipelines
Bei der Behandlung von Interrupts muss dafur gesorgt werden, dass das Pro-
gramm an einer klar definierten Stelle unterbrochen wird und dort anschlie-
ßend fortgesetzt werden kann.
Arithemtische Ausnahmen treten wahrend der Execute-Phase auf und werden
von der entsprechenden Ausfuhrungseinheit festgestellt. Da der Befehl, der
die Ausnahme verursacht, spekulativ ausgefuhrt worden sein kann, darf die
Ausnahmebehandlung ( TRAP ) nicht unmittelbar erfolgen. Es muss vielmehr
bis zur Bestatigung des Befehls gewartet werden. Die Verzweigung in den
TRAP -Handler darf also erst in der Commit-Phase erfolgen.
Der oberste (heißeste) Befehl im Reorder Buffer kann nicht unterbrochen
werden, da er zum Zeitpunkt der Unterbrechungsanforderung moglicherweise
schon einen Teil seiner Arbeit verrichtet hat.
Search WWH ::




Custom Search