目录
PCI Express (PCIe) 的消息信号中断(Message Signaled Interrupts, MSI)是一种用于设备到主机处理器的中断通知机制。与传统的基于线的中断不同,MSI 通过写入特定地址的方式来发送中断信号,这种方式更加灵活且可以携带更多的信息。
MSI 机制原理
-
中断请求:当 PCIe 设备需要请求中断时,它会向配置好的 MSI 寄存器中写入数据。这个写操作会被转换成一个内存写事务,并通过 PCIe 总线传输到主机。
-
中断消息格式:MSI 中断消息包含了一个地址和一个数据部分。地址是预定义的,指向系统中断控制器或操作系统指定的位置;数据部分通常包含了中断向量号等信息,用于区分不同的中断源。
-
中断处理:当主机接收到 MSI 中断消息后,会根据消息中的地址和数据执行相应的中断服务例程(ISR)。由于每个设备或每个中断源都可以配置自己的 MSI 数据值,因此操作系统可以准确地识别出哪个设备发起了中断请求以及具体的中断类型。
-
多中断支持:MSI 还支持多个中断向量,这意味着单个设备可以通过 MSI 发送多种类型的中断,而