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全景解读完整版本

相关推荐
刀客Doc21 小时前
刀客doc:亚马逊广告再下一城,拿下微软DSP广告业务
大数据·人工智能·microsoft
Cx330❀21 小时前
《Linux基础入门指令》:从零开始理解Linux系统
linux·运维·服务器·经验分享
HaSaKing_72121 小时前
二三级等保检测对比项
linux·服务器·网络
掘金安东尼21 小时前
Google+禁用“一次性抓取100条搜索结果”,SEO迎来变革?
人工智能
FIN666821 小时前
射频技术领域的领航者,昂瑞微IPO即将上会审议
前端·人工智能·前端框架·信息与通信
error:(1 天前
【Linux命令从入门到精通系列指南】export 命令详解:环境变量管理的核心利器
linux·运维·服务器
小麦矩阵系统永久免费1 天前
短视频矩阵系统哪个好用?2025最新评测与推荐|小麦矩阵系统
大数据·人工智能·矩阵
Mr.Lee jack1 天前
【vLLM】源码解读:高性能大语言模型推理引擎的工程设计与实现
人工智能·语言模型·自然语言处理
IT_陈寒1 天前
Java性能优化:这5个Spring Boot隐藏技巧让你的应用提速40%
前端·人工智能·后端
MicroTech20251 天前
微算法科技(NASDAQ:MLGO)开发延迟和隐私感知卷积神经网络分布式推理,助力可靠人工智能系统技术
人工智能·科技·算法