IRQs und Interrupt-Vektortabelle

IRQs und Interrupt-Vektortabelle

Ich habe viel über IRQs gelesen und es scheint, dass es widersprüchliche und veraltete Informationen gibt. Einige davon stammen noch aus der Zeit von Windows 95. Folgendes verwirrt mich:

  1. Werden sowohl Software- als auch Hardware-Interrupts von der Interrupt-Vektortabelle verwaltet und weitergeleitet? Wenn nicht, wie werden sie dann unterschiedlich gesteuert?

  2. Ich habe gelesen, dass es einen Unterschied zwischen den IRQs im PCI-Modus und im ISA-Modus gibt. Stimmt das? Wenn ja, wie wird der Modus eingestellt und welche Unterschiede gibt es zwischen den beiden Modi?

  3. Da wir jetzt PCI Express haben, stellt sich die Frage, ob IRQs im PCI-Modus verwendet werden (sofern vorhanden) und wie diese funktionieren (in Bezug auf die Unterbrechung).

EDIT 4. Wenn man sich dieses Bild ansieht, sieht es so aus, als ob es viele IRQs gibt und dass sie dem Speicher zugeordnet sind. Was bedeutet das? Es gibt weit mehr als 16 IRQs. Ich weiß, dass APIC mehr zulässt, aber so viele?

Bildbeschreibung hier eingeben

Dank im Voraus :-)

Antwort1

Es gibt keine unterschiedlichen Modi, es gibt unterschiedliche Hardware auf dem alten ISA-Bus und dem PCI-Bus. Der ISA-Bus stellte 16 IRQ-Leitungen auf dem Bus bereit, die Geräte verwenden konnten, um Aufmerksamkeit zu signalisieren. Der programmierbare Interrupt-Controller (tatsächlich ein Paar kaskadierter 8259A-Chips) reagierte auf diese Leitungen, indem er ihnen Priorität einräumte und der CPU signalisierte, wenn eine aktiv war. Dies veranlasste die CPU, eine Interrupt-Serviceroutine aufzurufen. IRQs 0-7 lösten int 8-F aus und IRQs 8-15 lösten int 70-77 aus. Interrupts konnten auch über den Software-Int-Befehl ausgelöst werden und veranlassten die CPU, eine Routine aufzurufen, auf die der entsprechende Steckplatz in der Interrupt-Vektortabelle zeigte.

Anstelle von 16 IRQ-Leitungen, die von allen Geräten am Bus gemeinsam genutzt werden, stellte PCI jedem Steckplatz am Bus 4 verschiedene IRQ-Leitungen mit der Bezeichnung INTA-INTD zur Verfügung, sodass jedes Gerät bis zu 4 verschiedene IRQs für den eigenen Gebrauch haben konnte. In der Praxis verwenden Geräte nur INTA, das die Hardware an bestimmte IRQs weiterleitet.

Die Zahlen, die Sie im Bild sehen, sind keine Speicheradressen, sondern lediglich die hexadezimale Darstellung der IRQ-Nummer.

Der APIC unterstützt 256 Interrupt-Vektoren.

verwandte Informationen