| |||
Multi-Channel PCIe QDMA&RDMA IP
基于PCI Express Integrated Block,Multi-Channel PCIe QDMA Subsystem实现了使用DMA地址队列的独立多通道、高性能Continous(CDMA)或Scather Gather DMA(SGDMA),提供fifo/AXI4-Stream用户接口。
基于PCI Express Integrated Block,Multi-Channel PCIe RDMA Subsystem实现了使用DMA Ring缓冲的独立多通道、高性能/超低延时/超低抖动Continous Ring DMA,提供FIFO/AXI4-Stream用户接口。
Ø 支持Ultrascale+,Ultrascale,7 Series的PCI Express Integrated Block
Ø 支持64,128,256,512-bit数据路径
Ø 64-bit源地址,目的地址,和描述符地址
Ø 多达8个独立的host-to-card(H2C/Read)数据通道或H2C DMA
Ø 多达8个独立的card-to-host(C2H/Write)数据通道或C2H DMA
Ø AXI4-Stream/FIFO用户接口(每个通道都有自己的AXI4-Stream/FIFO接口)
Ø 每个DMA引擎支持DMA地址队列,队列深度可达32
Ø 每个DMA引擎支持DMA Ring缓冲,Ring缓冲深度和个数可配置
Ø RDMA的超低延时和超低抖动性
Ø H2C DMA支持视频显示定时时序输入控制
Ø AXI4-Lite Master接口允许PCIe通信绕过DMA引擎
Ø Scather Gather描述符列表支持无限列表大小
Ø 每个描述符的最大传输长度为4GB
Ø MSI中断
Ø 连续描述符的块获取
Ø 中断或查询模式
本内核体系结构支持广泛的计算和通信目标程序应用,强调性能、成本、可扩展性、功能可扩展性和关键任务可靠性。典型应用包括:
● 数据通信网络
● 电信网络
● 宽带有线和无线应用
● 网络接口卡
● 用于各种应用程序的服务器add-in card
典型应用如下图所示:
图 1 Multi-Channel PCIe QDMA&RDMA Subsystem典型应用:8通道视频采集和视频显示
Multi-Channel PCIe QDMA&RDMA Subsystem作为一个高性能DMA数据搬移器,内核通过AXI4-Stream/FIFO接口直接连接RTL逻辑。使用提供的字符驱动程序,AXI4-Stream/FIFO接口可用于PCIe地址空间和AXI地址空间之间的高性能数据搬移。除了基本的DMA功能,DMA支持多达8个独立的upstream和downstream通道,每个通道支持深度为32的DMA地址队列,以及深度和个数可配置的DMA Ring缓冲,另外还允许PCIe通信绕过DMA引擎。
图 2 Multi-Channel PCIe QDMA&RDMA Subsystem概述
基于描述符提供的信息:源地址,目的地址和传输数据长度,Multi-Channel PCIe QDMA&RDMA Subsystem实现Host存储器和PCIe DMA子系统之间的数据搬移。这些DMA可以同时是Host to Card(H2C)和Card to Host(C2H)传输。每个DMA通道对应各自的AX4-Stream/FIFO接口,DMA从Host存储器获取并解析描述符链表,基于描述符链表信息完成自己通道的数据传输,然后使用MSI中断发出描述符完成或错误的信令。内核也提供多达16个输出到Host的用户中断信号。
主机可以通过以下2个接口访问用户逻辑:
Ø AXI4-Lite Master配置接口:这个接口是一个固定的32-bit端口,用于对性能要求不高的用户配置和状态寄存器的访问
Ø User Register:这个接口是多个32-bit向量信号和1-bit信号,这些信号来自对应DMA通道数据搬移过程中产生的控制或状态信号
结合Integrated Block for PCI Express IP,Multi-Channel PCIe QDMA&RDMA Subsystem为PCIe提供了一个高性能的DMA解决方案。
Endpoint配置参数:
1. Max Payload Size=256-byte
2. Max Read Request Size=512-byte
3. DMA Transfer Length = 4MB
C2H & H2C DMA性能:
1. PCIe 3.0 x16,C2H DMA和H2C DMA速度大于13.5GB/s
2. PCIe 3.0 x8,C2H DMA和H2C DMA速度大于7GB/s
3. PCIe 2.0 x8,C2H DMA和H2C DMA速度大于3.6GB/s
4. PCIe 2.0 x4,C2H DMA和H2C DMA速度大于1.7GB/s
表1 PCIe 3.0 x16 DMA Subsystem资源(8通道)
LUTs | FFs | BRAMs | PCIe | |
资源 | 42714 | 76958 | 165.5 | 1 |
表2 PCIe 3.0 x8 DMA Subsystem资源(8通道)
LUTs | FFs | BRAMs | PCIe | |
资源 | 24879 | 40208 | 93 | 1 |
表3 PCIe 2.0 x8 DMA Subsystem资源(8通道)
LUTs | FFs | BRAMs | PCIe | |
资源 | 26614 | 33766 | 70 | 1 |
表4 PCIe 2.0 x4 DMA Subsystem资源(8通道)
LUTs | FFs | BRAMs | PCIe | |
资源 | 20966 | 29623 | 66 | 1 |
表5 PCIe 3.0 x16 DMA Subsystem资源(1通道)
LUTs | FFs | BRAMs | PCIe | |
资源 | 22107 | 46116 | 37 | 1 |
表6 PCIe 3.0 x8 DMA Subsystem资源(1通道)
LUTs | FFs | BRAMs | PCIe | |
资源 | 8391 | 16911 | 17 | 1 |
表7 PCIe 2.0 x8 DMA Subsystem资源(1通道)
LUTs | FFs | BRAMs | PCIe | |
资源 | 10795 | 13770 | 10 | 1 |
表8 PCIe 2.0 x4 DMA Subsystem资源(1通道)
LUTs | FFs | BRAMs | PCIe | |
资源 | 6270 | 8588 | 8 | 1 |
(1) Windows WDF (Queue or Non-Queue,Ring)
(2) Linux (Queue or Non-Queue,Ring)