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

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

精彩推荐:

相关推荐
傻啦嘿哟几秒前
HTTP代理:网页加速的隐形引擎
网络·网络协议·http
傻啦嘿哟8 分钟前
开发者视角:应用程序中HTTP代理的集成指南
网络·网络协议·http
爱写代码的小朋友24 分钟前
IP 地址规划中的子网划分:/18 网络容纳 64 个 C 段(/24)的原理与应用解析
网络·网络协议·tcp/ip
十五年专注C++开发1 小时前
WebSocket原理详解(二)
网络·websocket·网络协议
JhonKI2 小时前
从零实现Json-Rpc框架】- 项目实现 - 服务端registry&discovery实现
网络协议·rpc·json
蜗牛沐雨2 小时前
MCP协议的Streamable HTTP:革新数据传输的未来
网络·网络协议·http
金丝猴也是猿2 小时前
如何在Flutter上实现高性能的动态模板渲染
websocket·网络协议·tcp/ip·http·网络安全·https·udp
swift开发pk OC开发2 小时前
Flutter性能优化细节
websocket·网络协议·tcp/ip·http·网络安全·https·udp
网络抓包与爬虫2 小时前
Flutter 环境搭建、常用指令、开发细节
websocket·网络协议·tcp/ip·http·网络安全·https·udp
louisgeek3 小时前
MQTT 消息队列遥测传输
网络协议