Information Technology Reference
In-Depth Information
Ausnahmebehandlung (Exceptions und Interrupts)
Damit Prozessoren auf Ausnahmesituationen reagieren können, verfügen sie über
die Fähigkeit, mit dem Auftreten eines Ereignisses ein zugeordnetes Ausnahmepro-
gramm aufzurufen. Mit dem initialen Ereignis beendet der Prozessor zuerst die Ver-
arbeitung des aktuell in Ausführung befindlichen Befehls. Falls das Ereignis syn-
chron ist, wie z.B. bei einer Division durch Null, wird möglicherweise kein oder ein
fehlerhaftes Ergebnis erzeugt. Bei asynchronen, durch ein Signal ( interrupt request
signal , irq ) ausgelösten Ereignissen, wird i.Allg. das korrekte Ergebnis erzeugt
(siehe Abschnitt 1.4.1), danach das laufende Programm unterbrochen, die Rück-
sprungadresse gesichert und zu einer dem Ereignis fest oder in einer Tabelle zuge-
ordneten Adresse, der Startadresse des Ausnahmeprogramms, verzweigt.
Die Verarbeitung des Ausnahmeprogramms erfolgt i.Allg. in einem speziellen
Zustand, in dem neben herkömmlichen Befehlen und Aktionen auch privilegierte
Befehle und Aktionen ausgeführt werden können. Die Ausnahmebehandlung endet
mit einem Rücksprung ins unterbrochene Programm. Falls der Befehl, der vor der
Ausnahmebehandlung ausgeführt wurde, sich nicht beenden ließ und ein fehlerhaf-
tes Ergebnis erzeugt hat, kann dieser ggf. wiederholt bearbeitet werden, um nach
Berichtigung im Ausnahmeprogramm nun ein korrektes Ergebnis zu erzeugen
(siehe Abschnitt 2.3.2).
In Bild 2.16 sind die Erweiterungen des Leitwerks dargestellt, die notwendig sind,
um Ausnahmeanforderungen verarbeiten zu können. Sie werden vom Befehlsdeco-
der, und zwar jeweils am Ende der Bearbeitung eines Befehls, detektiert. Dabei
müssen synchrone und asynchrone Ereignisse nicht unterschieden werden. In beiden
Fällen ist der Zustand eines entweder vom Datenwerk oder extern über den Unter-
brechungseingang irq aktivierten Signals zu überprüfen (im Bild mit a markiert).
Gesteuert vom Befehlsdecoder wird daraufhin der Inhalt des Befehlszählers über die
mit b markierte Leitung zum Datenwerk transportiert und dort z.B. auf einem Stapel
im Datenspeicher oder in einem Arbeitsregister gesichert. Zeitgleich wird die hier
feste Startadresse des Ausnahmeprogramms (mit c markiert) in den Befehlszähler
geschrieben, was einem Sprung zum Ausnahmeprogramm entspricht. Weil die
gesamte Ausnahmebehandlung in einem privilegierten Zustand erfolgen soll, defi-
niert der Befehlsdecoder außerdem den Inhalt des Supervisor-Bits S als aktiv (mit d
markiert). Es wird jeweils vom Befehlsdecoder überprüft, bevor es zur Ausführung
privilegierter Befehle kommt.
Je nach Prozessor gibt es zahlreiche Realisierungsvarianten, die sich in einigen
Details von dem unterscheiden, was in Bild 2.16 dargestellt ist. Statt einer konstan-
ten Startadresse IRQ-ADDR, mit der ein einzelnes Ausnahmeprogramm aufgerufen
werden kann (dies ist ähnlich z.B. im nicht mehr gefertigten i860 von Intel realisiert
[69]), sind den möglichen Ereignissen normalerweise individuelle Adressen zuge-
ordnet, z.B., indem pro Ereignis eine andere Startadresse über den Multiplexer M 5
auf den Eingang des Befehlszählers geführt ist. Einige Prozessoren, z.B. der Cold-
Fire MFC5206 von Motorola [124], ermitteln die Startadresse des jeweils auszufüh-
renden Ausnahmeprogramms auch aus einer im Hauptspeicher befindlichen Tabelle.
Hierzu muss, vom Befehlsdecoder gesteuert, zunächst auf die Tabelle zugegriffen
Search WWH ::




Custom Search