I/O Advanced Programmable Interrupt Controller — Änderungen 7132 → 7140

Zeile 86: Zeile 86:
 
|}
 
|}
  
−
==== Eintrag der ''Redirection Table'' ====
+
==== ''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
−
 
 
−
{| {{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
 
−
|}
 
−
 
 
−
| 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.
 
|}
 
|}
  
−
| lesend/schreibend
 
−
|-
 
−
| 0-7 || INTVEC || Interrupt Vector || auszulösender Interruptvektor || lesend/schreibend
 
−
|}
 
  
 
== Programmierung ==
 
== Programmierung ==