AMD QDMA Subsystem for PCI Express( PCIe® )旨在利用多队列的概念实现高性能 DMA,以搭配 PCI Express® Integrated Block 一起使用,它与 DMA/Bridge Subsystem for PCI Express 的不同之处在于,后者使用多个 AMD 卡到主机( C2H )和主机到卡( H2C )通道。
本指南适用于面向 AMD UltraScale+™ 器件的 QDMA Subsystem for PCIe®。如果您希望获取完整版产品指南,请至文末扫描二维码进行下载。
功能特性
AMD UltraScale+™ 器件中支持 PCIe Integrated Block( PCIe 集成块)。
支持 64、128、256 和 512 位数据路径。
支持 x1、x2、x4、x8 或 x16 链路宽度。
支持 Gen1、Gen2 和 Gen3 链路速度。Gen4 用于 PCIE4C 和 PCIE4CE 块。
支持 AXI4 存储器映射接口和 AXI4-Stream 接口(按队列)。
2048 个队列集合
2048 个 H2C 描述符环。
2048 个 C2H 描述符环。
2048 个 C2H 完成( CMPT ) 环。
支持轮询模式(状态描述符写回)和中断模式。
中断
2048 个 MSI-X 矢量。
每个功能最多 8 个 MSI-X。
中断聚合。
C2H 串流中断调制。
C2H 串流完成队列条目合并。
通过用户逻辑进行描述符和 DMA 自定义
允许定制描述符格式。
流量管理。
支持含最多 4 个物理功能( PF )和 252 个虚拟功能( VF )的 SR-IOV
精简虚拟机管理器型号。
QID 虚拟化。
仅允许有特权的功能/物理功能对上下文和寄存器进行编程。
支持功能级别复位( FLR )。
邮箱。
基于队列的丰富可编程性,例如,AXI4 存储器映射接口对比 AXI4-Stream 接口。
概述
Queue-based Direct Memory Access( QDMA )基于队列的直接存储器访问子系统是基于 PCI Express® ( PCIe® )的 DMA 引擎,该引擎专为满足高带宽和高包计数数据传输需求而优化。QDMA 由 AMD UltraScale+™ Integrated Block for PCI Express 以及广泛的 DMA 和 Bridge 基础架构组成,可实现卓越的性能和灵活性。
QDMA Subsystem for PCIe 提供了广泛的设置和使用选项,大部分设置和选项均可按队列来选择,例如存储器映射 DMA 或串流 DMA、中断模式和轮询。该子系统提供了诸多选项,用于通过用户逻辑来自定义描述符和 DMA,以提供复杂的流量管理功能。
QDMA 引擎可凭借使用 QDMA 进行数据传输的主要机制来对主机操作系统所提供的指令(描述符)进行操作。QDMA 可使用描述符在主机到卡( H2C )方向或卡到主机( C2H )方向进行数据移动。您可基于逐个队列选择 DMA 流量 是进入 AXI4 存储器映射( MM )接口还是进入 AXI4-Stream 接口。此外,QDMA 可以选择实现 AXI4 MM 主端口或实现 AXI4 MM 从端口,从而允许 PCIe 流量完全绕过 DMA 引擎。
QDMA 与其他 DMA 产品的主要区别在于队列的概念。队列的概念源自高性能计算( HPC )互连的远程直接存储器访问( RDMA )的“队列集”概念。这些队列可以通过接口类型进行单独配置,并且能够在许多不同的模式下工作。基于单个队列加载 DMA 描述符的方式,每个队列均可提供极低开销的建立时间选项和连续更新功能。通过将队列作为资源分配给多个 PCIe 物理功能( PF )和虚拟功能( VF ),即可在各种多功能和虚拟化应用空间中使用同一个 QDMA 核与 PCI Express 接口。
QDMA架构
下图显示了 QDMA Subsystem for PCIe 的模块框图。
获取完整版《QDMA Subsystem for PCI Express 产品指南》,请扫描二维码进行下载。