Interruptverarbeitung Ein Interruptaufruf unterbricht die gerade ablaufende Befehlsfolge in der Weise, daß nach Beendigung des laufenden Befehls nicht der nächste Befehl des Hauptprogramms ausgeführt, sondern eine ISR (Service-Routine) aufgerufen wird. Als Interruptquellen sind möglich: Externe (Hardware-) Interrupts:» Nicht maskierbare (NMI) dienen zur Mitteilung von Katastrophenmeldungen (z.b. Netzausfall, Speicherparitätsfehler etc.). Sie haben höhere Priorität als die maskierbaren Interrupts.» Bei den maskierbaren Interrupts INTR (Interrupt Request) ist meist ein PIC- Baustein (Programmable-Controller), z.b. 8259A angeschlossen, der seinerseits z.b. mit 8 Interruptquellen (externer Geräte) verbunden ist. Mikro-Computer Folie: 1 Prof. Dr.-Ing. Alfred Rozek TFH Berlin Interruptverarbeitung SW-Interrupt (Befehle, auch interner Interrupt) INT21 sind synchron zur Programmausführung INT3 hat eine Sonderstellung, da keine INT-Nr. folgt HW-Interrupt (Quelle: Peripherie) asynchron zur Programmausführung NMI (Non Maskable Interrupt) führt zu einem INT2 und tritt z.b. auf» bei einem Paritätsfehler im Speicher oder» bei einer fehlerhaften Busarbitrierung IRQ (Request)» hierbei handelt es sich um maskierbare Interrupts Exceptions (Quelle: Prozessor selbst) Auswirkungen wie bei SW-Interrupt» z.b. Division durch Null oder» ungültiger OP-Code (0D6H oder 0F1H); kein Co-Prozessor vorhanden Mikro-Computer Folie: 2 Prof. Dr.-Ing. Alfred Rozek Berlin TFH
UP contra ISR HP UP HP ISR1 ISR2 ISR3 CALL IRQ RET IRET IRET IRET HP: UP: CALL: RET Hauptprogramm Unterprogramm Unterprogrammaufruf Return from Subroutine ISR: IRQ: IRET Service-Routine Interrupt Request Return from Interrupt Mikro-Computer Folie: 3 Prof. Dr.-Ing. Alfred Rozek TFH Berlin INTERRUPT-Verfahren Nested Interrupt NMI INTR 0 INTR 1 INTR 2 INTR 3 INTR 4 INTR 5 INTR 6 INTR 7 HP Daisy Chain Peripherie Peripherie Peripherie CPU Abhängigkeit von Sammelleitung (geographische Lage) Mikro-Computer Folie: 4 Prof. Dr.-Ing. Alfred Rozek TFH Berlin
Interne Interruptverarbeitung (CPU: 8086) laufender Befehl wird beendet Interner INT? NMI? INTR? TF=1? IRQ IF=1? INTA-Zyklus Einzelschrittverarbeitung PUSH Flags Lösche IF und TF PUSH CS und IP ISR aufrufen ISR POP IP und CS POP Flags nächsten Befehl ausführen Mikro-Computer Folie: 5 Prof. Dr.-Ing. Alfred Rozek TFH Berlin Interruptverarbeitung (CPU: 8086) nichtmaskierbarer Interrupt NMI 17 Logik INT Typ Befehl maskierbare externe Interrupts IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 INTR 18 INTO Befehl DIV Fehler INT4 INT0 PIC 8259A Einzelschritt (TF=1) INT1 Interruptquellen 8086-CPU Datenbus Mikro-Computer Folie: 6 Prof. Dr.-Ing. Alfred Rozek TFH Berlin
Kaskadierung von Controllern CPU 80x86 INT Vcc INTA Controller SP/EN 8259A A0 CS CAS 0..2 Master-PIC IRQ 0 IRQ 1 IRQ 3 IRQ 4 IRQ 5 IRQ 6 IRQ 7 IRQ 2 Controller NMI 3 GND SP/EN 8259A A0 CS CAS 0..2 Slave-PIC IRQ 8 IRQ 9 IRQ 10 IRQ 11 IRQ 12 IRQ 13 IRQ 14 IRQ 15 Mikro-Computer Folie: 7 Prof. Dr.-Ing. Alfred Rozek TFH Berlin Typische Interruptverteilung in einem PC-AT (Advanced Technology) Kanal Interrupt Anwendungen (bezogen auf AT-Technik) NMI 02H Nicht maskierbarer Interrupt (Parität, Fehler auf Erweiterungskarten, Speicherauffrischung) IRQ 0 08H System-Zeitgeber (Kanal 0 des Timers 8253/54) IRQ 1 09H Tastatur IRQ 2 0AH Kaskadierung mit Interrupt 9 (vom Slave PIC) IRQ 3 0BH COM Port 2 IRQ 4 0CH COM Port 1 IRQ 5 0DH Paralleler Drucker LPT 2 (auch: Standard-Belegung durch Soundkarte (SB-Pro kompatibel)) IRQ 6 0EH Diskettenlaufwerks-Controller IRQ 7 0FH Paralleler Drucker LPT 1 IRQ 8 70H Echtzeituhr IRQ 9 71H Redirection zu IRQ 2 (ein IRQ 9 führt zu einem Aufruf des Handlers von IRQ 2) IRQ 10 72H reserviert bzw. frei (auch: PCI-Graphickarte) IRQ 11 73H reserviert bzw. frei (auch: PCI-Graphickarte) IRQ 12 74H reserviert bzw. frei (auch: PS/2 Maus) IRQ 13 75H Mathematischer Coprozessor (z.b.: 80x87) IRQ 14 76H Erste Enhanced IDE-Schnittstelle (gewöhnlich Festplatte) IRQ 15 77H Zweite Enhanced IDE-Schnittstelle (gewöhnlich CD-ROM) Mikro-Computer Folie: 8 Prof. Dr.-Ing. Alfred Rozek TFH Berlin
Port-Adressen im PC-AT Mikro-Computer Folie: 9 Prof. Dr.-Ing. Alfred Rozek TFH Berlin C-Programmbeispiel zum Maskieren und Aktivieren des NMI im PC-AT Mikro-Computer Folie: 10 Prof. Dr.-Ing. Alfred Rozek TFH Berlin
NMI und NMI-Maskierungsregister Mikro-Computer Folie: 11 Prof. Dr.-Ing. Alfred Rozek TFH Berlin Interrupts brauchen Zeit t Task Interrupt Task CPU-Kontext sichern ISR-Kernel Entry function ISR-Kernel Exitfunction Service- Routine (ISR) Latenz Dispatch Anwender-Code der Interrupt Service Routine Recovery Response Systemverhalten und -zeiten bei einem Kontextwechsel Mikro-Computer Folie: 12 Prof. Dr.-Ing. Alfred Rozek TFH Berlin