Das eBook Angewandte Mikroelektronik wurde von Hans Lohninger zur Unterstützung verschiedener Lehrveranstaltungen geschrieben. Weitere Informationen finden sie hier. |
Home Mikroprozessoren Der Prozessor Z80 Interruptverarbeitung | ||
Siehe auch: Reentrante Unterprogramme | ||
|
||
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.
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.
|
||
Home Mikroprozessoren Der Prozessor Z80 Interruptverarbeitung |