MSI 和 MSI-X 中断 - 4.1 简体中文

DMA/Bridge Subsystem for PCI Express 产品指南 (PG195)

Document ID
PG195
Release Date
2022-11-16
Version
4.1 简体中文

如果启用 MSI 或 MSI-X,那么 usr_irq_req 的一个或多个位断言有效会导致生成 MSI 或 MSI-X 中断。如果同时启用 MSI 和 MSI-X 功能,则会生成 MSI-X 中断。

usr_irq_req 位断言有效后,它必须保持断言有效,直至对应 usr_irq_ack 位断言有效,并且主机已处理并清除中断为止。usr_irq_ack 断言有效表示请求的中断已发送到 PCIe 块。这将确保主机的中断服务例程 (ISR) 在查询 IP 内的中断暂挂寄存器以判定中断源时,此寄存器能保持处于断言有效状态。您必须在用户应用中实现相应的机制才能知晓何时中断例程已处理完成。根据您的应用以及您使用此中断管脚的方式,可通过多种不同方式来执行此检测。在处理中断时,通常需在由主机软件清除、读取或修改的用户应用内实现寄存器(或寄存器阵列)。

配置寄存器可用于将 usr_irq_req 和 DMA 中断映射到 MSI 矢量或 MSI-X 矢量。对于 MSI-X 支持,同样有一个矢量表和 PBA 表。下图显示了此 MSI 中断。

注释: 此图仅显示 usr_irq_requsr_irq_ack 之间的握手。您的应用可能不会立即清除或处理此中断,在此情况下,您必须使 usr_irq_req 保持断言有效直至完成 usr_irq_ack 为止。
图 1. MSI 中断

下图显示了 MSI-X 中断。

注释: 此图仅显示 usr_irq_requsr_irq_ack 之间的握手。您的应用可能不会立即清除或处理此中断,在此情况下,您必须使 usr_irq_req 保持断言有效直至完成 usr_irq_ack 为止。
图 2. MSI-X 中断

欲知详情,请参阅 中断处理