问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

CXL协议深度解析:架构、版本与应用场景

创作时间:
作者:
@小白创作中心

CXL协议深度解析:架构、版本与应用场景

引用
CSDN
1.
https://blog.csdn.net/m0_70772379/article/details/141710979

CXL(Compute Express Link)是一种高速互联协议,旨在优化CPU与加速器(如GPU、FPGA等)之间的数据传输。它通过提供低延迟、高带宽的连接,解决了传统PCIe在高性能计算场景下的性能瓶颈问题。本文将深入解析CXL协议的架构、版本演进及其应用场景。

CXL协议概述

CXL是Compute Express Link的缩写,是一种专为高性能计算设计的互联协议。它由三个子协议组成:

  • CXL.io:具有增强功能的PCIe 5.0协议,主要用于设备初始化、链接、识别和枚举,以及寄存器访问。
  • CXL.cache:用于处理器与设备之间的缓存访问,支持低延迟的缓存操作。
  • CXL.mem:提供对设备附加存储器的访问,支持易失性和持久性存储架构。

这些子协议通过标准PCIe 5.0物理层以32 GT/s的速度进行传输,是一种动态多协议技术。


图1:CXL连接到处理器的加速器概念图

CXL协议版本演进

CXL 1.0

  • 特点:基础版本,支持低延迟、高带宽的设备连接。

CXL 2.0

  • 新增功能:支持受管热插拔、安全性增强、持久内存支持等。
  • 兼容性:完全向后兼容CXL 1.1(和CXL 1.0)规范。
  • 交换支持:实现对扇出的单级交换支持。

CXL 3.0

  • 性能提升:最大数据速率翻倍至64.0 GT/s。
  • 拓扑支持:支持多级交换,最多支持4K端口。
  • 访问方式:支持UIO对HDM内存的直接点对点访问。
  • 过滤支持:支持探听过滤器,实现直接对等访问。

CXL连接方式

FlexBus

FlexBus允许设计人员在PCIe协议和CXL之间进行选择,选择过程在系统引导期间通过自动协商完成。


图2:CPU Flex总线端口示例

CXL.io、CXL.cache和CXL.mem的分层结构

  • CXL.io:走PCIe协议通路。
  • CXL.cache和CXL.mem:走独立的事务层与链路层。


图3:FlexBus分层概念图

CXL系统架构

传统非一致IO设备

这类设备主要依赖生产者-消费者模型,适用于处理数据流或大型连续数据对象。

CXL设备类型

CXL定义了三种设备类型:

  1. Type 1:支持CXL.cache和CXL.io,主要用于缓存一致性。
  2. Type 2:支持CXL.cache、CXL.mem和CXL.io,提供设备挂载存储的访问。
  3. Type 3:支持CXL.mem和CXL.io,作为主机内存扩展器。

Type 2设备的两种一致性模型

  1. 主机偏向性模型
  • 主机高速访问存储,设备访问效率较低。
  • 适用于主机频繁读写存储的场景。


图4:主机偏向性一致性模型

  1. 设备偏向性模型
  • 设备独占存储访问权,主机访问延迟高、带宽小。
  • 适用于设备需要高带宽低延迟访问存储的场景。


图5:设备偏向性一致性模型

多逻辑设备(MLD)

MLD仅支持Type 3设备,最多可划分为16个独立逻辑设备。每个逻辑设备通过LD-ID标识,支持CXL.io和CXL.mem协议。

总结

CXL协议通过提供低延迟、高带宽的连接,解决了传统PCIe在高性能计算场景下的性能瓶颈问题。随着AI、大数据等领域的快速发展,CXL协议将在数据中心和高性能计算系统中发挥越来越重要的作用。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号