CXL互联标准简介及相关资料

news2024/11/27 8:31:14

毕设是实现CXL的type3扩展内存设备,因为CXL技术非常新,2019年推出,本专栏也是记录CXL的相关知识与一些浅薄的理解

文章目录

    • CXL出现的背景
    • CXL是什么
    • 其他互联总线介绍
    • CXL胜出的原因
    • CXL内容简介
      • 包含三种协议 CXL.io/cache/memory
      • 支持三种设备类型
      • CXL1.1、2.0、3.0版本演进
    • 其他可参考资料

CXL出现的背景

背景总结起来有两个方面,底层原因还是因为计算与内存的发展速度不同步:

  1. 大数据时代,数据规模爆炸性增长,以计算为核心的传统计算机体系架构(冯诺依曼架构)出现了“内存墙”、“IO墙”问题,成为了应用性能的瓶颈。

过去十年,存储和I/O带宽的增长远远落后于算力的增长。
一方面,随着CPU内核数的快速上升,每颗CPU内核对应的内存带宽反而不断下降,在应用访问的数据爆炸增长时,多级存储带来的响应延迟与不断下降的传输带宽都将成为拖累整体性能的瓶颈,即“内存墙”。
在这里插入图片描述 在这里插入图片描述
另一方面,CPU可以快速访问内存中的数据,但是当下动辄GB级的数据中心应用程序往往无法全部运行在内存中,需要放在外部存储里,使用网络I/O来访问数据,而I/O方式的访问会使得访问速度下降几个数量级,不可避免的成为应用性能的瓶颈,即“I/O墙”。
CXL支持的第三种内存扩展设备类型,使用CXL.io与CXL.mem子协议,通过CXL/PCIe插槽扩展内存容量和带宽,有效的打破了“内存墙”和“I/O墙”的瓶颈。

  1. 随着各类设备加速器性能的提高,同时业界对计算机处理大规模数据的要求提高,以往以CPU-Memory为中心的体系架构逐渐变成了以CPU、GPU、FPGA、SmartNIC等设备齐头并进的趋势,异构计算火热发展。而20年前提出的PCIe技术对于设备间的高速互联并不是很有效,业界非常期待一种面向异构计算的高带宽、低延迟的一致性互联总线的出现,CXL应运而生。

CXL是什么

CXL (Compute Express Link)1 总线互连标准是2019年由英特尔公司推出,以提高数据中心性能为目标,旨在改善传统PCIe系统中的通信路径,是针对数据中心、高性能计算,人工智能等范畴的创造性互连总线。它可以实现CPU与GPU、FPGA或其他加速器之间更高效率、更快速度的连接,从而满足高性能异构计算的要求,并且在提供更高带宽和更好内存一致性等方面做出了显著贡献2CXL因其底层基于PCIe 5.0规范,具有物理层上的系统一致性,相比于其他互连协议有着更好的兼容性和易用性,目前CXL已经成为事实上的唯一开放标准。

其他互联总线介绍

近年来,随着高性能异构计算对带宽和延迟的要求越来越高,各大服务器厂商纷纷在高速互连总线技术领域发力,提出了各种各样的互联协议标准,既有开放标准,也有专用标准。
OpenCAPI3是IBM公司于2016年提出,是一种开放式接口架构,允许任何微处理器连接到一致的加速器和 I/O 设备。已经于2022年将所有规范和资产转让给CXL联盟。
CCIX4于2016年提出,是ARM公司主要支持的标准,是一种能够将两个或两个以上器件通过缓存一致性的方式来共享数据的片间互联。
Gen-Z5于2016年提出,是AMD公司主要支持的标准,是一种可扩展的通用系统互连标准,旨在简化数据访问、设计和方案架构。但是缺乏缓存一致性支持,已经于2020年将所有规范和资产转让给CXL联盟。
NVLink6于2014年由NVIDIA公司提出,是一种高速GPU互连技术,与传统的PCIe系统解决方案相比,能为多GPU系统提供更快速的替代方案。NVLink 技术通过连接两块 NVIDIA显卡,能够实现显存和性能扩展,从而满足最大视觉计算工作负载的需求,是一种专用标准。

CXL胜出的原因

CXL总线互连标准2019年由英特尔公司推出,到目前为止已经更新迭代了1.0/1.12.0、3.0三个版本,作为一项崭新的技术,它的发展非常迅速且具备清晰的技术发展路线。
相较其他互连协议,首先,CXL提供CPU和GPU、加速卡等外设间更高的数据带宽和更好的内存一致性访问。
其次,CXL包含CXL.io/cache/memory三种子协议,支持设备类型更多样,场景更丰富,是目前发展势头最好的一个互连标准。
最后,CXL是基于PCIe5.0协议设计,在原有的PCIe链路基础架构之上,可以同时支持PCIe设备与CXL设备运行,具有更高的兼容性。(其实也是因为这种互联总线一般需要CPU方面的支持,Intel作为CPU巨头,它不支持,其他协议也很难发展下去;同时也需要兼容过去的PCIe总线;那么CPU厂商支持,兼容PCIe,协议设计合理有效,CXL就这样走向胜利)

CXL内容简介

包含三种协议 CXL.io/cache/memory

CXL.io:与PCIe协议相同

该协议本质上是PCIe 5.0协议的扩展,用于设备的发现、配置、寄存器访问和中断等,为IO设备提供了非一致数据的Load/Store接口(PCIe协议不支持一致性机制)

CXL.cache:支持设备对主机内存的访问

该协议定义了设备对主机内存(DIMM)的访问,允许设备使用请求/响应机制以极低的延时访问主机内存中的数据,类似于DMA(Direct Memory Access)

CXL.mem:支持主机对设备内存的访问

该协议允许主机处理器使用Load/Store指令访问设备内存,主机CPU充当主设备,而被访问设备充当从设备。CXL.memory协议同时支持易失性和非易失性存储

支持三种设备类型

CXL总线标准支持CXL.io/cache/memory三个子协议,三个子协议进行组合使用,得到CXL支持的三种设备类型。
Type1 Device:使用CXL.io与CXL.cache两个子协议,典型代表是NIC。

现在的NIC只能够通过 DMA(Direct Memory Access)的方式访问内存,且无法缓存数据。具备CXL.cache后,该网卡可以通过CXL.cache 访问主机内存,并缓存一些数据到NIC上,提高了运行效率。

Type2 Device:使用CXL.io/cache/memory三个子协议,典型代表是GPU、FPGA等加速器。

使用CXL.cache,GPU可以直接访问主机上的内存,使用CXL.memory,主机CPU可以直接访问GPU显存中的内存,而不需要显式的大块内存拷贝。

Type3 Device:使用CXL.io与CXL.memory两个子协议,典型代表是扩展内存设备。

通过 CXL.memory,Host可以直接使用load/store指令直接访问CXL内存扩展设备的内存,也可以进行缓存,从而实现内存容量的扩展,考虑到PCIe带宽的不断增加,这种方式还可以扩展内存带宽。

在这里插入图片描述

CXL1.12.0、3.0版本演进

CXL正在迎来大内存的曙光
大内存时代振奋人心的CXL技术(上)
大内存时代振奋人心的CXL技术(下)

其他可参考资料

CXL.cache 协议详解
CXL大内存论坛-2022中国数据与存储峰会
CXL学习笔记
SDC2020: CXL 1.1 Protocol Extensions: Review of the cache and memory protocols in CXL


  1. 1 ↩︎

  2. 2 ↩︎

  3. 3 ↩︎

  4. 4 ↩︎

  5. 5 ↩︎

  6. 6 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/372985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL注入原理及漏洞利用(入门级)

文章目录一、什么是SQL注入漏洞?二、 SQL查询语句三、SQL注入分类数字型(整型)注入字符型注入搜索型注入四、SQL注入漏洞形成原因一、什么是SQL注入漏洞? 攻击者利用Web应用程序对用户输入验证上的疏忽,在输入的数据中…

基于Istio的高级流量管理二(Envoy流量劫持、Istio架构、高级流量管理)

文章目录一、Envoy流量劫持机制(Iptables规则流转)1、流量出向劫持流程(1)envoy怎样劫持入向流量?(2)Envoy劫持到流量之后,干什么?(查询目的地)&a…

tess4j简单使用入门

tess4j下载 下载地址: https://sourceforge.net/projects/tess4j/ 不要直接下载,点击files,然后下载最新版 下载解压后放到指定的目录即可,这里放到d:\jar目录下 tess4j根目录: d:\jar\tess4j tess4j使用 把test4j项目目录中dist和lib目录下的所有jar包导入到需要的项目中…

【云原生】k8s 离线部署讲解和实战操作

文章目录一、概述二、前期准备1)节点信息2)修改主机名和配置hosts3)配置ssh互信4)时间同步5)关闭防火墙6)关闭 swap7)禁用SELinux8)允许 iptables 检查桥接流量三、开始部署1&#x…

【OC】块初识

Block简介 Blocks是C语言的扩充功能。可以用一句话来表示Blocks的扩充功能:带有自动变量的匿名函数。 匿名函数 所谓匿名函数就是不带有名称的函数。C语言的标准不允许存在这样的函数。例: int func(int count);它声明了名称为func的函数。下面的源代…

STM32 ROS控制器底层代码讲解

本文主要对控制器底层代码的整天架构进行讲解。控制器由两部分组成一部分是BootLoader,另一部分是APP;BootLoader主要用于固件升级,APP则作为应用程序。BootLoader的地址为:0x8000000~0x8008000App的地址为:0x8010000~0x8FFFFFF参数保存地址为&#xff1…

基本密码技术

AESAES取代DES,是一种对称加密技术,分为AES-128/192/256, 其分组长度固定为128b,若最后一个分组长度不够,需要补全至128b长度。所支持的秘钥长度分别为128b/192b/256b.分组密码模式AES是对明文进行分组之后逐块进行加密&#xff0…

2023年软考高级网络规划设计师

网络规划设计师是软考高级考试科目之一,也是比较难的科目,据官方数据统计网规每年的通过率很低,而且每年只有下半年11月份考一次,如果是直接裸考,估计很悬哦~ 但是你参加考试获得证书的过程就是一个学习网络规划系统知…

【python学习笔记】:SQL常用脚本(一)

1、行转列的用法PIVOT CREATE table test (id int,name nvarchar(20),quarter int,number int) insert into test values(1,N苹果,1,1000) insert into test values(1,N苹果,2,2000) insert into test values(1,N苹果,3,4000) insert into test values(1,N苹果,4,5000) insert…

本周大新闻|索尼PS VR2立项近7年;传腾讯将引进Quest 2

本周大新闻,AR方面,传立讯精密开发苹果初代AR头显,第二代低成本版将交给富士康;iOS 16.4代码曝光新的“计算设备”;EM3推出AR眼镜Stellar Pro;努比亚将在MWC2023推首款AR眼镜。VR方面,传闻腾讯引…

编辑器、论坛、评论列表图文混排的一些思路

好久没写帖子了,今天写一个吧 众所众知从用户那里拿到的数据直接innerHtml插入 有被xss攻击的风险,所以一般会转义,拿csdn编辑文章的来举个例子 通过前端转义 ‘>’后,传给后台;这里title没有用innerHtml而是文本所以不需要转义。 前端请…

SerenityOS 操作系统类 Unix 操作系统

创建于2018年的SerenityOS是一个类似Unix的操作系统,但是带有图形化界面,适合X86台式计算机,,其界面类似90 年代的Win98/NT。几乎由一个人完成额操作系统。这几天其Web浏览器通过了 Acid3 浏览器。 Kernel features 具有抢占式多…

计算机网络笔记、面试八股(四)—— TCP连接

本章目录4. TCP连接4.1 TCP报文段的首部格式4.2 TCP连接如何保证可靠4.3 ARQ协议4.3.1 停止等待ARQ协议4.3.1.1 无差错情况4.3.1.2 出现差错情况4.3.1.3 确认丢失和确认迟到4.3.2 连续ARQ协议4.3.2.1 流水线传输4.3.2.2 累积确认4.3.2.3 滑动窗口协议4.3.3 停止等待ARQ和连续AR…

java面试题-JVM内存结构

整体结构:1.说说JVM内存整体的结构?线程私有还是共享的?JVM(Java Virtual Machine)内存可以分为以下几个部分:程序计数器(Program Counter Register):是线程私有的&#…

JUC并发编程(二)

一、过时方法 一些不推荐使用的方法已经过时,容易破坏同步代码块,使对象的锁得不到释放,进而造成线程死锁 二、守护线程 默认情况下,Java 进程需要等待所有线程都运行结束,才会结束。有一种特殊的线程叫做守护线程…

spring中BeanFactory 和ApplicationContext

在学习spring的高阶内容时,我们有必要先回顾一下spring回顾spring1.什么是springspring是轻量级的,指核心jar包时很小的;非侵入式的一站式框架(数据持久层,web层,核心aop),为了简化企业级开发。核心是IOC&a…

Python自动化测试实战篇(6)用PO分层模式及思想,优化unittest+ddt+yaml+request登录接口自动化测试

这些是之前的文章,里面有一些基础的知识点在前面由于前面已经有写过,所以这一篇就不再详细对之前的内容进行描述 Python自动化测试实战篇(1)读取xlsx中账户密码,unittest框架实现通过requests接口post登录网站请求&…

计算及网络第一章

计算机网络-第一章 概述 文章目录计算机网络-第一章 概述计算机网络在信息时代中的作用互联网概述网络的网络互联网的组成网络的边缘部分互联网的核心部分电路交换的主要特点分组交换的主要特点计算机网络的类别几种不同类别的计算机网络计算及网络的性能计算机网络的性能指标计…

面向对象之-接口鉴权

1 需求 1.1 需求背景 为了保证接口调用的安全性,我们希望设计实现一个接口调用鉴权功能,只有经过认证之后的系统才能调用我们的接口,没有认证过的系统调用我们的接口会被拒绝。 2 需求分析 2.1 基础分析 对于如何做鉴权这样一个问题&…

配置 Haproxy 负载均衡群集

配置 haproxy 负载均衡群集 🏆荣誉认证:51CTO博客专家博主、TOP红人、明日之星;阿里云开发者社区专家博主、技术博主、星级博主。 💻微信公众号:微笑的段嘉许 📌本文由微笑的段嘉许原创! &#…