Ablaufsteuerung und Befehlsdecoder
Sie ist das Herz des Leitwerks: Erzeugung aller in den
übrigen Unterwerken des Leitwerks benötigten Steuersignale. - Steuerung und Überwachung aller Operationen, die die CPU beherrscht
- Realisierung des Befehlszyklus, Steuerung der Befehlsausführung. Üblicherweise sind die einzelnen Steuersignale während eines Taktzyklusses konstant
- synchroner Ablauf
Die Gesamtheit der Steuersignale bildet ein Steuerwort, das in einzelne Felder unterschiedlicher Länge aufgeteilt wird. Jedes Feld enthält die Steuersignale für eine bestimmte Einheit der CPU (z.B. ALU). Durch das Steuerwort werden die bei jedem Taktzyklus in den einzelnen Werken/Unterwerken auszuführenden Teiloperationen bestimmt. Zu jedem Taktzyklus muss ein neues Steuerwort erzeugt werden. Dabei kann jedes Steuerwort vom vorhergehenden Steuerwort und von äußeren Bedingungen abhängen. Die äußeren Bedingungen können z.B. der Op-Code und/oder Modifikatorteil des auszuführenden Befehls oder Status-Signale sein Ablaufsteuerung ist synchrones Schaltwerk. Die Anzahl der Taktzyklen zur Ausführung eines Befehls hängt vom jeweiligen Befehl ab (ca. 1 ... 170 Taktzyklen). CPUs haben typisch 50 bis einige 100 Befehle
Ablaufsteuerung hat dann 500 bis einige 1000 verschiedene Steuerworte.
Daher erfolgt heute bei CISC die Realisierung als
mikroprogrammiertes Schaltwerk. Die einzelnen Steuerworte
stehen dann in einem Festwertspeicher (ROM) - siehe Umdruck. Die
Auswahl eines bestimmten Steuerworts erfolgt durch Anlegen seiner
Adresse. Das adressierte Steuerwort wird aus dem Speicher
ausgelesen und die einzelnen Steuersignale über direkte
Leitungen auf die Steuereingänge der entsprechenden Werke
geschaltet. Die Auswahl des nächsten Steuerwortes erfolgt dann
durch Auswahl der Folgeadresse Sequencer.
Normalfall: Sequentielle (lineare) Folge von Steuerworten im
Mikroprogrammspeicher.
Die Folgeadresse kann von der linearen Folge abweichen, wenn
z. B.:
- Ein neuer Maschinenbefehl begonnen wird
- Statussignale zu berücksichtigen sind (bedingte Sprünge)
- im vorhergehenden Steuerwort ein Mikroprogrammsprung ausgeführt wurde
Jedes Steuerwort wird um einen Folgeadressteil
(Adressauswahlfeld und Sprungadressfeld) erweitert. Ein derart
ergänztes Steuerwort heißt Mikrobefehl. Die
für die Durchführung eines bestimmten CPU-Befehls
erforderliche Folge von Mikrobefehlen heißt
Mikroprogramm. In diesem Zusammenhang wird der CPU-Befehl
manchmal auch Makrobefehl genannt. Für die Realisierung
der Adressbestimmung existieren eine Reihe unterschiedlicher
Konzepte. An dieser Stelle soll beispielhaft nur ein relativ
einfaches Konzept vorgestellt werden. Die Startadresse jedes
Mikroprogramms wird durch den Op-Code des entsprechenden
CPU-Befehls festgelegt. Da die Startadressen der einzelnen
Mikroprogramme weiter auseinander liegen, wird ein
Zuordnungsspeicher (Mapping ROM) zwischengeschaltet.
Die jeweils nächste Adresse kann dann bestimmt werden durch:
- Incrementieren des Mikroprogrammzählers (linearer Ablauf)
- Sprungadresse(n) aus dem Sprungadressfeld des aktuellen Mikrobefehls
- Zuordnungstabelle (Mapping ROM)
- Die Auswahl der Adressquelle erfolgt:
- mit Adressauswahlfeld
- und durch Statussignale (Bedingungsgatter)
Zum Beispiel kann das Vorliegen einer Programmunterbrechung
(bzw. PU-Anforderung) durch die Abfrage eines Status-Signals
überprüft werden. Am Ende der
Befehls-Ausführungsphase muss ein entsprechender Mikrobefehl
stehen. Der letzte Mikrobefehl jedes CPU-Befehlszyklus muss ein
unbedingter Sprung in die Mikrobefehls-Sequenz der Befehls-Holphase
sein.
Charakteristisch für Mikroprogrammspeicher ist die relativ
geringe "Programmlänge" für die Bearbeitung eines
CPU-Befehls (typisch ca. 500 bis 2000 Mikrobefehle) und die
große Wortbreite (typisch 32 .. 128 Bit, bei
IBM-Großrechnern mehrere 100 Bit).
Im allgemeinen ist bei heutigen Rechnern die Ablaufsteuerung
für den Benutzer unzugänglich und kann auch nicht
geändert werden. Es gibt jedoch Prozessoren (z.B. Bit-Slice-P.
AM 29xx-Serie) und CPUs, bei denen der Benutzer die vorhandenen
Mikroprogramme selbst erstellen oder ergänzen kann
speziell angepasste Maschinenbefehle effektivere
Programmierung und Einsatz des Rechners
"Wunsch-CPU". Durch Verwendung von speziellen
IC-Bausteinen wäre sogar eine CPU denkbar, die
während der Abarbeitung eines Programms die CPU-Befehlsliste
ändern kann.
Bei RISC-Prozessoren wird zur schnelleren Ablaufsteuerung ein
anderer Weg beschritten. Hier besteht die Ablaufsteuerung aus einer
fest verdrahteten Logik. Zusammen mit einer passenden Architektur
der übrigen Werke gelangt man so zu Prozessoren, die
einen Befehl innerhalb eines Taktzyklusses ausführen
können.
|