APIC ( angolul Advanced Programmable Interrupt Controller ) – továbbfejlesztett programozható megszakításvezérlő . Hozzáadták a Pentium processzorhoz .
Az Advanced Programmable Interrupt Controllert (APIC) az Intel® úgy tervezte, hogy képes legyen nagyszámú megszakítás kezelésére, így mindegyik programozottan irányítható a rendelkezésre álló CPU-k meghatározott készletére (és ennek megfelelően módosítható), a processzorok és a processzorok közötti kommunikáció támogatására. megszünteti a nagyszámú eszköz szükségességét egyetlen megszakítási vonal használatával [1] .
Az APIC-t többmagos/többprocesszoros rendszerekben használják az Intel Pentium ( P54 mag ) óta. Ettől a processzortól kezdve minden további egy integrált helyi APIC-vel volt ellátva.
Az Advanced Interrupt Controller előnyei:
Az APIC a Windows NT 4.0 óta támogatott Windows rendszeren .
A jelenlegi tendencia az IO APIC-k, például az IRQ-vezetékek elhagyása, és az üzenetjelzésű megszakítások felé való elmozdulás .
Az APIC két modulból áll: eng. helyi APIC és angol nyelven. IO APIC :
Az eszközök IRQ vezetékei az IO APIC-hez csatlakoznak. A helyi APIC és IO APIC, valamint a különböző magokból álló helyi APIC egymással való kommunikálásához egy többprocesszoros rendszer FSB buszát használják, amely processzorok és memóriavezérlő összekapcsolására is szolgál. Az elülső busz használata az APIC-k – különálló vezetők vagy speciális típusú tranzakciók – közötti kommunikációhoz a Pentium és Core processzorok generációjáról változott .
A programozható megszakításvezérlő (PIC) helyettesítésére alkalmas új vezérlő iránti igény a következő problémákkal merült fel:
A modern IOAPIC-k 24 hardveres megszakítást támogatnak, bár a vonalak száma akár 256 IRQ-vonal is lehet.
A kiterjesztett megszakításvezérlőt először kétprocesszoros alaplapokon használták, a különféle eszközöktől érkező megszakítások bonyolultabb kezelése miatt (nem teljesen egyértelmű, hogy melyik processzornak kell reagálnia egy megszakításra). Ezután a kiterjesztett megszakításvezérlőt egyprocesszoros rendszereken kezdték használni - több megszakítás válik elérhetővé az eszközök számára (16 helyett 24), valamint több bővítőkártya osztozhat egy közös megszakításon.
Komplex APIC-alapú megszakításkezelési stratégiák lehetségesek, ahol a rendszer APIC-k hierarchikusan kapcsolódnak egymáshoz, és a megszakításokat a terheléselosztású CPU-khoz szállítják, ahelyett, hogy egy adott CPU-t vagy CPU-készletet céloznának meg [1] .