| Zeile 1: | Zeile 1: | ||
| + | {{Stub}} | ||
Die '''I/O APIC''' (= '''I/O Advanced Programmable Interrupt Controller''') löst den [[PIC | Programmable Interrupt Controller]] in einem [[SMP]]- bzw. [[NUMA]]-System ab. Da der PIC die [[IRQ | IRQs]] ausschließlich an den BSP (= Bootstrap Processor) senden kann, ist in einem System mit mehreren Prozessoren eine I/O APIC notwendig. Darüber hinaus stellt die I/O APIC statt nur 16 IRQ-Leitungen wie der PIC normalerweise 24 IRQ-Leitungen zur Verfügung. Dies minimiert das [[IRQ-Sharing]] in Systemen mit sehr vielen Geräten. Außerdem ist die Programmierung der I/O APIC schneller, da sie nicht über I/O Ports, sondern über Speicherbereiche abläuft. | Die '''I/O APIC''' (= '''I/O Advanced Programmable Interrupt Controller''') löst den [[PIC | Programmable Interrupt Controller]] in einem [[SMP]]- bzw. [[NUMA]]-System ab. Da der PIC die [[IRQ | IRQs]] ausschließlich an den BSP (= Bootstrap Processor) senden kann, ist in einem System mit mehreren Prozessoren eine I/O APIC notwendig. Darüber hinaus stellt die I/O APIC statt nur 16 IRQ-Leitungen wie der PIC normalerweise 24 IRQ-Leitungen zur Verfügung. Dies minimiert das [[IRQ-Sharing]] in Systemen mit sehr vielen Geräten. Außerdem ist die Programmierung der I/O APIC schneller, da sie nicht über I/O Ports, sondern über Speicherbereiche abläuft. | ||
| Zeile 4: | Zeile 5: | ||
Die I/O APIC besitzt ein Indexregister (''I/O Register Select'' bzw. ''IOREGSEL'') und ein Datenregister (''I/O Window'' bzw. ''IOWIN''). Das Indexregister befindet sich an Offset 0x00 und das Datenregister an Offset 0x10 im Speicherbereich des I/O APIC, der bei einem PIIX3 Chipsatz bei 0xfec00xy00 (x und y werden mit dem APICBASE Register im [[PIIX3]] festgelegt) beginnt. Im Allgemeinen ist die Basisadresse der I/O APICs über die [[Symmetrisches_Multiprozessorsystem#Intel_Multiprocessor_Specification | Multiprocessor Tabellen]] bzw. die [[ACPI | ACPI-Tabellen]] auslesbar. Beide sind les- und schreibbar. Mit dem Indexregister wählt man ein internes Register der I/O APIC aus und kann dann über das Datenregister das interne Register auslesen bzw. beschreiben. | Die I/O APIC besitzt ein Indexregister (''I/O Register Select'' bzw. ''IOREGSEL'') und ein Datenregister (''I/O Window'' bzw. ''IOWIN''). Das Indexregister befindet sich an Offset 0x00 und das Datenregister an Offset 0x10 im Speicherbereich des I/O APIC, der bei einem PIIX3 Chipsatz bei 0xfec00xy00 (x und y werden mit dem APICBASE Register im [[PIIX3]] festgelegt) beginnt. Im Allgemeinen ist die Basisadresse der I/O APICs über die [[Symmetrisches_Multiprozessorsystem#Intel_Multiprocessor_Specification | Multiprocessor Tabellen]] bzw. die [[ACPI | ACPI-Tabellen]] auslesbar. Beide sind les- und schreibbar. Mit dem Indexregister wählt man ein internes Register der I/O APIC aus und kann dann über das Datenregister das interne Register auslesen bzw. beschreiben. | ||
| − | ==Weblinks== | + | == Weblinks == |
* [http://www.intel.com/design/chipsets/datashts/290566.htm Intel® 82093AA I/O Advanced Programmable Interrupt Controller (I/O APIC) Datasheet] | * [http://www.intel.com/design/chipsets/datashts/290566.htm Intel® 82093AA I/O Advanced Programmable Interrupt Controller (I/O APIC) Datasheet] | ||
* [http://www.intel.com/design/chipsets/specupdt/290710.htm Intel® 82093AA I/O Advanced Programmable Interrupt Controller (I/O APIC) Specification Update] | * [http://www.intel.com/design/chipsets/specupdt/290710.htm Intel® 82093AA I/O Advanced Programmable Interrupt Controller (I/O APIC) Specification Update] | ||
| Zeile 10: | Zeile 11: | ||
[[Kategorie:Hardware]] | [[Kategorie:Hardware]] | ||
[[Kategorie:Glossar]] | [[Kategorie:Glossar]] | ||
| − | |||