CXL技术交流群问题讨论记录(1)

news2024/11/15 21:23:16


🔥点击查看精选 CXL 系列文章🔥


📢 声明

  • 🥭 作者主页:【MangoPapa的CSDN主页】。
  • ⚠️ 本文首发于CSDN,转载或引用请注明出处【https://mangopapa.blog.csdn.net/article/details/134131924】。
  • ⚠️ 本文目的为 个人学习记录知识分享。因个人能力受限,存在协议解读不正确的可能。若您参考本文进行产品设计或进行其他事项并造成了不良后果,本人不承担相关法律责任。
  • ⚠️ 若本文所采用图片或相关引用侵犯了您的合法权益,请联系我进行删除。
  • 😄 欢迎大家指出文章错误,欢迎同行与我交流 ~
  • 📧 邮箱:mangopapa@yeah.net
  • 💬 直达博主:loveic_lovelife 。(搜索或点击扫码)

文章目录

    • Cachemem Message 定义、使用
    • Arb/Mux仲裁问题
    • Retry 问题
    • CXL Latency
    • Degrade Mode
    • HDM/MLD 应用
    • 识别不到 NUMA 节点
    • 仿真问题
    • 参与讨论


以下问答来源于博主 MangoPapa 牵头组织的 【CXL 技术交流群】,博主仅对讨论内容进行总结记录,不保证问题答案的正确性。如有谬误,欢迎指出;如持异见,欢迎讨论。如有意加入,欢迎联系我。

Cachemem Message 定义、使用

  1. 对博文《CXL.cache D2H Message 释义》内容存疑,若 Device 中 Cache Miss 后发出 RdOwnNoData,Host 不回复数据,那么 Device 内该 Cacheline 还是 Invalid 吗?
    在这里插入图片描述
    若 Host 回复了 GO-E,则 Device 内该 Cacheline 状态变化为 I->E,即不在为 Invalid。

  2. 追问:Device 内该 Cacheline 处于 E 态,此前又没有数据回来,数据和内存中不一致吧?
    RdOwnNodata 多用于 Cacheline Write 之前获取 Exclusive 权限,其状态会 I->E->M,I->E 之后、E->M 之前不要去读,读的话需要用 RdOwn 来保证读到的数据与内存一致,不能用 RdOwnNoData。

  3. 下图为 CXL 2.0 Spec 中 Device Read to Device-attached Memory的 示意图,对于 Host-bias 访问,如果 Host 内也有一份 Copy,Host Copy 如何写回到 Device Memory 中?根据文档中的描述(描述随附),是否会在图中的箭头位置插入一些操作?
    文档描述:In the first one, a device read to device attached memory happened to find the line in Host bias. Since it is in Host bias, the device needs to send the request to the Host toresolve coherency. The Host, after resolving coherency, sends a MemRdFwd on CXL.mem to complete the transaction, at which point the device can complete the read internally.
    在这里插入图片描述
    回复1:我感觉如果是 E/S 的 Copy,Host 就把状态变成 Invalid,把所有权给 Device,如果是 M,就发起 CXL.mem MemWr 把数据写回,然后再发 MemWrFwd。
    回复2:我感觉应该是根据 Rd 的 op 决定的。
    补充:CXL 3.0 中指出了具体的 Rd 类型。

Arb/Mux仲裁问题

  1. 已知 CXL Arb/Mux 仲裁策略支持自定义,请问大家是如何考虑的?采用的什么策略?
    我们采用了 WRR(Weighted Round Robin,加权循环调度)策略,Cachemem 权重高,IO 权重低。

  2. 追问:是否要支持 Adapter 仲裁权重任意可配?比如 1:64 或更大?
    比例无需配置太大,只需保证 Value 大小稍微大一点即可。

Retry 问题

  1. 为什么 Retry Framing Sequence 定义 Retry.Req/Ack 之前需要 5 个 Retry.Frame 而不是 4 个?
    根据协议,最多支持连续发送 4 个ADF (All Data Flit) 是为了区分发 5 个 Retry.Frame。

  2. 追问:为什么 4 个 Retry.Frame 不足以区分?
    因为 ADF 最多有四个,如果 Retry.Frame 也发四个的话,连续四个 ADF 里的字段如果被识别成 Retry.Frame 就可能会被误认成要 Retry 了,但是连续五个 Retry.Frame 是不会跟 ADF 混淆的。

  3. 追问:假设为 4 个 Retry.Frame,即便 4 个 ADF 全部被误识别为 Retry.Frame,其后仍有 4*Retry.Frame+Retry.Req/Ack 不是么?怎么会识别为需要 Retry?ADF 必须先于 Control Flit 且不能 Interleave。
    CXL 1.1 时最大支持连续 5 ADF(Max All-Data-Flit=5),因此 5*Retry.Frame+Retry.Req/Ack 防止将 ADF 误判为 Retry,这样是解释地通的。到了 CXL 2.0,最大连续 ADF 数目将为 4,但是 Retry.Frame 数目未作变动(兼容性考虑?)。
    补充:关于 retry.frame为啥保持在了 5,可能啊,可能还有BE的原因,BEP=1 时 1 个 data header 对应 5 slot。CXL 1.1 时候也有 BE 且 max adf=5,至于为啥 retry.frame 还是 5 我也没深究过

CXL Latency

  1. CXL 相比 PCIe,Latency 更小的原因是?
    在这里插入图片描述

  2. 如下图 Device 读 Host Memory 的 Data Path,为何 CXL.io 或 PCIe 在 DDR Ctrl 到颗粒之间会多出那么多延迟?Host 端 PCIe RC 的 AXI Master 去 DDR 取数据无需 CPU 介入吧?(图中红圈内含 CPU 操作)
    在这里插入图片描述
    讨论1:是否是因为 PCIe 访问主存比 CXL 访问主存多了 DMA 搬运。

  3. 追问:RC 收到 EP 的 MRd TLP 经 tlp2axi bridge 后由 RC 的 AXI Master 经 Bus Matrix 到DDR,无需 DMA 吧?
    这是 IO Coherency 引入的高延时吧。图中有歧义,不应体现在 DDR Ctrl 到颗粒之间的延时中。

Degrade Mode

  1. CXL 在降级模式下是怎么操作的?
    个人理解就是支持 Gen5 x16 的 Device,Host 目标速率设成非 32GT/s 或者 Link Width 非 x16 就是Degraded 模式了

  2. 追问:那 Degrade 模式下 CXL 还是和 32G 时传输流程一样么?就只是速率变慢了?
    Link Width 在Synopsys IP 都是可配置的。我们曾经用 FPGA 开发板在 Gen4 协商速率下工作,按照我的理解,仅仅速率变了,其他都没变。

HDM/MLD 应用

  1. CXL DVSEC 中 CXL Range Size (Memory_Size) 为 RO,这个值是固定的吗?如果后期插的存储条大小变化怎么办?
    在 PCIe 建链前,由 CPU 初始化配置。后续如果更改了,更改 CPU 配置值就可以。

  2. CXL Device 的 Function 是如何规定的?需要几个 PF?是否需要 VF?
    需要 1 个 PF,不需要 VF。

  3. 追问:MLD 呢?是 1PF+15VF 还是 16PF?
    讨论1:PF 应该不会设置那么多,底层 PCIe Ctrl 难以 Hold 住 16PF。
    讨论2:.mem 和内存一个等级,无需虚拟化。对于 PCIe 可以 1PF+nVF,对于 CXL.mem无需 VF。
    讨论3:Function 和 MLD 是两个概念,CXL.mem 应该没有 VF 内容。一个 Mem Device 可以指出 16 MLD,每个 MLD 类似于一个 PF,但是没有 BDF 的说法。多个 Host Bridge 绑定多个 MLD,类似于分区。
    讨论4:我感觉 PCIe 里的 SRIOV 做虚拟化是两层内涵,1.通过 VF 把设备的的资源/队列实体让客户机直接编程 2.Host 侧部署 SMMU 支持设备对主存的基于客户机虚拟地址的访问 CXL 或许在第二点上和 PCIe 有不同,但我感觉第一点还在。
    阶段性结论:确实不是 BDF 了,而是 LD-ID,参照下图。
    在这里插入图片描述

在这里插入图片描述

  1. 追问:如果一个 MLD 支持 16 个 LD,每个 LD 一个 Function,配置 IP 需要几个 Function?
    指出几个 LD 就配置几个 Function,和 CXL 关系不大。

  2. 目前有做MLD Feature的吗?
    <无人回答>

识别不到 NUMA 节点

  1. 该如何配置 PCIe DVSEC for CXL Device 中的 Range?能够 Link Up,但 Host(联想)识别不到 NUMA 形式的节点。
    由 Device 给定 Size,Host OS 获取 Device 分配的 Range。
    我们 OS 系统上同样遇到了找不到 NUMA 节点的情况,采取了以下两个操作:

    • Install the OS with UEFI boot mode.
    • Try for simplified smdk kernel.(三星的 SDK)
      补充:采用 Intel Host 能够 Link,但是 AMD Host Link 失败。
  2. AMD Host 没起来是 Link 没起来?还是 Traffic 不通?
    可以 Link 起来,但 CXL 1.1 FPGA Device 被 AMD Host识别为CXL 2.x Device。
    在这里插入图片描述

  3. 采用 AMD Host 存在 Link 不起来问题,去 Compliance 时候就失败了
    大概是一个 IO PM VDM Message Routing 的一个问题,如果 Device Check 了 Routing 可能会有点问题,如果是类似问题可以通过刷 Firmware 解决。
    补充:AMD 反馈 Geona 板子有和别的 Vendor Link 不起来的情况。

仿真问题

  1. Intel Agilex I-series FPGA 的 CXL design example 仿真官方文档中说需要 avery CXL VIP,这里可不可以用其他厂商的 CXL VIP?
    讨论1:如果需要在 example tb 里直接跑 example testcase,那必须用他们的 VIP。
    讨论2:确实需要,跟 FAE 反复确认后需要,但可以把 CXL IP Bypass 掉,自己制造 CXL IP 输出信号给后续模块。
    讨论3:是可以的,CXL.mem 或者 CXL.cache 的 boundry 再转成 AXI 到 Memory Controller , 我以前就这么做的,但是不是 Intel 的 Design。

参与讨论

superhorse,青简半卷,Yierrs,Andy,李兵,沐叶,秦木木,民工松,欢乐糗球,Jianglfl,友谊的小船需要帆,天明,Yue H,小陈麻花,MangoPapa,陆小虎,谷东昌,忠俊,晴空一鹤排云上,Exceed 星途,Stan,Eric-Xianyu,五岁抬头,Cheney.Ren,Bazinga,无问西东

— END —


🔥 精选往期 CXL 协议系列文章,请查看【 CXL 专栏】🔥

⬆️ 返回顶部 ⬆️

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

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

相关文章

Python 学习1 基础

文章目录 基础字符串字面量常用的值类型注释变量print语句数据类型数据类型转换标识符运算符 字符串拓展小结 2023.10.28 周六 最近打算学一下Python&#xff0c;毕竟确实简单方便&#xff0c;而且那个编程语言排名还是在第一。不过不打算靠它吃饭&#xff0c;深不深入暂且不说…

防数据泄密的解决方案

防数据泄密的解决方案 安企神数据防泄密系统下载使用 现代化企业离不开信息数据&#xff0c;数据对企业的经营至关重要&#xff0c;也是企业发展的命脉。为了保护公司数据不被泄露&#xff0c;尤其是在防止数据泄密方面&#xff0c;公司面临着巨大的挑战&#xff0c;需要采取…

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码)

文章目录 一、爬取目标二、实现效果三、准备工作四、代理IP4.1 代理IP是什么&#xff1f;4.2 代理IP的好处&#xff1f;4.3 获取代理IP4.4 Python获取代理IP 五、代理实战5.1 导入模块5.2 设置翻页5.3 获取图片链接5.4 下载图片5.5 调用主函数5.6 完整源码5.7 免费代理不够用怎…

EasyFlash移植使用- 关于单片机 BootLoader和APP均使用的情况

目前&#xff0c;我的STM32单片机&#xff0c;需要在BootLoader和APP均移植使用EasyFlash&#xff0c;用于参数管理和IAP升级使用。 但是由于Flash和RAM限制&#xff0c;减少Flash占用&#xff0c;我规划如下&#xff1a; BootLoader中移植EasyFlash使用旧版本&#xff0c;因为…

机器学习-基本知识

 任务类型 ◼ 有监督学习(Supervised Learning) 每个训练样本x有人为标注的目标t&#xff0c;学习的目标是发现x到t的映射&#xff0c;如分类、回归。 ◼ 无监督学习(Unsupervised Learning) 学习样本没有人为标注&#xff0c;学习的目的是发现数据x本身的分布规律&#xf…

ROS自学笔记二十: Gazebo里面仿真环境搭建

Gazebo 中创建仿真实现方式有两种:1直接添加内置组件创建仿真环境2: 手动绘制仿真环境 1.添加内置组件创建仿真环境 1.1启动 Gazebo 并添加组件 1.2保存仿真环境 添加完毕后&#xff0c;选择 file ---> Save World as 选择保存路径(功能包下: worlds 目录)&#xff0c;文…

二维数组如何更快地遍历

二维数组如何更快地遍历 有时候&#xff0c;我们会发现&#xff0c;自己的代码和别人的代码几乎一模一样&#xff0c;但运行时间差了很多&#xff0c;别人是 AC \text{AC} AC&#xff0c;你是 TLE \text{TLE} TLE&#xff0c;这是为什么呢&#xff1f; 一个可能的原因是数组的…

延迟队列实现方案总结

日常开发中&#xff0c;可能会遇到一些延迟处理的消息任务&#xff0c;例如以下场景 ①订单支付超时未支付 ②考试时间结束试卷自动提交 ③身份证或其他验证信息超时未提交等场景。 ④用户申请退款&#xff0c;一天内没有响应默认自动退款等等。 如何处理这类任务&#xff0c;最…

http1,https,http2,http3总结

1.HTTP 当我们浏览网页时&#xff0c;地址栏中使用最多的多是https://开头的url&#xff0c;它与我们所学的http协议有什么区别&#xff1f; http协议又叫超文本传输协议&#xff0c;它是应用层中使用最多的协议&#xff0c; http与我们常说的socket有什么区别吗&#xff1f; …

2000-2021年上市公司产融结合度量数据

2000-2021年上市公司产融结合度量数据 1、时间&#xff1a;2000-2021年 2、指标&#xff1a;股票代码、年份、是否持有银行股份、持有银行股份比例、是否持有其他金融机构股份、产融结合 3、来源&#xff1a;上市公司年报 4、范围&#xff1a;上市公司 5、样本量&#xff…

4种类型WMS的简要说明

仓库管理系统&#xff08;WMS&#xff09;主要有四种类型&#xff1a;独立仓库管理系统、供应链管理系统中的仓库管理模块、ERP 系统中的仓库管理模块和基于云的仓库管理系统。 独立仓库管理系统 独立仓库管理系统提供的功能可实现日常仓库运营。公司可以使用WMS系统来监管和…

【MATLAB源码-第62期】基于matlab的DCSK(差分混沌移位键控调制)系统误码率仿真。

MATLAB 2022a 1、算法描述 DCSK&#xff08;Differential Chaos Shift Keying&#xff09;是一种差分混沌移位键控调制方式&#xff0c;常用于无线通信系统。其调制和解调的基本流程如下&#xff1a; 1. DCSK调制 1.1 生成混沌序列 - 初始条件&#xff1a;选择一个混沌映射&a…

『K8S 入门』一:基础概念与初步搭建

『K8S 入门』一&#xff1a;基础概念与初步搭建 一、kubernetes 组件 官方示图 抽象示图 Master 控制面板 Api-Server&#xff1a;接口服务&#xff0c;基于 REST 风格开放 k8s 接口的服务ControllerManager cloud-controller-manager&#xff1a;云控制管理器。第三方平…

Android图片加载框架库源码解析 - Coil

文章目录 一、什么是Coil二、引入Coil1、ImageView加载图片1.1、普通加载1.2、crossfade(淡入淡出)加载1.3、crossfade的动画时间1.4、placeholder1.5、error1.6、高斯模糊1.7、灰度变换1.8、圆形1.9、圆角 2、Gif加载3、SVG加载(不存在)4、视频帧加载5、监听下载过程6、取消下…

想翻译pdf文档,试了几个工具对比:有阿里(完全免费,快,好用,质量高,不用注册登录)道最好(有限免费) 百度(有限免费)和谷歌完全免费(网不好)

文档翻释作为基础设施&#xff0c;工作必备。 阿里 &#xff08;完全免费&#xff0c;快&#xff0c;好用&#xff0c;质量高&#xff0c;不用注册登录&#xff0c;无广告&#xff09;我给满分 https://translate.alibaba.com/#core-translation 先选好语言。 Google(完全免…

PDManer生成Postgis对应Schema数据库设计文档

项目开发数据库选择postGis&#xff0c;由于需要编写数据库设计说明书&#xff0c;因此选择工具PDManer生成数据库设计文档&#xff0c;但是postGis一个数据库&#xff0c;可能对应多个Schema。如下图所示&#xff1a; 1.编写数据库设计文档时&#xff0c;仅需编写hly这个Sche…

美妆造型教培服务预约小程序的作用是什么

美业市场规模很高&#xff0c;细分类目更是比较广&#xff0c;而美妆造型就是其中的一类&#xff0c;从业者也比较多&#xff0c;除了学校科目外&#xff0c;美妆造型教培机构也有生意。 对机构来说主要目的是拓客引流-转化及赋能&#xff0c;而想要完善路径却是不太容易&…

Ubuntu16.04 python matplotlib 坐标轴标签出现中文乱码

问题&#xff1a;坐标轴打印中文时&#xff0c;显示会乱码 import matplotlib.pyplot as plt plt.ylabel(时间刻度)原因&#xff1a;matplotlib里面没有中文字体解决方法&#xff1a;下载SimHei字体&#xff0c;快捷方法是使用everything直接在windows搜索simhei.ttf&#xff…

计算机基础知识41

前端 # 前端是所有跟用户直接打交道 比如&#xff1a;PC页面、手机页面、汽车显示屏&#xff0c;肉眼可以看见的 # 后端&#xff1a;一堆代码&#xff0c;用户不能够直接看到&#xff0c;不直接与用户打交道 常见的后端&#xff1a;Python、Java、Go等 # 学了前端就可以做全栈…

0004net程序设计-抗疫物资

文章目录 **摘** **要**目 录系统设计开发环境 摘 要 近些年来&#xff0c;随着科技的飞速发展&#xff0c;互联网的普及逐渐延伸到各行各业中&#xff0c;给人们生活带来了十分的便利&#xff0c;抗疫物资管理系统利用计算机网络实现信息化管理&#xff0c;使整个抗疫物资管理…