浅析CXL P2P DMA加速数据传输拥堵问题的解决方案

接上文:CXL P2P DMA加速数据传输的拥堵问题

为了改善这个问题,CXL 3.0引入了Unordered-IO和Back Invalidate Snoop新机制,允许更直接和高效点对点数据传输,以减轻上游CXL通道的压力并减少延迟。

(1)Unordered-IO (UIO)

传统PCIe体系中,DMA传输通常是有序的,要求严格按照顺序完成,否则可能导致数据依赖性错误 。而Unordered-IO允许通过CXL Switch进行非顺序化的DMA传输,允许数据包在网络中以最有效的方式流动,无需严格遵循发送顺序。

Unordered-IO 是一种PCIe 6.0引入的新型的 TLP格式,主要用于点对点(Peer-to-Peer, P2P)DMA传输。从PCI-SIG官网消息来看,2023年4月10日对外正式发布。

这种特性使得CXL设备可以绕过传统瓶颈,直接通过Switch进行高效的数据交换,降低了延迟,提升了带宽利用率,特别适用于不需要顺序保证的场景。

(2)Back Invalidate Snoop

在CXL架构下,为了保持内存一致性,特别是对于共享CXL内存资源的情况,Back Invalidate Snoop 是一种CXL 3.0新引入的请求类型

当从属的CXL内存设备(如SSD或其他带有CXL.mem接口的存储设备)需要更新自身的内存缓存副本时,它可以发起Back Invalidate Snoop 请求,直接向Home Agent或者其他持有最新数据的设备请求更新一致性状态。

通过这种方式,CXL设备能够在不经过Root Complex的情况下自行发起并完成一致性状态的更新,有效地解除了对上游CXL通道的拥堵,同时降低了遍历延迟

这两个特性结合使用,不仅可以实现CXL设备间高效、低延迟的P2P通信,还能够确保在整个系统中保持内存数据的一致性,这对于构建大规模、分布式、高性能计算环境至关重要。

不过需要注意,在PCIe 6.0协议中,UIO writes是non-posted TLP ,这意味着与posted write相反,UIO写操作不会立即返回确认给发起方,而是等待实际写操作完成后才发出完成信号。由于这种异步性质增加了等待时间,UIO写操作可能会带来一定的性能损耗

在判断NVMe设备是否可以发起UIO DMA时,有三个关键条件必须满足:

  • DMA操作目标地址限定 :DMA操作必须明确指向位于同一个CXL switch peer上的地址。也就是说,数据传输的目标必须是直接相连并通过CXL Switch可达的设备

  • CXL Switch支持UIO P2P :所使用的CXL Switch底层结构必须支持UIO P2P路由功能。这意味着Switch能够识别和处理UIO格式的TLP,并允许其直接在不同设备间传递,而不必经过额外的中间跳转或绕行。

  • 目标CXL.mem设备支持Back Invalidate目标CXL内存设备(CXL.mem)必须具备Back Invalidate功能的支持。这是为了确保在进行U-IO DMA操作时,能够正确地同步内存一致性状态,即当数据发生更改时,相关的缓存条目可以在整个系统中得到及时无效化(invalidate),从而维护全局内存一致性。

PCIe/CXL扩展阅读:

小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角"关注 "并点击"分享 "、"在看",非常感谢!

精彩推荐:

相关推荐
筝筝ba15 小时前
linux 查询当前登录的用户数量
linux·服务器·网络
ShiXZ21316 小时前
网络调试四剑客:ping / telnet / nc / netstat 速查指令集
运维·开发语言·网络·php
snow@li16 小时前
Telnet 全景教程:全平台安装、命令使用、故障排查与安全规范
运维·网络
随风而飘18617 小时前
罗德与施瓦茨 FSP13 中高端频谱分析仪
网络·功能测试·测试工具
SendTomo17 小时前
SendTomo稳定传输三大核心策略
javascript·网络协议·webrtc·html5·p2p
旗开得胜马到成功17 小时前
AMD TPM 8.3/8.5漏洞技术剖析:服务器加密信任根崩塌后的备份密钥泄露风险与紧急加固
运维·服务器·网络·系统架构
CANWeb冗余现场总线17 小时前
2毫秒扫描周期以太网Modbus TCP UDP高速通信:西门子SMART PLC+CANWeb现场总线远程扩展IO模块
网络协议·tcp/ip·udp
阿pin17 小时前
HTTP 与 HTTPS 详解
网络协议·http·https
阿pin18 小时前
HTTP 协议的演进
网络·网络协议·http
bksczm18 小时前
Linux之网络层协议(IP协议)
linux·网络·tcp/ip