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

在NVMe计算存储架构中,Copy命令用于在不同类型的命名空间之间进行数据复制

  • Memory Copy命令:定义于SLM(Subsystem Local Memory)命令集,主要用于从非易失性存储命名空间(NVM namespaces)或内存命名空间向另一个内存命名空间复制数据。这个命令执行时,如果复制的源是NVM命名空间,那么需要将数据按照逻辑块地址(LBA)大小的粒度进行转换,并且支持从块到字节级别的转换操作;当复制发生在两个内存命名空间之间时,其总长度必须遵循双字(dword)的粒度要求。

  • NVM Copy命令:定义在传统的NVM命令集中,该命令允许从内存命名空间或非易失性存储命名空间向一个非易失性存储命名空间进行复制。同样,当复制至NVM命名空间时,不论源是NVM还是内存命名空间,都需要将数据从字节级别转换成基于LBA粒度的块级别表示。在这个过程中,复制的总长度也必须严格遵守LBA大小的对齐要求。

Memory Range Set(MRS)在NVMe计算存储架构中是一个重要的安全和管理工具,它用于定义和控制对Subsystem Local Memory(SLM)内部特定区域的访问权限。以下是关于MRS的关键解读:

图片

  • 描述SLM内存范围:MRS用来描述一个或多个SLM内存区域的范围。这些范围可以是连续或非连续的内存块。

  • 由内存范围组成:每个MRS由一系列具体的内存范围构成,每一个范围都有明确的边界。

  • 范围指定方式:每个内存范围通过三个关键参数来唯一确定:内存命名空间ID(Namespace ID)、偏移量(offset)以及长度(length)。这意味着对于子系统内的任意一块SLM内存,可以通过这些参数准确地指定其起始地址和结束地址。

  • 可达性限制:每一个范围所指向的内存命名空间必须是可以被计算命名空间访问到的。也就是说,只有当计算程序运行于特定的计算命名空间时,才能访问该命名空间关联的MRS中定义的SLM内存部分。

  • 与计算命名空间相关联:MRS是在特定的计算命名空间内创建的,它的作用域限定了该计算命名空间内的程序可以访问哪些SLM区域。

  • 访问权限限制功能MRS的主要目的是为了限制执行中的程序只能访问SLM的特定子集。这样一来,每个程序执行时都会受限于“Execute Program”命令中指定的MRS设定,无法触及MRS之外的任何SLM资源,从而增强了数据安全性,并优化了资源使用效率。

Memory Range Set作为一种策略性的访问控制机制,在NVMe计算存储体系中扮演着至关重要的角色,通过对子系统本地内存进行精细化管理和权限划分,确保了程序只能按照预设规则访问所需的内存区域,避免了无授权访问或其他可能的安全风险。

  1. NVM 命名空间:NVM(Non-Volatile Memory)命名空间是传统意义上的NVMe标准中的核心部分,用于管理和访问非易失性存储介质,比如固态硬盘(SSD)上的闪存存储区域。

为了解决管理不同命名空间之间的访问关系与兼容性,NVME协议定义了Reachability新功能,这项特性允许用户指定在特定命令中哪些命名空间可以协同使用,并确保数据操作的正确性和有效性。具体来说:

  1. 描述符定义:Reachability特性通过定义新的描述符来说明哪些命名空间可以在同一个命令中结合使用。例如,在执行复制命令时,能够明确指出哪些NVM或内存命名空间可以作为源或目标;或者在向计算命名空间发送命令时,确定可以使用的内存命名空间范围。

  2. 机制实现:为了实施这一功能,规范中引入了两个日志页:

    • 可达性组(RG, Reachability Groups)日志页:记录了一组相关的命名空间集合,它们在某种意义上是可以一起使用的。

    • 可达性关联(RA, Reachability Association)日志页:详细列出了各个可达性关联的特点,包括每个关联内的命名空间之间何种类型的交互是被允许的、受限的或是禁止的。在NVMe计算存储架构中,Reachability Associations(RA)是一个用于描述命名空间间交互限制和允许范围的机制。

图片

如示意图举例:

A. RA-A表示NVM命名空间NS 30或NS 31可以与内存命名空间NS 10之间进行数据复制:这意味着在执行Copy命令时,可以从NVM命名空间NS 30或NS 31中复制数据至内存命名空间NS 10。

B. RA-B表明NVM命名空间NS 30或NS 31同样能够与内存命名空间NS 12进行数据复制:与A类似,只是目标内存命名空间换成了NS 12。

C. RA-C指出计算命名空间NS 20有权访问并使用内存命名空间NS 10中的内存资源:这意味着运行于计算命名空间NS 20的程序可以在执行过程中读取、写入或处理NS 10中的数据。

D. RA-D意味着计算命名空间NS 22和NS 23都能够使用内存命名空间NS 12内的内存:这类似于RA-C,但针对的是不同的计算命名空间和内存命名空间组合,NS 22和NS 23均能利用NS 12作为工作内存进行运算。

此外,需要注意:

  • 记忆体命名空间NS 10与NS 12之间不能进行复制命令操作:这意味着主机或计算程序无法通过Copy命令将数据从内存命名空间NS 10直接复制到NS 12,或者反过来操作也不允许。

  • 计算命名空间NS 22和NS 23之间不能通信:说明这两个计算命名空间被设计为相互独立,它们之间不允许交换数据或执行任何形式的协同处理任务

在NVMe计算存储子系统中,执行一个过滤加密数据的流程涉及以下几个关键步骤。整个流程展示了NVMe如何支持本地化计算与存储结合,即在存储设备内部直接对加密数据进行处理,从而降低对外部系统的依赖并提高数据处理效率。同时,通过内存范围集的控制机制,确保了程序仅能访问授权的特定数据部分,增强了安全性。

图片

预条件:首先,在开始处理之前,需要创建两个内存范围集(Memory Range Set, MRS)——MRS1和MRS2。这些范围集定义了程序可以访问的Subsystem Local Memory (SLM) 中特定的数据区域。

复制加密数据到SLM A:使用预先定义好的MRS1指定的SLM地址范围,将待处理的加密数据从主机或其他命名空间复制至SLM的一个区域A。

执行程序1以解密或过滤数据:在某个计算命名空间上运行程序1,并且在执行时限制其只能访问通过MRS1定义的SLM区域A中的数据。这个程序可能是用于解密或者进行某种特定数据过滤操作。

执行程序0继续处理数据:接下来,在同一个或不同的计算命名空间上执行另一个程序0,同样利用MRS2定义的SLM区域B来读取并进一步处理之前解密或过滤后的数据。

从SLM读取过滤后的数据到主机:最后一步是从SLM区域B中读取经过程序0处理过的、最终过滤后的数据,并将其传输回主机内存中供后续使用或存储。

NVMe计算存储技术引入的计算程序具备高度灵活性和自定义能力,使得存储子系统能够根据实际需求扩展其功能,同时在本地高效处理数据,降低对主机CPU和带宽的依赖,提升了整体系统的性能和响应速度。


参考文献:

1.FMS-2023-Computational-Storage-Subsystem-Local-Memory

2.NVMe官网:https://nvmexpress.org/

小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!

精彩推荐:

  • 对于超低延迟SSD,IO调度器已经过时了吗?

  • 浅析CXL P2P DMA加速数据传输的原理

  • HDD回暖于2024,与SSD决战于2028

  • 如何解决NAND系统性能问题?

  • 浅析NVMe key per IO加密技术

  • PCIe 6.0生态业内进展分析总结

  • 浅析PCIe 6.0功能更新与实现的挑战

  • 年度总结|存储随笔2023年度最受欢迎文章榜单TOP15

  • NVMe SSD IO压力导致宕机案例解读

  • 过度加大SSD内部并发何尝不是一种伤害

  • NVMe over CXL技术如何加速Host与SSD数据传输?

  • FIO测试参数与linux内核IO栈的关联分析

  • 为什么QLC NAND才是ZNS SSD最大的赢家?

  • SSD在AI发展中的关键作用:从高速缓存到数据湖

  • 浅析不同NAND架构的差异与影响

  • SSD基础架构与NAND IO并发问题探讨

  • 字节跳动ZNS SSD应用案例解析

  • SSD数据在写入NAND之前为何要随机化?

  • 深度剖析:DMA对PCIe数据传输性能的影响

  • NAND Vpass对读干扰和IO性能有什么影响?

  • HDD与QLC SSD深度对比:功耗与存储密度的终极较量

  • NVMe SSD:ZNS与FDP对决,你选谁?

  • 浅析Relaxed Ordering对PCIe系统稳定性的影响

  • 实战篇|浅析MPS对PCIe系统稳定性的影响

  • 浅析PCI配置空间

  • 浅析PCIe系统性能

  • 存储随笔《NVMe专题》大合集及PDF版正式发布!

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

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

相关文章

“IT行业的黄金证书:你必须了解的顶级认证“

文章目录 每日一句正能量前言一、网络方向:思科认证/软考二、华为认证三、系统方向:红帽认证四、数据库方向:Oracle认证五、信息安全方向:CISP/CISSP认证六、管理方向:PMP认证IT行业证书的价值和作用后记 每日一句正能…

XML传参方式

export function groupLoginAPI(xmlData) {return http.post(/tis/group/1.0/login, xmlData, {headers: {Content-Type: application/xml,X-Requested-With: AAServer/4.0,}}) }import {groupLoginAPI} from "../api/user"; function (e) { //xml格式传参let groupX…

前端JavaScript篇之let、const、var的区别

目录 let、const、var的区别 let、const、var的区别 let、const和var是JavaScript中用于声明变量的关键字,它们之间有一些区别。 首先,var是在ES5中引入的关键字,而let和const是在ES6中引入的。在ES6之前,我们只能使用var来声明…

双非本科准备秋招(13.1)—— 力扣 栈、队列与堆

1、103. 二叉树的锯齿形层序遍历 昨天做的二叉树的层序遍历,把代码直接拿过来。 这个题要求的是一个Z型遍历,如下图。 用一个变量f记录正反顺序,然后使用LinkedList记录答案,下图可以看到LinkedList继承了Deque,所以…

【开源】JAVA+Vue.js实现电子元器件管理系统

目录 一、摘要1.1 项目简介1.2 项目录屏 二、研究内容三、界面展示3.1 登录&注册&主页3.2 元器件单位模块3.3 元器件仓库模块3.4 元器件供应商模块3.5 元器件品类模块3.6 元器件明细模块3.7 元器件类型模块3.8 元器件采购模块3.9 元器件领用模块3.10 系统基础模块 四、…

C++学习Day01之namespace命名空间

目录 一、程序及输出1.1 命名空间用途: 解决名称冲突1.2 命名空间内容1.3 命名空间必须要声明在全局作用域下1.4 命名空间可以嵌套命名空间1.5 命名空间开放,可以随时给命名空间添加新的成员1.6 命名空间可以是匿名的1.7 命名空间可以起别名 二、分析与总…

02.PostgreSQL运算符

1. 算术运算符 算术运算符 描述 示例 + 加法运算符 SELECT A+B - 减法运算符 SELECT A-B * 乘法运算符 SELECT A*B / 除法运算符 SELECT A/B % 取余运算符 SELECT A%B 1.1 加法与减法操作符 SELECT 100,100+11,100-11,100+23.0,100-23.0 运算结果 由此得出结论: 一个整数加上…

微服务-微服务Alibaba-Nacos 源码分析 (源码流程图)

客户端流程 客户端心跳与实例往服务端注册

Linux部署幻兽帕鲁服务器,PalWorld开服联机教程,保姆级教程

------另一个号申请积分-------- Linux系统搭建PalWorld私服,幻兽帕鲁开服联机教程,保姆级教程 最近这游戏挺火,很多人想跟朋友联机,如果有专用服务器,就不需要房主一直开着电脑,稳定性也好得多。 幻兽帕…

单细胞scRNA-seq测序基础知识笔记

单细胞scRNA-seq测序基础知识笔记 scRNA-seq技术scRNA-seq 分析流程数据预处理聚类标准化数据筛选有用的数据数据降维聚类 Clustering 注释细胞类型 scRNA数据分析结尾 该笔记来源于 B站up 江湾青年 scRNA-seq技术 首先是如何测序,上图瓶中有很多细胞,…

npm 和 yarn 的使用

安装 yarn npm i yarn -g查看版本 npm -v yarn --version切换 npm/yarn 的下包镜像源 // 查看当前的镜像源 npm config get registry// 切换淘宝镜像源 // 新的淘宝源,旧的淘宝源已于2022年05月31日零时起停止服务 npm config set registry https://registry.…

figure方法详解之清除图形内容

figure方法详解之清除图形内容 一 clf():二 clear():三 clear()方法和clf()方法的区别: 前言 Hello 大家好!我是甜美的江。 在数据可视化中,Matplotlib 是一个功能强大且广泛使用的库,它提供了各种方法来创建高质量的图形。在 Mat…

Ajax 详解及其使用

Ajax(Asynchronous JavaScript and XML)是一种在客户端与服务器之间进行异步通信的技术,它允许网页在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。Ajax 的核心是XMLHttpRequest(XHR)对…

Java的JVM学习一

一、java中的内存结构如何划分 栈和堆的区别: 栈负责处理运行,堆负债处理存储。 区域名称作用虚拟机栈用于存储正在执行的每个Java方法,以及其方法的局部变量表等。局部变量表存放了便器可知长度的各种基本数据类型,对象引用&am…

部署实战--修改jar中的文件并重新打包成jar文件

一.jar文件 JAR 文件就是 Java Archive ( Java 档案文件),它是 Java 的一种文档格式JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,多出了一个META-INF/MANIFEST.MF 文件META-INF/MANIFEST.MF 文件在生成 JAR 文件的时候…

校园网网络规划与设计——计算机网络实践报告

W...Y的主页 😊 代码仓库分享💕 目录 一、设计目的 二、软硬件环境 三、理论基础 四、设计方案 五、网络配置步骤 六、设计过程中出现的问题及相应解决办法 八、参考资料 一、设计目的 深入理解网络工程的三层层次设计模型; 掌握网络…

虚拟机安装archlinux

1、创建虚拟机 2、安装系统4、为了方便,修改密码并使用dos窗口连接 5、磁盘分区 由于新建虚拟机时是8G,所以只建一个分区就行 6、格式化分区并挂载 7、更新镜像 rootarchiso ~ # pacman -Sy 8、 pacstrap -i /mnt base base-devel linux linux-f…

深信服技术认证“SCCA-C”划重点:深信服云计算关键技术

为帮助大家更加系统化地学习云计算知识,高效通过云计算工程师认证,深信服特推出“SCCA-C认证备考秘笈”,共十期内容。“考试重点”内容框架,帮助大家快速get重点知识。 划重点来啦 *点击图片放大展示 深信服云计算认证&#xff08…

【操作宝典】IntelliJ IDEA新建maven项目详细教程

目录 🌼1. 配置maven环境 🌼2. 创建maven项目 🌼3. 创建maven项目完整示例 a. 导入spring boot环境 b. 修改maven配置 c. 下载jar包 d. 创建Java类 🌼1. 配置maven环境 【安装指南】maven下载、安装与配置详细教程-CSDN博客…

qt之菜单栏的文字添加(图片同理)

一、需求与目的 一般常规的PC软件都会有主窗口,主窗口中都会有菜单栏和工具栏,例如我们正在使用的Qt creator: 二、详细说明 首先需要先创建mainWindow设计师类,基类直接选择默认的MainWindow即可,然后就可以进行设计了…