Das eBook Angewandte Mikroelektronik wurde von Hans Lohninger zur Unterstützung verschiedener Lehrveranstaltungen geschrieben. Weitere Informationen finden sie hier.


Interruptverarbeitung

Die CPU besitzt zwei Interruptleitungen (/NMI und /INT), die zur Entgegennahme von Unterbrechungsanforderungen vorgesehen sind. Die Unterschiede zwischen /NMI und /INT bestehen in der unterschiedlichen Priorität (Priorität des /NMI ist höher als von /INT) und in der Unmöglichkeit, die NMI-Anforderung per Software zu blockieren.

Der Eingang /NMI (non maskable interrupt) ist flankengetriggert (negative Flanke) und kann nicht ausgeschaltet (maskiert) werden. Eine NMI-Anforderung wird immer am Ende eines Befehlszyklus erkannt und führt zum Aufruf der NMI-Service-Routine, die fix an der Adresse 0066H stehen muss. Der nichtmaskierbare Interrupt wird normalerweise nur für Aufgaben eingesetzt, für die unter allen Umständen sichergestellt sein muss, dass sie rechtzeitig erledigt werden (z.B. Rettung des CPU-Zustandes bei drohendem Verlust der Versorgungsspannung).

Beim Auftreten einer NMI-Anforderung wird der Zustand des Interrupt-Enable-Flip-Flops (IEFF) abgespeichert und dann der maskierbare Interrupt (Eingang /INT) blockiert. Damit wird sichergestellt, dass die NMI-Service-Routine nicht unterbrochen wird. Am Ende der Service-Routine muss der Befehl RETN (return from non maskable interrupt) durchgeführt werden, um den ursprünglichen Zustand des IEFF wieder herzustellen. Dieses Verfahren birgt jedoch die Gefahr in sich, dass der Inhalt des IEFF verloren geht, falls die NMI-Service-Routine durch eine zweite NMI-Anforderung unterbrochen wird.

Die Anforderung eines maskierbaren Interrupts (Leitung /INT) kann auf drei verschiedene Arten beantwortet werden. Welcher Interruptmodus verwendet wird, kann per Software eingestellt werden (Befehle IM0, IM1 und IM2). Modus 0 entspricht dem Interruptzyklus der CPU 8080; hier muss das anfordernde Gerät im Interrupt-Acknowledge-Zyklus einen Befehl auf den Datenbus legen. Modus 1 gleicht dem Verhalten auf eine NMI-Anforderung. Die CPU beginnt die Ausführungder Service-Routine bei einer fixen Adresse (0038H). Modus 2 stellt die flexibelste Art der Interruptanforderung zur Verfügung, indem die Adresse der Service-Routine aus dem CPU-internen Interruptvektorregister (high byte) und einer vom peripheren Chip erzeugten Adresse (low byte) gebildet wird. Dieser Modus wird aber nur von Z80-Peripheriebausteinen unterstützt.


Last Update: 2008-05-31