CXL-Enabled Enhanced Memory Functions——论文阅读

IEEE Micro 2023 Paper CXL论文阅读笔记整理

问题

计算快速链路(CXL)协议是系统社区的一个重要里程碑。CXL提供了标准化的缓存一致性内存协议,可用于将设备和内存连接到系统,同时保持与主机处理器的内存一致性。CXL使加速器(例如,GPU和DPU)既能直接加载/存储对主机存储器的访问,又能使它们自己的设备上存储器同样可由CPU访问。CXL允许在内存数据平面上插入技术,所以它允许将功能实现到内存子系统中的可能性。

本文方法

本文中介绍了增强内存功能(EMF)的概念。描述了两个用例,其中一个使用基于现场可编程门阵列(FPGA)的智能存储控制器平台实现原型。

有效的EMF将利用以下一个或多个属性来实现其功能:(1) 接近内存介质本身。(2) 能够在数据平面上插入内存读/写命令。(3) 主机处理器缓存层次结构外部。(4) 独立于主机ISA限制。(5) 与虚拟内存子系统分离。(6) 能够与主机处理器复合体进行交互,以保持数据一致性。

设想的EMF:

访问热图

访问热图提供了更好的源数据,操作系统和管理程序可以使用这些数据来决定数据应该放在多个内存设备的何处。

CXL的使用带来了异构内存域,这些异构内存可能具有不同的容量、性能(延迟、带宽)、能耗和耐久性(寿命)特性,因此需要仔细管理数据的放置。例如对内存页进行预测,区分冷热页,将热页放置到性能更高的存储设备。

现有方法包括:页表监视、内存访问采样、性能计数器,但在CXL场景下,增加总容量和内存硬件共享会带来更高的性能开销。

图3展示了如何实现访问热图EMF。应用程序发送注册感兴趣的地址范围和跟踪参数的配置命令。读写请求照常进行。IMC识别被监视的地址,并增加存储在控制器芯片或存储器的保留部分中的读写计数器(元数据)。主机可以根据需要读取或重置计数器,该主机运行页面调度策略并协调迁移。

分开跟踪读取和写入很重要,因为读取延迟通常对性能更具影响,而写入可能会导致NVM磨损,因此会有不同的处理方式。这种组织下,IMC与存储器芯片接近,减少了更新访问计数器所需的CXL链路上的带宽需求,并以尽可能低的延迟利用了完整的内部设备带宽。该设备还可以将访问计数器的操作与实际数据路径重叠,从而不存在性能损失。

内存回滚

内存回滚允许在崩溃一致的版本中使用具有持久内存的未经修改的软件库。与仅使用软件实现崩溃一致性的方法相比,它还显著减少了写入放大。

现有方法的问题:

  • 使用编译器的指令实现崩溃一致性,现有的持久存储器编程框架需要有效地重写应用程序代码,以使用框架的数据结构和控制接口。

  • 使用软件实现崩溃一致性,在内存使用和性能方面都非常昂贵。对于树和哈希图数据结构,持久化和日志记录一起会导致63%-72%的插入性能开销和61%-68%的删除性能开销。

本文的回滚EMF设计基于识别与事务相关联的内存区域,采用微堆,以更精细的粒度管理堆内存。

IMC的回滚功能(图5)通过三种方式增强了正常的控制器功能:(1)跟踪其任何缓存行在主机缓存中处于修改状态的可能性;(2) 响应回滚事务启动和停止请求;(3)执行高速缓存行写入的在线处理。

基于FPGA实现,实验结果表明,EMF回滚优于软件解决方案。

总结

介绍了增强内存功能(EMF)的概念,提供了如何在智能内存控制器(IMC)中实现两个用例(访问热图和内存回滚)的EMF。本质来说是利用近数据处理的思路,在CXL设备端通过IMC获取更多数据,例如访问跟踪、缓存行状态,并响应来自主机的请求,实现更高的性能。

提出了EMF设计思路,利用以下一个或多个属性来实现其功能:(1) 接近内存介质本身。(2) 能够在数据平面上插入内存读/写命令。(3) 主机处理器缓存层次结构外部。(4) 独立于主机ISA限制。(5) 与虚拟内存子系统分离。(6) 能够与主机处理器复合体进行交互,以保持数据一致性。

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

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

相关文章

【Hadoop】Hadoop概述与核心组件

目录 Hadoop概述Hadoop 发展历史Hadoop 三大发行版本1.Apache Hadoop(常用)2.Cloudera Hadoop3.Hortonworks Hadoop优势优势总结——4高(高可靠、高扩展、高效、高容错) Hadoop组成1.HDFS管理者:NameNode(n…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:GridItem)

网格容器中单项内容容器。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。仅支持作为Grid组件的子组件使用。 子组件 可以包含单个子组件。 接口 GridItem GridItem(value?: GridItemOptions)…

分布式系统常见负载均衡实现模式

分布式系统常见负载均衡实现模式 1. 4层负载均衡1.1. 负载均衡的常见需求1.2. 负载均衡的实现模式1.2.1 DR模式1.2.2 TUN模式1.2.3 NAT模式1.2.4 FULLNAT模式1.2.5 4种模式的差异 1.3. 负载均衡的均衡算法1.3.1 静态负载均衡1.3.2 轮询法1.3.3 加权循环法1.3.4 IP 哈希法1.3.5 …

FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+OSD动态字符叠加,提供1套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收发送本方案的SDI接收图像缩放应用本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI接收HLS多路视频融合叠加应用本方案的S…

C++提高笔记(四)---STL容器(stack、queue、list)

1、stack容器(栈) 1.1 栈stack基本概念 概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口 栈中只有顶端的元素才可以被外界调用,因此栈不允许有遍历行…

Linux——动静态库的制作及使用与动态库原理

目录 一、静态库 1.静态库的制作 2.静态库的使用 加载静态库方法一:安装头文件与库文件 加载静态库方法二:指定文件目录 二、动态库 1.动态库的制作 2.动态库的使用 方法一:安装到系统中 方法二:软链接 方法三&…

Light Random Sprays Retinex 传统的图像增强算法LRSR

文章目录 前言1、Light Random Sprays Retinex 概况2、Light Random Sprays Retinex 具体实现2.1、噪声去除2.2、亮度调整2.3、插值技术 3、Light Random Sprays Retinex源码4、Light Random Sprays Retinex效果及结论 前言 Light Random Sprays Retinex, 即“光随机喷雾Retine…

禁止ie自动跳转edge

因为微软对ie已经彻底停止维护了,对于没有升级系统的用户来说,会自动更新edge然后将ie给禁止使用。下面方法有效的解决windows10下,禁止ie自动跳转edge。 方法一:对于2023年10月份前的更新可用 打开控制面板,点击网络…

全面解析 Axios 请求库的基本使用方法

Axios 是一个流行的基于 Promise 的 HTTP 请求库,用于在浏览器和 Node.js 中进行 HTTP 请求。它提供了简单易用的 API,可以发送各种类型的请求(如 GET、POST、PUT、DELETE等),并处理响应数据,Axios 在前端工…

开启Safari手势支持

在使用Safari 的时候,大家有没有觉得不支持手势使用起来不是很方便, 触摸板只支持少量简单的手势,如缩放,滚动等。如果使用鼠标的用户,则完全无法使用手势。经过折腾研究,使用CirMenu应用可以完美解决这个要…

【矩阵】54. 螺旋矩阵【中等】

螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 解题思路 1、模拟顺时针螺旋顺序遍历矩阵…

基于openCV实现的单目相机行人和减速带检测

概述 在计算机视觉项目中,相机标定是一项至关重要的任务,因为它可以校正相机内部参数,消除因镜头畸变等因素导致的图像失真,从而提高后续图像处理和分析的精度。在这个项目中,相机标定的核心功能集成在名为calibratio…