The interrupt vector is already stored in the interrupt vector table, so the CPU doesn't need to get it from a peripheral. If the interrupt is associated with an IO-APIC or similar device that can raise interrupts for different reasons, the interrupt handler will query that device to find out why it raised the interrupt. There's no special bus cycle for this, it's the same way a CPU would get any information from one of its peripherals.
Wie wird die CPU von APIC unterbrochen und wie werden gemeinsame Interrupts behandelt?
Jedes PCI
Gerät hat 4 Interrupt-Pins. Pins von vielen verschiedenen PCI
Geräten auf der Hauptplatine (eingebaute oder externe Geräte) werden IO-APIC
über einen programmierbaren Interrupt-Router an einen (Advanced programmable Interrupt Controller) geroutet . Das war also die Topologie.
Soweit ich weiß, wann ein Interrupt auftritt, IO-APIC
wird das signalisiert und es wird ein INT an die CPU angehoben, dann wird Magie ausgelöst und die CPU beginnt, eine ISR (Interrupt Service Routine) auszuführen.
Was war das für ein Zauber?
Was ist die Kommunikation, die zwischen der CPU und IO-APIC
dem INT erfolgen soll?
Ich meine, wie erhält die CPU den Interrupt-Vektor (ist dies ein spezieller PCI
Buszyklus?) Und was passiert, wenn derIRQ
wurde von vielen Geräten gemeinsam genutzt ( x86 Linux
als Plattformreferenz übernehmen)?
1 Antwort auf die Frage
Verwandte Probleme
-
2
Richtlinien zur Fehlerbehebung bei hoher Interrupt-Rate
-
2
Computer sehr langsam. Unterbricht durch das Dach
-
3
Was ist der Interrupt-Schlüssel für den Linux-Befehl "Weniger"?
-
1
Wie kann ich widersprüchliche IRQs neu zuweisen?
-
2
Unterschied zwischen IRQ- und Interrupt-Prioritätsstufe
-
1
Audio- und Audiogeräte teilen sich IRQ-Nummern, hohe Hardware-Interrupts, verzögertes Video
-
1
BIOS-Interrupts, Privilegien und Paging
-
4
Wie kommuniziert ein Betriebssystem mit anderen Hardwarekomponenten?
-
1
Stoppen in einem Dual-Core-Prozessor beide Prozessoren die Ausführung, wenn ein Interrupt auftritt?
-
1
x86 Ausnahmen und Flags