X86 谁以及如何在apic(高级可编程中断控制器)中生成矢量号?

X86 谁以及如何在apic(高级可编程中断控制器)中生成矢量号?,x86,64-bit,interrupt,apic,X86,64 Bit,Interrupt,Apic,Apic用于向处理器提供中断。因此,io设备如何使用它产生中断,谁生成用于选择合适中断处理程序的向量号,以及Apic如何区分io设备?当前系统中的I/O设备以两种方式之一生成中断:中断消息或PCI中断。PCI中断向I/O APIC发送信号,由I/O APIC将其转换为中断消息。因此,无论哪种方式,中断都作为中断消息进入APIC。矢量号是消息的一部分。操作系统将中断消息编程到I/O APIC或I/O设备中断消息表中 APIC不区分I/O设备。中断消息告诉它向量号和消息应该发送到哪个处理器,但不是消

Apic用于向处理器提供中断。因此,io设备如何使用它产生中断,谁生成用于选择合适中断处理程序的向量号,以及Apic如何区分io设备?

当前系统中的I/O设备以两种方式之一生成中断:中断消息或PCI中断。PCI中断向I/O APIC发送信号,由I/O APIC将其转换为中断消息。因此,无论哪种方式,中断都作为中断消息进入APIC。矢量号是消息的一部分。操作系统将中断消息编程到I/O APIC或I/O设备中断消息表中

APIC不区分I/O设备。中断消息告诉它向量号和消息应该发送到哪个处理器,但不是消息来自哪个设备

您可以在软件开发人员手册的APIC章节中看到中断消息格式


IOMMU、中断重新映射和发布的中断要复杂得多,我在这里不作详细介绍。

当前系统中的I/O设备以两种方式之一生成中断:中断消息或PCI中断。PCI中断向I/O APIC发送信号,由I/O APIC将其转换为中断消息。因此,无论哪种方式,中断都作为中断消息进入APIC。矢量号是消息的一部分。操作系统将中断消息编程到I/O APIC或I/O设备中断消息表中

APIC不区分I/O设备。中断消息告诉它向量号和消息应该发送到哪个处理器,但不是消息来自哪个设备

您可以在软件开发人员手册的APIC章节中看到中断消息格式


涉及IOMMU、中断重新映射和发布的中断的复杂性更高,我在这里不打算讨论。

以及如何分配矢量号(基于什么基础)?以及如何分配矢量号(基于什么基础)?