Eine zweite softwareorientierte Methode arbeitet mit Hardwareunterstützung und ist deutlich schneller. Hier wird, wie unten dargestellt, ein Bestätigungssignal (ACK) für die Unterbrechung durch die verschiedenen Einheiten durchgeschleift, die sogenannte daisy-chain (Gänse-blümchenkette). Alle Einheiten hängen auf einer Interruptleitung. Wenn eine Einheit einen Interrupt anfordert, so öffnet sie den Schalter und sendet auf der Interruptleitung die Interrupt-anforderung. Der Prozessor muß bei Eintreffen der Interruptanforderung zumindest den Programmzähler am Stapel absichern. Danach erzeugt der Mikroprozessor ein besonderes Bestätigungssignal (acknowledge auch INTA, d.h. Interrupt Acknowledge) genannt), daß er die Unterbrechung entgegengenommen hat. Dieses Bestätigungssignal erreicht nun die Einheit, die den Interrupt angefordert hat. Diese Einheit setzt nun eine Erkennungsnummer auf den Datenbus, von dem sie der Mikroprozessor einliest. Anhand dieser Erkennungsnummer weiß der P, welche Interrupt Service Routine er ausführen muß. Wenn mehrere Einheiten einen Interrupt angefordert haben, dann ergibt sich durch die Verbindung vom Acknowledge Signal für jede Einheit eine bestimmte Priorität.
Diese Technik kommt z.B. bei der 8080/8085 Familie zur Anwendung. Da es sich bei der 8051 Familie um Mikrocontroller handelt sind die meisten früheren externen Interruptquellen (Timer od. serielle Schnittstelle) bereits integriert und werden über Interruptvektoren behandelt.
|