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



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


📢 声明

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

文章目录

  • 1. D2H Req – H2D Rsp
    • 1.1 Host Memory 区域
    • 1.2 Device Memory 区域
  • 2. H2D Req – D2H Rsp


1. D2H Req – H2D Rsp

  对于 D2H 方向,不同类型的设备访问不同 Memory 区域时支持的 CXL.cache 请求及 D2H Req 跟 H2D 的映射关系有所不同。

  Device 是如何知道所请求的地址是 Host 还是 Device Memory 区域?——首先,Device 知道自己是哪种类型;其次,有 Bias Table。Type 1 只能访问 Host Memory 区域,Type 3 不支持 CXL.cache,Type 2 HDM 有 Bias Table 来指明地址区域所属的 Bias 类型,在这张表里的就是 Device Memory 区域。

1.1 Host Memory 区域

  如果访问的为 Host Memory 区域,D2H Req 跟 H2D Rsp 的 Mapping 关系如下表所示。

在这里插入图片描述

  请求不是随便发的,需要根据 Device Cacheline 当前状态来发,是有前提条件的。Cacheline 不同状态下允许发送的请求如上表右半部。

1.2 Device Memory 区域

  如果访问的为 Device Memory 区域,D2H Req 跟 H2D Rsp 的 Mapping 跟 HDM 的类型有关:

  • 对于 HDM-H 区域,其仅用于 Type 3 类型的 Device,不支持 CXL.cahce 操作。
  • 对于 HDM-D Device Bias 区域,Host Cache 内没有其备份,Device 不应(Not Expected)向 Host 发送该地址的 CXL.cache 相关请求,相关请求全部在 Device 内部完成。不期望发,但就是发了怎么办?——Spec 里没说,大概率是 Host 回复 GO-Err。
  • 对于 HDM-D Host Bias 区域,不同请求有所不同:
    • 对于 WrCur、ItoMWr、WrInv、CacheFlushed,可以发往 Host,其流程跟访问 Host-attached Memory 相同;
    • 对于 CleanEvict、DirtyEvict 及 CleanEvictNoData 等带有驱逐 Device Cacheline 的请求,不应发往 Host,无论哪种 Bias Mode 均在 Device 内部完成;

  猜测的内部处理方式:对于 E 或 S 状态的 Cacheline,数据是干净的,直接把该 Device Cacheline Invalidate 掉就好了;对于 M 状态的 Cacheline,该 Cacheline 为 Device 独享,Peer Cache 中不存在该 Cacheline,Device 内部直接把脏数据写回到 Device Memory 即可,不必通知 Peer Cache。

  • 对于其他请求,可以发往 Host,Host 通过 CXL.mem 把相关地址访问请求 Forward 回 Device。
  • 如果 Host Cache 内 Cache Hit 也要 Fwd 回来吗?为什么?(待阐释)
  • 为什么 CLFlush Fwd 回来是 MemRdFwd? (待阐释)
  • 对于 HDM-DB 区域,支持的 CXL.cache 请求有:ItoMWr、WrCur、WrInv 及 CacheFlushed,其他的不支持,采用 CXL.mem 的 Back Invalidation 来实现相同功能。

在这里插入图片描述



2. H2D Req – D2H Rsp

  H2D 方向的请求为 Snoop 请求,只能是 Host Memory 区域。H2D Req 跟 D2H Rsp 的 Mapping 关系如下表所示。

在这里插入图片描述

  总结如下:

  • 对于任意 H2D 的 Snoop 请求,若 Device Cache 内不存在该 Cacheline,则 Device 直接回复 RspIHitI。
  • 对于 SnpData,如果 Device Cache 内存在该 Cacheline 且数据 Clean(为 S/E 状态),Host 只要求共享并不独占,Device 回复 RspSHitSE;如果数据 Dirty(为 M 状态),Device 将脏数据写回后可以 Invalidate 该 Cachline 也可以仍然保留该 Cacheline 并很 Host 共享。
  • 对于 SnpInv,如果 Device Cache 内存在该 Cacheline,不管其状态如何都必须将其 Invalidate 掉,有脏数据要写回。
  • 对于 SnpCur,如果 Device Cache 内存在该 Cacheline,Device 可以像回复 SnpData 那样回复 SnpCur;考虑到 Host 并不关心 Device 内该 Cacheline 的状态,Device 也可以回复 RspV*不指明状态(这里的 V 可以认为是 Valid,有效)。如果 Device 需要写回脏数据,则通过 Rsp*Fwd*来告知 Host。

— END —


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

⬆️ 返回顶部 ⬆️

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CUDA小白 - NPP(3) 图像处理 Color and Sampling Conversion

cuda小白 原始API链接 NPP GPU架构近些年也有不少的变化,具体的可以参考别的博主的介绍,都比较详细。还有一些cuda中的专有名词的含义,可以参考《详解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》 常见的NppStatus&#xf…

springboot:时间格式化的5种方法(解决后端传给前端的时间格式转换问题)推荐使用第4和第5种!

本文转载自:springboot:时间格式化的5种方法(解决后端传给前端的时间显示不一致)_为什么前端格式化日期了后端还要格式化_洛泞的博客-CSDN博客 时间问题演示 为了方便演示,我写了一个简单 Spring Boot 项目&#xff…

信息技术01--初/高中--选择真题汇总(197道题)

文章目录 1 真题 01-102 真题 11-203 真题 21-304 真题 31-405 真题 41-506 真题 51-607 真题 61-708 真题 71-809 真题 81-9010 真题 91-10011 真题 101-11012 真题 111-12013 真题 121-13014 真题 131-14015 真题 141-15016 真题 151-16017 真题 161-17018 真题 171-18019 真…

Java运行时jar时终端输出的中文日志是乱码

运行Jar时在控制台输出的中文日志全是乱码,这是因为cmd/bash默认的编码是GBK,只要把cmd的编码改成UTF-8即可 两种方式修改:临时修改和注册表永久修改 临时修改 只对当前的cmd页面有效,关闭后重新打开都会恢复成GBK, 打开cmd&am…

C盘清理 “ProgramData\Microsoft\Search“ 文件夹过大

修改索引存放位置 进入控制面板->查找方式改成大图标, 选择索引选项 进入高级 填写新的索引位置 删除C盘索引信息 删除C:\ProgramData\Microsoft\Search\Data\Applications 下面的文件夹 如果报索引正在使用,参照第一步替换索引位置。关闭索引

泊松回归和地理加权泊松回归

01 泊松回归 泊松回归(Poisson Regression)是一种广义线性模型,用于建立离散型响应变量(计数数据)与一个或多个预测变量之间的关系。它以法国数学家西蒙丹尼泊松(Simon Denis Poisson)的名字命名,适用于计算“事件发生次数”的概率,比如交通事故发生次数、产品缺陷数…

微服务-gateway鉴权

文章目录 一、前言二、gateway鉴权1、依赖配置2、编写代码3、GlobalFilter详解3.1、GlobalFilter简介3.2、GlobalFilter自定义执行顺序3.2.1、实现Order接口实现自定义执行顺序 一、前言 网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过 网关这一…

Flutter:getX的学习

前言 学习教程:Getx教程_FlutterGetx系列实战教程 简介 getX是第三方的状态管理插件,不仅具有状态管理的功能,还具有路由管理、主题管理、国际化多语言管理、网络请求、数据验证等功能。相比其他状态管理组件,getX简单、功能强大…

“智越”界限,SSOT上海国际智慧办公展览会来啦

随着人工智能、大数据、云计算等技术的快速发展,目前物联网应用已经从概念踏进规模部署的阶段,场景化和规模化已成常态。传统办公室作为企业行政运营的核心场景,也开始受到“科技办公“移动办公”“共享办公”等非传“智慧办公”概念的影响不…

vscode远程调试php

使用vscode远程调试php的方法 1.安装remote ssh插件 2.连接服务器 可以点击左下角的绿色按钮,或者ctrlshiftp打开命令框输入remote ssh应该也有。 3.在服务器端vscode安装php debug插件 4.安装xdebug xdebug是用来调试php的软件,原本和vscode没什么关…

04、添加 com.fasterxml.jackson.dataformat -- jackson-dataformat-xml 依赖报错

Correct the classpath of your application so that it contains a single, compatible version of com.fasterxml.jackson.dataformat.xml.XmlMapper 解决: 改用其他版本,我没写版本号,springboot自己默认的是 2.11.4 版本 成功启动项目…

DBeaver 23.1.5 发布

导读DBeaver 是一个免费开源的通用数据库工具,适用于开发人员和数据库管理员。DBeaver 23.1.5 现已发布,更新内容如下. Data editor 重新设计了词典查看器面板 UI 空间数据类型:曲线几何线性化已修复 数据保存时结果选项卡关闭的问题已解决…

【LeetCode】剑指 Offer <二刷>(5)

目录 题目:剑指 Offer 10- II. 青蛙跳台阶问题 - 力扣(LeetCode) 题目的接口: 解题思路: 代码: 过啦!!! 题目:剑指 Offer 11. 旋转数组的最小数字 - 力…

超图嵌入论文阅读1:对偶机制非均匀超网络嵌入

超图嵌入论文阅读1:对偶机制非均匀超网络嵌入 原文:Nonuniform Hyper-Network Embedding with Dual Mechanism ——TOIS(一区 CCF-A) 背景 超边:每条边可以连接不确定数量的顶点 我们关注超网络的两个属性&#xff1…

打破数据孤岛!时序数据库 TDengine 与创意物联感知平台完成兼容性互认

新型物联网实现良好建设的第一要务就是打破信息孤岛,将数据汇聚在平台统一处理,实现数据共享,放大物联终端的行业价值,实现系统开放性,以此营造丰富的行业应用环境。在此背景下,物联感知平台应运而生&#…

计算机毕业设计 校园二手交易平台 Vue+SpringBoot+MySQL

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师,全栈领域优质创作者。 项目内容…

uni-app之android离线自定义基座

一 为什么要自定义基座 1,基座其实就是一个app,然后新开发的页面可以直接在手机上面显示,查看效果。 2,默认的基座就是uniapp帮我们打包好的基座app,然后我们可以进行页面的调试。 3,自定义基座主要用来…

【MySQL】4、MySQL备份与恢复

备份的主要目的是灾难恢复,备份还可以测试应用、回滚数据修改、查询历史数据、审计等 MySQL日志管理 MySQL 的日志默认保存位置为 /usr/local/mysql/data #配置文件 vim /etc/my.cnf 日志的分类 常见日志有: 错误日志,一般查询日志&…

Windows下Redis的安装和配置

文章目录 一,Redis介绍二,Redis下载三,Redis安装-解压四,Redis配置五,Redis启动和关闭(通过terminal操作)六,Redis连接七,Redis使用 一,Redis介绍 远程字典服务,一个开源的,键值对形式的在线服务框架,值支持多数据结构,本文介绍windows下Redis的安装,配置相关,官网默认下载的是…