CXL系统架构

 CXL系统架构

CXL支持三种设备类型,如下图。Type 1支持CXL.cache和CXL.io;Type 2支持CXL.cache,CXL.mem和CXL.io;Type 3支持CXL.mem和CXL.io。无论哪种类型,CXL.io都是不可缺少的,因为设备的发现,枚举,配置等都是由CXL.io来负责。

传统的非一致I/O设备主要依赖于标准的生产者-消费者订单模型(Producer-Consumer Ordering Model),并针对主机连接的内存执行。此类设备除了工作提交和工作完成边界上的信号外,很少与主机进行交互。此类加速器还倾向于处理数据流或大型连续数据对象。这些设备通常不需要CXL提供的高级功能,而传统PCIe足以作为加速器连接介质。

插播一句,生产者-消费者模型是一种为了加快系统响应数据的异步模型,系统中一些慢速操作(例如网络I/O,数据统计等)会阻塞主进程的运行,从而使得系统的吞吐量大大降低。如果我们不需要即时得到这些慢速操作的返回结果,那么我们可以使用异步的方式来解决这个问题。生产者-消费者模型通常是多对多的关系,即多个生产者对应多个消费者,他们之间通过共享一个队列来实现通信和同步。生产者负责把请求放到队列中,消费者负责从队列中出去请求并作响应的处理。生产者-消费者模型的核心思想,把数据的生产者和消费者进行解耦,使二者不直接交互,从而使二者的处理速率相对来说互不影响。

2.1 Type 1 CXL设备

Type 1设备的典型应用是网卡这类高速缓存设备。

Type 1 CXL设备,应用于拥有完全一致性缓存的设备。对于这种设备,标准的生产者-消费者模型效果一般,比如,设备需要执行复杂的原子操作,而这些原子操作又不属于PCIe的标准原子操作。基本缓存一致性允许加速器实现它选择的任何排序模型,并允许它实现无限数量的原子操作。它们往往只需要少量的缓存,可以很容易地通过标准的处理器监听过滤(Snoop Filter)机制轻松跟踪。

Type 1设备支持的缓存大小取决于主机的监听过滤能力。CXL使用CXL.cache链接支持此类设备,加速器可以通过该链接使用CXL.cache协议进行缓存一致性事务。

2.2 Type 2 CXL设备

Type 2设备的典型应用是GPU,FPGA,AI这类的加速器。

Type 2设备除了一致性高速缓存外,还具有连接到设备的内存,例如DDR、高带宽内存(High Bandwidth Memory,HBM)等。这些设备的性能依赖于加速器和设备挂载内存(Device-attached Memory)之间的巨大带宽。CXL的关键目标是为主机提供一种将操作数推入设备挂载内存的方法,并为主机提供从设备挂载内存中提取结果的方法,这样就不会增加抵消加速器好处的软件和硬件成本。CXL将一致的系统地址映射设备连接内存称为“主机管理的设备内存“(Host-managed Device Memory,HDM)。

HDM和传统IO/PCIe专用设备内存(Private Device Memory,PDM)之间有一个重要区别。用带有GDDR的GPGPU来举例,GPGPU往往将其GDDR视为私有。这意味着主机无法访问GDDR,并且与系统的其余部分不一致。它完全由设备硬件和驱动程序管理,主要用作具有大型数据集的设备的中间存储。这种模型的明显缺点是,在引入操作数并将结果写回时,它涉及大量从主机内存到设备连接内存的来回拷贝。HDM虽然也是挂载在设备端,但可以被主机直接访问。

2.2.1 偏向性一致性协议

再次强调,HDM是附属于设备的内存,也就是说HDM在设备端,而不是主机端。

偏向性一致性模型(Bias Based coherency model)定义了设备挂载内存(Device-attached Memory)的两种状态:偏向主机(Host Bias)还是偏向设备(Device Bias)。当设备挂载内存偏向主机时,该内存就像常规的主机连接内存一样。也就是说,如果设备需要访问该内存,设备需要向主机发送一个请求,主机将解析请求的一致性。当设备挂载内存处于偏向设备时,要保证主机中没有对应的缓存行副本。这样设备可以随意的访问设备挂载的存储,而不需要向主机发送任何的请求事务。

需要注意的是,主机本身可以看到与设备连接的内存的统一视图,而不考虑偏向状态。在这两种模式中,设备连接的内存都可以保持一致性。

带有偏向性的一致性模型的优点:

  • 有助于维护映射到系统一致性地址范围内的设备挂载内存的数据一致性。

  • 帮助设备以高带宽访问其本地连接的内存,同时不会产生显著的一致性开销(例如,对主机的监听)。

  • 帮助主机以一致的统一的方式访问设备挂载的存储,就像挂载在主机自己下面一样。

为了维护偏向性一致性模型,Type 2的设备需要:

  • 实现偏向表,该表跟踪页面粒度上的偏向性(例如1b/4KB页面),该表可被缓存在设备中。

  • 使用转换代理(Transition Agent,TA)支持偏向性转换。这本质上看起来像是一个用于“清理”页面的DMA引擎,会清空该页中对应主机里所有的缓存行。

  • 构建对加速器本地内存的基本load/store访问。

2.2.1.1 主机偏向性

主机偏向模式通常是指在工作提交期间主机将操作数据写入内存,或在工作完成后从内存读取数据。如下图所示,内存挂在设备端。在主机偏向模式下,一致性数据流从主机到设备挂载内存,如图中的蓝色箭头所示。但是,设备对此内存的访问效率不是最佳的,因为需要通过主机,如图中的绿色箭头所示,设备先向主机发起请求,然后通过主机来访问HDM。

2.2.1.2 设备偏向性

在设备偏向模式下,设备负责工作提交和完成。在此模式下,设备需要对设备挂载内存完成高带宽和低延迟访问。设备无需询问主机的一致性引擎,而直接发起访问,如图中的红色箭头所示。主机仍然可以访问设备挂载的内存,但可能会被加速器强制放弃所有权,如图中的绿色箭头所示。设备访问HDM内存实现了延迟低,带宽高,但是主机访问HDM会却相反。

2.2.1.3 模式管理

有两种HDM偏向性模式管理方案:软件辅助和硬件自主。

2.2.1.4 软件辅助偏向模式管理

在软件辅助管理模式下,依靠软件来管理某页面的状态。通过选择适当的主机或设备偏向模式,软件可以在页面粒度上优化一致性性能。

软件辅助偏向性管理的特点如下:

  • 这种方式适用于,在执行计算操作前,加速器内的数据已经准备好。

  • 如果未提前将数据移动到加速器内存中,加速器通常会根据对数据的一些尝试引用来控制移动数据。

  • 在“需要的”数据提取场景中,加速器必须能够找到要执行的工作,对于这些工作,数据已经正确放置,否则它必须暂停。

  • 加速器停顿的每个周期会影响软件运行性能。

  • 简单的加速器通常无法隐藏数据预取的延迟。

2.2.1.5 硬件自主偏向模式管理

软件辅助方式通常适用于简单的加速器。对于复杂的加速器,比如GPU,用软件去管理偏向性将会很复杂,并不适用。硬件自主偏向性管理模式,不依赖软件来管理页面级的一致性偏向。相反,是硬件根据给定页面的请求者对偏向模式进行预测,并相应地进行调整。这种模式的主要好处是:

  • 提供与软件辅助模型中相同的页面粒度一致性偏向功能。

  • 无需软件在卸载执行之前识别和安排页面偏向转换。

  • 为卸载执行期间的动态偏向转换提供硬件支持。

  • 此模型的硬件支持可以是软件辅助模型的简单扩展。

  • 链路流和主机支持不受影响。

  • 影响主要限于当主机接触到设备偏向页面时在加速器上采取的操作,反之亦然。

  • 注意,尽管这是一个表面上看来是硬件驱动的解决方案,但硬件不需要自动执行所有转换(尽管如果需要,也可以这样做)。

2.3 Type 3 CXL设备

Type 3的典型应用是内存缓冲器,常用作内存带宽或者是容量的扩展。

Type 3 CXL设备支持CXL.io和CXL.mem协议。由于这些设备不是加速器,所以它们不会通过CXL.cache发出任何请求。该设备主要通过CXL.mem运行,为主机发送的请求提供服务。CXL.io协议主要用于设备发现、枚举、错误报告和管理。CXL.io协议允许设备用于其它特定于I/O的应用用途。

2.4 多逻辑设备(Multi Logical Device,MLD)

CXL 2.0仅支持Type 3的多逻辑组件。MLD组件最多可以将其资源划分为16个独立的逻辑设备(Logical Device,LD)。在CXL.io和CXL.mem协议中,每个逻辑设备都由逻辑设备标识符(LD-ID)标识。每个逻辑设备都作为Type 3设备运行,对虚拟层次结构(Virtual Hierarchy,VH)可见。LD-ID对访问VH的软件是透明的。MLD组件对于所有逻辑设备中的每个协议都有公共事务层和链路层。

MLD组件有一个为FM(Fabric Manager)保留的LD和最多16个可用于主机绑定的LD。FM拥有的LD(FMLD)允许FM跨LD配置资源分配,并管理与多个VCS(Virtual CXL Switch)共享的物理链路。

插播一句,VH是PCIe MR-IOV(Multiple Root I/O Virtualization)里面的一个概念。MR-IOV扩展了SR-IOV规范,允许PCIe设备在多个有独立PCI根的系统之间共享,这些系统通过基于PCIe转换器的拓扑结构与PCIe设备或者PCIe-PCI桥相接。每个VH(一个VH就是一个虚拟独立的SR-IOV设备)拥有独立的PCI Memory,IO,配置空间。

2.4.1 LD-ID for CXL.io and CXL.mem

LD-ID是一个16位逻辑设备标识符,适用于CXL.io和CXL.mem请求和响应。MLD设备返回的所有目标请求和响应必须包括LD-ID。

2.4.1.1 LD-ID for CXL.mem

CXL.mem仅支持LD-ID的低4位,因此可以通过链路支持多达16个唯一的LD-ID值。通过MLD端口转发的请求和响应用LD-ID标记。

2.4.1.2 LD-ID for CXL.io

CXL.io支持为通过MLD端口转发的所有请求和响应携带16位LD-ID。LD-ID 0xFFFF是保留的,始终由FM使用。CXL.io利用供应商定义的本地TLP前缀来携带16位LD-ID值。供应商定义的本地TLP前缀格式如下所示。

2.4.2 内存池设备配置寄存器

每个LD作为一个或多个PCIe EP(End Point) Function对软件可见。虽然LD Function支持所有配置寄存器,但影响常见链路行为的几个控制寄存器被虚拟化,对链路没有直接影响。LD的每个Function都必须实现PCIe规范中所述的配置寄存器。

下表列出了一组寄存器字段,与PCIe基本规范相比,这些字段的行为发生了修改。

2.5 CXL设备扩展

CXL设备扩展限制只允许每个VH(Virtual Hierarchy)启用一个Type 1或Type 2设备。

本章总结:这一章主要定义了3类CXL设备,Type 1支持CXL.cache和CXL.io;Type 2支持CXL.cache,CXL.mem和CXL.io;Type 3支持CXL.mem和CXL.io。这三类设备都需要支持CXL.io协议,不同的是对CXL.cache和CXL.mem支持。

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

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

相关文章

springcloud微服务项目,通过gateway+nacos实现灰度发布(系统不停机升级)

一、背景 灰度发布的目的是保证系统的高可用,不停机,提升用户体验。在微服务系统中,原有系统不下线,新版系统与原有系统同时在线,通过访问权重在线实时配置,可以让少量用户先应用新版本功能,如…

JavaSE day14笔记

第十四天课堂笔记 课上: 适当做笔记课下 : 总结 , 读代码 , 反复敲代码 , 做练习 数组★★★ 数组 : 存储多个 同一类型 的容器格式 :数组类型 : 引用数据类型, new运算符在堆中 分配一块连续的存储空间 , 系统会给数组元素默认初始化 , 将该数组的引用赋值给数组名 引用数据…

Java中读取html文件转成String,展示在浏览器

这里写目录标题 第一章1.1&#xff09;pom中引入依赖和html文件示例1.2&#xff09;使用hutool工具包读取html文件转为string1.3&#xff09;页面显示 第一章 1.1&#xff09;pom中引入依赖和html文件示例 引入hutool工具包依赖 <dependency><groupId>cn.hutool&…

mongodb sharding分片模式的集群数据库,日志治理缺失导致写入数据库报错MongoWriteConcernException的问题总结(上)

一、背景 常见的mongodb集群模式有以下三种&#xff1a; 主从复制&#xff08;Master-Slave&#xff09;模式副本集&#xff08;Replica Set&#xff09;模式分片&#xff08;Sharding&#xff09;模式 公司测试环境搭建的集群采用分片模式&#xff0c;有同事反馈说&#xf…

Qt打印系统库的日志 - QLoggingCategory

Qt的动态库通过源码可以可以看到含有大量的qCInfo 和 qCDebug 等大量的日志&#xff0c; 但是我们正常运行Qt程序&#xff0c;这些动态库或插件里面的日志是不会输出到我们的控制台里面的。 所以本章主要记录怎么输出这些日志出来。 一&#xff1a; 步骤 主要使用的是Qt的 函…

ABA分析方法 — 软硬件开发必备的一种分析问题绝佳套路

ABA分析方法 “决定我们看到什么&#xff0c;并且看到什么方式的是我们的思维方式。” — 乔治奥威尔 更多精彩内容&#xff0c;请关注公众号《机器灵魂注入师》。 什么是ABA分析方法&#xff1f; 可能你从很多地方听过这个名词&#xff0c;无论是在软件开发还是硬件领域(比较…

单片机之串口通信

目录 串口介绍 通信的基本概念 并行通信和串行通信 同步通信和异步通信 串行异步通信方式 串行同步通信方式 通信协议 单片机常见通信接口 串行通信三种模式 串口参数 传输速度 ​串口的连接 电平标准 串行口的组成 串口数据缓冲寄存器 串行口控制寄存器 串口…

HarmonyOS入门--配置环境 + IDE汉化

文章目录 下载安装DevEco Studio配置环境先认识DevEco Studio界面工程目录工程级目录模块级目录 app.json5module.json5main_pages.json通知栏预览区 运行模拟器IED汉化 下载安装DevEco Studio 去官网下载DevEco Studio完了安装 配置环境 打开已安装的DevEco Studio快捷方式…

33.HarmonyOS App(JAVA)鸿蒙系统app数据库增删改查

33.HarmonyOS App(JAVA)鸿蒙系统app数据库增删改查 关系数据库 关系对象数据库&#xff08;ORM&#xff09; 应用偏好数据库 分布式数据库 关系型数据库&#xff08;Relational Database&#xff0c;RDB&#xff09;是一种基于关系模型来管理数据的数据库。HarmonyOS关系型…

阿里云Salesforce CRM功能差异列表 - Winter‘ 24

阉割版的阿里云Salesforce由于技术和监管等因素与国际版的Salesforce差距很大&#xff01; 一、Winter‘ 24版差异概况&#xff1a; 1.1. 主要版本&#xff1a; 阿里云上的 Salesforce 提供两个版本&#xff0c;用于生产用途的 CN 版本&#xff08;CN Edition&#xff09;和用…

NineData与StarRocks商业化运营公司镜舟科技完成产品兼容认证

近日&#xff0c;镜舟科技与NineData完成产品兼容测试。在经过联合测试后&#xff0c;镜舟科技旗下产品与NineData云原生智能数据管理平台完全兼容&#xff0c;整体运行高效稳定。 镜舟科技致力于帮助中国企业构建卓越的数据分析系统&#xff0c;打造独具竞争力的“数据护城河”…

乐维更改IP地址

1.1 系统IP调整 vim /etc/sysconfig/network-scripts/ifcfg-ens1921.2 Web相关服务IP变更 1.2.1 编辑/itops/nginx/html/lwjkapp/.env文件,更改ZABBIXSERVER、ZABBIXRPCURL、DB_HOST中的IP 1.2.2 进入/itops/nginx/html/lwjk_app/目录下,执行php bin/manager process-conso…

VMware虚拟机更换引导顺序

前言 我用wmware装了黑群晖测试&#xff0c;将img转成vmdisk的格式之后发现系统引导盘之后1G&#xff0c;有点太小了 我准备把wmware的黑群晖系统迁移到新添加的虚拟磁盘里 1.登录黑群晖的SSH 请先在黑群晖的控制面板中的终端机和SNMP里面启用SSH功能&#xff0c;才能使用ss…

原创度检测工具分享,文章质量检测方便又简单

文章检测有利于我们了解文章内容的质量高低&#xff0c;而在以往我们检测文章只能依靠手动去检测&#xff0c;这是相当消耗工作时间的&#xff0c;但是在原创度检测工具出来之后&#xff0c;很多人开始检测文章质量就改用原创度检测工具了&#xff0c;因为使用原创度检测工具是…

睿尔曼超轻量仿人机械臂之复合机器人底盘介绍及接口调用

机器人移动平台是一个包含完整成熟的感知、认知和定位导航能力的轮式机器人底盘产品级平台&#xff0c;产品致力于为各行业细分市场的商用轮式服务机器人提供一站式移动机器人解决方案&#xff0c;让合作伙伴专注在核心业务/人机交互的实现。以下是我司产品双臂机器人以及复合升…

亚马逊云科技如何看待云计算产业在硬件方面的创新趋势

“真正认真对待软件的人应该制造自己的硬件。” 这是被称为个人电脑之父的艾伦凯博士的一句广为流传的言论。 这种趋势正在云计算行业发生。 目前&#xff0c;全球主流云计算厂商均已加入自研芯片的行列。 如果追溯这一趋势的发展&#xff0c;亚马逊云技术无疑是领先者。 在r…

酒店能源监测管理系统:实现节能减排与提升管理效率的利器

随着全球能源问题的日益突出和可持续发展理念的深入人心&#xff0c;酒店业也在积极探索节能减排的途径。在这一背景下&#xff0c;酒店能源监测管理系统应运而生&#xff0c;成为了酒店行业提升管理效率、降低能源消耗的重要工具。本文将从多个角度介绍酒店能源监测管理系统的…

Nagios工具

一 nagios 相关概念 Nagios 是一款开源的免费网络监视工具&#xff0c;能有效监控 Windows、Linux 和 Unix 的主机状态&#xff0c;交换机路由器等网络设置&#xff0c;打印机等。在系统或服务状态异常时发出邮件或短信报警第 一时间通知网站运维人员&#xff0c;在状态恢复后…

2. Java基本语法

文章目录 2. Java基本语法2.1 关键字保留字2.1.1 关键字2.1.2 保留字2.1.3 标识符2.1.4 Java中的名称命名规范 2.2 变量2.2.1 分类2.2.2 整型变量2.2.3 浮点型2.2.4 字符型 char2.2.5 Unicode编码2.2.6 UTF-82.2.7 boolean类型 2.3 基本数据类型转换2.3.1 自动类型转换2.2.2 强…

ES学习日记(二)-------集群设置

上一节写了elasticsearch单节点安装和配置,现在说集群,简单地说就是在多台服务器上搭建单节点,在配置文件里面增加多个ip地址即可,过程同单节点部署,主要说集群配置 注意:不建议在之前单节点es上修改配置为集群,据说运行之后会生成很多文件,在单点基础上修改容易出现未知问题,…