Befehlszyklus in der CPU: Funktionsweise Abrufen, Dekodieren und Ausführen

Befehlszyklus in der CPU
Was für ein CPU führt die Anweisungen eines im Speicher befindlichen Programms aus. Aber wussten Sie, dass sie alle den gleichen allgemeinen Regeln folgen? Sie alle folgen demselben Befehlszyklus, der in drei verschiedene Stufen unterteilt ist, die als Abrufen, Decodieren und Ausführen bezeichnet werden und als Abrufen, Decodieren und Ausführen übersetzt werden. Wir erklären, wie diese Phasen funktionieren und wie sie organisiert sind.

Um die in diesem Artikel erläuterten Konzepte zu vereinfachen und verständlicher zu machen, haben wir uns entschlossen, einen extrem einfachen Prozessor für die aktuelle Zeit zu beschreiben. In diesem Artikel wird daher erläutert, welche Befehlszyklen allgemein angewendet werden können von den ersten 8-Bit-Prozessoren bis zu den komplexesten, die heute verfügbar sind

Visualisierung des Anweisungszyklus

Ciclo Instrucción Unidad Kontrolle

Prozessoren unterscheiden sich von einem bestimmten Standpunkt aus nicht von einem Verbrennungsmotor, der immer einen kontinuierlichen Prozess der Kraftstoffexplosion in verschiedenen Stufen durchführt, egal ob es sich um 2-Takt- oder 4-Takt-Motoren handelt. Der Grund dafür ist, dass die Prozessoren in ihrer einfachsten Version in drei verschiedenen Phasen arbeiten:

  • Abrufen oder erfassen: In dem der Befehl aus dem RAM erfasst und in den Prozessor kopiert wird.
  • Dekodieren oder Dekodieren: In dem der zuvor erfasste Befehl decodiert und an die Ausführungseinheiten gesendet wird
  • Execute: Wo der Befehl aufgelöst und das Ergebnis in die internen Register des Prozessors oder in eine Speicheradresse des RAM geschrieben wird

Diese drei Stufen sind in jedem Prozessor erfüllt. Es gibt eine vierte Stufe, nämlich das Zurückschreiben, bei der die Ausführungseinheiten das Ergebnis schreiben, dies wird jedoch normalerweise in der Ausführungsstufe des Befehlszyklus gezählt.

Erste Stufe des Befehlszyklus: Abrufen

Prozess abrufen

Die erste Stufe des Anweisungszyklus ist für die Erfassung der Anweisungen in der verantwortlich RAM Speicher, der dem Prozessor über eine Reihe von Einheiten und Registern zugewiesen wird, die die folgenden sind:

  1. Programmzähler oder Programmzähler: Was auf die nächste Speicherzeile zeigt, in der sich der nächste Prozessorbefehl befindet. Sein Wert wird jedes Mal um 1 erhöht, wenn ein vollständiger Befehlszyklus abgeschlossen ist oder wenn ein Sprungbefehl den Wert des Programmzählers ändert.
  2. Speicheradressregister: Der MAR kopiert den Inhalt des PCs und sendet ihn über die Adressierungsstifte der CPU, die mit den Adressierungsstiften des Arbeitsspeichers selbst verbunden sind, an den RAM.
  3. Speicherdatenregister oder Speicherdatenregister : Für den Fall, dass die CPU ein Speicherlesen durchführen muss, kopiert der MDR den Inhalt dieser Speicheradresse in ein internes Register der CPU, das ein temporäres Durchlaufregister ist, bevor sein Inhalt in das Befehlsregister kopiert wird. Der MDR ist im Gegensatz zum MAR mit den Datenpins des RAM und nicht mit den Adressierungspins verbunden, und im Fall einer Schreibanweisung wird der Inhalt dessen, was Sie in den RAM schreiben möchten, auch in den MDR geschrieben
  4. Befehlsregister: Der letzte Teil der Abrufstufe ist das Schreiben des Befehls in das Befehlsregister, aus dem die Prozessorsteuereinheit ihren Inhalt für die zweite Stufe des Befehlszyklus kopiert.

Diese 4 Unterstufen treten in allen Prozessoren auf, unabhängig von ihrer Nützlichkeit, Architektur und Binärkompatibilität oder dem, was wir ISA nennen.

Steuergerät

Steuergerät

Die Steuereinheit ist der komplexeste Teil, der in einem Prozessor vorhanden ist, und hat folgende Aufgaben:

  • Sie sind verantwortlich für die Koordination der Bewegung und der Reihenfolge, in der sich die Daten innerhalb und außerhalb des Prozessors bewegen, sowie für die verschiedenen Untereinheiten, die dafür verantwortlich sind.
  • Im Allgemeinen wird davon ausgegangen, dass die Einheiten der Erfassungsstufe oder des Abrufs Teil der Hardware sind, die wir als Steuereinheit bezeichnen, und diese Hardware wird auch als Front-End eines Prozessors bezeichnet.
  • Es interpretiert die Anweisungen und sendet sie an die verschiedenen Ausführungseinheiten, mit denen es verbunden ist.
  • Es wird den verschiedenen ALUs und Ausführungseinheiten des Prozessors mitgeteilt, die handeln
  • Es ist verantwortlich für das Erfassen und Decodieren der Anweisungen, aber auch für das Schreiben der Ergebnisse in die Register, Caches oder in die entsprechende Adresse des RAM.

Opcode-Mode-Adresse

Die Steuereinheit dekodiert die Anweisungen und dies, weil jede Anweisung tatsächlich eine Art Satz ist, in dem das Verb zuerst steht und dann das direkte Objekt oder Objekt, an dem die Aktion ausgeführt wird. Das Subjekt wird in dieser internen Sprache von Computern dadurch eliminiert, dass verstanden wird, dass es der Computer selbst ist, der es ausführt, so dass jede Anzahl von Bits ein Satz ist, in dem die ersten 1 und 0 der Aktion und denjenigen entsprechen Als nächstes kommen die Daten oder der Ort der zu manipulierenden Daten.

Die zweite Stufe: Dekodieren

Dekodificación Instrucciones

Es gibt verschiedene Arten von Befehlen, und nicht alle tun dasselbe. Abhängig von der Art des Befehls müssen wir wissen, an welche Ausführungseinheiten gesendet werden soll, und die klassischste Art, dies zu tun, ist der sogenannte Decoder , der jeden Befehl aufnimmt, teilt ihn intern nach dem Opcode oder Befehl und den Daten oder der Speicheradresse, an der er sich befindet.

Zum Beispiel haben wir im obigen Diagramm das Diagramm eines Prozessors mit nur 8 Befehlen, die in nur 3 Bits codiert werden können. Jede der Anweisungen wird nach ihrer Dekodierung an die verschiedenen Ausführungseinheiten gesendet, die sie auflösen.

Dieser Befehlszyklus ist der komplexeste von allen und definiert den Architekturtyp. Abhängig davon, ob wir einen reduzierten oder komplexen Befehlssatz haben, wirkt sich dies auf die Art der Steuereinheit aus, abhängig vom Format des Befehls oder davon, wie viele gleichzeitig in der Decodierungsphase verarbeitet werden und daher die Steuereinheit einen hat andere Natur. andere.

Der einfachste Weg, sich vorzustellen, was passiert, besteht darin, sich die Anweisungen als Züge vorzustellen, die durch ein komplexes Eisenbahnnetz fahren, und die Steuereinheit, die sie zu einer Endstation leitet, die die Ausführungseinheit ist, die für die Lösung der Anweisung verantwortlich ist.

Dritte Stufe: Ausführen

1 Bit ALU

Die letzte Stufe ist die Ausführung der Anweisungen. In dieser Phase werden die Anweisungen aufgelöst, aber nicht alle Arten von Anweisungen werden auf dieselbe Weise aufgelöst, da die Art und Weise der Verwendung der Hardware von der Funktion der einzelnen Anweisungen abhängt. Im Allgemeinen haben wir vier Arten von Anweisungen:

  • Anweisungen zur Bitbewegung: In welcher Reihenfolge die Bits, die die Daten enthalten, manipuliert werden.
  • Rechenanweisungen: Wenn mathematische und logische Operationen ausgeführt werden, werden diese in sogenannten ALUs oder arithmetisch-logischen Einheiten gelöst
  • Sprunganweisungen: In dem der nächste Wert des Programmzählers geändert wird, wodurch der Code rekursiv verwendet werden kann.
  • Anweisungen zum Gedächtnis: Sie sind es, mit denen der Prozessor Informationen aus dem Systemspeicher liest und schreibt.

Der andere Punkt sind die Befehlsformate, da ein Befehl gleichzeitig auf Daten, Skalare oder mehrere Daten angewendet werden kann, die wir als SIMD kennen. Zum Abschluss und je nach Datenformat gibt es verschiedene Arten von ALUs für die Ausführung von arithmetischen Anweisungen. Beispielsweise haben wir heute Ganzzahl- und Gleitkommaeinheiten als differenzierte Einheiten.

Sobald der Befehl abgeschlossen ist, wird das Ergebnis in eine bestimmte Speicheradresse geschrieben und die nächste ausgeführt. Einige Anweisungen manipulieren keine Speicherwerte, sondern bestimmte Register. Somit wird das Programmzählerregister durch die Sprungbefehle modifiziert. Wenn wir Daten lesen oder schreiben wollen, werden die MAR- und MDR-Register manipuliert.