Ich lerne Prozessorgrundlagen. Ich habe diesen Zweifel.
Wenn ich einen Prozessor mit 9 Ein-Byte-Befehlen und einem 2-Byte-Befehl in seiner Befehlssatzarchitektur habe, sollte das Befehlsregister des Prozessors nicht 16 Bit statt 8 Bit haben? Sagen Sie zum Beispiel:
2000 MOV A,B
2001 MVI C, 20h --- 2 byte instruction
In meinem Buch steht, dass PC nach 2001 auf Adresse 2003 zeigt. Das heißt, als PC auf 2001 zeigte, wurden sowohl die 8-Bit-Sofortdaten als auch der 8-Bit-Opcode auf einmal in das Befehlsregister geholt, richtig? Oder wird es in zwei Zyklen abgerufen? Außerdem würde ich gerne wissen, welche Bedeutung Daten- und Befehls-Caches in einem Prozessor haben. Ist es in einem Prozessor notwendig?
Das Befehlsregister hält im Allgemeinen nur die Bits, die den "Opcode"-Teil eines Befehls bilden (einschließlich aller Bits, die Adressierungsmodi beeinflussen) für die Dauer der Ausführung des Befehls, so dass die Befehlsdecodierungslogik darauf zugreifen kann.
Alle Bytes in der Anweisung, die nur Operanden sind, werden im Allgemeinen nicht im Anweisungsregister gehalten.
Wenn die Busbreite des Prozessors nur 8 Bit beträgt, werden die zwei Bytes des Befehls in getrennten Zyklen abgerufen. Der zweite Zyklus wird ausgeführt, nachdem die Befehlsdekodierlogik entschieden hat, dass es ein zweites Byte als Ergebnis der Untersuchung des Opcodes im ersten Byte gibt.
Und nein, Caches sind für den Betrieb eines Prozessors nicht notwendig, aber sie helfen, Engpässe zu beseitigen, wenn der Prozessor schneller als der Hauptspeicher ist.
Benutzer76844
glen_geek