Windows系统中断机制深入解析
1. 基于线路与基于消息信号的中断
1.1 共享中断的问题
共享中断常常会导致较高的中断延迟,还可能引发稳定性问题。这是由于计算机上物理中断线数量有限所导致的副作用。例如,一个支持USB、Compact Flash、Sony Memory Stick、Secure Digital等多种格式的4合1媒体卡读卡器,其所有控制器通常会连接到一条中断线,然后由不同的设备驱动程序将其配置为共享中断向量。这样做会增加延迟,因为需要按顺序调用每个驱动程序来确定是哪个控制器为媒体设备发送了中断。
1.2 传统IRQ线路的局限性
为每个设备控制器分配独立的中断,并由一个驱动程序管理不同的中断,理论上是更好的解决方案。但对于单个设备使用四条传统IRQ线路,会很快导致IRQ线路耗尽。而且,PCI设备每个只能连接到一条IRQ线路,所以媒体卡读卡器即使想使用多条IRQ线路也无法实现。
1.3 IRQ线路的其他问题
通过IRQ线路生成中断还存在其他问题。IRQ信号管理不当可能会导致机器出现中断风暴或其他类型的死锁,因为信号会一直保持“高”或“低”状态,直到ISR确认它(此外,中断控制器通常还需要接收一个EOI信号)。如果由于某个错误导致这些情况未能发生,系统可能会永远处于中断状态,进一步的中断可能会被屏蔽,或者两者兼而有之。最后,基于线路的中断在多处理器环境中的可扩展性较差。在很多情况下,硬件会最终决定从即插即用管理器为该中断选择的可能处理器集合中,哪个处理器将被中断,而设备驱动程序对此无能为力。
1.4 消息信号中断(MSI)
PCI 2.2标准中首次引入
超级会员免费看
订阅专栏 解锁全文
865

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



