XV6

APIC :Advanced Programmable Interrupt Controller(高级程序中断控制器)

APIC 是装置的扩充组合用来驱动 Interrupt 控制器。在目前的建置中,系统的每一个部分都是经由 APIC Bus 连接的。 “本机 APIC” 为系统的一部份,负责传递 Interrupt 至指定的处理器;举例来说,当一台机器上有三个处理器则它必须相对的要有三个本机 APIC。自 1994 年 的 Pentium P54c 开始 Intel 已经将本机 APIC 建置在它们的处理器中。实际建置了 Intel 处理器的电脑就已经包含了 APIC 系统的部分。

系统中另一个重要的部份为 IO APIC。系统中最多可拥有 8 个 IO APIC。它们会收集来自 IO 装置的 Interrupt 信号且在当那些装置需要 Interrupt 时传送讯息至本机 APIC。每个 IO APIC 有一个专有的 Interrupt 输入 (或 IRQ) 号码。Intel 过去与目前的 IO APIC 通常有 24 个输入 ,其它的可能有多达 64 个。而且有些机器拥有数个 IO APIC,每一个分别有自己的输入号码,加起来一台机器上会有上百个 IRQ 可供装置 Interrupt 使用。

然而,系统中若没有 IO APIC,那本机 APIC 就没有用处。像这样的状况下,Windows 2000 会还原使用 8259 PIC 。