Information Technology Reference
In-Depth Information
Befehlszähler entsprechend des im Sprungbefehl codierten Operanden gesetzt und
somit das Leitwerk veranlasst, als nächstes den am Sprungziel stehenden Befehl
auszuführen: Der Sprungbefehl verzweigt.
Sofern das Sprungziel unmittelbar im Sprungbefehl codiert ist, kann es dabei direkt
vom Leitwerk extrahiert und später verarbeitet werden. Flexibler ist es jedoch, wenn
der im Sprungbefehl codierte Operand zur Identifikation des Sprungziels (i.Allg. die
Zieladresse), zunächst an das Datenwerk weitergereicht und vom Datenwerk zurück
zum Leitwerk geführt wird, da es auf diese Weise möglich ist, die Zieladresse eines
Sprungbefehls im Datenwerk zu modifizieren. Wird so verfahren, müssen auch
unbedingte Sprungbefehle grundsätzlich das Datenwerk durchlaufen, wobei ledig-
lich die Zieladresse des Sprungs zusammen mit der Sprungbedingung „verzweigen“
an das Leitwerk unmodifiziert weitergereicht werden. Unbedingte Sprungbefehle
als Sonderform bedingter Sprungbefehle zu bearbeiten, vereinfacht die Realisierung
eines Prozessors, da hierzu nur das boolesche Bedingungsergebnis abhängig vom
Sprungbefehlstyp „bedingt“ oder „unbedingt“ entsprechend zu definieren ist.
Das Datenwerk ist in Bild 2.1 in sich selbst über den Datenwerkszustand rückgekop-
pelt. Eine solche Rückkopplung ist nicht zwingend erforderlich, kann jedoch die
Implementierung eines Prozessors vereinfachen. Zum Beispiel werden Speicher
großer Kapazität oft als 1-Port-Speicher realisiert, was zwar den Aufwand vermin-
dert, jedoch den Nachteil hat, dass sich pro Zeiteinheit nur ein Zugriff darauf durch-
führen lässt. Zur Ausführung einer dyadischen Operation ist es jedoch erforderlich,
auf zwei Operanden und ein Ergebnis lesend bzw. schreibend zuzugreifen, was mit
einem einschrittig arbeitenden Datenwerk nur erreichbar ist, wenn man die Operan-
den und das Ergebnis in einem 3-Port-Speicher hält. Indem nun das Datenwerk
rückgekoppelt wird, lässt sich ein Befehl in mehrere Operationen zerlegen und
nacheinander vom Datenwerk ausführen, wobei bereits ermittelte Operanden oder
Ergebnisse als Teil des Datenwerkzustands in technischen und nach außen hin nicht
sichtbaren Registern gehalten werden.
Sowohl das Leitwerk als auch das Datenwerk in Bild 2.1 verfügen über Speicher,
die durch die Kästen „Befehle“ und „Daten“ symbolisiert sind. Es wurde bewusst
darauf verzichtet, hier die Begriffe „Befehlsspeicher“ und „Datenspeicher“ zu ver-
wenden, da die Speicheranbindung in realen Systemen oft wesentlich komplizierter
realisiert ist, als sich dies im Bild sinnvoll darstellen ließe. So speichert ein reales
Datenwerk Operanden oft nicht im Datenspeicher, sondern bedient sich des schnel-
len Registerspeichers. Des Weiteren wird auf Daten- und Befehlsspeicher oft über
einen oder mehrere Caches zugegriffen. Auch ist implementierungsabhängig, ob der
Befehls- und Datenspeicher im Rechner physikalisch getrennt sind oder ob Befehle
und Daten in einem gemeinsamen Speicher, dem Hauptspeicher, gehalten werden.
Beispiel 2.1. Zeitsequentielle Verarbeitung von Befehlen . Angenommen es sollen zwei Operan-
den aus dem Datenspeicher addiert und das Ergebnis im Datenspeicher abgelegt werden. Die Verar-
beitung eines entsprechenden Befehls beginnt mit dessen Decodierung im Leitwerk. Anschließend
wird das Datenwerk dazu veranlasst, den ersten Operanden aus dem Datenspeicher in ein techni-
sches Register zu übertragen, dessen Inhalt den Datenwerkszustand repräsentiert. Als nächstes wer-
den, wieder durch das Leitwerk gesteuert, der zweite Operand geladen, die Operanden verknüpft
und mit dem Ergebnis der nun nicht weiter benötigte Operand in dem nach außen hin unsichtbaren
Search WWH ::




Custom Search