Soweit ich verstanden habe, werden die abgerufenen "Daten" (keine Anweisung) zuerst in eines der CPU-Register geladen.
Aber im Falle einer einzelnen "Anweisung" (keine Daten), die aus dem Speicher abgerufen wird, wird diese Anweisung zuerst an eines der CPU-Register gesendet oder wird sie sofort zur Dekodierung an die Steuereinheit gesendet?
(Ich spreche hauptsächlich von Cortex M3 und M4, wenn es darauf ankommt)
Die Anweisung wird nicht an ein Register im Sinne der Assembler-Programmierung gesendet, dh an ein Register, das einen Namen hat und für den Programmierer zugänglich ist (z. B. r2, lr, sp, pc usw.).
Es ist jedoch sehr wahrscheinlich, dass es in einem Register im Sinne des Begriffs digitales Logikdesign gespeichert wird, dh ein Array von Flip-Flops oder anderen Speicherelementen mit einem gemeinsamen Takt und einer gemeinsamen Freigabe. Dies wird als Befehlsregister bezeichnet .
Im Cortex-M3 speichert das IR die abgerufene Anweisung, bevor sie von der nächsten Stufe decodiert wird. Eine fortschrittlichere Architektur mit Out-of-Order-Ausführung kann mehrere IRs haben, die mehrere Decoder speisen. Zum Beispiel hat Intel Sandy Bridge eine ganze Befehlswarteschlange statt einer einzelnen IR, die vier Decoder speist, die Uops an die Post-Decodierungs-/Zuweisungswarteschlange, den architektonischen Registerumbenenner und den Scheduler liefern. In diesen Phasen werden Anweisungen in Registern aller unterschiedlichen Typen in allen unterschiedlichen Formaten gespeichert.
Benutzer4574
Benutzer1999
Mitu Raj
Peter Bennett