NVMe 计算存储2-Computational Programs Command Set

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

  • 在compute namespace中可以执行特定的计算,计算的算法可以是device中内置的算法,也可以是临时下载的代码片段
  • compute namespace中可以同时存在多个程序(内置 or 下载)在执行之前需要activate某一个程序,也可以deactivate
  • 计算所需的数据,生成的数据都是放在SLM中,SLM中的数据可以来自于host,也可以是通过copy命令从NVM NS中导入。生成的数据可以被host通过memory read命令读取,也可以通过copy命令写入NVM NS中进行持久化保持,后续可以通过NVM NS的读命令获取
  • 每个compute namespace支持1或者多个program type
    • ebpf、vendor specific等等

1.3 Memory Range Sets

  • Memory Range Set(MRS):单个MRS是一段或者多段SLM中的内存区域,每一段都由nsid、offset、length唯一指定
  • MRS是在compute ns中创建的
  • MRS被创建之后,compute ns执行Execute program命令时需要提供RSID
  • 不同的compute ns创建的MRS可以是overlap重叠的(不同的program允许共享内存区域),在单个MRS中不同的range不允许重叠
  • MRS中不同的range,可以来自于不同的memory namespace
  • compute ns只能在创建过Reachability Association的memory ns中创建MRS
  • RSID是在compute ns中进行管理,在compute ns中RSID需要唯一
  • MRS是有Memory Range Set Management commnad进行管理

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

  • PUID是一个64 byte的值,代表一个Global Unique的Program
  • PUID由OID和UPI构成,OID确定一个全球唯一的组织,UPI确定组织内唯一的Program
  • PUID需要通过NVMe的申请流程

1.7 Downloadable/Device-defined Programs

  • Compute ns可以支持Downloadable 或者 Device-defined程序
  • Downloadable是通过一系列命令来支持
    • Program Activate(activate/deactivate)
    • Load Program(download/unload) download的行为和fw-download类似
      • Load Program的第一个命令必须提供以下信息
        • PIT 是否使用PID
        • PTYPE
        • PIND index类似于fw-slot
        • PID PUID(基于PIT)
        • PSIZE 需要下载代码片段总大小
        • LOFF 当前代码片段的off
        • NUMB 当前代码片段的size(dowrd)

1.8 Activating/Deactivating Programs

  • 程序执行前必须被activate激活
  • I/O Command set specific id-ns(CNS=0x5)里面的MAXACT值可以声明compute ns上可以同时激活的程序数量

2、Compute Program Command Set

2.1、I/O 命令部分

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

  • Execute Program 执行程序

2.2、Admin命令部分

Compute command set 专属的管理命令

  • Load Program:下载程序,可选支持
  • Program Activation Management 激活程序
  • Memory Range Set Management 给程序指定内存区域

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

  • Program List LID=0x82 计算ns中有多少program
  • Downloadable Program Type List LID=0x83 计算ns允许下载哪些类型的程序
  • Memory Range set List LID=0x84 计算ns目前设定过的MRS查询

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

  • id-ns CNS05:支持的最大程序数量、MRS颗粒度 size等限制、下载程序颗粒度
  • id-ctrl CNS06:主要是声明协议版本

2.2.1 MRS management command

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

  • MRS Create:最多创建128个range,每个range的内容放在data buffer中,执行成功后返回1个RSID
  • MRS Delete
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容