在传统的pci中断体系中,每一个pci总线上的设备被分配一个特定的中断号,然后当设备需要中断cpu时,设备直接发出int信号,然后在cpu的inta引脚拉低的时候将自己的中断号放在数据总线上,一切都要设备自己负责,这一切的缘由一部分就是因为pci的并行性,实现事务很复杂,而pcie是串行的,很容易定义协议包,因此很容易就实现了由root complex代理中断的功能,因此设备也就可以动态的分配独占的中断号了,因为中断号的分配完全是软件解决的,而不再像传统pci那样是硬件解决的了,软件的最大特点就是其灵活性,因此pcie更适合大量设备的环境,中断处理程序再也不需要大量遍历共享中断号
PCI-E配置MSI中断流程解析
最新推荐文章于 2024-07-28 16:08:50 发布
PCI-E通过MSI中断实现动态分配中断号,简化中断处理。本文介绍了MSI中断的本质——内存读写事件,以及设备端和主控制器在MSI中断配置中的角色。在设备驱动初始化时,调用pci_enable_msi()分配中断号,再注册中断处理函数。PCI-E MSI中断在设备配置空间中定义,并通过capabilities list找到MSI节点,由主控制器设置地址和数据寄存器,设备触发内存写事务进行中断标识。
摘要由CSDN通过智能技术生成