字画网站模板,威县做网站哪儿便宜,镇江住房建设网站,网站建设开题报告中的问题全文来自Intel手册#xff08;见参考1#xff09;#xff1a;Intel? 82093AA I/O Advanced Programmable Interrupt Controller (I/O APIC) Datasheet 注意#xff1a;下文中已经指出手册中的对应页面和章节#xff0c;请对照手册原文看#xff0c;任何个人理解错误见参考1Intel? 82093AA I/O Advanced Programmable Interrupt Controller (I/O APIC) Datasheet 注意下文中已经指出手册中的对应页面和章节请对照手册原文看任何个人理解错误请包涵。 一以下内容来自P93.2. IOAPIC Registers 1IOAPIC标识寄存器 偏移00h 默认值00h 属性可读/写 字段27:24为IOAPIC标识
2IOAPIC版本寄存器 偏移01h 默认值00170011h 属性只读 字段23:16为最大转换条目数Maximum Redirection Entry该值等于输入引脚数目减1。取值范围为0到239。82093AA的该值为17h。 7:0为APIC版本号。
3IO转换表寄存器 偏移 10-11h (IOREDTBL0) 28-29h (IOREDTBL12) 12-13h (IOREDTBL1) 2A-2Bh (IOREDTBL13) 14-15h (IOREDTBL2) 2C-2Dh (IOREDTBL14) 16-17h (IOREDTBL3) 2E-2Fh (IOREDTBL15) 18-19h (IOREDTBL4) 30-31h (IOREDTBL16) 1A-1Bh (IOREDTBL5) 32-33Fh (IOREDTBL17) 1C-1Dh (IOREDTBL6) 34-35h (IOREDTBL18) 1E-1Fh (IOREDTBL7) 36-37h (IOREDTBL19) 20-21h (IOREDTBL8) 38-39h (IOREDTBL20) 22-23h (IOREDTBL9) 3A-3Bh (IOREDTBL21) 24-25h (IOREDTBL10) 3C-3Dh (IOREDTBL22) 26-27h (IOREDTBL11) 3E-3Fh (IOREDTBL23) 默认值xxx1 xxxx xxxx xxxxh 属性可读/写
这是一系列我特别关注的寄存器有24个每一个寄存器专注于一个中断输入信号的相关设置。与8259A的IRQ引脚不同的是IO APIC的中断优先级与中断输入信号物理位置无关而是由软件检查中断向量来确定。通过这些的寄存器对于每一个中断信号操作系统可以单独指定它的信号极性、边缘触发还是水平触发以及目标和投递模式等。
如果一个中断的时间超过一个CPU时钟周期CLK cycle那么IO APIC将使用边缘触发方式。中断输入是异步进行的因此必须保证设置和控制的总时间至少在一个CPU时钟输入的上升边缘内。一旦检测到某个中断信号IO APIC内的递交状态位就将被置位。直到IO APIC通过APIC总线把该信号投递到目标字段所指定的对应目标并被接受为止那个中断输入引脚都不会被再次检测识别到新信号。只有在对应的目标APIC将IRRInterrupt Request Register位从0修改为1时也就是对应中断已经被目标APIC处理掉而不再处于pending未决状态时那个中断输入引脚上的新信号才会被重新检测到。
字段 63:56Destination Field—R/W指定接收该中断的目标lapic。 Destination Mode IOREDTBLx[11] Logical Destination Address 0, Physical Mode IOREDTBLx[59:56] APIC ID 1, Logical Mode IOREDTBLx[63:56] Set of processors
如果是Physical Mode见字段11那么该字段包含的是APIC ID号因为“在P6和奔腾处理器上lapic的ID号只占4bit”所以这里也只占59:56的4bit。但是“在奔四和至强处理器上xAPIC将ID号扩展到8bit”因此对应到这里应该也是8bit。不过这个文档上暂时没有说明。 如果是Logical Mode那么该字段包含的是处理器组具体如何匹配目标还涉及到每个lapic的DFRDestination Format Register和LDRLogical Destination Register寄存器。
55:17保留。
16Interrupt Mask—R/W中断掩码。 如果该位设置为1那么对应的中断信号被屏蔽masked。被屏蔽中断引脚上发生的边缘触发Edge-sensitive中断信号将被忽略即不会被投递和保持pending未决。被屏蔽水平触发level-sensitive引脚上发生的水平断言Level-asserts和取消negates操作也都被忽略而不会产生负面作用。在中断被lapic接受后修改掩码位从非屏蔽状态到屏蔽状态对那个中断即已被lapic接受的中断没有任何影响这与在中断递交到处理器之前设备撤回了中断的情况类似。在中断信息被lapic单元接收但还未分配到处理器的这段时间内如果设置了该掩码位那么需要由软件来负责处理这种情况。 如果该位设置为0那么对应的中断信号没有被屏蔽边缘或水平中断都将被投递到目标lapic。
15Trigger Mode—R/W触发模式。 1为水平触发0为边缘触发。
14Remote IRR—RORemote Interrupt Request Register。 该bit位仅供水平触发中断使用。对于边缘触发中断而言该bit位无意义。 当lapic接受io apic投递的水平触发中断时该bit位被设置为1。当一个来之lapic的带有匹配中断向量的EOI消息被io apic接收时该bit位被设置为0。
13Interrupt Input Pin Polarity (INTPOL)—R/W中断输入引脚极性。 0表示高活跃High active1表示低活跃Low active。
12Delivery Status (DELIVS)—RO投递状态。 标识中断的当前投递状态。0表示当前没有活动的中断投递1表示当前正在进行中断投递。
11Destination Mode (DESTMOD)—R/W目标模式。 该字段用于解释字段Destination63:56如果该字段为0那么字段Destination里存储的是APIC ID号如果该字段为1那么在每个lapic的寄存器DFRDestination Format Register和LDRLogical Destination Register的控制之下对字段Destination进行匹配来识别目标。
10:8Delivery Mode (DELMOD)—R/W投递模式。 由该字段来指定目标lapic如何接收处理这个信号。值得注意的是有些投递模式必须与特定的触发模式联合使用。 000Fixed通过INTR信号线将信号投递到所有目标处理器。边缘触发和水平触发都可以使用。 001Lowest Priority通过INTR信号线将信号投递到目标lapic中当前执行在最低优先权限的处理器。边缘触发和水平触发都可以使用。 010SMISystem Management Interrupt系统管理中断。只能使用边缘触发模式。中断向量信息被忽略但为了向前兼容必须设置为全0。 011保留。 100NMI通过NMI信号线将信号投递到所有目标处理器。中断向量信息被忽略。即便编程设置为水平触发中断NMI也会被当做边缘触发中断对待。虽然如此但为了更正确的操作最好将其设置为边缘触发方式。 101INIT通过INIT信号线将信号投递到所有目标处理器。所有接收到该信号的lapic需保证它们处于INIT状态。即便编程设置为水平触发中断INIT也始终会被当做边缘触发中断对待。虽然如此但为了更正确的操作最好将其设置为边缘触发方式。 110保留。 111ExtINT通过INTR信号线将信号投递到所有目标处理器就如同该信号来之一个外部连接的8259A型中断控制器。只能使用边缘触发。
7:0Interrupt Vector (INTVEC)—R/W中断向量。 指定当前中断的中断向量。取值范围为10h到FEh。
参考 1Intel? 82093AA I/O Advanced Programmable Interrupt Controller (I/O APIC) Datasheethttp://www.intel.com/design/chipsets/datashts/290566.htm Intel? 82093AA I/O Advanced Programmable Interrupt Controller (I/O APIC) Specification Updatehttp://www.intel.com/design/chipsets/specupdt/290710.htm