深度解读NVMe计算存储协议-2

近日,NVME协议组织为了解决这些性能问题并为供应商提供标准化机制,在其架构中集成优化的计算功能,开发了NVM Express® (NVMe®) 计算存储特性。

图片

计算存储的核心特性包括两个命令集:计算程序集和子系统本地内存

  • 其中,计算程序集允许NVMe设备在非易失性存储器(NVM)子系统上操作数据,通过命令管理在设备上进行计算的程序。

图片

  • 而子系统本地内存则支持通过NVMe I/O命令经由NVMe传输协议访问NVM子系统的本地内存,同时还包含了读取、写入及复制用户数据到设备内存的新命令。

图片

NVMe Express(NVMe)计算存储架构设计了一个包含多种类型命名空间的系统,这些命名空间各自具有特定的功能和用途:

图片

  1. 计算命名空间 (Compute namespaces):这是新引入的一种命名空间概念,专为在存储设备内部执行计算任务而设计。计算命名空间中包含计算资源,允许直接在存储设备上进行数据处理,从而减少数据传输到主机CPU再返回存储设备的过程,提升整体性能和效率。

在NVMe计算存储子系统中,Computational Programs(计算程序)是一个关键特性,它们概念上类似于软件中的函数或算法模块。这些程序在执行时会接收参数,并在完成所有任务后结束运行。

  • Load program:允许主机加载程序到计算命名空间中,这些程序可以是预置的或者由主机下载的。

  • Activate program:激活已加载到计算命名空间中的程序,使其准备就绪以执行相应的数据处理操作。

图片

  • 通过计算命名空间索引访问:计算程序可以通过计算命名空间中的程序索引来寻址和调用。

  • 全球唯一标识符识别:每个计算程序可能有一个全球唯一的标识符(Program Unique Identifier),确保了在任何环境下都能唯一地识别并调用特定的计算程序。

  • 仅处理本地内存数据:计算程序只针对存储子系统内部的Subsystem Local Memory(SLM)中的数据进行操作,避免了频繁的数据迁移,从而提高了性能和效率。Create/Delete Memory Range Set (MRS)创建或删除内存范围集,这是一种定义了子系统本地内存(SLM)内特定内存区域的结构,确保只有指定范围内的数据可供程序访问,增强了安全性并优化了资源使用效率。

  • 设备预定义与可下载性:计算程序可以是设备制造商预先内置在硬件中的固定功能程序,例如出厂时提供的压缩、加密等服务;也可以是由主机加载到计算命名空间中的可下载程序,这意味着用户可以根据需要动态添加新的计算逻辑。

  • 资源限制性执行:一个计算程序可能只能在一个NVMe子系统内的一部分计算资源上执行,即并非所有计算单元都支持执行所有的计算程序。

  • 实现方式多样性:计算程序可以在不同类型的硬件平台上实现,如专用集成电路(ASIC),这种情况下,计算逻辑直接固化在芯片内部;或者在CPU核心上执行,此时计算程序是以软件形式运行于处理器之上。

  1. 内存命名空间 (Memory namespaces):这也是新提出的命名空间类型,它为主机提供了访问NVM子系统内内存资源的接口。内存命名空间使用了新的“子系统本地内存I/O命令集”,并且与计算程序命令集相互作用,使得计算程序能够在SLM(Subsystem Local Memory)中执行。通过这个命名空间,可以实现对SLM的读写操作以及在不同命名空间间的数据复制,例如从NVM命名空间或其他内存命名空间向内存命名空间复制数据。

新引入的针对内存命名空间的子系统本地内存I/O命令集中包含了一系列新的命令:

  • 内存读取(Memory read)和内存写入(Memory write)命令允许主机与SLM之间进行直接的数据读写操作。

  • 数据传输命令支持主机内存与内存命名空间之间的数据交换。

  • 内存复制(Memory copy)命令则用于将数据从非易失性存储命名空间(NVM namespaces)或其它内存命名空间复制到目标内存命名空间中。

在访问粒度方面,有以下特点:

  • 主机对内存命名空间的访问是以双字(dword)为寻址单位和访问粒度的,这意味着主机每次操作都是按双字大小进行的。

  • 而计算命名空间对SLM的访问则是基于字节(byte)寻址和字节粒度,具有更高的灵活性,可以更精细地定位和处理数据。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

postgresql|数据库|pg_repack插件的部署和使用

一, 表和索引的膨胀现象 Postgres SQL 实现的MVCC的机制不同于 oracle , mysql innodb 的 undo tablespace 的机制。 表上所用的更新和删除等操作的行为,都不会实际的删除或修改,而是标记为死元祖 (dead rows or dead…

非鸿蒙官方低代码源码生成器

介绍 鸿蒙低代码可视化开发神器快速对鸿蒙ArkUI生成源码,结合类似小程序类似设计,页面设计底部菜单,支持宫格组件、轮播图、图文列表、图片组件、文本内容组件,快速对接第三方HttpApi。通过鸿蒙扩展axios扩展库加载数据源&#x…

jmeter+nmon+crontab简单的执行接口定时压测

一、概述 临时接到任务要对系统的接口进行压测,上面的要求就是:压测,并发2000 在不熟悉系统的情况下,按目前的需求,需要做的步骤: 需要有接口脚本需要能监控系统性能需要能定时执行脚本 二、观察 >…

Spring的事件监听机制

这里写自定义目录标题 1. 概述(重点)2. ApplicationEventMulticaster2.1 SimpleApplicationEventMulticaster2.2 AbstractApplicationEventMulticaster 3. ApplicationListener3.1 注册监听器3.2 自定义 4. SpringApplicationRunListeners 1. 概述&#…

协会认证!百望云荣获信创工委会年度“卓越贡献成员单位”称号

当前,新一轮科技革命和产业变革正加速重塑全球经济结构,强化企业科技创新的主体地位,推动创新链、产业链、人才链深度融合,加快科技成果产业化进程至关重要。 近日,中国电子工业标准化技术协会信息技术应用创新工作委员…

对付勒索病毒,复杂的往往无法落地

一道道复杂门墙防护安全, 还是一个精密的锁更安全? 👇👇👇 在网络数据安全问题频发的当下,除了常规的备份、灾备措施以外,企业是否有做好应对最坏情况的准备?一旦病毒绕过了一道道…

shell - 免交互

一.Here Document 免交互 1. 交互的概念 交互:当计算机播放某多媒体程序的时候,编程人员可以发出指令控制该程序的运行,而不是程序单方面执行下去,程序在接受到编程人员相应的指令后而相应地做出反应。 对于Linux操作系统中&…

ztest中ddof起什么作用

⭐️ statsmodels 中 ztest 基本使用 statsmodels 也是一个强大的统计分析库,提供了丰富的统计模型和检验功能。对于 Z 检验,statsmodels 提供了 ztest 函数。 以下是使用 statsmodels 进行 Z 检验的示例: from statsmodels.stats.weights…

ElementUI 组件:Container 布局容器

ElementUI安装与使用指南 Container 布局容器 点击下载learnelementuispringboot项目源码 效果图 el-container.vue&#xff08;Container 布局容器&#xff09;页面效果图 项目里el-container.vue代码 <script> import PagePath from "/components/PagePat…

[NOIP2011 提高组] 聪明的质监员

[NOIP2011 提高组] 聪明的质监员 题目描述 小T 是一名质量监督员&#xff0c;最近负责检验一批矿产的质量。这批矿产共有 n n n 个矿石&#xff0c;从 1 1 1 到 n n n 逐一编号&#xff0c;每个矿石都有自己的重量 w i w_i wi​ 以及价值 v i v_i vi​ 。检验矿产的流程…

Python代码覆盖率工具

Coverage.py是一个用于测量Python程序代码覆盖率的工具。它监视您的程序&#xff0c;注意代码的哪些部分已经执行&#xff0c;然后分析源代码&#xff0c;以确定哪些代码本可以执行&#xff0c;但没有执行。 覆盖率测量通常用于衡量测试的有效性。它可以显示代码的哪些部分正在…

S275 4G网络IO模块:智能酒店的理想选择

行业背景 随着物联网技术的发展&#xff0c;酒店服务也变得更加“智能”——自动灯光效果、室内温湿度控制、各种人性化操作等贴心服务&#xff0c;带给顾客真正的宾至如归之感。 同时&#xff0c;智慧酒店更为管理者提供了高效的管理手段&#xff0c;将酒店物耗、能耗、人员…

全网最简单的幻兽帕鲁服务器搭建教程

幻兽帕鲁是一款备受欢迎的多人在线游戏&#xff0c;为了提供更好的游戏体验&#xff0c;许多玩家选择自行搭建服务器。本文将指导大家如何简单快速地搭建幻兽帕鲁服务器&#xff0c;轻松享受游戏的乐趣。 第一步&#xff1a;购买游戏联机服务器 购买入口&#xff1a;https://tx…

【八大排序】直接插入排序 | 希尔排序 + 图文详解!!

&#x1f4f7; 江池俊&#xff1a; 个人主页 &#x1f525;个人专栏&#xff1a; ✅数据结构冒险记 ✅C语言进阶之路 &#x1f305; 有航道的人&#xff0c;再渺小也不会迷途。 文章目录 一、排序的概念二、直接插入排序2.1 基本思想2.2 适用说明2.3 过程图示2.4 代码实现2.…

排序之计数排序

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

vue+element 换肤功能

1.首先建深色和浅色两个主题样式变量样式表&#xff0c;样式表名和按钮中传入的值一样&#xff0c;本例中起名为default.scss和dark.scss 2.在data中定义主题变量名 zTheme:‘defalut’&#xff0c;默认引用defalut.scss, 在点击按钮时切换引用的样式表&#xff0c;达到换肤效果…

Codeforces Round 884 E. Great Grids

E. Great Grids 题意 一个 n m n \times m nm 的网格图是 g o o d good good 的当且仅当&#xff1a; 每个网格的字符是 A 、 B 、 C A、B、C A、B、C 中的一种每一个 2 2 2 \times 2 22 的子格都包含三种不同的字符相邻的格子字符不一样 现在给定 k k k 个限制条件&…

【Redis】实现缓存及相关问题

Redis实现缓存及相关问题 认识缓存 缓存就是数据交换的缓冲区&#xff0c;是存贮数据的临时地方&#xff0c;一般读写性能较高。 缓存的作用&#xff1a; 降低后端负载提高读写效率&#xff0c;降低响应时间 缓存的成本&#xff1a; 数据一致性成本代码维护成本运维成本 …

PXE高效批量装机

一、系统安装 1. 系统装机的三种引导方式 1. 硬盘安装 2. 光驱&#xff08;u盘&#xff09;安装 3. 网络启动 pxe 2.系统安装过程 加载boot loader Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序&#xff0c;我们可以初始化硬件设备、建立内…

C#使用OpenCvSharp4库中5个基础函数-灰度化、高斯模糊、Canny边缘检测、膨胀、腐蚀

C#使用OpenCvSharp4库中5个基础函数-灰度化、高斯模糊、Canny边缘检测、膨胀、腐蚀 使用OpenCV可以对彩色原始图像进行基本的处理&#xff0c;涉及到5个常用的处理&#xff1a; 灰度化 模糊处理 Canny边缘检测 膨胀 腐蚀 1、测试图像lena.jpg 本例中我们采用数字图像处…