当前位置:   article > 正文

CXL协议-第一章

cxl协议

红色字体为不清楚或者疑问,蓝色为知识点

一、介绍

1.1、面向对象

本文档中的信息适用于设计或架构与计算快速链接(CXL)或Flex总线相关联的任何硬件或软件的任何人。

1.2 缩略词

1.3 参考文档

1.4 动机和概述

1.4.1 CXL

        CXL是一种动态的多协议技术,设计用于支持加速器和内存设备。CXL提供了一组丰富的协议,其中包括类似于PCIe的I/O语义(即CXL.io)、缓存协议语义(即CXL.cache),以及在离散或包上链接上的内存访问语义(即CXL.mem)。CXL.io需要用于发现和枚举、错误报告、P2P访问CXL内存 和主机物理地址(HPA)查找。CXL.cache和CXL.mem协议可以由特定的加速器或内存设备使用模型选择性地实现。CXL的一个重要优点是,它为加速器访问系统和系统访问连接到CXL设备的内存提供了一个低延迟、高带宽的路径下面的图1-1是一个概念图,显示了通过CXL连接到主机处理器的设备。

Figure 1-1. Conceptual Diagram of Device Attached to Processor via CXL

        CXL 2.0规范支持在CXL 1.1规范之外的其他使用模型,同时完全向后与CXL 1.1(和CXL 1.0)规范兼容。它支持 managed 热插拔、安全增强、持久性内存支持(persistent ???)、内存错误报告和遥测。CXL 2.0规范还支持对扇出的单级交换支持,以及跨多个虚拟层次池设备,包括对内存设备的多域支持。下面的图1-2展示了通过单级切换,内存和加速器分解,每个层次结构都用独特的颜色表示。CXL 2.0规范还允许这些资源(内存或加速器)从一个域下线,并在线到另一个域,从而允许资源根据其资源需求跨不同的虚拟层次结构进行时间多路复用。

        CXL 3.0规范使带宽增加了一倍,同时启用了CXL 2.0规范之外的其他使用模型。CXL 3.0规范与CXL 2.0规范完全兼容(因此也与CXL 1.1和CXL 1.0规范完全兼容)。通过PAM-4 signaling,最大数据速率加倍到64.0 GT/s,利用PCIe基础规范PHY及其CRC和FEC,使带宽加倍,提供可延迟的Flit安排。使用CXL 3.0规范支持多级交换,最多支持4K端口,以启用演变为一个结构扩展,包括非树状拓扑,到机架和豆荚级别。CXL 3.0规范使设备能够使用UIO(除了之前存在的MMIO内存之外)对HDM内存执行直接的点对点访问,以提供大规模的性能,如图1-3所示。Snoop过滤器支持可以在类型2和类型3设备中实现,以使用CXL.mem中引入的反向无效通道实现直接的点对点访问。跨多个虚拟层次结构的共享内存支持用于跨多个虚拟层次结构的协作处理,如图1-4所示。

        CXL协议与PCIe CEM形式因子(4.0及以上)、所有与EDSFF SSF-TA-1009(修订版2.0及以上)相关的形式因子以及其他支持PCIe的形式因子兼容。

Figure 1-2. Fan-out and Pooling Enabled by Switches

Figure 1-3. Direct Peer-to-Peer Access to an HDM Memory by PCIe/CXL Devices without Going through the Host

Figure 1-4. Shared Memory across Multiple Virtual Hierarchies

1.4.2 Flex Bus

        Flex总线端口允许设计在提供本地PCIe协议或高带宽、非包链路上的CXL之间进行选择;选择发生在通过替代协议协商进行的链路训练期间,并取决于插入插槽的设备。Flex总线使用PCIe电气,使其与PCIe重定时器和支持PCIe的外形兼容。

        图1-5提供了一个Flex总线端口实现的高级图,说明了一个插槽实现和一个自定义实现,其中设备是焊接在主板上的。插槽实现可以容纳任何一个Flex总线。CXL卡或PCIe卡。可以在CPU和设备之间插入一个或两个可选计时器,以延长通道长度。

Figure 1-5. CPU Flex Bus Port Example

如图1-6所示,此灵活的端口可用于将相干加速器或智能I/O连接到主机处理器。
Figure 1-6. Flex Bus Usage Model Examples

        图1-7说明了一个Flex总线是如何实现的。CXL端口可以用作内存扩展端口。

Figure 1-7. Remote Far Memory Usage Model Example

疑问:Flex Bus是指的是高速serdes?还是内部总线?看框图指的是serdes,为啥又取一个Flex bus,而直接用Serdes?是由于其接口协议可变??

        图1-8说明了在CXL下游端口下面支持的连接。

Figure 1-8. CXL Downstream Port Connections

1.5 Flex总线 Link特性

        Flex总线提供了一个点对点互连,可以传输本地PCIe协议或动态多协议CXL,以通过PCIe电子提供I/O、缓存和内存协议。主要链接属性包括对以下特性的支持:

  1. 本地PCIe模式,在PCIe基本规范定义的全协议PCIe
  2. 本规范中CXL模式
  3. PCIe v CXL(Configuration of PCIe vs. CXL protocol mode)。是否指的是配置空间
  4. 协议模式与PAM4一起运行,信令速率为64GT/s,CXL模式下的降解速率为32 GT/s、16 GT/s或8 GT/s。否则,CXL模式下的32 GT/s、降级率16 GT/s或8 GT/s(不同serdes速率,其serdes格式是不是也有区别?)
  5. 链接宽度支持x16、x8、x4、x2(降级模式)和x1(降级模式)
  6. 分岔(又名链路细分)在CXL模式下支持到x4。(Bifurcation (aka Link Subdivision) support to x4 in CXL mode),不知道是啥意思。

1.6 Flex Bus Layering Overview

        Flex总线体系结构被组织为多层,如图1-9所示。CXL事务(协议)层被细分为CXL.io、CXL.cache和CXL.mem的逻辑;CXL链接层以同样的方式被细分。请注意,CXL.cache和CXL.mem逻辑 是在事务层和链接层中组合起来的。CXL链路层与CXL ARB/MUX接口,它交织了来自两个逻辑流的流量。此外,可选地实现PCIe事务层和数据链路层,如果实现,则允许分别与CXL.io事务层和链路层聚合。由于链路训练过程,事务层和链路层被配置为在PCIe模式或CXL模式下操作。

Figure 1-9. Conceptual Diagram of Flex Bus Layering

        虽然主机CPU很可能同时实现这两种模式,但加速器 AIC 只允许实现CXL模式。Flex总线物理层的逻辑子块是一个聚合的逻辑物理层,它可以在PCIe模式或CXL模式下操作,这取决于链路训练期间的交替模式协商的结果。

1.7 Document Scope

        文档的各章具体描述,不展开。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/766159
推荐阅读
相关标签
  

闽ICP备14008679号