更新时间:2021-03-09 15:04
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起到路由器的作用。