8259A中断控制器在处理中断时如何处理中断?

时间:2015-03-21 14:45:07

标签: x86 operating-system interrupt-handling

我正在阅读"Intel 8259A" document,并且有一段我无法完全理解(第7页末尾):

  

当8259A PIC收到中断时,INT变为有效并开始中断应答循环。如果在两个INTA脉冲之间发生更高优先级的中断,则INT线在第二个INTA脉冲之后立即变为无效。在未指定的时间之后,再次激活INT线以表示等待服务的较高优先级中断。此非活动时间未指定,可能因部件而异。在设计使用8259A的系统时,设计人员应该注意这一点。建议遵循适当的异步设计技术。

据我所知,在第一次INTA(最初确认中断)之后和第二次INTA之前(CPU想要8位中断向量),如果更高优先级的中断线被“激活”(我不是电子工程师),INT线在未指定的时间段内,CPU被取消激活并重新激活。

我不明白的是:

  1. 作为一个简单的(OS内核)开发人员,这个行为对我有什么影响?

  2. 提到的“异步设计技术”是这些HARDWARE设计技术,还是人们编写内核的暗示?在我看来,如果中断在两个INTA脉冲之间到达,我就无能为力 - 这一切都发生在我真正无法作为内核开发人员控制的级别上,是吗?

1 个答案:

答案 0 :(得分:1)

关于问题1:

在 INTA脉冲之后发生的更高优先级中断与 INTA脉冲之间发生之间的唯一区别是 CPU时通知优先级较高的待处理中断。在后一种情况下,将有一个零或更多周期的延迟。这可能会影响时序关键代码,因为硬件设备可能会在CPU确认之前撤回其中断信号,从而导致虚假中断(请参阅第7页上引用文本之前的段落)。