APIC ( Engelska Advanced Programmable Interrupt Controller ) - förbättrad programmerbar avbrottskontroller . Den lades till i Pentium-processorn .
Advanced Programmable Interrupt Controller (APIC) designades av Intel® för att kunna hantera ett stort antal avbrott så att var och en kan programmeras riktas till en specifik uppsättning tillgängliga processorer (och modifieras därefter), för att stödja kommunikation mellan processorer och eliminera behovet av ett stort antal enheter med en enda avbrottslinje [1] .
APIC har använts i flerkärniga/multiprocessorsystem sedan Intel Pentium ( P54 kärna ). Från och med denna processor levererades varje efterföljande med en integrerad lokal APIC.
Fördelar med Advanced Interrupt Controller:
APIC har stöds på Windows sedan Windows NT 4.0 .
Den nuvarande trenden är att gå bort från IO APIC, som IRQ-ledningar, och mot meddelandesignalerade avbrott .
APIC består av två moduler: eng. lokal APIC och engelska. IO APIC :
IRQ-kablarna från enheterna är anslutna till IO APIC. För att kommunicera lokal APIC och IO APIC, såväl som lokal APIC av olika kärnor med varandra, används FSB -bussen i ett multiprocessorsystem, som också används för att ansluta processorer och en minneskontroller. Användningen av den främre bussen för att kommunicera mellan APIC:er - separata ledare, eller speciella typer av transaktioner - varierade från generation till generation av Pentium- och Core-processorer .
Behovet av en ny styrenhet som kan ersätta den programmerbara avbrottskontrollenheten (PIC) uppstod med följande problem:
Moderna IOAPICs stöder 24 hårdvaruavbrott, även om antalet linjer kan vara upp till 256 IRQ-linjer.
Den utökade avbrottskontrollern användes först på moderkort med dubbla processorer, på grund av den mer komplexa hanteringen av avbrott från olika enheter (det är inte helt självklart vilken processor som ska svara på ett avbrott). Sedan började den utökade avbrottskontrollern användas på system med en processor - fler avbrott blir tillgängliga för enheter (24 istället för 16), plus att flera expansionskort kan dela ett gemensamt avbrott.
Komplexa APIC-baserade strategier för avbrottshantering är möjliga där system-API:er är anslutna hierarkiskt och levererar avbrott till belastningsbalanserade processorer istället för att rikta in sig på en specifik processor eller uppsättning processorer [1] .