Das Buch zu dieser Webseite

Computertechnik-Fibel

Die Computertechnik-Fibel, das Computer-Buch

Käufer der Computertechnik-Fibel Kundenmeinung:
Die Computertechnik-Fibel ist wirklich verständlich geschrieben, frei von Ballast und ein tolles Nachschlagewerk. Insgesamt ein sehr empfehlenswertes Buch.

Computertechnik-Fibel
jetzt bestellen!

Auszeichnungen

Das Buch zu dieser Webseite

Netzwerktechnik-Fibel

Die Netzwerktechnik-Fibel

Käufer der Netzwerktechnik-Fibel Kundenmeinung:
Die Netzwerktechnik-Fibel ist sehr informativ und verständlich. Genau das habe ich schon seit langem gesucht.

Netzwerktechnik-Fibel
jetzt bestellen!

Interrupt (IRQ)

Blockschaltbild Jedes Computersystem besteht nicht nur aus CPU und Speicher, sondern auch aus der Peripherie, die im Gehäuse eingebaut oder an den äußeren Schnittstellen angeschlossen ist. Damit der Prozessor mitbekommt, wenn Daten von außen anstehen, muss es die Möglichkeit geben, den Prozessor bei seiner Arbeit zu unterbrechen. Hierzu gibt es die Möglichkeit, dass der Prozessor alle Eingabe-Geräte zyklisch abfragt (Polling). Was bei der Vielzahl an Komponenten in einem Computer bedeuten würde, dass der Prozessor mit nichts anderem mehr beschäftigt wäre. Eine Alternative ist die sogenannten Unterbrechungsanforderung (to interrupt, unterbrechen), die dann eintritt, wenn Daten von außen anstehen. Dazu wurde die Möglichkeit geschaffen den Hauptprozessor auf definierte Weise bei der laufenden Arbeit zu unterbrechen.

Ablauf eines Interrupts

Wenn ein Gerät Daten zur weiteren Verarbeitung zur Verfügung hat oder einfach nur eine Rückmeldung geben will, dann wird dem Prozessor in seiner laufenden Arbeit eine Unterbrechungsanforderung, also ein Interrupt-Request (IRQ) gesendet. Das passiert durch den Interrupt (Leitung), der dem betreffenden Gerät zugewiesen ist.
Wird zum Beispiel ein Taste auf der Tastatur gedrückt, dann schickt der Tastatur-Controller einen IRQ an den Prozessor. Der unterbricht seine aktuelle Tätigkeit und führt einen Befehl an einer bestimmten Speicheradresse aus, die vom IRQ-Eingang abhängig ist. In diesem Fall wird auf den Tastatur-Treiber verwiesen, der dafür sorgt, dass der Buchstabe auf dem Bildschirm erscheint.

Interrupt-Auslösegründe

Bei jeder zeitkritischen Anwendung, bei der Daten an den Prozessor gesendet werden sollen, wird ein Interrupt ausgelöst. Für den IRQ können folgende Aktionen verantwortlich sein:

Damit aus Anwendersicht das System optimal funktioniert, ist die Gewichtung zwischen den Interrupts unterschiedlich. So kann sich die CPU um die wichtigen Aufgaben kümmern.

Ressourcenkonflikte

Innerhalb der PC-Architektur ist die Interrupt-Verwaltung schon immer eine große Schwachstelle gewesen. Üblicherweise benötigen alle Peripherie-Geräte einen eigenen Interrupt. Mit der Zeit kamen immer mehr Geräte und Schnittstellen hinzu. Allerdings wurde die Anzahl der Interrupts nicht erhöht. So kam es, dass von diesem wichtigen Element innerhalb des Computersystems immer zu wenig vorhanden war. Geplante Aufrüstungen scheiterten in der Regel an der zu geringen Anzahl freier Interrupts.
Dieses grundsätzliche Problem stammt aus der Zeit der ISA-Architektur. Es wurde auch dann nicht besser, als Plug & Play die Hardware-Installation einfacher machen sollte. Erst der PCI Local Bus brachte die Möglichkeit des IRQ-Sharings, die gemeinsame Nutzung der Interrupt-Leitungen durch mehrere PCI-Steckkarten.
Da die Anzahl der Interrupts grundsätzlich zu gering ist, übernimmt das Betriebssystem die Rolle der Interrupt-Organisation, die auch die Doppelnutzung durch zwei Komponenten kontrollieren kann.

Interrupt-Verteilung

Es gibt einige Interrupts, die frei belegt werden können. Andere jedoch, sind fest vergeben und dürfen nicht verändert werden.

IRQ Funktion Veränderbar?
0 Systemzeitgeber nein
1 Tastatur nein
2 Programmierbarer Interrupt-Controller nein
3 COM 2 ja
4 COM 1 ja
5 LPT 2/Soundkarte ja
6 Standard-Disketten-Controller nein
7 LPT 1 ja
8 CMOS-/Echtzeitsystemuhr nein
9 intern nein
10 USB-Host-Controller ja
11 Grafikarte/Netzwerkkarte ja
12 Maus nein
13 Nummerischer Coprozessor nein
14 Primary IDE Controller nein
15 Secondary IDE Controller nein
16...23 ... ja

Interrupt-Verteilung am Beispiel von Windows 98 SE

Die folgende Darstellung ist ein Beispiel aus einem PC mit Windows 98 SE. Der Computer in diesem Beispiel hat nur 16 Interrupts. Deshalb sind einige doppelt belegt.

Beispiel der Interruptorganisation

Interrupt-Verteilung am Beispiel von Windows XP

Die folgende Darstellung ist ein Beispiel aus einem PC mit Windows XP. Der Computer in diesem Beispiel hat 24 Interrupts. Sowohl das Betriebssystem, als auch die Hardware unterstützen APIC. Außerdem führt die intensive Nutzung von Peripherie am USB dazu, dass Interrupts ausreichend zur Verfügung stehen.

Beispiel der Interruptorganisation

Der APIC-Modus

Der APIC (Advanced Programmable Interrupt Controller), nicht zu verwechseln mit ACPI, ist eine Steuereinheit für Interrupts in einem Computer.
In Multi-Prozessor-Systemen besitzen die Prozessoren einen Local APIC, über den sie mit den anderen Prozessoren und dem I/O-APIC des Motherboards kommunizieren. Das ist notwendig, damit bei einer Interrupt-Auslösung eindeutig ist, welcher der Prozessoren für diesen Interrupt zuständig ist.
Durch APIC ist es einem Betriebssystem möglich, sofern es APIC unterstützt, Interrupts mehrfach zu belegen. Aus diesem Grund ist APIC heute in jedem Prozessor und auf jedem Motherboard integriert.
Der Einsatz von immer mehr Erweiterungskarten hat dringend nach APIC-Unterstützung durch Chipsatz und Betriebssystem verlangt. Der APIC-Modus hat der Interrupt-Architektur des PCs deutliche Verbesserungen gebracht. Ressourcenkonflikte treten deutlich weniger auf.
Als es noch ISA-Steckkarten gab, mussten die Interrupts per Jumper konfiguriert werden. Später mit den PCI-Steckkarten konnten die Interrupts per Software eingestellt werden. Mit APIC kann das Betriebssystem die Interrupts eigenständig verwalten. Der Anwender muss an dieser Stelle keine Hand mehr anlegen.
Mit der vollautomatischen Interrupt-Verwaltung durch das Betriebssystem wurde dem PC-Bastler eine der lästigsten Aufgaben abgenommen.

Ablauf mit APIC-Modus

Beim Systemstart übernimmt das BIOS die IRQ-Verteilung, um die Geräte nutzen zu können. Zum Beispiel, um das Betriebssystem von der Festplatte oder einem anderen Laufwerk starten zu können. Nach dem Start des Betriebssystems übernimmt es die Kontrolle der IRQ-Verwaltung und nimmt an der IRQ-Verteilung des BIOS Änderungen vor.
Die Betriebssysteme Windows XP und Vista erledigen die IRQ-Verwaltung auf APIC-tauglicher Hardware sehr geschickt und ohne manuelle Konfiguration durch den Anwender.
In Windows 2000 und Windows XP, sowie auch Windows Vista, ist eine manuelle Änderung der IRQ-Verteilung nicht möglich. In der Regel sind diese Betriebssysteme im APIC-Modus installiert. Ein Änderung durch den Anwender ist auch gar nicht notwendig. Sollte trotzdem der Verdacht auftreten, dass das automatische IRQ-Sharing Probleme bereitet, dann hilft nur das Vertauschen der vorhandenen PCI-Steckkarten.

Weitere verwandte Themen:

Dieser Text ist mir was wert:[ ? ]
Computertechnik-Fibel
Computertechnik-Fibel

EUR 21,50