当前位置: 首页 > news >正文

自研Xilinx高性能PCIe多通道DMA控制器

1 介绍

基于PCI Express Integrated Block,Multi-Channel PCIe QDMA Subsystem实现了使用DMA地址队列的独立多通道、高性能Continous或Scather Gather DMA,提供FIFO/AXI4-Stream用户接口。

基于PCI Express Integrated Block,Multi-Channel PCIe RDMA Subsystem实现了使用DMA Ring缓冲的独立多通道、高性能/超低延时/超低抖动Continous Ring DMA,提供FIFO/AXI4-Stream用户接口。

在自研DMA控制器和自研PCIe驱动的加持下,总体的PCIe-DMA效率高达88%,PCIe 3.0 x16下DMA带宽高达14GB/s,PCIe 3.0 x8下DMA带宽高达7.1GB/s。

联系方式:neteasy163z@163.com

1.1 特性

Ø 支持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中断

Ø 连续描述符的块获取

Ø 中断或查询模式

1.2 应用

本内核体系结构支持广泛的计算和通信目标程序应用,强调性能、成本、可扩展性、功能可扩展性和关键任务可靠性。典型应用包括:

● 数据通信网络

● 电信网络

● 宽带有线和无线应用

● 网络接口卡

● 用于各种应用程序的服务器add-in card

典型应用如下图所示:

图 1 Multi-Channel PCIe QDMA&RDMA Subsystem典型应用:8通道视频采集和视频显示

2 概述

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概述

2.1 特性概要

基于描述符提供的信息:源地址,目的地址和传输数据长度,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通道数据搬移过程中产生的控制或状态信号

3 产品规格

结合Integrated Block for PCI Express IP,Multi-Channel PCIe QDMA&RDMA Subsystem为PCIe提供了一个高性能的DMA解决方案。

3.1 性能

Endpoint配置参数:Max Payload Size=256-byte,Max Read Request Size=512-byte

8-Channel PCIe-SGQDMA Subsystem,DMA Transfer Length = 4MB

表1 PCIe 3.0 x16 C2H DMA速率

DMA0DMA1DMA2DMA3DMA4DMA5DMA6DMA7
速率1690MB/s1690MB/s1690MB/s1690MB/s1690MB/s1690MB/s1690MB/s1690MB/s

表2 PCIe 3.0 x16 H2C DMA速率

DMA0DMA1DMA2DMA3DMA4DMA5DMA6DMA7
速率1700MB/s1700MB/s1700MB/s1700MB/s1700MB/s1700MB/s1700MB/s1700MB/s

表3 PCIe 3.0 x8 C2H DMA速率

DMA0DMA1DMA2DMA3DMA4DMA5DMA6DMA7
速率890MB/s890MB/s890MB/s890MB/s890MB/s890MB/s890MB/s890MB/s

表4 PCIe 3.0 x8 H2C DMA速率

DMA0DMA1DMA2DMA3DMA4DMA5DMA6DMA7
速率890MB/s890MB/s890MB/s890MB/s890MB/s890MB/s890MB/s890MB/s

表5 PCIe 3.0 x4 C2H DMA速率

DMA0DMA1DMA2DMA3DMA4DMA5DMA6DMA7
速率440MB/s440MB/s440MB/s440MB/s440MB/s440MB/s440MB/s440MB/s

表6 PCIe 3.0 x4 H2C DMA速率

DMA0DMA1DMA2DMA3DMA4DMA5DMA6DMA7
速率445MB/s445MB/s445MB/s445MB/s445MB/s445MB/s445MB/s445MB/s

表7 PCIe 2.0 x8 C2H DMA速率

DMA0DMA1DMA2DMA3DMA4DMA5DMA6DMA7
速率445MB/s445MB/s445MB/s445MB/s445MB/s445MB/s445MB/s445MB/s

表8 PCIe 2.0 x8 H2C DMA速率

DMA0DMA1DMA2DMA3DMA4DMA5DMA6DMA7
速率445MB/s445MB/s445MB/s445MB/s445MB/s445MB/s445MB/s445MB/s

表9 PCIe 2.0 x4 C2H DMA速率

DMA0DMA1DMA2DMA3DMA4DMA5DMA6DMA7
速率220MB/s220MB/s220MB/s220MB/s220MB/s220MB/s220MB/s220MB/s

表10 PCIe 2.0 x4 H2C DMA速率

DMA0DMA1DMA2DMA3DMA4DMA5DMA6DMA7
速率225MB/s225MB/s225MB/s225MB/s225MB/s225MB/s225MB/s225MB/s

3.2 资源

8-Channel PCIe-SGQDMA Subsystem

表11 PCIe 3.0 x16 DMA Subsystem资源

LUTsFFsBRAMsPCIe
资源469851019381501

表12 PCIe 3.0 x8 DMA Subsystem资源

LUTsFFsBRAMsPCIe
资源2664751071841

表13 PCIe 3.0 x4 DMA Subsystem资源

LUTsFFsBRAMsPCIe
资源1767135598441

表14 PCIe 2.0 x8 DMA Subsystem资源

LUTsFFsBRAMsPCIe
资源2530136973661

表15 PCIe 2.0 x4 DMA Subsystem资源

LUTsFFsBRAMsPCIe
资源1980729320981

1-Channel PCIe-CQDMA Subsystem

表16 PCIe 3.0 x8 DMA Subsystem资源

LUTsFFsBRAMsPCIe
资源81221933181

表17 PCIe 2.0 x8 DMA Subsystem资源

LUTsFFsBRAMsPCIe
资源79111177161

表18 PCIe 2.0 x4 DMA Subsystem资源

LUTsFFsBRAMsPCIe
资源47476479211
http://www.lryc.cn/news/247725.html

相关文章:

  • 人工智能原理复习--知识表示(二)
  • 【SpringBoot篇】登录校验 — JWT令牌
  • leetcode每日一题34
  • 王者荣耀游戏制作
  • springboot post添加URL添加参数
  • 『 MySQL数据库 』插入查询结果
  • 【笔记】小白学习电路维修
  • linux简述进程
  • 由于设置了全局 QWidget 背景导致QT QCalendarWidget 表态背景异常
  • 数据库的重要你了解多少?如何保障数据库的安全?
  • 距离“全自动”漏洞挖掘又近了一步!腾讯安全大数据实验室论文入选ACM CCS 2023
  • docker搭建rabbit集群
  • 西南科技大学C++程序设计实验一(C++基础知识)
  • Rust内存布局
  • android 12 添加菜单
  • Map 的 5 种遍历方式
  • Linux的基本指令 ( 一 )
  • 【深度学习】学习率及多种选择策略
  • 具有“真实触感”的动捕数据手套mhand pro,提供更精确的动作捕捉
  • Mongodb使用killCursors停止运行的cursor
  • 电脑风扇转一下停一下,无法正常开机问题解决
  • 无需部署服务器,如何结合内网穿透实现公网访问导航页工具Dashy
  • Go GORM简介
  • 前端量子纠缠 效果炸裂 multipleWindow3dScene
  • 第十七章 处理空字符串和 Null 值 - XMLIGNORENULL、XMLNIL 和 XMLUSEMPTYELEMENT 的详细信息
  • Asp.net core WebApi 配置自定义swaggerUI和中文注释
  • Xilinx SDK获取代码运行时间
  • 【力扣】189. 轮转数组
  • Spring 拾枝杂谈—Spring原生容器结构剖析(通俗易懂)
  • Java核心知识点整理大全22-笔记