当前位置: 首页 > news >正文

CXL.mem S2M Message 释义



🔥点击查看精选 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.lryc.cn/news/152687.html

相关文章:

  • 设计模式—外观模式(Facade)
  • Stack Overflow开发者调查发布:AI将如何协助DevOps
  • 去掉鼠标系列之二:Sublime Text快捷键使用指南
  • docker-compose安装node-exporter, prometheus, grafana
  • 企业架构LNMP学习笔记10
  • [国产MCU]-W801开发实例-I2C控制器
  • 植物根系基因组与数据分析
  • 2.3 数据模型
  • RT-Thread 中断管理学习(一)
  • 学习周报9.3
  • win10 查看指定进程名的端口号
  • 函数的递归调用
  • 李宏毅机器学习笔记:RNN循环神经网络
  • 基于JavaWeb和mysql实现校园订餐前后台管理系统(源码+数据库)
  • CNN 01(CNN简介)
  • AI大模型的使用-让AI帮你写单元测试
  • vscode调教配置:快捷修复和格式化代码
  • pear admin 后端启动
  • C++:输出系统时间(及报错处理)
  • 使用Windbg动态调试排查软件启动不了的问题
  • Swift 技术 视频播放器滚动条(源码)
  • PixelSNAIL论文代码学习(2)——门控残差网络的实现
  • WebGPU学习(9)---使用Pipeline Overridable Constants
  • javaweb入门版学生信息管理系统-增删改查+JSP+Jstl+El
  • 云原生Kubernetes:K8S概述
  • nmap的使用
  • Python爬虫-某网酒店数据
  • 了解atoi和offsetof
  • 命令行编译VS工程
  • Linux防火墙命令