0
Apic用于给处理器提供中断,所以io设备如何使用它来产生中断,谁生成向量编号以选择合适的中断处理程序,以及如何区分不同的io设备?谁在apic(预先编程的中断控制器)中生成矢量编号?
Apic用于给处理器提供中断,所以io设备如何使用它来产生中断,谁生成向量编号以选择合适的中断处理程序,以及如何区分不同的io设备?谁在apic(预先编程的中断控制器)中生成矢量编号?
当前系统中的I/O设备以两种方式之一产生中断:中断消息或PCI中断。 PCI中断向I/O APIC发送信号,该信号将其转换为中断消息。因此无论哪种方式,中断都作为中断消息进入APIC。向量号码是消息的一部分。 OS将中断消息编程到I/O APIC或I/O设备中断消息表中。
APIC不区分I/O设备。中断消息告诉它向量号和消息应该传递到哪个处理器,但不知道消息来自哪个设备。
您可以在软件开发人员手册的APIC章节中看到中断消息格式。
涉及IOMMU,中断重映射和发布中断的复杂性要多得多,我不打算介绍到这里。
以及如何分配矢量数(以什么为基础)? –