含内置 MSI-X 矢量表的 MSI-X 模式 - 1.3 简体中文

UltraScale+ 器件 Integrated Block for PCI Express 产品指南 (PG213)

Document ID
PG213
Release Date
2022-11-16
Version
1.3 简体中文

核可选择支持内置 MSI-X 矢量表,包括暂挂位阵列。

  • 如下图所示,用户应用首先以 cfg_interrupt_msi_int 中所设矢量数来断言 cfg_interrupt_msix_int 有效。
  • 核通过断言 cfg_interrupt_msi_sent 有效来发出信号,表明已接受中断。如果 cfg_interrupt_msix_vec_pending_status 已清除,则核会发送 MSI-X 存储器写入 TLP。否则,核会等待至清除功能掩码后再发送 MSI-X 存储器写入 TLP。
图 1. 含内置 MSI-X 矢量表的 MSI-X 信号
  • 除了生成中断外,用户应用也可以改为通过额外将 cfg_interrupt_msix_vec_pending 分别设置为 2'b012'b10 来查询或清除暂挂位阵列,如下图所示。
  • 查询和清除时,cfg_interrupt_msix_vec_pending_status 会在查询或清除前反映暂挂状态。
  • cfg_interrupt_msi_int[31:0] 是 MSI [31:0] 与 MSI-X [7:0] 之间的共享信号。
图 2. MSI-X 暂挂位阵列查询和清除
注释: 如果应用需生成 MSI/MSI-X 中断,且流量类位不等于 0 或者地址转换位不等于 0,则此类应用必须使用 RQ 接口来生成中断(存储器写入描述符)。