Information Technology Reference
In-Depth Information
fortlaufende Transformation eines aus Befehlszählerinhalt und Daten bestehenden
Zustands interpretieren lässt 1 , und zwar nur vom aktuellen Zustand abhängig.
Da der Zeitpunkt eines Zustandsübergangs hierbei nicht von Bedeutung ist, kann die
Ausführung eines Programms jederzeit mit der Möglichkeit einer späteren Weiter-
führung unterbrochen werden, sofern der Zustand nicht modifiziert wird. Dies lässt
sich z.B. nutzen, um ereignisgesteuert auf Signale reagieren zu können. Erkennt ein
Prozessor eine Ausnahmesituation (interrupt oder exception), wird zunächst ein sog.
Kontextwechsel durchgeführt und dabei der Teil des Zustands des laufenden Pro-
gramms gesichert, der durch das Ausnahmeprogramm verändert werden würde. Da
Ausnahmen naturgemäß eine hohe Priorität haben, wird vor Aufruf des zu bearbei-
tenden Ausnahmeprogramms meist in einen privilegierten Betriebsmodus gewech-
selt. Die Bearbeitung von Ausnahmeanforderungen, Kontextwechseln sowie der
Umgang mit unterschiedlichen Betriebsmodi wird in den folgenden Abschnitten
beschrieben.
1.4.1 Ausnahmebehandlung (exceptions, interrupts)
Herkömmliche Prozessoren sind in der Lage vom aktuellen Programm unabhängige,
synchrone oder asynchrone Ereignisse zu bearbeiten. Synchrone Ereignisse ( traps )
sind z.B. Fehler, die infolge der Ausführung eines Befehls, wie einer Division durch
Null, auftreten. Asynchrone Ereignisse, auch Unterbrechungsanforderungen
genannt ( interrupts ), sind unabhängig vom aktuell bearbeiteten Programm und wer-
den durch Aktivierung einer Signalleitung, z.B. als Folge des Drückens einer Taste,
ausgelöst. Sie sind i.Allg. maskierbar , d.h. entweder individuell oder in Gruppen
z.B. entsprechend ihrer Priorität ein- bzw. ausschaltbar.
Als Reaktion auf ein nicht maskiertes, synchrones oder asynchrones Ereignis wird
normalerweise der in Ausführung befindliche Befehl (ggf. fehlerhaft) beendet und
ein Ausnahmeprogramm ( exception handler ), einem Unterprogramm vergleichbar,
aufgerufen. Für den später notwendigen Rücksprung sichert man dabei automatisch
einen Minimalkontext, bestehend aus dem Inhalt des Befehlszählers und einiger Sta-
tusinformationen (Abschnitt 1.4.2). Letzteres ist erforderlich, weil die Ausnahmebe-
handlung in modernen Prozessoren normalerweise hoch privilegiert ausgeführt wird
und nach der Ausnahmebehandlung der zuvor aktive Betriebsmodus reaktiviert wer-
den muss (Abschnitt 1.4.3).
Die für den Aufruf des Ausnahmeprogramms benötigte Startadresse ist entweder
fest definiert oder in einer Tabelle variabel codiert. Bei einer Division durch Null
entsprechend Bild 1.20a kann das Ausnahmeprogramm (Sprungmarke hnd) z.B.
aufgerufen werden, indem entweder mit Hilfe des dem Ereignis fest zugeordneten
Index (div0) zunächst zum jeweiligen Eintrag der sog. Ausnahmetabelle ( exception
table ) verzweigt und von dort aus in das eigentliche Ausnahmeprogramm gesprun-
gen wird (mit dem Befehl „bra hnd“ in Bild 1.20b) oder indem der Prozessor die
1.
Dabei wird vorausgesetzt, dass die Befehle eines Programms zur Laufzeit nicht verändert wer-
den, was i.Allg. der Fall sein wird. Gegebenenfalls ist der Zustand um den zu jedem Zeitpunkt
verwendeten Programmcode zu erweitern.
Search WWH ::




Custom Search