上图是APIC的组成,其中PIIX3是一个和之前标准中断控制器兼容的中断控制器,而Host-to-PCI桥是系统中与外设相连的桥(可能是北桥)。APIC包含IOAPIC和Local APIC,Local APIC包含在处理器内部,Local APIC用于处理器之间的相互中断,而IOAPIC处于系统芯片组中,IOAPIC用于处理外部IO提交的中断。IOAPIC和Local APIC通过APIC总线进行数据和控制的传送。不过,在IOAPIC和Local APIC之间传递的不是简单地电平信息,所有的中断在IOAPIC中编码成中断消息之后传递给Local APIC。
IOAPIC包含一系列可以变成的寄存器,这些寄存器中的IOREGSEL和IOWIN被编码到处理器的内存地址空间中,同时可以利用这两个寄存器间接访问其他的APIC寄存器。在Windows系统中将Local APIC的地址映射到映射到物理地址0XFFE00000,IOAPIC默认的物理地址是0XFEC00000。当然,物理地址最终还是要调整为虚拟地址进行访问的。Local APIC映射到内存地址空间的虚拟地址为0XFFFE0000,而IOAPIC映射的虚拟地址是0XFFD06000.

本文详细分析了ReactOS中APIC(高级可编程中断控制器)的结构,包括IOAPIC和Local APIC的角色,以及它们如何通过APIC总线通信。重点讨论了中断向量、任务优先级、IO重定位表的配置,并解释了如何在Windows系统中访问和管理这些寄存器。

759

被折叠的 条评论
为什么被折叠?



