CXL Memory Cache 分类及 Cacheline 归属问题



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


📢 声明

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

文章目录

  • 0. 前言
  • 1. Memory
    • 1.1 Host Memory
    • 1.2 Device Memory
  • 2. Cache
  • 3. Cacheline 归属




0. 前言

  本文以单 CPU 的 CXL 系统为例,简要介绍 Memory、Cache 在系统中的分布情况,并介绍不同 Cache 中 Cacheline 数据的归属情况。

在这里插入图片描述

1. Memory

1.1 Host Memory

  Host 侧的 Memory 称为 Host Memory(Host-attached Memory),Device 无法直接访问。CXL.cache 提供了一种机制,能够把 Host Memory 缓存到 Device 一侧,这样 Device 就能够快速拿到 Host Memory 的数据。CXL.cache 协议需要在 Host 侧实现 Coherency Bridge,在 Device 侧实现 Cache。

1.2 Device Memory

  Device 侧的 Memory 称为 Device Memory(Device-attached Memory)。Device Memory 支持不同的 Memory 类型,比如 DRAM 易失性内存、PMem 持久内存;支持不同的 Memory 构造配置,比如扁平(Flat)结构、分层(Hierarchical)结构等。

  Device Memory 又进一步分为设备私有内存(Private Device Memory, PDM)和 Host 管理下的 Device Memory(Host-managed Device Memory,HDM)。PDM 只能由 Device 访问或 Host 通过 CXL.io/PCIe 的 MWr/MRd 请求发起访问。对于 HDM,CXL.mem 提供了一种机制,把 Device 侧的 Memory 开放给 Host,这样 Host 能够直接拿到 Device Memory 的数据。CXL.mem 协议需要在 Host 端实现 Home Agent。

  HDM 一致性的管理方案有三种选择:

  • HDM-H,Host-only Coherent,仅用于 Type 3 类型的设备,只通过 Host 来保证一致性。
  • HDM-D,Bias based Device Coherent,是一种带有偏向性的一致性模型,仅用于 Type 2 设备,采用是一种带有偏向性的一致性模型,依赖 CXL.cache 来管理一致性,由 Device 来管理 Device Cache。
  • HDM-DB,可用于 Type 2 或 Type 3 设备,具备一组独立的 Channel,是一种基于 Back Invalidation 的设备一致性模型。HDM-DB 出现于 CXL 3.0,若 HDM 支持 256B Flit Mode,必须支持 HDM-DB。

  Host 和 Device 需要对 HDM 类型达成共识,以对地址范围进行管理。HDM-D/H 类型不可以修改,但是 HDM-D 的 Bias Mode 可以动态修改。更多 HDM-D Bias Mode 相关介绍可参考《CXL Bias Mode》。

2. Cache

  跟 Memory 相似,Host 和 Device 内均存在 Cache。Host 侧的 Cache 称为 Host Cache,通常包含多级。Device 内的 Cache 称为 Device Cache。

  根据文首三级 CPU Cache Hierarchy 的图, CXL Device 的 Cache 是挂在 LLC (Last Level Cache) 下的 ,跟当前 CPU Socket LLC 下一级的 CPU Cache、Device Cache 以及其他 CPU Socket 的 Cache 属于 Peer 关系。

3. Cacheline 归属

  Host Cache、Device Cache 内的 Cacheline 归属关系示意图如下图所示。

在这里插入图片描述

  如无特殊说明,下文所述

  • Host Memory 是指跟当前 CXL Device 直接对连的 Host 所有的 Memory,或称 Host-attached Memory。
  • Device Memory 是指当前 CXL Device 内开放给 Host 使用的 Memory,可以为 Device-attached Memory,也可以为 Accelerator-attached Memory。
  • Host Cache 是指 LLC。

  对于归属于 Host Memory 的 Cacheline,

  • 无论哪种 Type、哪种 Bias Mode 的 Device,其都可以出现在 Host Cache;
  • 可以缓存在 Type 1、Type 2 等 Device Cache 中;
  • 不能出现在 Type 3 的 Device Cache 中。

  对于归属于 Device Memory 的 Cacheline,

  • Type 1 设备没有 Device Memory,不能出现在 Host Cache;
  • 归属于 HDM-H 区域的 Data Line 只能缓存在 Host Cache;
  • 归属于 HDM-D Host Bias 区域的 Data Line 可以缓存在 Host 及 Device Cache;
  • 归属于 HDM-D Device Bias 区域的 Data Line 只能缓存在 Device Cache;
  • 归属于 HDM-DB 区域的 Data Line 可以缓存在 Device Cache 和 Host Cache,如果 Device Cache 内有 HDM-DB 的 Line,那 Host Cache 内一定也有该备份,是一种 Inclusive 的 Cache 结构。

  如果 Host Memory 的 Data Line 出现在了 Device Cache 中,或者 Device Memory 的 Line 缓存在了 Host Cache 中,那么 Data Line 归属方的 Snoop Filter 负责对对端 Cache 内该 Cacheline 进行 Snoop 监测:Host 通过 CXL.cache 的 H2D Req Channel、Device 通过 CXL.mem 的 S2M BISnp 来 Snoop。


— END —


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

⬆️ 返回顶部 ⬆️

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

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

相关文章

单调递增的数字【贪心算法】

单调递增的数字 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数字呈 单调递增 。 public class Solution {public int monotoneIncreasingDigits…

STM32+RTThread配置以太网无法ping通,无法获取动态ip的问题

记录一个非常蠢的问题&#xff0c;今天在移植rtthread的以太网驱动的时候出现无法获取动态ip的问题&#xff0c;问题如下&#xff1a; 设置为动态ip时不管是连接路由器还是电脑主机都无法ping通&#xff0c;也无法获取dns地址。 设置为静态ip时无法ping通主机。 使用wireshark…

【易售小程序项目】小程序首页完善(滑到底部数据翻页、回到顶端、基于回溯算法的两列数据高宽比平衡)【后端基于若依管理系统开发】

文章目录 说明细节一&#xff1a;首页滑动到底部&#xff0c;需要查询下一页的商品界面预览页面实现 细节二&#xff1a;当页面滑动到下方&#xff0c;出现一个回到顶端的悬浮按钮细节三&#xff1a;商品分列说明优化前后效果对比使用回溯算法实现ControllerService回溯算法 优…

stm32 iap sd卡升级

参考&#xff1a;STM32F4 IAP 跳转 APP问题_stm32程序跳转_古城码农的博客-CSDN博客 app程序改两个位置 1.程序首地址&#xff1a; 2.改中断向量表位移&#xff0c;偏移量和上面一样就可以 然后编译成bin文件就可以了

docker 笔记1

目录 1.为什么有docker ? 2.Docker 的核心概念 3.容器与虚拟机比较 3.1传统的虚拟化技术 3.2容器技术 3.3Docker容器的有什么作用&#xff1f; 3.4应用案例 4. docker 安装下载 4.1CentOS Docker 安装 4.2 Docker的基本组成 &#xff1f;&#xff08;面试&#xff09…

jmeter 性能测试工具的使用(Web性能测试)

1、下载 该软件不用安装&#xff0c;直接解压打开即可使用。 2、使用 这里就在win下进行&#xff0c;图形界面较为方便   在目录apache-jmeter-2.13\bin 下可以见到一个jmeter.bat文件&#xff0c;双击此文件&#xff0c;即看到JMeter控制面板。主界面如下&#xff1a; 3、创…

DEtection TRansformer (DETR) 与 You Only Look Once (YOLO)

曾经想过计算机如何分析图像&#xff0c;识别并定位其中的物体吗&#xff1f;这正是计算机视觉领域的目标检测所完成的任务。DEtection TRansformer&#xff08;DETR&#xff09;和You Only Look Once&#xff08;YOLO&#xff09;是目标检测的两种重要方法。YOLO已经赢得了作为…

【RISC-V】RISC-V寄存器

一、通用寄存器 32位RISC-V体系结构提供32个32位的整型通用寄存器寄存器别名全称说明X0zero零寄存器可做源寄存器(rs)或目标寄存器(rd)X1ra链接寄存器保存函数返回地址X2sp栈指针寄存器指向栈的地址X3gp全局寄存器用于链接器松弛优化X4tp线程寄存器常用于在OS中保存指向进程控…

回归预测 | MATLAB实现IBES-ELM改进的秃鹰搜索优化算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现IBES-ELM改进的秃鹰搜索优化算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现IBES-ELM改进的秃鹰搜索优化算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图…

手撕二叉平衡树

今天给大家带来的是平衡树的代码实现&#xff0c;如下&#xff1a; #pragma once #include <iostream> #include <map> #include <set> #include <assert.h> #include <math.h> using namespace std; namespace cc {template<class K, clas…

CXL寄存器介绍(2)- CXL DVSEC

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

TiDB 一栈式综合交易查询解决方案获“金鼎奖”优秀金融科技解决方案奖

日前&#xff0c;2023“金鼎奖”评选结果揭晓&#xff0c; 平凯星辰&#xff08;北京&#xff09;科技有限公司研发的 TiDB 一栈式综合交易查询解决方案获“金鼎奖”优秀金融科技解决方案奖 &#xff0c; 该方案已成功运用于 多家国有大行、城商行和头部保险企业 。 此次获奖再…

【AI】《动手学-深度学习-PyTorch版》笔记(二十一):目标检测

AI学习目录汇总 1、简述 通过前面的学习,已经了解了图像分类模型的原理及实现。图像分类是假定图像中只有一个目标,算法上是对整个图像做的分类。 下面我们来学习“目标检测”,即从一张图像中找出需要的目标,并标记出位置。 2、边界框 边界框:bounding box,就是一个方…

我想开通期权?如何开通期权账户?

场内期权的合约由交易所统一标准化定制&#xff0c;大家面对的同一个合约对应的价格都是一致的&#xff0c;比较公开透明&#xff0c;期权开户当天不能交易的&#xff0c;期权开户需要满足20日日均50万及半年交易经验即可操作&#xff0c;下文科普我想开通期权&#xff1f;如何…

Java设计模式:四、行为型模式-10:访问者模式

一、定义&#xff1a;访问者模式 访问者模式&#xff1a;核心在于同一个事物不同视角下的访问信息不同。 在一个稳定的数据结构下&#xff0c;例如用户信息、雇员信息等&#xff0c;增加易变的业务访问逻辑。为了增强扩展性&#xff0c;将两部分的业务解耦的一种设计模式。 二…

详解 SpringMVC 中获取请求参数

文章目录 1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、[RequestParam ](/RequestParam )4、[RequestHeader ](/RequestHeader )5、[CookieValue ](/CookieValue )6、通过POJO获取请求参数7、解决获取请求参数的乱码问题总结 在Spring MVC中&#xff0c;获取请…

自建音乐播放器之一

这里写自定义目录标题 1.1 官方网站 2. Navidrome 简介2.1 简介2.2 特性 3. 准备工作4. 视频教程5. 界面演示5.1 初始化页5.2 专辑页 前言 之前给大家介绍过 Koel 音频流服务&#xff0c;就是为了解决大家的这个问题&#xff1a;下载下来的音乐&#xff0c;只能在本机欣赏&…

【pyqt5界面化工具开发-12】QtDesigner图形化界面设计

目录 0x00 前言 一、启动程序 二、基础的使用 三、保存布局文件 四、加载UI文件 0x00 前言 关于QtDesigner工具的配置等步骤&#xff08;网上链接也比较多&#xff09; 下列链接非本人的&#xff08;如果使用pip 在命令行安装过pyqt5以及tools&#xff0c;那么就可以跳过…

springboot整合SpringSecurity

先写了一个配置类 给这个访问路径&#xff0c;加上角色权限 package com.qf.config;import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; impo…

【网络编程上】

目录 一.什么是互联网 1.计算机网络的定义与分类&#xff08;了解&#xff09; &#xff08;1&#xff09;计算机网络的定义 &#xff08;2&#xff09;计算机网络的分类 ① 按照网络的作用范围进行分类 ②按照网络的使用者进行分类 2.网络的网络 &#xff08;理解&#xf…