CXL.mem M2S Message 释义
🔥点击查看精选 CXL 系列文章🔥
🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥
📢 声明:
- 🥭 作者主页:【MangoPapa的CSDN主页】。
- ⚠️ 本文首发于CSDN,转载或引用请注明出处【https://mangopapa.blog.csdn.net/article/details/132647102】。
- ⚠️ 本文目的为 个人学习记录 及 知识分享。因个人能力受限,存在协议解读不正确的可能。若您参考本文进行产品设计或进行其他事项并造成了不良后果,本人不承担相关法律责任。
- ⚠️ 若本文所采用图片或相关引用侵犯了您的合法权益,请联系我进行删除。
- 😄 欢迎大家指出文章错误,欢迎同行与我交流 ~
- 📧 邮箱:mangopapa@yeah.net
- 💬 直达博主:loveic_lovelife 。(搜索或点击扫码)
文章目录
- 0. 前言
- 1. Req
- 1.1 MemOp
- 1.2 SnpType
- 1.3 Meta
- 2. RwD
- 3. BIRsp
- 4. 参考
0. 前言
M2S 方向有 3 个 Channel:Req,RwD,BIRsp,本文对 M2S 方向各 Channel 的 Message 进行释义。
1. Req
Req 是指未携带数据的 M2S 请求,多为 Read 及 Forward 相关。M2S Req 主要是在 MemOp、Meta、SnpType 共同作用下完成的,MemOp 指定 Memory 操作类型,SnpType 指定对 Device Cache 的操作,MetaField/MetaValue 指示 Host Cache 的状态。
1.1 MemOp
Req 包含以下几种 MemOp:
- MemInv ,Master 发起的 Invalidation 操作,主要用于更新 Meta Data,无需读写数据。常用于 Master 获取归属于 Device Memory 的指定 Cacheline 的 Exclusive 或 Shared 权限。
- MemInvNT ,跟 MemInv 类似,多了一层 Hint 的意思,暗示(但不保证)该 Invalidation 是非时态的,预计很快会写回。该请求读 Device Meta State,但是不修改。
- MemRd ,常规的 Memory Read,Meta Field 及 MetaData 字段可用。若 Meta Field 包含有效字段,则执行 Meta 数据更新。
- MemRdData ,常规的 Memory Read,忽略 MetaField 及 MetaValue 不用。Device 收到该请求后,若原 Meta0-State=I 则更新为 A,其他状态(SA)保持不变。
- MemRdFwd ,将 D2H 的 Read 请求转发回去,仅适用于 HDM-D Host-bias 区域,Device DCOH 直接到其 Memory 内读数据,且完成后无需给 Host 回 Completion。该请求内的 Tag 采用 D2H Req 的 CQID,SnpType 必须为 NoOp。
- MemWrFwd ,跟 MemRdFwd 类似,将 D2H 的 Write 请求转发回去,仅适用于 HDM-D Host Bias 区域,Device 完成后无需给 Host 回 Completion
- MemSpecRd ,在 Home Agent 解决一致性之前就发出,从而减小 Latency,需要 MemData 但无需 Completion。Tag, MetaField, MetaValue, and SnpType 均 Reserved。
- MemClnEvct ,跟 MemInv 类似,但是该请求还用于指示 Host 正在变为 I 状态且无需返回 Meta0 状态。仅用于 HDM-DB 地址域。
以上几种请求有特定的应用范围:对于 HDM-H 区域,只能发送 MemRd、MemInv、MemInvNT、MemRdData、MemSpecRd 这 5 种请求;MemRdFwd、MemWrFwd 是转发 Device 发来的请求,只适用于 HDM-D Host Bias 区域;MemClnEvct 仅用于 HDM-DB 区域。
对于 MemInv、MemRd、MemRdData,若 SnpType 包含有效命令,应按需求执行。
1.2 SnpType
SnpType 可认为是 Host 对 Device Cache 内 Cacheline 的操作请求,Host 通过该字段对 Device Cache 内的相关 Cacheline 进行 Snoop。SnpType 同样分为 SnpCur、SnpData 及 SnpInv,释义如下:
- SnpData ,Requestor 需要至少一条 Shared Line;
- SnpCur ,Requestor 读取 Device 侧该 Cacheline 的数据,且保证不会对齐进行缓存,Device 无需改变该 Cacheline 的状态;
- SnpInv ,Requestor 想要独占该 Cacheline。
1.3 Meta
Meta 可认为 Host 给 Device 的暗示信息,告知 Device 该 CacheLine 在 Host 侧的 Cache 状态,而非 Device 内的状态,便于 DCOH 进行一致性相关操作。
Meta 有 MetaField、MetaValue 两个字段,释义如下:
- MetaField ,指定 Meta 的 Entry,最大支持 3 个 Meta Field,目前只有 Meta0-State。如果存在 Meta Field,则需要更新相关 Meta Data 的值。如果 Device Memory 不支持 Meta Data,DCOH 仍然可以采用该字段来推测 Host 的指令意图。
- MetaValue ,需要更新到指定 Meta 的值。对于 Meta0,不同的值代表不同的 Meta0-State。
更多 Meta Data 相关释义可参考《CXL Meta Data 介绍》 。
2. RwD
RwD 为带有 Data 的 Memory 操作请求,通常为写 Memory 操作,也包含来借道的冲突指示操作。RwD 为独立 Channel 且不依赖于 M2S Req 或 S2M BISnp。
RwD 请求包括以下几种:
- MemWr ,常规 Memory 写操作,整行写。MetaField 及 SnpType 按其既定意义执行。若 Snoop 到 Device 中该 Cacheline 为 M,DCOH 会将其 Invalidate 掉并将 Host 中的数据写回 Device Memory。
- MemWrPtl ,部分写,跟 MemWr 的区别在于 MemWrPtl 带有 Byte Enable。如果 Device 内该 Cacheline 为 M,会先将 Host 发来的数据与当前数据 Merge,将 Cacheline Invalidate 掉并将 Merged 数据写入 Device Memory。MemWr 不涉及这个 Merge 操作。
- BIConflict ,Host 在相同地址的 Cacheline 上检测到了一致性冲突。该请求的 Datapayload 字段全零,即不携带有意义的数据。之所以采用 RwD,是因为该 Channel 的复杂度较低,能够避免死锁。
3. BIRsp
BIRsp 是对 S2M BISnp 的响应, 指示 Host 完成 Back Invalidation 之后该 Cacheline 的状态。BIRsp 包含以下 Message:
- BIRspI
- BIRspS
- BIRspE
- BIRspIBlk
- BIRspSBlk
- BIRspEBlk
4. 参考
- CXL Base Spec, r3.0
- 非时态数据- 知乎 (zhihu.com)
|
🔥 精选往期 CXL 协议系列文章,请查看【 CXL 专栏】🔥
⬆️ 返回顶部 ⬆️
相关文章:

CXL.mem M2S Message 释义
🔥点击查看精选 CXL 系列文章🔥 🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥 📢 声明: 🥭 作者主页:【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN,…...

使用boost::geometry::union_ 合并边界(内、外):方案二
使用boost::geometry::union_ 合并边界(内、外):方案二 typedef boost::geometry::model::d2::point_xy<double> boost_point; typedef boost::geometry::model::polygon<boost_point> boost_Polygon;struct Point {float x;floa…...

ICCV 2023 | 小鹏汽车纽约石溪:局部上下文感知主动域自适应LADA
摘要 主动域自适应(ADA)通过查询少量选定的目标域样本的标签,以帮助模型从源域迁移到目标域。查询数据的局部上下文信息非常重要,特别是在域间差异较大的情况下,然而现有的ADA方法尚未充分探索这一点。在本文中&#…...
stable diffusion实践操作-黑白稿线稿上色
系列文章目录 本文专门开一节【黑白稿线稿上色】写相关的内容,在看之前,可以同步关注: stable diffusion实践操作 文章目录 系列文章目录前言一、操作步骤1. 找到黑白线稿图 总结 前言 本章主要介绍黑白稿线稿上色,这是通过Cont…...

Python学习教程:集合操作的详细教程
前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 Python中有两种可以遍历的容器类型: 序列类型:包含字符串、列表、元祖 序列类型是线性表,就像数组一样,是在内存中开辟一块连续空间,连续存储的, 那么查找…...
球球的排列
题目传送门 引 计数DP,好像特别经典,有两种做法,我只会 O ( n 3 ) O(n^3) O(n3),有 O ( n 2 ) O(n^2) O(n2)的 解法 首先, 若 x y p 2 且 x z q 2 , 则 y z ( p q x ) 2 若xyp^2且xzq^2,则yz(\frac{pq}{x} )^2 若xyp2且xzq2,则yz(xpq…...

1783_CMD启动MATLAB同时执行一个脚本
全部学习汇总: GitHub - GreyZhang/g_matlab: MATLAB once used to be my daily tool. After many years when I go back and read my old learning notes I felt maybe I still need it in the future. So, start this repo to keep some of my old learning notes…...
C语言中内存分配的几种方式
目录 C语言中内存分配的几种方式静态内存分配栈内存分配堆内存分配内存映射文件 C语言中内存分配的几种方式 静态内存分配 静态内存分配是在程序编译时分配内存,通常用于全局变量和静态变量。这些变量的内存空间在程序的整个运行期间都是存在的。 栈内存分配 栈内存…...

组相联cache如何快速实现cache line eviction并使用PMU events验证
如何快速实现cache line eviction 一,什么是cache hit、miss、linefill、evict ?1.1 如果要程序员分别制造出cache hit、miss、linefill、evict这四种场景,该怎么做? 二,实现cache line eviction的方法1.1 直接填充法3…...

【Stable Diffusion安装】支持python3.11 window版
前言 主要的安装步骤是参考B站播放量第一的视频,但是那位阿婆主应该是没有编程经验,只强调使用3.10,而python最新版本是3.11。 理论上来说,只是一个小版本的不同,应该是可以安装成功了。自己摸索了下,挺费…...
Anycloud37D平台移植wirelesstools
0. 环境准备 下载 :https://www.linuxfromscratch.org/blfs/view/svn/basicnet/wireless_tools.html 1. 交叉编译wireless_tools tar xzf wireless_tools.29.tar.gz cd wireless_tools.29/打开Makefile,修改配置: ## Compiler to use (mo…...

海康机器人工业相机 Win10+Qt+Cmake 开发环境搭建
文章目录 一. Qt搭建海康机器人工业相机开发环境 一. Qt搭建海康机器人工业相机开发环境 参考这个链接安装好MVS客户端 Qt新建一个c项目 cmakeList中添加海康机器人的库,如下: cmake_minimum_required(VERSION 3.5)project(HIKRobotCameraTest LANG…...

使用MDK5的一些偏僻使用方法和谋个功能的作用
程序下载后无法运行 需要勾选如下库,是优化后的库; MicroLib和标准C库之间的主要区别是: 1、MicroLib是专为深度嵌入式应用程序而设计的。 2、MicroLib经过优化,比使用ARM标准库使用更少的代码和数据内存。 3、MicroLib被设计成在没有操作…...

【实战】十一、看板页面及任务组页面开发(六) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十八)
文章目录 一、项目起航:项目初始化与配置二、React 与 Hook 应用:实现项目列表三、TS 应用:JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…...

在 Amazon 搭建无代码可视化的数据分析和建模平台
现代企业常常会有利用数据分析和机器学习帮助解决业务痛点的需求。如制造业中,利用设备采集上来的数据做预测性维护,质量控制;在零售业中,利用客户端端采集的数据做渠道转化率分析,个性化推荐等。 亚马逊云科技开发者…...

Pinely Round 2 (Div. 1 + Div. 2) G. Swaps(组合计数)
题目 给定一个长度为n(n<1e6)的序列,第i个数ai(1<ai<n), 操作:你可以将当前i位置的数和a[i]位置的数交换 交换可以操作任意次,求所有本质不同的数组的数量,答案对1e97取模 思路来源 力扣群 潼神 心得 感…...

elasticSearch+kibana+logstash+filebeat集群改成https认证
文章目录 一、生成相关证书二、配置elasticSearh三、配置kibana四、配置logstash五、配置filebeat六、连接https es的java api 一、生成相关证书 ps:主节点操作 切换用户:su es 进入目录:cd /home/es/elasticsearch-7.6.2 创建文件&#x…...
GPT带我学-设计模式-迭代器模式
1 什么是迭代器设计模式? 迭代器设计模式是一种行为型设计模式,用于提供一种统一的方式来遍历一个集合对象中的元素,而不需要暴露该对象的内部结构。它将集合对象的遍历操作与集合对象本身分离开来,使得遍历操作可以独立于集合对…...
数学建模--层次分析法(AHP)的Python实现
目录 1.算法流程简介 2.算法核心代码 3.算法效果展示 1.算法流程简介 """ AHP:层次分析法,层次分析法还是比较偏向于主观的判断的,所以在建模的时候尽可能不要去使用层次分析法 不过在某些创新的评价方法上,也是能够运用层次分析使得评价变得全面一些,有可…...

机器学习笔记之最优化理论与方法(三)凸集的简单认识(下)
机器学习笔记之最优化理论与方法——凸集的简单认识[下] 引言回顾:基本定义——凸集关于保持集合凸性的运算仿射变换 凸集基本性质:投影定理点与凸集的分离支撑超平面定理 引言 继续凸集的简单认识(上)进行介绍,本节将介绍凸集的基本性质以及…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...

【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...