浅析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扩展阅读:

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

精彩推荐:

相关推荐
不是书本的小明1 小时前
K8S应用优化方向
网络·容器·kubernetes
~plus~2 小时前
.NET 8 C# 委托与事件实战教程
网络·c#·.net·.net 8·委托与事件·c#进阶
w6100104663 小时前
CKA-2026-Service
linux·服务器·网络·service·cka
GTgiantech3 小时前
灵活拓展网络边界:电口光模块的智慧选型与部署指南
网络
汤愈韬3 小时前
网络安全之网络基础知识_2
网络协议·安全·web安全
测试专家3 小时前
天脉3操作系统
网络
JS_SWKJ3 小时前
网闸升级、备份、恢复标准化操作全指南
网络
王燕龙(大卫)3 小时前
tcp报文什么时候会真正发送
服务器·网络·tcp/ip
勿忘,瞬间3 小时前
网络编程套接字
运维·服务器·网络
@insist1234 小时前
网络工程师-网络安全基础体系:软考核心考点与合规框架全解析
网络·网络工程师·软考·软件水平考试