- 论坛徽章:
- 11
|
回复 tempname2
C,原来freeze有效时不再锁存IRR。那8259跟APIC就没区别了。
tempname2 发表于 2011-11-07 17:15
freeze有效时确实时锁存 IRR, 就我目前理解, IRR锁存, 只会发生在 INTA1/INTA2之间
这个appropriate应该是说,同等优先级及低优先级IRQ产生的中断不会向CPU发出INT,mask掉的IRQ产生的中断也不会向CPU发出INT。既然不向CPU发出INT,那就不谈接下来的INTA了,按照那张图,IRR也没有机会去锁存那个IRQ信号了。对于edge-triggered中断,按照Linux的做法,处理一个中断时,相同中断再度来临就会丢失?如果实现带优先级中断模型时,不需要软件的ack,按照上面的假设,处理一个中断时,低优先级中断也丢失了?好像不太能可能呀。
如果是相同中断, 那么显然只需要考虑发生在 ack 之后的, 发生在之前的, 与正在处理的中断可以合并; 发生在之后的, 基本不可能, 因为 ack 禁用了中断线。 即便硬靠上SMP, 也有 IRQ_PENDING 机制处理。
带优先级中断模型时,不需要软件的ack 是啥意思, 不需要软件ACK 应该是AEOI吧, 那应该是无优先级模型。
如果是 ack 发送太慢, 低优先级中断脉冲时间上又太短, 真有丢失可能, 这种情形下应该会出现 IRQ7。 |
|