描述符旁路模式写回/中断 - 4.0 简体中文

QDMA Subsystem for PCI Express v4.0 产品指南 (PG302)

Document ID
PG302
Release Date
2022-05-20
Version
4.0 简体中文

在旁路模式下,用户逻辑对主机更新拥有显式控制权,并通过标记向用户逻辑返回响应。将每个描述符提交给存储器映射引擎(H2C 和 C2H)或 H2C 串流 DMA 引擎的描述符旁路输入端口后,会出现 CIDX 和 sdi 字段。此 CIDX 用于识别在描述符完成时生成的任何状态更新(主机写回、标记响应或合并中断)中,有哪个描述符已完成。如果描述符的 sdi 字段为输入,那么当 wbk_en 位完成置位后将对主机生成写回。如果 sdi 位已置位,并且上下文 irq_enirq_arm 位也已置位,那么还可发送中断。

如果已启用中断,则用户逻辑必须监控 irq_arm 的流量管理器输出。为该队列观测 irq_arm 位之后,将向 DMA 发送含 sdi 位的描述符。发送含 sdi 位的描述符后,将先再次执行 irq_arm 断言有效,然后才会发送另一个含 sdi 位的描述符。如果在尚未能正确观测到 arm 位时,用户就对 sdi 位进行置位,那么可能无法发送中断,并且软件可能会无限期挂起以等待中断。未启用中断时,对于 sdi 位的置位则不存在任何限制。但写回事件过多可能严重降低描述符引擎性能,并耗用针对主机的写入带宽。

描述符完成定义如下:如描述符数据传输已完成并且其写入数据在 AXI4(对应 AXI MM 为 H2C bresp,对应 ST 则为 Valid/Ready)上已得到确认,或者已被 PCIe 控制器的传输事务层接受并用于发射 (C2H MM),即表示描述符完成。