Pourquoi le contrôleur d'interruptions Intel 8259A PIC est utilisé dans les systèmes microprocesseurs
Rôle du 8259A Contrôleur d'Interruptions Programmable
Le 8259A est un gestionnaire d'interruptions dédié qui se place entre périphériques et CPU, permettant au processeur de gérer efficacement plusieurs événements asynchrones.
Six raisons clés
- Multiplexage interruptions : Une broche CPU INTR ← 8 entrées IRQ (IRQ0–IRQ7). Cascade de deux 8259A donne 15 IRQs (standard PC/AT).
- Arbitrage priorité : Modes entièrement imbriqué, rotatif, ou priorité spécifique. Interruptions critiques (timer, clavier, disque) préemptent les inférieures.
- Génération vecteur : Sur impulsion INTA, 8259A place vecteur d'interruption (0–255) sur bus données → CPU saute vers ISR correcte.
- Masquage & Contrôle front/niveau : Registre masque par IRQ (IMR) ; front vs niveau par canal (ICW1/ICW3).
- Extensibilité : Maître + esclave en cascade (sortie INT esclave → IRQ2 maître) échelonne à 64+ IRQs avec cascades multiples.
- Héritage & Coût : Ubiquitaire en archi PC/XT/AT ; milliards expédiés ; bon marché (0,50–1 $ volume) ; firmware bien connu.
Séquence d'initialisation (x86 PC)
; Maître 8259A à 20h/21h out 20h, 11h ; ICW1: front, cascade, ICW4 requis out 21h, 08h ; ICW2: base vecteur 08h (IRQ0→int 08h) out 21h, 04h ; ICW3: esclave sur IRQ2 (bit 2) out 21h, 01h ; ICW4: mode 8086, EOI normal ; Esclave 8259A à A0h/A1h out A0h, 11h out A1h, 70h ; ICW2: base vecteur 70h (IRQ8→int 70h) out A1h, 02h ; ICW3: ID esclave = 2 out A1h, 01h ; ICW4: mode 8086 ; Masque tout initialement out 21h, FFh out A1h, FFh
Remplacements modernes
- APIC / x2APIC : Intégré CPU (depuis Pentium/P6), 240+ vecteurs, interruptions signalées message (MSI/MSI-X).
- IOAPIC : Routeur interruptions niveau système (24/120 entrées).
- MSI/MSI-X : Périphérique écrit vecteur directement en mémoire — plus de lignes IRQ partagées.
Le 8259A est obsolète dans nouveaux designs mais reste dans support firmware/legacy et cursus embarqués comme contrôleur d'interruptions canonique.
