5. Aus der Interrupt Vektor Tabelle (bzw. Interrupt Descriptor Tabelle) liest die CPU die
6. Am Ende der entsprechenden Interrupt Service Routine (spätestens beim Wechsel vom
Interrupt-Bearbeitung im APIC-Modus
Die Interrupt-Bearbeitung ist ähnlich wie im PIC-Modus, aber wesentlich schneller.
Interrupts am ISA-Bus
Interrupts am ISA-Bus werden auch unter RMOS3 im flankengetriggerten Mode bearbeitet.
Dies bedeutet, dass beim Eintreffen einer negativen Signalflanke am ISA-Bus der Interrrupt
vom Interrupt-Controller erkannt und wie oben beschrieben verarbeitet wird.
In dieser Betriebsart ist es nicht möglich, am selben Interrupt-Eingang mehrere,
unterschiedliche Interruptquellen zu betreiben. Treten innerhalb kurzer Zeit, bevor der PIC
das EOI-Kommando erhalten hat, Interrupts auf, so können die später eintreffenden
Interrupts nicht erkannt werden und gehen verloren.
Interrupts am PCI-Bus
Mit dem PCI-Bus ist der pegelgetriggerte Mode des PICs notwendig geworden, da am PCI-
Bus lediglich vier Interruptleitungen, INTA#, INTB#, INTC# und INTD#, bedient werden
können. Dies erfordert, dass sich am PCI-Bus angeschlossene Baugruppen die
Interruptleitungen "teilen" müssen (shared interrupts). Die Umstellung vom flanken- in den
pegelgetriggerten Mode erfolgt automatisch durch den Shared Interrupt Server von RMOS3.
Beispiel zur Bearbeitung von Interrupts am PCI-Bus:
Lösen zwei unterschiedliche Baugruppen, die denselben Interrupt z.B. INTA# nutzen, kurz
hintereinander die Interruptanforderung an die CPU aus, dann wird zunächst mit dem
zweiten INTA# -Impuls von der CPU die Vektornummer und damit die Interruptroutine
ermittelt. Innerhalb dieser Interruptroutine muss jetzt die Quelle des Interrupts ermittelt
werden. Dies geschieht durch Auslesen der Baugruppen-Register der angeschlossenen
PCI-Baugruppen. Ist die Interruptquelle gefunden, muss die Interruptanforderung der
entsprechenden PCI-Baugruppe zurückgenommen werden. Anschließend gibt die CPU dem
Interrupt-Controller das EOI-Kommando. Damit ist die Interruptbearbeitung der ersten
Baugruppe abgeschlossen.
Allerdings steht noch die Interruptanforderung durch die zweite Baugruppe an. Dadurch
steht sofort wieder das INTR-Signal an und die CPU wird erneut die Vektornummer ermitteln
und in die Interrupt Service Routine verzweigen.
Dieser Mechanismus wird so lange wiederholt, bis keine Interruptanforderungen mehr
vorliegen.
Interrupt-Routing am PCI-Bus
Die PCI-Interrupts INTA#, INTB#, INTC# und INTD# werden in der CPU-PCI-Bridge auf die
Interrupt-Requests IRQx der AT-Architektur abgebildet.
Im APIC-Modus werden die PCI-Interrupts fest den Interrupts IRQ16 bis IRQ19 bzw. IRQ20
bis IRQ23 zugeordnet.
RMOS3 V3.50 Benutzerhandbuch
Bedienhandbuch, 07/2012, A5E03692290-01
Adresse der Interrupt Service Routine und führt diese aus.
I-Zustand in den S-Zustand) muss die CPU dem PIC ein EOI-Kommando (End Of
Interrupt) geben. Dies wird bei RMOS3 mit der Routine "X_ISSUE_EOI" gesteuert und
automatisch ausgeführt.
Betriebssystem-Eigenschaften von RMOS3
8.3 Interrupt-Bearbeitung unter RMOS3
95