当前位置: 首页 > 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

相关文章:

自研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…...

人工智能原理复习--知识表示(二)

文章目录 上一篇产生式表示法推理方式 结构化表示语义网络语义网络表示知识的方法和步骤应用题目 框架表示法下一篇 上一篇 人工智能原理复习–知识表示(一) 产生式表示法 把推理和行为的过程用产生式规则表示,所以又称基于规则的系统。 产…...

【SpringBoot篇】登录校验 — JWT令牌

文章目录 🌹简述JWT令牌⭐JWT特点 🌺JWT使用流程🛸JWT令牌代码实现🍔JWT应用 🌹简述JWT令牌 JWT全称为JSON Web Token,是一种用于身份验证的开放标准。它是一个基于JSON格式的安全令牌,主要用于…...

leetcode每日一题34

89.格雷编码 观察一下n不同时的格雷编码有什么特点 n1 [0,1] n2 [0,1,3,2] n3 [0,1,3,2,6,7,5,4] …… 可以看到nk时,编码数量是nk-1的数量的一倍 同时nk编码的前半部分和nk-1一模一样 nk编码的最后一位是2k-1 后半部分的编码是其对应的前半部分的对称的位置的数字…...

王者荣耀游戏制作

1.创建所需要的包 2.创建怪物类 bear package beast;import wangzherogyao.GameFrame;public class Bear extends Beast {public Bear(int x, int y, GameFrame gameFrame) {super(x, y, gameFrame);setImg("img/bear.jpg");width 85;height 112;setDis(65);}} b…...

springboot post添加URL添加参数

出现 MissingServletRequestParameterException: Required String parameter pageNumber is not present 异常的原因是在请求中没有提供名为 pageNumber 的参数。 请确保发送 POST 请求时,在请求的 URL 或请求体中提供了名为 pageNumber 的参数,以满足方…...

『 MySQL数据库 』插入查询结果

文章目录 🎟️ 前言🎟️ 创建一张结构相同的表🎟️ 表内插入查询结果🎫 对表内数据进行去重🎫 配合ORDER BY排序后以及LIMIT分页对数据进行插入 🎟️ 前言 在MySQL数据库中不仅可以直接根据字段类型等对数据…...

【笔记】小白学习电路维修

学习视频(b站):从0开始学电路 从0开始学电路维修 p1 黄色长方体元件P2 故障率最高的元件p3带芯铜丝线圈是什么区分电感和变压器接入电路分析: p4 交流和直流分界线整流桥接线整流桥故障判断 带色环的不一定是电阻 p1 黄色长方体元…...

linux简述进程

目录 进程 一个正在运行的程序,一个程序运行至少要启动一个进程,主进程 子进程 一个进程正常运行,至少要启动一个线程,主线程 子线程 进程的生命周期: 进程状态产生的原因: 查看当前系统的进程 ps au…...

由于设置了全局 QWidget 背景导致QT QCalendarWidget 表态背景异常

解决: 单独设置QCalendarWidget 的qss : 对象是查看源码所得 QWidget#qt_calendar_navigationbar{ ...... } QToolButton#qt_calendar_prevmonth, #qt_calendar_nextmonth, #qt_calendar_monthbutton, #qt_calendar_yearbutt…...

数据库的重要你了解多少?如何保障数据库的安全?

随着信息技术的快速发展,数据库已经成为企业、组织以及个人日常生活中不可或缺的一部分。然而,随着数据库的广泛应用,其安全性问题也日益凸显。数据库的安全性主要包括数据的完整性、保密性和可用性。本文将探讨数据库安全性的重要性、以及如…...

距离“全自动”漏洞挖掘又近了一步!腾讯安全大数据实验室论文入选ACM CCS 2023

计算机领域国际权威学术顶会ACM CCS 2023于11月26日在丹麦哥本哈根开幕。腾讯安全大数据实验室团队论文《Hopper: Interpretative Fuzzing for Libraries》被大会收录,昨天,实验室研究员谢雨轩受邀出席大会进行主题分享。 该论文提出了解释性模糊测试&a…...

docker搭建rabbit集群

1.去rabbitMQ官网拉去images 我当前使用的是最新版本的镜像:rabbitmq:3.12-management 2.创建一个集群专用网络 docker的容器相互隔离是不可通信的,我们自行创建一个网络后,创建容器时 给他们放在一起,就可以通信了。 docker netw…...

西南科技大学C++程序设计实验一(C++基础知识)

目录 一、实验目的 二、实验任务 三、预习内容(复习书中前3章内容,说明C++相对于C的扩展有哪些?) 四、问题思考与讨论 一、实验目的 1.熟悉编程环境 2.掌握程序调试方法。 3.熟悉枚举类型、结构体类型等自定义数据类型的使用 4.熟悉函数的定义、说明与使用 5.熟悉引用…...

Rust内存布局

题图忘了来自哪里.. 整型,浮点型,struct,vec!,enum 本文是对 Rust内存布局 的学习与记录 struct A { a: i64, b: u64,}struct B { a: i32, b: u64,}struct C { a: i64, b: u64, c: i32,}struct D { a: i32, b: u64, c: i32, d: u64,}fn main(…...

android 12 添加菜单

1.创建一级菜单 packages\apps\Settings\res\xml\top_level_settings.xml <com.android.settings.widget.HomepagePreferenceandroid:fragment"com.android.settings.DeviceStatusSettings"android:icon"drawable/ic_settings_display_white"android:…...

Map 的 5 种遍历方式

Map 的 5 种遍历方式 强烈推荐 for-each entrySet()遍历 和 lambda 表达式遍历 &#xff0c;简洁又好用&#xff01;&#xff01;&#xff01; package com.maptest; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set;pub…...

Linux的基本指令 ( 一 )

目录 前言 Linux基本指令 快速认识五个指令 ls指令 补充内容 pwd指令 补充内容 cd指令 补充内容 重新认识指令 指令的本质 which指令 alias指令 最后 一个文件的三种时间 tree指令及安装 tree指令 前言 关于Linux操作系统的桌面&#xff0c;在学校教学中我们…...

【深度学习】学习率及多种选择策略

学习率是最影响性能的超参数之一&#xff0c;如果我们只能调整一个超参数&#xff0c;那么最好的选择就是它。相比于其它超参数学习率以一种更加复杂的方式控制着模型的有效容量&#xff0c;当学习率最优时&#xff0c;模型的有效容量最大。本文从手动选择学习率到使用预热机制…...

具有“真实触感”的动捕数据手套mhand pro,提供更精确的动作捕捉

随着人工智能的普及和万物互联&#xff0c;vr虚拟技术备受关注&#xff0c;为了更加真实的虚拟现实交互体验&#xff0c;动捕数据手套的使用逐渐普及&#xff0c;vr手套可以实时采集各手指关节运动数据&#xff0c;使用动捕数据手套可以在虚拟现实的场景中实现对真实手部运动的…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用&#xff0c;用户可以通过网页界面上传黑白视频&#xff0c;系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观&#xff0c;不需要了解技术细节。 效果图 ​二、实现思路 总体思路&#xff1a; 用户通过Gradio界面上…...