Interrupts, I/O-Ports, DMA

Interrupt. Eigentlich müßte die CPU alle an den Computer angeschlossenen Geräte (z.B. die Tastatur) regelmäßig fragen, ob irgendwelche Eingaben gemacht worden sind. Würde dies zu oft geschehen, wäre das System durch diese Abfragen (polling) stark ausgebremst; wären diese zu selten, müßte man zu lange warten, bis der Computer reagiert. Deshalb geht man hier anders vor. Die einzelnen Geräte melden sich bei der CPU, wenn sie dem System etwas mitzuteilen haben. Diese Meldung heißt Interrupt-Request (IRQ), da die Geräte verlangen, daß das System den aktuellen Prozeß kurz unterbricht, um auf ihre Eingabe einzugehen. Diese Interrupts werden vom Interrupt-Controller verwaltet, der die Abarbeitung der Interrupts nach einer Prioritätsliste verwaltet. In PCs gibt es 15 Interrupts, von IRQ 0 bis IRQ 15 durchnumeriert (IRQ2 zeigt auf die IRQs 8 bis 15, vgl. Abb. 6). Damit ein reibungsloses Arbeiten des PC gewährleistet ist, darf jeder Interrupt im Prinzip nur einmal vergeben werden. Beim PCI-Bus wird ein ähnliches Verfahren verwendet. Hier gibt es die Interrupts INTA bis INTD. Diese werden auf normale Interrupts (IRQs) umgelegt.

  

Abbildung 6: Die IRQ-Controller-Kaskadierung

Interrupt-Controller


I/O-Port (auch I/O-Address oder E/A-Adresse). Damit das System mit den einzelnen Komponenten kommunizieren kann, werden sogenannte Ports vergeben. Jede Komponente verfügt im allgemeinen über eine ganze Gruppe von Ports, also einen ganzen Adreßbereich, über den sie vom System angesprochen werden kann. Wichtig zu wissen ist nun, daß die Portadressen nicht vom System vergeben werden, sondern auf den einzelnen Komponenten voreingestellt sind. Jede Komponente (z.B. eine Erweiterungskarte) fühlt sich also für einen Adressbereich zuständig. Zwar sind die Ports für die meisten Komponenten standardisiert, hin und wieder kommt es aber dennoch zu Komplikationen. Deshalb muß man bei der Installation von Komponenten darauf achten, das diese Adressen sich nicht überschneiden.

DMA. Es gibt für verschiedene Komponenten des PC die Möglichkeit, direkt und ohne Zutun des Prozessors auf das RAM zuzugreifen, den ,,direct memory access``, DMA. Es gibt 8 DMA-Kanäle. Der DMA-Zugriff wird durch den DMA-Controller überwacht. Da die modernen CPUs jedoch enorm schnell sind, ist der DMA nicht mehr vorteilhaft. Lediglich die (echt bidirektionale) parallele Schnittstelle oder Soundkarten verwenden noch den DMA. Das Analogon zum DMA für den PCI-Bus heißt Bus-Mastering. Bei (E)IDE-Schnittstellen wird der DMA heute durch den prozessorkontrollierten PIO (Programmed Input Output)-Modus ersetzt. Auch die Ultra-DMA-Modi moderner Festplatten verwenden trotz des Namens das viel schnellere Bus-Mastering.