CXL.mem S2M Message 释义

news2025/1/20 18:33:45


🔥点击查看精选 CXL 系列文章🔥
🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥


📢 声明

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

文章目录

  • 0. 前言
  • 1. NDR
  • 2. DRS
  • 3. BISnp
  • 4. Q&A




0. 前言

  S2M 方向有 NDR、DRS、BISnp 三个 Channel。S2M 没有独立的 Data Channel,而是跟 Rsp 合并到一起了。本文对 M2S 方向各 Channel 的 Message 进行释义。

在这里插入图片描述



1. NDR

  NDR 为不携带 Data 的 Response,主要为 Completion 消息,此外还有对冲突指示消息的响应。

  NDR 包含以下 Message:

  • Cmp ,WriteBack、Read、Invalidation 等请求的 Completion;
  • Cmp-S ,DCOH 指示 Host 当前 Cacheline 为 S 状态;
  • Cmp-E ,DCOH 指示 Host 当前 Cacheline 为 E 状态;
  • BI-ConflictAck ,BIConflict 的 Ack。

  跟 Req 相比,Rsp 多了 DevLoad,用来指示 Device 当前的工作负载轻重。更多 DevLoad 的用法可参考《CXL QoS Telemetry 介绍》。



2. DRS

  DRS 可以理解为 Memory Read 的 CplD,携带有读回来的数据。

  DRS 有以下 Message:

  • MemData ,读回的数据
  • MemData-NXM ,NFX 是指 Not Existed Memory,地址指向的 Memory 区域不存在,Data Payload 全为 1。


3. BISnp

  BISnp 由 S 发出,用于改变 Host 的 Cache 状态,通过实现 Inclusive Snoop Filter 来对 Host Cache 进行 Track。BISnp 仅工作于 256B Flit Mode。

  BISnp 包含以下 Message:

  • BISnpCur ,Device 请求 Host 侧该 Cacheline 的数据副本,但不改变 Host Cacheline 状态。这么说吧,当 Device 想要一份数据但 Device Cache 没有(I),通过该请求来探察一下 Host Cache 有没有,Host 返回 BIRsp*来告诉 Device 探察结果。SnpCur 是不希望读回会的数据被 Cache 的,所有取回来之后 Device 该 Cacheline 还是 I。
  • BISnpData ,Device 请求 Host 侧该 Cacheline 的 S 或 E 数据副本。当 Device 想要请求某 Cacheline 独享/共享权限时,向 Host 发送 BISnpData,Host 返回 BIRspI/S。如果返回的 BIRspI,表示 Host 已经将该 Cacheline Invalid 了,Device 可以将该 Cacheline 置为 E 或保持 S;若 Host 返回的 BIRspS,说明 Host 没同意,Device 不能独享该 Cacheline,仍为 S。Host 不能返回 BIRspE(发起 BISnpData 的前提是 Device 有该 cacheline 且非 I,I 就发 BISnpCur 了,Device 有,那么 Host 就不能是 E,当然也不会返回 E)。跟 BISnpCur 比,该请求读回来的数据是能够 Cache 的(很显然,都请求 SE 了,再不给 Cache 权限就说不过去了)。
  • BISnpInv ,Device 请求 Host 侧该 Cacheline 的 E 数据副本,Device 想要独享,Host 只得 I,数据回到 Device 后能进行 Cache。跟 BISnpData 比,BISnpInv 要的权限更具体,Host 只能回复 BIRspI。获得权限后,Device 可以不要该权限,仍保持 S。
  • BISnpCurBlk ,可以指定 2 或 4 条连续 Cacheline 的 Block。
  • BISnpDataBlk ,同上。
  • BISnpInvBlk ,同上。

  对于 Outstanding S2M BISnp,Device 需要在 BISnp 完成之前 Block 住相同地址的 M2S Req。



4. Q&A

  1. 为什么 Device 不直接来 Host Cache 取数据?
    CXL Device 的 Cache 位于 CPU LLC 下,Device 可以采用 CXL.cahce 直接来 Host Cache 取数据。

  2. Host 能直接把 Host Cache 内的数据 Flush 到 Device Memory 吗?就是说,能否绕过 Host Memory 的中转,让 Host Processor/Cache 直接跟 Device Memory 接上头?
    能。CXL.mem 不就是干这个的么,比如 M2S MemRd、MemWr。

  3. Meta 是什么?
    Host 给 Device 的暗示信息,告知 Device 该 CacheLine 在 Host 侧的 Cache 状态,而非 Device 内的状态,便于 DCOH 进行一致性相关操作。

  4. 错误认知: 对于 HDM-H 区域,Host 不能发任何有效的 SnpType 给 Device,因为 Device 里没有备份,没有还 Snoop 啥????可以发!看附件 A-3 表格!

  5. BI 能用于 Host Memory 区域吗?
    不能。Host Memory 直接用.cache 啊。用 BI 的场景:HDM-DB 区域,Device 想把 Device Memory 在 Host 侧 Cacheline 内的数据给处理掉。


— END —


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

⬆️ 返回顶部 ⬆️

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

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

相关文章

【操作系统】一文快速入门,很适合JAVA后端看

作者简介: 目录 1.概述 2.CPU管理 3.内存管理 4.IO管理 1.概述 操作系统可以看作一个计算机的管理系统,对计算机的硬件资源提供了一套完整的管理解决方案。计算机的硬件组成有五大模块:运算器、控制器、存储器、输入设备、输出设备。操作…

使用candump+grep查看CAN报文

在Linux系统中观察看CAN报文,我们一般使用candump,但是有时候会发现总线上CAN报文太多,例如开启了好几个PDO,这就导致想看的报文被夹杂到报文的海洋里,然后再去找,非常麻烦。 candump也提供了只观察某个报…

LeetCode 无重复字符的最长子串 打败100%的人

😀前言 LeetCode上的“无重复字符的最长子串”问题要求我们找到给定字符串中不包含重复字符的最长子串的长度。这个问题是一个典型的滑动窗口技巧的应用,需要有效地处理字符出现的情况来找到解决方案。 . 在本解决方案中,我们将探讨两种不同的…

EMC VNX2代一键关机方法

由于不正确的EMC VNX存储系统的关机导致客户业务中断,数据丢失的案例数不胜数。不正确的关机顺序,很容易造成内存中的数据丢失,进而导致dirty cache,然后系统的LUN和POOL就无法online,业务中断。本文仅仅对EMC 2代产品…

Vue——vue3+element plus实现多选表格使用ajax发送id数组

代码来源: Vue 3结合element plus(问题总结二)之 table组件实现多选和清除选中(在vue3中获取ref 的Dom)_multipletableref.value.togglerowselection()打印出来的是u_子时不睡的博客-CSDN博客 前言 为了实现批量删除功能的功能…

linux编程第一部分总结

C多线程安全原则 对象析构很复杂&#xff0c;我们采用shared_ptr和weak_ptr来做 enable_shared_from_this<>是用来做回调的&#xff0c;因为多线程中可能对象的生命周期比传出去的this指针短&#xff0c;同时为了不延长对象的生命周期&#xff0c;我们把shared_ptr转成we…

单目标应用:基于麻雀搜索算法SSA的微电网优化调度MATLAB

一、微网系统运行优化模型 参考文献&#xff1a; [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、麻雀搜索算法简介 麻雀搜索算法 (Sparrow Search Algorithm, SSA) 是一种新型的群智能优化算法&#xff0c;于2020…

Scalene:Python CPU+GPU+内存分析器,具有人工智能驱动的优化建议

一、前言 Python 是一种广泛使用的编程语言&#xff0c;通常与其他语言编写的库一起使用。在这种情况下&#xff0c;如何提高性能和内存使用率可能会变得很复杂。但是&#xff0c;现在有一个解决方案&#xff0c;可以轻松地解决这些问题 - 分析器。 分析器旨在找出哪些代码段…

一文吃透KMP算法

前言&#xff1a;今天&#xff0c;我们要来学习的字符串的高效匹配算法&#xff0c;KMP算法&#xff0c;用于在一个文本串中查找一个模式串的出现位置。相比于朴素的字符串匹配算法&#xff0c;KMP算法具有更低的时间复杂度&#xff0c;KMP算法的核心思想是利用已匹配的部分信息…

如何在Spring Boot应用中使用Nacos实现动态更新数据源

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

zabbix概述及简单的在centos7安装Zabbix5.0及添加监控对象

目录 一、概述 1、概念 2、Zabbix构成&#xff1a; 3、Zabbix的专业术语包括&#xff1a; 4、Zabbix的工作流程如下&#xff1a; 5、Zabbix的进程包括&#xff1a; 6、Zabbix的监控框架包括&#xff1a; 7、Zabbix的配置流&#xff1a; 8、zabbix程序结构 9、 zabbix…

基于YOLOV8模型的农作机器和行人目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOV8模型的农作机器和行人目标检测系统可用于日常生活中检测与定位农作机和行人目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标…

CXL.cache H2D/D2H 请求响应对应关系

&#x1f525;点击查看精选 CXL 系列文章&#x1f525; &#x1f525;点击进入【芯片设计验证】社区&#xff0c;查看更多精彩内容&#x1f525; &#x1f4e2; 声明&#xff1a; &#x1f96d; 作者主页&#xff1a;【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#xff0c…

【大数据】Apache Iceberg 概述和源代码的构建

Apache Iceberg 概述和源代码的构建 1.数据湖的解决方案 - Iceberg1.1 Iceberg 是什么1.2 Iceberg 的 Table Format 介绍1.3 Iceberg 的核心思想1.4 Iceberg 的元数据管理1.5 Iceberg 的重要特性1.5.1 丰富的计算引擎1.5.2 灵活的文件组织形式1.5.3 优化数据入湖流程1.5.4 增量…

手写RPC框架--3.搭建服务注册与发现目录结构

RPC框架-Gitee代码(麻烦点个Starred, 支持一下吧) RPC框架-GitHub代码(麻烦点个Starred, 支持一下吧) 搭建服务注册与发现目录结构 搭建服务注册与发现目录结构a.基于ZooKeeper的服务发现b.搭建基础工程c.基础代码d.编写架子工程e.创建zookeeper基础目录结构 搭建服务注册与发现…

ISP——3A算法

目录 前沿一. 自动曝光AE1.1. 自动曝光1.2. 18%灰1.3. 测光区域1.4. 摄影曝光加法系统1.5. AE算法1.5.1. 考虑事项1.5.2. AE实现过程 1.6. AE算法 二. 自动对焦AF2.1. 什么是自动对焦2.2. 图像清晰度评价方法2.2.1. Brenner 梯度函数2.2.2. Tenengrad 梯度函数2.2.3. Laplacian…

设计模式-8--模板方法模式(Template Method Pattern)

一、什么是模板方法模式&#xff08;Template Method Pattern&#xff09; 模板方法模式&#xff08;Template Method Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了一个算法的骨架&#xff0c;将一些步骤的实现延迟到子类中。模板方法模式允许在不改变算法的…

多机单目标跟踪Cross-Drone Transformer Network for Robust Single Object Tracking

1. 摘要 无人机已被广泛用于各种应用&#xff0c;如空中摄影和军事安全&#xff0c;因为与固定摄像机相比&#xff0c;无人机具有高机动性和广阔的视野。多架无人机跟踪系统可以通过收集不同视角的互补视频片段来提供丰富的目标信息&#xff0c;特别是当目标在某些视角下被遮挡…

微信小程序分包-主包尺寸 (不包合插件) 应小于 1.5 M

目录 起因 分包 最后 起因 更新一个之前的小程序&#xff0c; 上传的时候提示主包尺寸 (不包合插件) 应小于 1.5 M 怎么办&#xff1f;查看教程啊 开发者可通过开发者工具中的性能扫描工具提前发现代码中的可优化项&#xff1a; 1. 代码包不包含插件大小超过 1.5 M 【建议】…

1777_树莓派截图功能实现

全部学习汇总&#xff1a; GitHub - GreyZhang/little_bits_of_raspberry_pi: my hacking trip about raspberry pi. 最近入手了树莓派的3B版本&#xff0c;安装了官方推荐的Debian版本。之前使用Linux的几个发行版本的时候&#xff0c;系统中通常会有KDE等集成的截图工具&…