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

CXL是一个开放的行业标准接口,旨在实现CPU、GPU和其他加速器之间高速、低延迟的内存互连,极大地增强了系统的内存扩展性和利用率。

图片

在CXL框架下,通过CXL技术,数据中心可以将DRAM作为一种可灵活分配和共享的资源,不再局限于单个物理服务器内部,而是可以在机架层面乃至整个数据中心范围内实现高效的内存池化管理。这意味着机架本身变成了一个高度整合且具备内存共享能力的“新服务器”,打破了传统服务器边界,促进了资源的有效利用和成本优化。

图片

在CXL技术支持下,本地存储系统可以实现更快的速度和更高的存储密度,这种高性能本地存储有可能替代传统的存储区域网络(Storage Area Network, SAN)。这是因为CXL提供了高速、低延迟的内存和I/O设备互联,使得本地存储可以直接提供接近内存速度的访问性能,相比SAN提供的共享存储解决方案,可以更好地满足现代数据中心对于即时数据访问和实时处理的要求。

图片

在多级CXL交换机拓扑结构中,资源的位置关系被重新组织和优化。通过在系统中设置多个级别的CXL交换机,一些资源能够以更少的跳数和更低的延迟与其他组件连接,这些资源在逻辑上被视作“更近”。同时,也意味着其他不在同一层级或未直接连接到最近交换机的资源则在访问路径上相对较“远”。比如将经常需要快速访问的大容量内存模块放在离处理器更近的层级。

通过CXL技术缩短了存储与计算资源的距离,实现了更紧密的耦合,使存储资源仿佛就在CPU旁边一样,几乎消除了内存层级之间的延迟。这一特性为降低固态硬盘(SSDs)的成本创造了机会,因为在“近内存”架构下,可以采用成本较低的存储介质,同时依然保证较高的性能水平,通过更好的资源搭配和层级设计,达到性价比最优的存储解决方案。

图片

在CXL技术出现之前,一致内存(coherent memory)通常是指那些与CPU核心共享一致性的内存,它们在系统架构中是通过RC(root complex)与CPU以及其他组件(如GPU或加速器)相连接的。在这种情况下,一致内存存在于RC另一侧,这意味着任何想要访问一致内存的设备都需要通过RC才能实现,这增加了数据传输的路径长度和由此产生的延迟。

图片

然而,随着CXL(Compute Express Link)技术的引入,情况发生了改变。PCIe设备现在仅需通过Switch能访问到设备内存,大大缩短了物理距离和逻辑上的访问层次。

在计算机系统架构中,Home Agent通常指的是负责管理和维护内存一致性的一个关键组件,尤其是在包含多个处理器核心或设备共享统一内存空间的多核系统或多处理器系统中。Home Agent的作用主要是跟踪和协调各个处理器对共享内存的访问,确保数据的一致性,防止因并发读写导致的数据不一致现象。

在CXL环境中,Home Agent扮演类似的角色,负责追踪同级CXL内存设备的一致性状态。Root Complex(RC)是CPU与外部I/O设备(如PCIe设备、CXL设备)之间通讯的核心桥梁,它是系统中所有PCIe总线及其他兼容总线的起点和终点。

在涉及到CXL内存的情况下,Home Agent与Root Complex的关系表现为Home Agent是通过Root Complex连接到CXL内存子系统的。当CXL设备如加速器或存储设备试图访问CXL内存时,由于需要保持内存一致性,DMA(Direct Memory Access)事务必须通过Root Complex中的Home Agent来进行状态解析和更新。这意味着Home Agent在处理一致性问题时起到了关键的中介作用,确保了即使CXL内存已经通过交换机进行了拓扑上的优化,访问时仍能保持数据的一致性。

但是,这个过程中存在以下问题:

  • 上游CXL通道拥堵:由于所有的CXL内存访问都要通过Home Agent,这就可能导致连接到RC上游的CXL通道变得拥堵,影响总体带宽和性能表现。

  • 遍历延迟:每次访问CXL内存时,都需要经过至少一次Switch和Home Agent的状态处理过程,这无疑增加了访存操作的遍历延迟,对系统的响应时间和整体性能有所拖累。

图片

相关推荐

  1. RPC浅析加密数据解析

    2024-01-19 18:38:02       20 阅读
  2. Redis连接:加速数据访问与保障安全传输关键

    2024-01-19 18:38:02       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-19 18:38:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-19 18:38:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-19 18:38:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-19 18:38:02       18 阅读

热门阅读

  1. C#设计模式教程(3):抽象工厂模式

    2024-01-19 18:38:02       32 阅读
  2. CSS-Flex布局

    2024-01-19 18:38:02       28 阅读
  3. 时间格式 yyyyMMdd

    2024-01-19 18:38:02       32 阅读
  4. mysql8,快速添加列

    2024-01-19 18:38:02       35 阅读
  5. C语言K&R圣经笔记 5.11函数指针

    2024-01-19 18:38:02       30 阅读
  6. 设计模式——责任链模式

    2024-01-19 18:38:02       29 阅读
  7. C/C++ 容易混淆的指针声明总结

    2024-01-19 18:38:02       31 阅读
  8. C语言的整形提升规则

    2024-01-19 18:38:02       33 阅读