PCIe P2P DMA全景解读

温馨提醒 :本文主要分为5 个部分,总计4842 字,需要时间较长,建议先收藏

  • P2P DMA简介

  • P2P DMA软硬件支持

  • CXL P2P DMA原理差异

  • P2P DMA应用场景

  • P2P DMA技术挑战


一、P2P DMA简介

P2P DMA(Peer-to-Peer Direct Memory Access)技术是一种允许连接到PCIe总线上的不同设备之间直接进行数据交换的机制,无需通过CPU和系统内存中转。这一特性极大地提升了数据传输效率,减少了CPU负载,并在特定场景下优化了系统性能。

P2P DMA的概念早在NVMe SSD和RDMA技术发展的初期就已出现。大约在2012年左右,Stephen Bates等人在研究NVMe、RDMA及NVMe over fabrics时发现了对设备间直接DMA的需求。早期实现主要依赖于一些具备可暴露内存区域(即现在的CMB - Controller Memory Buffer)的设备来实验性地支持P2PDMA。

Host与存储设备数据移动优化的技术中,控制器内存缓冲区(Controller Memory Buffer,CMB)是一个重要的概念。

自2014年以来,CMB被纳入到NVMe 1.2标准中,其目的是减少主机和设备之间的数据移动。CMB是控制器内部的一块专用内存,通过PCIe总线访问。当CPU需要访问存储设备的数据时,它可以通过内存读写事务层封装(MRd或MRw)直接访问CMB,而不需要将整个数据块传输到主机内存。

由于主机CPU无法像访问DDR内存那样高效地访问CMB,因此CMB通常被用作PCIe设备之间块数据传输的DMA(直接内存访问)缓冲区。这种方式减少了数据在主机和设备之间来回移动的次数,从而提高了数据传输效率。尽管CMB提供了一种优化数据移动的方法,但它仍然存在一些限制。例如,由于主机CPU访问CMB的效率低于DDR内存,且CMB的大小有限,因此对于需要频繁、大量数据交换的应用场景,CMB可能无法提供最佳的性能。

二、P2P DMA软硬件支持

随着时间的推移,随着硬件技术的进步以及软件栈的支持,如Linux内核从6.2版本开始提供用户空间对P2PDMA的支持,该功能逐渐成熟并应用在更多领域,例如NVIDIA GPUDirect Storage利用P2PDMA实现了GPU与NVMe命名空间之间的直接数据复制。

完整阅读:PCIe P2P DMA全景解读完整版本

相关推荐
字节逆旅2 分钟前
有哪些工作不可以交给AI
人工智能·程序员
一路向北North6 分钟前
Spring AI(6) :对话机器人-会话历史
java·人工智能·spring
2zcode9 分钟前
基于MATLAB神经网络的心力衰竭预测与临床辅助决策系统研究
人工智能·神经网络·matlab
ACP广源盛1392462567310 分钟前
国产算力互联IX8024@ACP#Kimi K3 开源后的端侧部署硬件架构分析
大数据·人工智能·分布式·单片机·嵌入式硬件
其实防守也摸鱼12 分钟前
前端应用的离线暂停更新策略:构建稳定可靠的渐进式部署方案
服务器·前端·数据库·学习·ai·命令行·linux系统
Android系统攻城狮16 分钟前
Linux PipeWire深度解析之pw_context_add_spa_lib调用流程与实战(二十九)
linux·运维·服务器·音频进阶·pipewire音频进阶
江边风声24 分钟前
从薄板到厚板、从吸盘到夹板边——坤鹏伯爵的取放技术体系是怎样覆盖全制程的
人工智能·科技·自动化·制造·pcb工艺
商业模式源码开发28 分钟前
小米新车未发布即遭 AI 谣言攻击:黑色 GEO 的运作原理与企业正规防御方案
大数据·人工智能·ai·geo
Dovis(誓平步青云)32 分钟前
《如何在CentOS 7中添加Plex官方软件源:解决文件磁盘难管理难题》
linux·运维·服务器·后端·生成对抗网络·centos
edtoplort41 分钟前
A股最大IPO长鑫科技295亿:从年亏163亿到日赚3亿
大数据·人工智能·科技