0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CXL在PCIe 5.0的基础上复用三种类型的协议

安芯教育科技 来源:安芯教育科技 作者:安芯教育科技 2022-09-06 10:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言:

CXL的全名是Compute eXpressLink。CXL是Intel在2019年提出的,希望用CXL来实现计算、内存、存储和网络的解耦,并在CXL总线上提供持久内存。

CXL发展到现在已经有几十家的会员。目前CXL协议共有个版本,分别是1.0,1.1,2.0和刚刚发布的3.0,协议规范可以在官网上下载(https://www.computeexpresslink.org/)。关于CXL,协议里面是这样说的“CXL is alow-latency, high-bandwidth link that supports dynamic protocol muxing ofcoherency, memory access, and IO protocols, thus enabling attachment ofcoherent accelerators or memory devices”。从协议给出的定义可以看出,CXL是一种低延时,高带宽的连接技术,主要支持一致性缓存,内存和IO扩展。

CXL是基于PCIe 5.0实现的连接技术,复用了很多PCIe协议的东西,这一点上与CCIX比较像,但又不完全一样。说起CCIX和CXL,难免要相互对比。其实与其说是两种技术对比,不如说是ARM和Intel两大阵营的对抗。Intel具有一定的技术优势(至少在PCIe上);但是ARM如日中天,客户群体巨大。本文旨在一窥CXL协议,无意探讨CCIX和CXL的路线之争。相信大家经过学习,会对两种技术有自己的认识。孰优孰劣,谁会笑到最后,那是大佬们的事情。

沧海一声笑,滔滔两岸潮

浮沉随浪,只记今朝

苍天笑,纷纷世上潮

谁负谁胜出,天知晓

扯完闲话,书归正传。接下来的内容是基于CXL 2.0协议的学习笔记。由于是第一次刷CXL协议,就还是按照协议的章节来。内容主要是三方面,一是对协议的翻译,由于英语水平和技术水平都有限,有些地方会不通顺;二是自己的理解,直白说就是中翻中,把不通顺的或者难懂的描述转成大白话,这里可能会有一些不太准确;三是一些基础知识的补充,前面提到,CXL是在PCIe的基础上发展而来,因此有不少复用PCIe协议的地方,但是CXL协议里面又不会阐述这些。我把暂时看不懂或者不太关心的部分都略过了,尤其是后半部分章节,日后如果有需要,二刷三刷的时候再补上。

背景知识之PCIe:

既然CXL是以PCIe 5.0为基础,我们还是有必要先简单了解一下PCIe协议。

PCIe是点到点的传输,采用的是低压差分技术,一条通道(Lane)在发送(TX)和接收(RX)方向上共有四条信号线。PCIe 5.0的最大传输速率是32GT/s,也就是说单通道的最大速率是32Gb/s。如果想要提高PCIe的带宽,就需要多条通道,就像高速公路要提高交通流量就需要扩展更多的车道。所以经常会看到x32,x16,x8这些描述,后面的数字就代表通道数。通道数不是随意的,PCIe 5.0支持x1,x2,x4,x8,x12,x16和x32。简单计算可以得知,PCIe5.0最大的带宽是32*32/8=128GB/s,但这只是理论值,实际应用中需要考虑编码,数据包头等开销,有效带宽肯定要小于理论值。

PCIe的拓扑结构如下图。

2ebbec9a-2d86-11ed-ba43-dac502259ad0.png

Rootcomplex:简称RC,root complex主要负责PCIe报文的解析和生成。RC接受来自CPU的IO指令,生成对应的PCIe报文,或者接受来自设备的PCIe TLP报文,解析数据传输给CPU或者内存。

Endpoint:简称EP,PCIe终端设备,是PCIe树形结构的叶子节点。EP可以分为三类,legacy endpoint,PCI Express endpoint和Root Complex IntegratedEndpoints (RCiEPs)。

Switch:PCIe的转接器设备,提供扩展或聚合能力,并允许更多的设备连接到一个PCle端口。它们充当包路由器,根据地址或其他路由信息识别给定包需要走哪条路径。

PCIe可以分为三个独立的逻辑层:事务层(TransactionLayer),数据链路层(Data Link Layer)和物理层(Physical Layer)。

2edc0a02-2d86-11ed-ba43-dac502259ad0.png

在发送端,PCIe传输的数据从上到下,都是以数据包(packet)的形式传输的,每个都是有其固定的格式的。事务层负责创建TLP(Transaction Layer packet);数据链路层接收事务层发来的TLP并创建DLLP(Data LinkLayer packet);物理层接收DLLP,然后加上帧头和帧尾,把数据分发到各个Lane传输。在接收端,物理层接收Lane上传输的数据,去掉帧头和帧尾信息,发给数据链路层;数据链路层提取出TLP发给事务层;事务层解析TLP,取出有效负载数据。

2eeae5ea-2d86-11ed-ba43-dac502259ad0.png

这些是PCIe最基本的知识,后面用到啥再介绍。

第一章 介绍 1.1– 1.2 略。

1.3参考文档

PCI Express Base Specification Revision 5.0 or later

ACPI Specification 6.3 or later

UEFI Specification 2.8 or later

PCI Firmware Specification 3.2 or later

MCTP Base Specification (DSP0236) 1.3.1 or later

Security Protocol and Data Model Specification 1.1.0 or later

1.4 概述 1.4.1 CXL

CXL在PCIe 5.0的基础上复用三种类型的协议,分别 CXL.io,CXL.cache,CXL.memory。CXL.io用来发现,配置,寄存器访问、错误报告,主机物理地址(Host Physical Address,HPA)查找,中断等。CXL.cache用来扩展系统缓存。CXL.memory 用来扩展系统存储。其中CXL.cache和CXL.memory是备选的。三种 CXL 协议分别对应一个接口

2efb3aa8-2d86-11ed-ba43-dac502259ad0.png

如上图中,右侧的主机可以通过CXL连接左侧的加速芯片,其中CXL.io扩展外部I/O设备,CXL.cache扩展缓存,CXL.memory扩展存储。

CXL2.0支持热插拔、安全增强、持久内存支持、内存错误报告和遥测。CXL 2.0还支持多扇出(Fan-out)单级交换,以及跨多个虚拟层次结构共享设备的能力,包括对内存设备的多域支持。如下图,每种颜色标识一个虚拟层次结构。其中的MLD是多逻辑设备(Multi-Logic Device),是一个Type 3的设备,后面会讲什么是Type 3设备。

2f0c663e-2d86-11ed-ba43-dac502259ad0.png

1.4.2Flex Bus

关于Flex Bus,协议里面的原话是这样说的“A Flex Bus port allowsdesigns to choose between providing native PCIe protocol or CXL over ahigh-bandwidth, off-package link; the selection happens during link trainingvia alternate protocol negotiation and depends on the device that is pluggedinto the slot.“

CXL也采用的是PCIe的物理层,所以对于同一个插槽上的设备,到底是CXL设备还是传统PCIe设备呢?在上电启动时,主机识别出是PCIe设备还是CXL设备,之后FlexBus就像是一个二选一,选择采用哪个协议。这样插槽就可以兼容CXL卡或是PCIe卡。在CPU和设备之间可以插入一个或两个可选的重定时器(Retimer),以延长通道长度。下图是Flex Bus的示意电路。

插播一句,关于PCIe Retimer。随着PCIe协议的不断升级,频率越来越高,对数据在线路中的传输长度提出了强烈挑战。为了解决这一问题,PCIe协议在4.0版本中提出了Retimer。Retimer实际上是一种协议感知设备,能更好地将信号传输到更远。

2f2f43de-2d86-11ed-ba43-dac502259ad0.png

下图中显示,通过此端口可将一致性加速器或智能I/O设备连接到主机处理器

2f3e5bee-2d86-11ed-ba43-dac502259ad0.png

下图显示了如何通过Flex Bus.CXL来扩展内存系统。

2f583140-2d86-11ed-ba43-dac502259ad0.png

下图显示了CXL下游端口(Downstream Port)支持的连接。

2f69f40c-2d86-11ed-ba43-dac502259ad0.png

1.5 Flex Bus链接功能

FlexBus提供了一种点对点互连,可以传输原始PCIe协议或动态多协议CXL,以支持I/O、缓存和内存协议。主要的链接属性包括对以下功能的支持:

原始的PCIe模式,支持PCIe协议的全部功能

CXL模式

PCIe或CXL配置

信号速率32GT/s,降级速率16GT/s和8GT/s(CXL模式)

CXL链路宽度x16,x8,x4,x2(降级模式)和x1(降级模式)

CXL模式下对x4的分叉支持

1.6 Flex Bus 分层概述

CXL事务(协议)层分为两个部分:处理CXL.io的逻辑和处理CXL.cahce和CXL.mem的逻辑。CXL链路层以相同的方式细分。如下图所示,CXL.io近似PCIe协议的事务层和链路层,但是CXL.cache和CXL.mem走的是自己单独的事务层与链路层(这是CXL延迟低的原因之一)。CXL ARB/MUX接口将来自两个通路的流量交织。

2f84532e-2d86-11ed-ba43-dac502259ad0.png

此外,CXL可以选择是否实现PCIe事务层和数据链路层,如果实现,则允许分别与CXL.io事务层和链路层聚合。作为链路training过程的结果,事务层和链路层被配置为在PCIe模式或CXL模式下运行。

1.7 文档范围 略。

本章总结:这一章介绍了CXL的基本概念,CXL协议可以分为三个部分,分别是CXL.io,CXL.cache和CXL.mem。从Flex Bus分层结构能够看出来,CXL也是在PCIe的分层架构上做了扩展。但是和CCIX不同,CXL为CXL.cache和CXL.mem增添了新的事务层(Transaction Layer)和链路层(Link Layer),所以也可以认为CXL.cache和CXL.mem是两个全新的协议。

【待续】

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 总线
    +关注

    关注

    10

    文章

    3014

    浏览量

    91306
  • PCIe
    +关注

    关注

    16

    文章

    1420

    浏览量

    87546

原文标题:技术分享 | CXL学习(一)

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PCIe 5.0市场加速渗透,PCIe 6.0研发到来

    电子发烧友网报道(文/黄晶晶)PCIe 5.0作为新一代高速接口标准,其带宽大幅提升至32 GT/s,相较于PCIe 4.0翻了一番。这种高效的数据传输能力使得PCIe
    的头像 发表于 01-27 00:03 6209次阅读

    PCIe 5.0 8TB SSD挺进消费级市场

    固态硬盘9100 PRO系列。星 9100 PRO 8TB采用了 PCIe 5.0 x4 接口设计,支持 NVMe 2.0 协议,搭配
    的头像 发表于 11-22 08:05 4272次阅读

    【干货】一文带你了解CAN、Modbus与LoRa三种通信协议的区别

    工业自动化与物联网领域,CAN、Modbus和LoRa是三种主流通信技术。而亿佰特在该行业具有丰富的产品供客户选择与使用,帮助客户进一步确定需求,本文将结合技术细节与实际案例解析其核心区别。一
    的头像 发表于 08-28 19:32 1815次阅读
    【干货】一文带你了解CAN、Modbus与LoRa<b class='flag-5'>三种</b>通信<b class='flag-5'>协议</b>的区别

    DS320PR1601 PCIe 5.0 32Gbps线性转接驱动器技术解析与应用指南

    Texas Instruments DS320PR1601 PCIe 5.0 32Gbps线性转接驱动器是一款32通道(每个方向16通道)或x16(16通道)低功耗高性能线性中继器或转接驱动器。设计用于支持PCIe
    的头像 发表于 08-21 10:15 718次阅读
    DS320PR1601 <b class='flag-5'>PCIe</b> <b class='flag-5'>5.0</b> 32Gbps线性转接驱动器技术解析与应用指南

    Xgig E3 EDSFF 16通道内插器

    Express 5.0 设计的高性能测试工具,主要针对高密度存储服务器环境,适用于 NVMe SSD 的开发、调试与性能优化,能够以 32GTps 的速度获取 16 通道上双向的PCIe 5.0
    发表于 08-01 09:07

    PCIe协议分析仪能测试哪些设备?

    PCIe协议分析仪能测试多种依赖PCIe总线进行高速数据传输的设备,其测试范围覆盖计算、存储、网络及异构计算等多个领域,具体设备类型及测试场景如下:一、核心计算设备 GPU(图形处理器
    发表于 07-25 14:09

    HarmonyOS基础组件:Button三种类型的使用

    中的Button相较于Android原生来说,功能比较丰富,扩展性高,减少了开发者的代码数量,简化了使用方式。不仅可以自定义圆角还支持三种样式。 常用属性 名称 参数类型 描述 type
    的头像 发表于 06-09 15:48 2152次阅读
    HarmonyOS基础组件:Button<b class='flag-5'>三种类型</b>的使用

    nvme IP开发之PCIe

    数据,Posted类型的事务请求不需要使用 完成报文。 PCIe总线协议定义了基于地址的路由、基于ID的路由和隐式路由三种TLP路由 方式。其中,存储器读写和I/O读写TLP采用基于地
    发表于 05-18 00:48

    nvme IP开发之PCIe

    PCIe 体系结构 常见的PCIe总线系统结构如图1所示,其中主要包含三种设备,分别是根复合体(RootComplex,RC)、Switch 和终端设备(EndPoint,EP)。 图1 PC
    发表于 05-17 14:54

    澜起科技发布PCIe 6.x/CXL 3.x Retimer芯片并成功送样

    互连解决方案,进一步巩固了澜起科技PCIe互连技术领域的领先地位。 作为澜起科技PCIe互连技术领域的一次重要突破,M88RT61632芯片不仅支持最新的
    的头像 发表于 02-05 17:45 1158次阅读

    控制系统的三种信号_控制系统的个指标

    控制系统中,信号是传递信息的重要媒介,根据信号的特点和应用场景,可以将其主要分为以下三种类型:   一、模拟信号(Analog Signal)   模拟信号是时间和幅值
    的头像 发表于 01-27 11:43 2020次阅读

    澜起科技正式推出PCIe 6.x/CXL 3.x Retimer芯片

    澜起科技近日正式对外宣布,其最新研发的PCIe® 6.x/CXL® 3.x Retimer芯片已成功问世,并已顺利向客户送样。这一创新成果标志着澜起科技PCIe/
    的头像 发表于 01-22 15:08 1077次阅读

    澜起科技推出PCIe 6.x/CXL 3.x Retimer芯片

    PCIe 4.0 Retimer和PCIe 5.0/CXL 2.0 Retimer之后,PCIe
    的头像 发表于 01-22 10:51 972次阅读

    光伏系统的三种类型及其应用分析

    ,即使夜间或阴天也能持续供电,常用于离网或偏远地区的设置。第三种系统为交流电(AC)负载供电,使用逆变器将直流电转化为交流电,使其可以与住宅和商业电器兼容。仅日间
    的头像 发表于 01-20 11:40 1948次阅读
    光伏系统的<b class='flag-5'>三种类型</b>及其应用分析

    PCIe 6.0 互操作性PHY验证测试方案

    ™和 UCIe™等协议CXL提供缓存一致性互连,支持多台机器间的内存扩展,提供最低延迟和最高带宽。CXL和NVM Express®利用 PCIe 的物理层和简便的
    的头像 发表于 01-02 08:43 1346次阅读
    <b class='flag-5'>PCIe</b> 6.0 互操作性PHY验证测试方案