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

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

精彩推荐:

相关推荐
掘根3 分钟前
【消息队列项目】虚拟机管理实现
网络
老王熬夜敲代码1 小时前
网络中数据传输的具体过程
linux·网络·笔记
汤愈韬2 小时前
TK_网络基础和常见攻击(笔记)
网络·笔记
北邮刘老师3 小时前
【智能体互联协议解析】需要“智能体名字系统”(ANS)吗?
网络·人工智能·大模型·智能体·智能体互联网
照海19Gin4 小时前
【企业网架构实验解析】三层组网与 AC+AP 无线部署的协议逻辑(eNSP 仿真实践)
网络
Lilixxs4 小时前
wireshark LLDP 协议抓包获取 M580 PLC 网口地址
网络·测试工具·wireshark·plc·施耐德·lldp·m580
vortex55 小时前
Linux下局域网IPv6地址发现与扫描
网络
北邮刘老师5 小时前
【智能体互联协议解析】身份码-智能体的身份证号
网络·人工智能·大模型·智能体·智能体互联网
日更嵌入式的打工仔7 小时前
Ethercat COE 笔记
网络·笔记·ethercat
UVM_ERROR8 小时前
UVM实战:RDMA Host侧激励开发全流程问题排查与解决
服务器·网络·数据库