apic:Advanced Programmable Interrupt Controller高级
可编程中断控制器。
I/O APIC的组成为: 一组24条IRQ线,一张24项的中断重定向表(Interrupt Redirection Table),可编程
寄存器,通过APIC总线发送和接收APIC信息的一个信息单元。与8259A的IRQ引脚不同,
中断优先级与引脚号没有关系: 中断重定向表中的每一项都有可以被单独编程以指明
中断向量和优先级、目标处理器以及选择处理器的方式。重定向表中的信息用于把每个外部IRQ信号转换为一条消息,然后,通过APIC总线把消息发送给一个或者多个本地APIC单元。
系统中另一个重要的部份为 I/O APIC。系统中最多可拥有 8 个 I/O APIC。它们会收集来自 I/O 装置的 Interrupt 讯号且在当那些装置需要 interrupt 时传送讯息至本机 APIC。每个 I/O APIC 有一个专有的 interrupt 输入 (或 IRQ) 号码。Intel 的 I/O APIC 通常有 24 个输入 -- 其它的可能有多逹 64 个。而且有些机器拥有数个 I/O APIC,每一个分别有自己的输入号码,加起来一台机器上会有上百个 IRQ 可供装置 Interrupt 使用。
然而,系统中若没有 I/O APIC,那本机 APIC 就只能发送核间中断处理核心间的中断信号。像这样的状况下,Windows 2000 会还原使用 8259 PIC 。
CPU内部必须内置APIC单元。Intel多处理规范的核心就是高级
可编程中断控制器(Advanced Programmable Interrupt Controllers--APICs)的使用。CPU通过彼此发送中断来完成它们之间的通信。通过给中断附加动作(actions),不同的CPU可以在某种程度上彼此进行控制。每个CPU有自己的APIC(成为那个CPU的本地APIC),并且还有一个I/O APIC来处理由
I/O设备引起的中断,这个I/O APIC是安装在主板上的,但每个CPU上的APIC则不可或缺,否则将无法处理多CPU之间的中断协调。
外部设备的IRQ线连接到I/O APIC,因此,相对于本地APIC,I/O APIC起到
路由器的作用。