社区
驱动开发/核心开发
帖子详情
PCIE通信-关于EP使用DMA直接上传数据到RC?
scv213
2021-02-23 06:59:14
在飞腾2000上挂了一个PCIE接口的fpga,fpga做ep,然后fpga使用dma直接主动上传数据到飞腾的DDR中。 目前我在cpu端分配了4k可供dma操作的物理内存,是否直接将此物理地址设置到fpga的dma控制器中,并初始化启动dma即可实现上述功能?(cpu端采用Linux系统)
...全文
1527
1
打赏
收藏
PCIE通信-关于EP使用DMA直接上传数据到RC?
在飞腾2000上挂了一个PCIE接口的fpga,fpga做ep,然后fpga使用dma直接主动上传数据到飞腾的DDR中。 目前我在cpu端分配了4k可供dma操作的物理内存,是否直接将此物理地址设置到fpga的dma控制器中,并初始化启动dma即可实现上述功能?(cpu端采用Linux系统)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Call Me Gavyn
2021-04-07
打赏
举报
回复
2
首先确保飞腾作为RC,是否把物理地址全部 INBOUND,这个需要问技术支持,没有对外开放接口,应该是默认映射好了;其次,确保EP端本地一片物理地址OUTBOUND到PCI域,一般情况下是相等的;比如RC端分配的物理内存地址是0x1000, EP端这边分配了一个物理地址0x2000 映射到PCI域的0x1000, 那样,EP只需要访问0x2000就可以操作RC的0x1000内存了。所以,DMA设置的是EP本地映射的物理地址。
基于FPGA实现的
PCIE
协议的
DMA
读写模块
这是一份文档,讲诉了FPGA实现
pcie
的
dma
传输方式,我还没有看,就分享给各位了。希望有
pcie
技术开发项目的xdjm们可以从中获益!
PCIE
知识笔记.pdf
该文档用将近300页的笔记详细记录了
pcie
整个spec中的工作机制和原理,为
pcie
入门的好资料,具体
使用
还要结合
pcie
的标准规范一起
使用
基于 FPGA 实现的
PCIE
协议的
DMA
读写模块
PCI Express 协议 由 于 其 高 速 串 行 、系 统 拓 扑 简 单 等 特 点 被 广 泛 用 于 各 种 领 域,尤其是 在 信 号 处 理 领 域 。 Xilinx 公 司 的 Virtex5 的 LXT 系 列 和 SXT 系 列 的 FPGA 集 成 了 一 个 可 用 于 8X PCI Express 传 输 的 Endpoint 硬 核 。 本 文 介 绍 了 一 种 在 PCI Express 硬 核 的 基 础 上 实 现
DMA
读写的方法,在 PCI Express 单 字 读 写 的 基 础 上 实 现 了
DMA
读写 。 基 于 此 方 法 实 现 的 FPGA 模 块 大 大 提 高 了
RC
与
EP
之 间 的 数 据 传 输 带 宽,在 大 带 宽 的 需 求 领 域 中 有 广 泛 的 应 用 。
【
PCIe
总线及设备入门学习专栏 5.3 --
PCIe
与
EP
中的
DMA
协同工作介绍】
当
EP
端和 Host 端有大量
数据
交互时,比如 NPU 的训练或者推理场景中,就需要Host 端向
EP
端搬运大量
数据
,这种场景就可以在
PCIe
系统中实现个
DMA
,用来
数据
搬运。在
PCIe
环境中,比如,GPU 作为端点设备(
EP
),需要通过
DMA
从主机内存中读取
数据
,比如进行图形渲染或计算任务时的大量
数据
传输。比如主机主动将
数据
写入GPU的显存,这时候主机
使用
Memory Write TLP,而GPU不需要发送请求,只需要接收
数据
。主机驱动程序分配系统内存(源地址:0x8000_0000)。
PCIe
-
DMA
Sequence
介绍
PCIe
拓扑结构下的
DMA
流程,实际上
RC
充当的就是
DMA
Controller的角色。
驱动开发/核心开发
21,616
社区成员
21,711
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章