深度解读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)寻址和字节粒度,具有更高的灵活性,可以更精细地定位和处理数据。

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

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

相关文章

python-分享篇-Turtle海龟-画图

文章目录 背景颜色画圆太阳花树椭圆 背景颜色 import turtlepen turtle.Turtle() turtle.Screen().bgcolor("blue") pen.color("cyan") for i in range(10):for i in range(2):pen.forward(100)pen.right(60)pen.forward(100)pen.right(120)pen.right(36…

供应商规模成倍增长,医疗器械制造商如何让采购效率更进一步|创新场景50...

ITValue 随着企业的快速发展,采购供应链网络日益庞大,企业在供应商管理上面临着管理体系分散、风险难以管控,采购过程环节多等问题,供应商内外协同亟待解决。 作者|秦聪慧 专题|创新场景50 ITValue 制造企业…

Node.js之内存限制理解_对处理前端打包内存溢出有所帮助

Node.js内存限制理解_对处理前端打包内存溢出有所帮助 文章目录 Node.js内存限制理解_对处理前端打包内存溢出有所帮助Node.js内存限制1. 查看Node.js默认内存限制1. Ndos.js_V20.10.02. Node.js_V18.16.0 2. V8引擎垃圾回收相关Heap organization堆组织 Node.js内存限制 默认情…

Lazysysadmin

信息收集 # nmap -sn 192.168.1.0/24 -oN live.port Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-30 21:10 CST Nmap scan report for 192.168.1.1 (192.168.1.1) Host is up (0.00075s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nma…

Docker容器化安装SonarQube9.9

文章目录 1.环境准备1.1 版本信息1.2 系统设置 2.Docker环境安装2.1 卸载旧版本2.2 设置源2.3 安装Docker2.4 设置阿里仓库2.5 启动Docker 3.Docker Compose4.登录4.1 首页4.2 安装插件 5.制作镜像离线安装 1.环境准备 1.1 版本信息 名称版本备注Docker25.0.1当前2024-01-01最…

《C程序设计》上机实验报告(五)之一维数组二维数组与字符数组

实验内容&#xff1a; 1.运行程序 #include <stdio.h> void main( ) { int i,j,iRow0,iCol0,m; int x[3][4]{{1,11,22,33},{2,28,98,38},{3,85,20,89}}; mx[0][0]; for(i0;i<3;i) for(j0;j<4;j) if (x[i][j]>m) { mx[i][j]; iRowi…

Elasticsearch:将文档级安全性 (DLS) 添加到你的内部知识搜索

作者&#xff1a;来自 Elastic Sean Story 你的企业很可能淹没在内部数据中。 你拥有问题跟踪、笔记记录、会议记录、维基页面、视频录制、聊天以及即时消息和私信。 并且不要忘记电子邮件&#xff01; 难怪如此多的企业都在尝试创造工作场所搜索体验 - 为员工提供集中、一站…

react 之 UseReducer

UseReducer作用: 让 React 管理多个相对关联的状态数据 import { useReducer } from react// 1. 定义reducer函数&#xff0c;根据不同的action返回不同的新状态 function reducer(state, action) {switch (action.type) {case INC:return state 1case DEC:return state - 1de…

【飞书小技巧】——飞书文档转 markdown 详细教程

飞书文档转 markdown 详细教程 基于项目:https://github.com/Wsine/feishu2md 如何使用 在线版 访问 https://feishu2md.onrender.com/ 粘贴文档链接即可&#xff0c;文档链接可以通过 分享 > 开启链接分享 > 复制链接 获得。 点击下载之后,会提示 Please wait. It ma…

2024/2/1学习记录

echarts 为柱条添加背景色&#xff1a; 若想设置折线图的点的样式&#xff0c;设置 series.itemStyle 指定填充颜色就好了&#xff0c;设置线的样式设置 lineStyle 就好了。 在折线图中倘若要设置空数据&#xff0c;用 - 表示即可&#xff0c;这对于其他系列的数据也是 适用的…

【C/C++】C/C++编程——整型(二)

在 C 中&#xff0c;整型数据可以分为有符号数&#xff08;Signed&#xff09;和无符号数&#xff08;Unsigned&#xff09;&#xff0c;这两种类型主要用于表示整数值&#xff0c;但它们在表示范围和用途方面有所不同。默认情况下&#xff0c;整数类型如 int、short、long 都是…

中科大计网学习记录笔记(三):接入网和物理媒体

前言&#xff1a; 学习视频&#xff1a;中科大郑烇、杨坚全套《计算机网络&#xff08;自顶向下方法 第7版&#xff0c;James F.Kurose&#xff0c;Keith W.Ross&#xff09;》课程 该视频是B站非常著名的计网学习视频&#xff0c;但相信很多朋友和我一样在听完前面的部分发现信…

开发中常用的数据结构

在软件开发中&#xff0c;常用的数据结构具有各自的场景和应用。以下是一些常见的数据结构、它们的应用场景以及相应的代码示例&#xff1a; 数组&#xff08;Array&#xff09;: 场景&#xff1a;用于存储一组相同类型的元素&#xff0c;通过索引访问元素。例子&#xff1a;le…

深度学习如何入门?

深度学习是一个广泛而深入的领域&#xff0c;入门可能看起来有些令人望而却步。然而&#xff0c;通过有条理地学习基础知识和逐步实践&#xff0c;您可以有效地掌握深度学习。以下是入门深度学习的建议步骤&#xff1a; 1. 强化基础知识 数学基础&#xff1a;深入学习线性代数…

Shell - 学习笔记 - 2.8 - Shell字符串详解

字符串&#xff08;String&#xff09;就是一系列字符的组合。字符串是 Shell 编程中最常用的数据类型之一&#xff08;除了数字和字符串&#xff0c;也没有其他类型了&#xff09;。 字符串可以由单引号 包围&#xff0c;也可以由双引号" "包围&#xff0c;也可以不…

学术名词积累和解释(机器人感知,运动规划,控制领域)——那些没人告诉你的专用名词

背景和初衷&#xff1a; 刚入门的学术小白们在阅读文献的过程中&#xff0c;总会遇到一些默生涩难懂但是通用的学术名词。例如什么 proactive and reactive, nonholonomic and holonomic 。 这里为了方便大家&#xff0c;总结和解释自己阅读学术文章过程中遇到的机器人领域的相…

2024-02-01 思考-关于商业思维和技术实现之间的关系

摘要: 最近在持续的进行商业推动&#xff0c;对于商业行为之下&#xff0c;与技术实现之间的关系&#xff0c;有了更为深刻的认知。 本文做下简单的记录。 商业思维: 什么是商业思维&#xff1f;很有意思的问题&#xff0c;好像除了商业思维&#xff0c;还有一堆其他迥然相反…

基于tidevice实现iOS app自动化使用详解

目录 1、IOS自动化工具概述 2、tidevice工具的原理和使用 2.1、tidevice的原理 2.2、tidevice实现的功能 2.3、tidevice的安装 2.4、tidevice的使用 2.4.1、设备管理 1、查看已连接的设备的列表 2、检测设备连接状态 3、等待设备连接&#xff0c;只要有就连接就结束监…

滑动一整屏

需求&#xff1a;用户通过鼠标滚轮滑动的时候一整屏进行翻页。 参考网站效果 微派网络 实现思路&#xff1a; 1.首先我们需获取可视区域的高度 document.documentElement.clientHeight; 2.根据动态设置top属性即可进行翻页。 3.需判断上滑还是下滑 根据onmousewheel滚轮事…

2024-01-06-AI 大模型全栈工程师 - 如何训练百亿参数大模型

摘要 2024-01-06 周六 杭州 晴 本节内容: 讲座模式&#xff0c;学习大模型训练的相关流程。 课程内容 1. Transformer 回顾 2. 模型架构-生成式 3. 预训练数据的构建 4. 中文字典的构建 4. 预训练目标的构建 5. 预训练相关-预训练策略 6. 预训练相关-并行化训练 7. 预训练…