APIC ( anglicky Advanced Programmable Interrupt Controller ) - vylepšený programovatelný řadič přerušení . Byl přidán do procesoru Pentium .
Advanced Programmable Interrupt Controller (APIC) byl navržen společností Intel® tak, aby byl schopen zpracovat velký počet přerušení, takže každé z nich lze programově nasměrovat na konkrétní sadu dostupných CPU (a podle toho upravit), aby podporovala komunikaci mezi procesory a eliminovat potřebu velkého počtu zařízení pomocí jedné přerušovací linky [1] .
APIC se používá ve vícejádrových/multiprocesorových systémech již od Intel Pentium ( jádro P54 ). Počínaje tímto procesorem byl každý následující dodáván s integrovaným Local APIC.
Výhody pokročilého řadiče přerušení:
APIC je podporován ve Windows od Windows NT 4.0 .
Současným trendem je odklon od IO APIC, jako jsou dráty IRQ, a směrem k přerušení signalizovaným zprávou .
APIC se skládá ze dvou modulů: eng. místní APIC a angličtina. IO APIC :
Vodiče IRQ ze zařízení jsou připojeny k IO APIC. Pro komunikaci lokálních APIC a IO APIC, ale i lokálních APIC různých jader mezi sebou, slouží sběrnice FSB víceprocesorového systému, která slouží i pro připojení procesorů a paměťového řadiče. Použití přední sběrnice pro komunikaci mezi APIC – samostatnými vodiči nebo speciálními typy transakcí – se u procesorů Pentium a Core lišilo od generace ke generaci .
Potřeba nového řadiče schopného nahradit programovatelný řadič přerušení (PIC) vyvstala s následujícími problémy:
Moderní IOAPIC podporují 24 hardwarových přerušení, ačkoli počet linek může být až 256 linek IRQ.
Rozšířený řadič přerušení byl poprvé použit na dvouprocesorových základních deskách, a to z důvodu složitějšího zpracování přerušení od různých zařízení (není zcela zřejmé, který procesor má na přerušení reagovat). Poté se na jednoprocesorových systémech začal používat rozšířený řadič přerušení – pro zařízení je k dispozici více přerušení (24 místo 16), plus několik rozšiřujících karet může sdílet společné přerušení.
Komplexní strategie správy přerušení založené na APIC jsou možné tam, kde jsou systémové APIC propojeny hierarchicky a doručují přerušení do CPU s vyváženým zatížením, spíše než zacílení na konkrétní CPU nebo sadu CPU [1] .