CXL (Compute Express Link) Technology——论文阅读

Journal of Computer and Communications 2023 Paper CXL论文阅读笔记整理

CXL概述

CXL(计算高速链路)技术是一种较新的高速互连标准,旨在实现数据中心系统中CPU、GPU和其他高性能组件之间更快的通信。

CXL技术研究:CXL技术基于外围组件互连高速(PCIe)及其扩展。CXL 1.0是一种基于交换机的互连体系结构,在PCIe Gen5电信号上运行,每个通道的数据传输速度高达每秒32千兆字节(GT/s)。CXL技术为缓存一致性和内存语义提供了基于硬件的支持。

CXL技术架构由三个主要组件组成:1)CXL设备:与CXL接口兼容的设备包括处理器、GPU等加速器和智能存储设备;2) CXL交换机:该交换机支持支持CXL的设备之间的通信。交换机可以是外部的,也可以是嵌入式的,允许使用更复杂的拓扑结构;3) CXL内存:CXL内存设备支持CXL协议,以高效共享系统内存。

一些关于CXL的问题

  1. SSD等存储设备是否需要本机CXL控制器支持,还是可以使用PCIe接口?

    由于SSD是块设备(而不是随机访问负载存储设备),因此它们不需要CXL控制器。PCIe将继续以与今天相同的方式使用。

  2. CXL是否解决了内存交错管理控制,还是CXL设备供应商的选择?

    内存交错的选择和实现不在CXL规范的范围内。

  3. 应用程序如何处理不同内存类型的不同延迟?

    应用程序应该不知道它们正在使用什么内存,也不知道不同的延迟。操作系统/内核应该负责为应用程序分配正确的内存类型。

  4. 如何看待应用程序像一个NUMA节点一样对待CXL?

    应用程序通常不会感知延迟。理论上,可以创建一个malloc函数,该函数可以指定它是否可以使用延迟更高的内存池,并由操作系统相应地为其提供服务。也可以将现有的类似NUMA的方法应用于CXL。

  5. CXL如何支持原子性?

    由于CXL内存是缓存一致的,这应该与CPU/直连内存相同。

  6. 由于每个引脚的带宽更高,CXL最终会取代DDR吗?

    CXL延迟的增加是一个问题,但CXL在未来肯定有可能取代DDR。

  7. 是否仅在专有的跨主机网桥级别支持3路交织?或者可以在每个级别(例如CXL主机桥、USP、设备)都支持它?

    CXL不想影响交换机,也不想让它们实现一种增加延迟和复杂性的3向操作。因此,3路交织仅限于主机专有逻辑和设备中的主机。USP不支持3路交织。

CXL协议和标准

CXL协议:

  • CXL.io:该协议在功能上等同于PCIe协议,并利用了PCIe在行业中的广泛采用和熟悉度。作为基础通信协议,CXL.io是通用的,可处理广泛的用例。

  • CXL.cache:该协议专为特定的应用程序设计,使加速器能够有效地访问和缓存主机内存,以优化性能。

  • CXL.memory:此协议使主机(如处理器)能够使用加载/存储命令访问设备连接的内存。

CXL设备:

  • 类型1设备:智能NIC等加速器通常缺少本地内存。通过CXL,这些设备可以与主机处理器的DDR内存进行通信。CXL.io + CXL.cache

  • 类型2设备:GPU、ASIC和FPGA都配备了DDR或HBM内存,可以使用CXL使主机处理器的内存对加速器本地可用,而加速器的内存对CPU本地可用。它们还位于同一个缓存一致域中,有助于提升异构工作负载。CXL.io + CXL.cache + CXL.memory

  • 类型3设备:可以通过CXL连接内存设备,为主机处理器提供额外的带宽和容量。内存的类型与主机的主内存无关。CXL.io + CXL.memory

CXL 1.0/1.1设备一次只能由一个主机访问。CXL 2.0设备可以划分为多个逻辑设备,允许多达16个主机同时访问内存的不同部分。CXL 3.0引入了对等直接内存访问和对内存池的增强,其中多个主机可以一致地共享CXL 3.0设备上的内存空间。

完整性和数据加密(IDE)

分解或分离服务器体系结构的组件增加了攻击面,这是CXL包含设计安全方法的原因。具体而言,三种CXL协议都通过IDE进行保护,提供机密性、完整性和重放保护。IDE在CXL主机和设备芯片中实例化的硬件级安全协议引擎中实现,以满足CXL的高速数据速率要求,而不引入额外的延迟。需要注意的是,CXL芯片和系统本身需要防止篡改和网络攻击。在CXL芯片中实现的硬件信任,可以为安全引导和安全固件下载的安全性和支持提供基础。

数据速率

CXL 1.1和2.0的物理层使用PCIe 5.0电气设备:NRZ信令速率为32 GT/s。

CXL 3.0保持了在广泛采用的PCIe技术上构建的相同理念,并将其扩展到PCIe 6.0版本。使用PAM4信号将CXL 3.0数据速率提高到64 GT/s。

总结

对CXL的一些基础知识进行整理,包括一些对CXL的问题、CXL协议、完整性和数据加密(IDE)、数据速率。

提出一些使用CXL的看法:(1)SSD是块设备(而不是随机访问负载存储设备),不需要CXL控制器。(2)应用程序应该不知道正在使用什么内存,也不知道不同的延迟。操作系统/内核应该负责为应用程序分配正确的内存类型。(3)可以创建一个malloc函数,该函数可以指定它是否可以使用延迟更高的内存池,并由操作系统相应地为其提供服务。可以将现有的类似NUMA的方法应用于CXL。

相关推荐

  1. 论文阅读笔记】清单

    2024-03-14 14:40:03       51 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 14:40:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 14:40:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 14:40:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 14:40:03       20 阅读

热门阅读

  1. c++面经

    2024-03-14 14:40:03       19 阅读
  2. 人类的谋算与量子计算

    2024-03-14 14:40:03       15 阅读
  3. 用C语言链表实现图书管理

    2024-03-14 14:40:03       18 阅读
  4. 算法刷题day30:递归

    2024-03-14 14:40:03       23 阅读
  5. Dijkstra&floyed

    2024-03-14 14:40:03       20 阅读
  6. 3. Linux标准I/O库

    2024-03-14 14:40:03       18 阅读
  7. Linux 学习笔记(15)

    2024-03-14 14:40:03       20 阅读
  8. vue常用6种数据加密方式的使用

    2024-03-14 14:40:03       17 阅读
  9. Python 正则表达式

    2024-03-14 14:40:03       21 阅读
  10. C++ 智能指针

    2024-03-14 14:40:03       16 阅读