NVMe 计算存储2-Computational Program

2024-02-20  本文已影响0人  Stansosleepy

1、背景

在当前经典计算机结构中,要完成计算,需要有处理器、内存、存储三个组件,一直以来都有厂商希望存储盘能够实现特定的计算加速功能,可以在更加靠近数据的位置进行计算,降低主机cpu的运算压力,减少大量无效数据的读写操作。

NVMe协议已经定义了完备的存储相关的功能,如果需要在存储设备中完成计算功能,就需要在NVMe协议中补齐“计算”,“内存”两个组件,本次发布的spec也是为了统一这两方面的内容

computational-programs-command-set
subsystem-local-memory-command-set

本文主要介绍computational-programs-command-set

1.1、Compute\SLM\NVM 3种namespace之间的关系

本次推出的两份command set都属于I/O command set,分别对应两种新的namespace,这两种新的namespace不是NVM namespace,他们是不能持久化保持数据的,大致的关系如下

ns cmd set NVM? 备注
block ns NVM-Block Yes 最常见的盘
zns ns NVM-Zns Yes
kv ns NVM-KV Yes
memory ns SLM No
compute ns Computational Programs No

1.2 Compute namespace

1.3 Memory Range Sets

1.4 Program执行流程

image.png
  1. 下载/激活PIND0的程序
  2. 为程序创建MRS内存资源
  3. 将需要计算的数据准备到MRS中(可以是NVM ns copy,也可以是host memory write)
  4. Execute Program执行程序成功
  5. Host可以memory read结果,也可以调用copy命令将结果存入NVM namespace,还可以执行下一个程序,将结果用于后续的计算

1.5 Reachability

目前这部分内容是在Base Specification中定义,可以参见下图


image.png

1.6 PUID

1.7 Downloadable/Device-defined Programs

1.8 Activating/Deactivating Programs

2、Compute Program Command Set

2.1、I/O 命令部分

计算存储的I/O命令部分比较简单,只有1个

2.2、Admin命令部分

Compute command set 专属的管理命令

为了支持I/O部分的功能,必须支持这些LogPage

为了支持I/O部分功能,必须支持的Identify

2.2.1 MRS management command

所有管理命令中,可能最重要的就是MRS管理命令,管理命令分为2个子命令

上一篇 下一篇

猜你喜欢

热点阅读