| Zeile 86: | Zeile 86: | ||
|} | |} | ||
| − | ==== | + | ==== ''Redirection Table'' ==== |
| + | |||
| + | ===== Aufbau eines Eintrags ===== | ||
{| {{prettytable}} | {| {{prettytable}} | ||
| Zeile 95: | Zeile 97: | ||
! Zugriffsart | ! Zugriffsart | ||
|- | |- | ||
| − | | 56-63 || || Destination || gibt die empfangende(n) [[Local APIC]](s) an | + | | 56-63 || || Destination || gibt die empfangende(n) [[Local APIC]](s) an, Erklärung siehe [[I/O APIC#Destination | ''Destination''-Tabelle]] || lesend/schreibend |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | | | ||
| − | |||
| − | | lesend/schreibend | ||
|- | |- | ||
| 17-55 || || || reserviert || | | 17-55 || || || reserviert || | ||
| Zeile 115: | Zeile 105: | ||
| 15 || || Trigger Mode || 0b = edge sensitive<br>1b = level sensitive || lesend/schreibend | | 15 || || Trigger Mode || 0b = edge sensitive<br>1b = level sensitive || lesend/schreibend | ||
|- | |- | ||
| − | | 14 || || Remote IRR || || nur lesend | + | | 14 || || Remote IRR || Dieses Bit ist nur gültig, wenn der ''Trigger Mode'' ''edge'' ist:<br> 0b = EOI mit passendem Interruptvektor wurde gesendet<br>1b = Interrupt wurde von der [[Local APIC]] bzw. den Local APICs angenommen || nur lesend |
|- | |- | ||
| 13 || INTPOL || Interrupt Input Pin Polarity || 0b = high active<br>1b = low active || lesend/schreibend | | 13 || INTPOL || Interrupt Input Pin Polarity || 0b = high active<br>1b = low active || lesend/schreibend | ||
| Zeile 126: | Zeile 116: | ||
| DELMOD | | DELMOD | ||
| Delivery Mode | | Delivery Mode | ||
| − | | Gibt an wie die empfangenden [[Local APIC]]s reagieren sollen | + | | Gibt an wie die empfangenden [[Local APIC]]s reagieren sollen, Erklärung siehe [[I/O APIC#Delivery Mode | ''Delivery Mode''-Tabelle]] || lesend/schreibend |
| + | |- | ||
| + | | 0-7 || INTVEC || Interrupt Vector || auszulösender Interruptvektor || lesend/schreibend | ||
| + | |} | ||
| + | |||
| + | ===== ''Destination'' ===== | ||
| + | |||
| + | {| {{prettytable}} | ||
| + | ! Wert von DESTMOD | ||
| + | ! Modus | ||
| + | ! Beschreibung | ||
| + | |- | ||
| + | | 0 || Physical Mode || Bits 56-59 enthalten eine APIC ID | ||
| + | |- | ||
| + | | 1 || Logical Mode || Bits 56-63 werden als Menge von Prozessoren interpretiert | ||
| + | |} | ||
| + | |||
| + | ===== ''Delivery Mode'' ===== | ||
{| {{prettytable}} | {| {{prettytable}} | ||
| Zeile 133: | Zeile 140: | ||
! Beschreibung | ! Beschreibung | ||
|- | |- | ||
| − | | 000b || Fixed || | + | | 000b || Fixed || Löst in den durch das ''Destination''-Feld ausgewählten Prozessoren einen normalen Interrupt aus. |
|- | |- | ||
| − | | 001b || niedrigste Priorität || | + | | 001b || niedrigste Priorität || Löst in dem Prozessor mit der momentan geringsten Priorität der durch das ''Destination''-Feld ausgewählten Prozessoren einen normalen Interrupt aus. |
|- | |- | ||
| − | | 010b || [[SMI]] || | + | | 010b || [[SMI]] || Es wird allen durch das ''Destination''-Feld ausgewählten Prozessoren ein SMI signalisiert. Dabei wird der Interruptvektor ignoriert, sollte aber aus Kompatibilitätsgründen auf 0 gesetzt werden. Der ''Trigger Mode'' muss ''edge'' sein. |
|- | |- | ||
| − | | 011b || reserviert | + | | 011b || reserviert || |
|- | |- | ||
| − | | 100b || [[NMI]] || | + | | 100b || [[NMI]] || Es wird allen durch das ''Destination''-Feld ausgewählten Prozessoren ein NMI signalisiert. Dabei wird der Interruptvektor ignoriert. Der ''Trigger Mode'' muss ''edge'' sein. |
|- | |- | ||
| − | | 101b || INIT || | + | | 101b || INIT || |
|- | |- | ||
| − | | 110b || reserviert | + | | 110b || reserviert || |
|- | |- | ||
| − | | 111b || ExtINT || | + | | 111b || ExtINT || Analog zu ''Fixed'' wird ein normaler Interrupt ausgelöst. Der Interruptvektor kommt allerdings nicht von der I/O APIC sondern wird von einem externen Controller (z.B. des [[PIC]]) geliefert. Der ''Trigger Mode'' muss ''edge'' sein. |
|} | |} | ||
| − | |||
| − | |||
| − | |||
| − | |||
== Programmierung == | == Programmierung == | ||