【PCIe】P2P DMA

PCIe P2P (peer-to-peer communication)是PCIe的一种特性,它使两个PCIe设备之间可以直接传输数据,而不需要使用主机RAM作为临时存储。如下图3的走向

比如EP1要发送和数据给EP2,操作流程如下:

  1. 打开EP1的dma控制器;--client侧

2.src=EP1的内存地址,dst=EP2的BAR地址空间(provider),EP2的BAR地址一般会与自己的某段内存空间有一个映射关系,也就是将EP2的bar暴漏给了EP1去操作。

3.开启dma传输,将EP1的ddr数据搬运到EP2 bar空间

思考:

Why would you want peer to peer DMA?

没有CPU开销或同步的处理管道;

节省数据流行程

附:

Providers -- Expose P2P resources to other drivers

◢ Clients -- Make use of P2P resources via DMA

◢ Orchestrators -- Enables data flow between clients and providers

◢ Memory is allocated on the client side

接口参考:

PCI Peer-to-Peer DMA Support --- The Linux Kernel documentation

相关推荐
啟明起鸣2 天前
【网络编程】简易的 p2p 模型,实现两台虚拟机之间的简单点对点通信,并以小见大观察 TCP 协议的具体运行
c语言·网络·tcp/ip·p2p
brave and determined6 天前
国产MCU学习Day7——CW32F030C8T6 SPI主从通信详解
单片机·dma·国产mcu·spi·cw32f030c8t6·串行总线通讯·spi dma
old-six-programmer7 天前
NAT 类型及 P2P 穿透
服务器·网络协议·webrtc·p2p·nat
却道天凉_好个秋1 个月前
WebRTC(三):P2P协议
网络协议·webrtc·p2p
凉、介1 个月前
Linux 下 pcie 初始化设备枚举流程代码分析
linux·运维·服务器·学习·嵌入式·c·pcie
邪恶的贝利亚1 个月前
实现p2p的webrtc-srs版本
网络协议·webrtc·p2p
想搞嵌入式的小白1 个月前
STM32的DMA简介
dma
Evan_ZGYF丶1 个月前
【PCIe总线】 -- PCI、PCIe相关实现
linux·嵌入式·pcie·pci
FakeOccupational1 个月前
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 & 定向转发机制
笔记·分布式·p2p
FakeOccupational1 个月前
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信拓扑与操作 BR/EDR(经典蓝牙)和 BLE
笔记·分布式·p2p