Unterbrechungsanforderung (PC-Architektur) - Interrupt request (PC architecture)

In einem Computer ist eine Interrupt-Anforderung (oder IRQ ) ein Hardware-Signal, das an den Prozessor gesendet wird, das ein laufendes Programm vorübergehend stoppt und stattdessen einem speziellen Programm, einem Interrupt-Handler , erlaubt , zu laufen. Hardware-Interrupts werden verwendet, um Ereignisse wie den Empfang von Daten von einem Modem oder einer Netzwerkkarte , Tastendrücke oder Mausbewegungen zu verarbeiten.

Unterbrechungszeilen werden oft durch einen Index mit dem Format IRQ gefolgt von einer Zahl identifiziert . Bei der Intel 8259- Familie von programmierbaren Interrupt-Controllern ( PICs ) gibt es beispielsweise acht Interrupt-Eingänge, die allgemein als IRQ0 bis IRQ7 bezeichnet werden . In x86- basierten Computersystemen , die zwei dieser PICs verwenden , wird der kombinierte Satz von Leitungen als IRQ0 bis IRQ15 bezeichnet . Technisch werden diese Leitungen mit IR0 bis IR7 bezeichnet , und die Leitungen auf dem ISA- Bus, mit denen sie in der Vergangenheit verbunden waren, heißen IRQ0 bis IRQ15 (obwohl in der Vergangenheit mit zunehmender Anzahl von Hardwaregeräten die insgesamt mögliche Anzahl von Interrupts durch Kaskadierung erhöht wurde Anfragen, indem eine der IRQ-Nummern zu einem anderen Satz oder Sätzen nummerierter IRQs kaskadiert wird, die von einem oder mehreren nachfolgenden Controllern verarbeitet werden).

Neuere x86- Systeme integrieren einen Advanced Programmable Interrupt Controller (APIC), der der Intel APIC-Architektur entspricht. Diese APICs unterstützen eine Programmierschnittstelle für bis zu 255 physische Hardware-IRQ-Leitungen pro APIC, wobei ein typisches System Unterstützung für insgesamt nur etwa 24 Hardwareleitungen implementiert.

In den frühen Jahren des Personal Computing war das IRQ-Management oft ein Anliegen der Benutzer. Mit der Einführung von Plug-and-Play- Geräten wurde dies durch automatische Konfiguration erleichtert.

Überblick

Beim Arbeiten mit PC-Hardware und beim Installieren und Entfernen von Geräten verlässt sich das System auf Interrupt-Anforderungen. Es gibt Standardeinstellungen, die im System- BIOS konfiguriert und vom Betriebssystem erkannt werden. Diese Standardeinstellungen können von erfahrenen Benutzern geändert werden. Die moderne Plug-and-Play- Technologie hat nicht nur die Notwendigkeit, sich um diese Einstellungen zu kümmern, reduziert, sondern auch die manuelle Konfiguration praktisch eliminiert.

x86-IRQs

Frühe PCs mit Intel 8086/8088-Prozessoren hatten nur einen einzigen PIC und sind daher auf acht Interrupts beschränkt. Dies wurde mit der Einführung der 286-basierten PCs auf zwei PICs erweitert.

In der Regel werden auf Systemen mit Intel 8259 PIC 16 IRQs verwendet. IRQs 0 bis 7 werden von einem Intel 8259 PIC verwaltet und IRQs 8 bis 15 von einem zweiten Intel 8259 PIC. Der erste PIC, der Master, ist der einzige, der direkt der CPU signalisiert. Der zweite PIC, der Slave, signalisiert stattdessen dem Master auf seiner IRQ 2-Leitung, und der Master gibt das Signal an die CPU weiter. Für die Hardware stehen daher nur 15 Interrupt-Request-Leitungen zur Verfügung.

Auf APIC mit IOAPIC- Systemen stehen normalerweise 24 IRQs zur Verfügung, und die zusätzlichen 8 IRQs werden verwendet, um PCI-Interrupts zu routen, wodurch Konflikte zwischen dynamisch konfigurierten PCI-Interrupts und statisch konfigurierten ISA-Interrupts vermieden werden. Auf frühen APIC-Systemen mit nur 16 IRQs oder nur mit Intel 8259 Interrupt-Controllern wurden PCI-Interrupt-Leitungen über ein in die Southbridge integriertes PIR (PCI Interrupt Routing) zu den 16 IRQs geroutet. Auf APIC mit MSI- Systemen stehen typischerweise 224 Interrupts zur Verfügung.

Die einfachste Möglichkeit, diese Informationen unter Windows anzuzeigen, besteht darin, den Geräte-Manager oder die Systeminformationen (msinfo32.exe) zu verwenden. Unter Linux können IRQ-Zuordnungen angezeigt werden, indem cat /proc/interrupts ausgeführt oder das Dienstprogramm procinfo verwendet wird .

Master-PIC

  • IRQ 0 – Systemtimer (nicht veränderbar)
  • IRQ 1 – Tastatur am PS/2-Port (nicht veränderbar)
  • IRQ 2 – kaskadierte Signale von IRQs 8–15 (alle Geräte, die für die Verwendung von IRQ 2 konfiguriert sind, verwenden tatsächlich IRQ 9)
  • IRQ 3 – Serial Port Controller für Serial Port 2 (gemeinsam mit Serial Port 4, falls vorhanden)
  • IRQ 4 – Serial Port Controller für Serial Port 1 (gemeinsam mit Serial Port 3, falls vorhanden)
  • IRQ 5 – Parallelport 2 und 3 oder  Soundkarte
  • IRQ 6 – Disketten-Controller
  • IRQ 7 – Parallelport 1. Wird für Drucker oder für jeden Parallelport verwendet, wenn kein Drucker vorhanden ist. Bei sorgfältiger Verwaltung des Ports kann er möglicherweise auch mit einer sekundären Soundkarte geteilt werden.

Slave-PIC

  • IRQ 8 – Echtzeituhr (RTC)
  • IRQ 9 – Advanced Configuration and Power Interface (ACPI) Systemsteuerungs-Interrupt auf Intel-Chipsätzen. Andere Chipsatzhersteller verwenden zu diesem Zweck möglicherweise einen anderen Interrupt oder stellen ihn für die Verwendung von Peripheriegeräten zur Verfügung (alle Geräte, die für die Verwendung von IRQ 2 konfiguriert sind, verwenden tatsächlich IRQ 9)
  • IRQ 10 – Der Interrupt wird für die Verwendung von Peripheriegeräten offen gelassen (offener Interrupt/verfügbar, SCSI oder NIC )
  • IRQ 11 – Der Interrupt wird für die Verwendung von Peripheriegeräten offen gelassen (offener Interrupt/verfügbar, SCSI oder NIC)
  • IRQ 12 – Maus am PS/2-Port
  • IRQ 13 – CPU -Coprozessor  oder integrierte Gleitkommaeinheit  oder  Interprozessor-Interrupt (Verwendung abhängig vom Betriebssystem)
  • IRQ 14 – primärer ATA- Kanal (ATA-Schnittstelle bedient normalerweise Festplatten und CD-Laufwerke )
  • IRQ 15 – sekundärer ATA-Kanal

Konflikte

In frühen IBM-kompatiblen PCs ist ein IRQ-Konflikt ein früher häufiger Hardwarefehler, der empfangen wird, wenn zwei Geräte versuchten, dieselbe Interrupt-Anforderung (oder IRQ) zu verwenden, um dem Programmable Interrupt Controller (PIC) einen Interrupt zu signalisieren . Der PIC erwartet Interrupt-Anforderungen von nur einem Gerät pro Leitung, so dass mehr als ein Gerät, das IRQ-Signale über dieselbe Leitung sendet, im Allgemeinen einen IRQ-Konflikt verursacht, der einen Computer einfrieren kann .

Wenn beispielsweise eine Modem- Erweiterungskarte zu einem System hinzugefügt und IRQ4 zugewiesen wird, die traditionell dem seriellen Port  1 zugewiesen ist , wird dies wahrscheinlich einen IRQ-Konflikt verursachen. Ursprünglich war IRQ 7 eine übliche Wahl für die Verwendung einer Soundkarte , aber später wurde IRQ 5 verwendet, als festgestellt wurde, dass IRQ 7 den Druckeranschluss (LPT1) stört. Die seriellen Ports werden häufig deaktiviert, um eine IRQ-Leitung für ein anderes Gerät freizugeben. IRQ 2/9 ist die traditionelle Interrupt-Leitung für einen MPU-401-MIDI-Port, dies steht jedoch in Konflikt mit dem ACPI- Systemsteuerungs-Interrupt (SCI ist auf Intel-Chipsätzen fest mit IRQ9 verdrahtet); Dies bedeutet, dass ISA MPU-401- Karten mit einem fest verdrahteten IRQ 2/9 und MPU-401-Gerätetreiber mit einem fest kodierten IRQ 2/9 nicht im Interrupt-gesteuerten Modus auf einem System mit aktiviertem ACPI verwendet werden können.

In einigen seltenen Fällen können sich zwei ISA- Geräte denselben IRQ teilen, solange sie nicht gleichzeitig verwendet werden. Um dieses Problem zu lösen, ermöglicht der spätere PCI-Bus die gemeinsame Nutzung von IRQ. PCI Express hat keine physischen Interrupt-Leitungen und verwendet Message Signaled Interrupts (MSI) für die Betriebssysteme, falls verfügbar.

Siehe auch

Verweise

Weiterlesen

Externe Links