首页 理论教育深入剖析Linux内核与设备驱动-解析中断基本需求

深入剖析Linux内核与设备驱动-解析中断基本需求

【摘要】:图4-25中断在系统中的连接示意图从图4-25中可见,中断相关的硬件包括设备、中断控制器和处理器。这需要对中断控制器进行不同的操作逻辑来避免该类问题的发生,中断处理逻辑需要和中断控制器的操作相结合以使中断处理能正确的执行。以上主要还是功能需求,对于性能方面,中断处理都是有时间要求的,所以会有中断响应时间这一性能指标的要求。好的系统需要在大量上报中断时仍能有较小的中断响应时间。

对于中断系统的需求,首先要看看中断在系统中的硬件连接是怎么样的,如图4-25所示。

978-7-111-49426-3-Chapter04-109.jpg

图4-25 中断在系统中的连接示意图

从图4-25中可见,中断相关的硬件包括设备、中断控制器和处理器。处理器是和系统结构相关的,剩下的设备和中断控制器可能有各种不同的实现,所以中断处理框架需要能够适应各种设备和中断控制器的实现。在SMP的系统中,中断处理应该可以在任何或者指定的处理上执行,中断处理框架应该支持该功能。

另外,中断可以通过中断控制器进行级联,如图4-26所示。

978-7-111-49426-3-Chapter04-110.jpg(www.chuimin.cn)

图4-26 中断在系统中级联示意图

从图4-26中可见,中断控制器也可以分层次,而和CPU最近的中断控制器可以作为主中断控制器。这种情况下,主中断控制器中就有某些中断只是作为级联使用,而处理器要能够区分其他中断控制器上报的中断究竟来自哪个设备,并对中断控制器进行正确的操作。除了级联之外还可能有多个设备共享同一个中断(如PCI总线设备),这就要求中断处理框架也要支持多个设备共享中断的功能。

从中断触发信号的角度,不能限制中断触发的形式,所以中断处理框架还需要支持不同的中断触发方式。触发信号的方式不同,带来的处理逻辑也是不同的,比如边沿触发信号就不会产生假中断的问题,而电平触发则会有假中断的问题。这需要对中断控制器进行不同的操作逻辑来避免该类问题的发生,中断处理逻辑需要和中断控制器的操作相结合以使中断处理能正确的执行。

以上主要还是功能需求,对于性能方面,中断处理都是有时间要求的,所以会有中断响应时间这一性能指标的要求。好的系统需要在大量上报中断时仍能有较小的中断响应时间。而设备的差别,造成在中断处理中需要处理的数据量是有差异的,不能因为某些设备有大量数据需要处理就影响其他设备的中断响应时间,所以在中断处理框架中也要考虑这种性能的需求。