0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NVMe-MI接口的带外管理是什么?怎么实现呢?

SSDFans 来源:ssdfans 作者:Memblaze-测试开发部 2020-10-29 15:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在最新发布的 PBlaze5 520 低功耗系列 NVMe SSD中,有一个全新功能——NVMe-MI接口的带外管理,这是从PBlaze5 520系列最新增加的功能,那么这个带外管理指的是什么,又怎么实现呢?

关于NVMe-MI接口的带外管理,这段故事源于 PCIe 产品的两个引脚 SMClk 和 SMDat,实现规范是 SMbus。

图示1来源于《Enterprise SSD Form Factor Version1_a》里面SFF8639 的引脚说明

图中左下角标注的颜色指示这对引脚是 optional 的,可以实现也可以不实现,但是对于企业级的产品这是有必要实现的(The Enterprise PCIe SSD should support SM-Bus operation)。

依据《Enterprise SSD Form Factor Version1_a》 (SFF Spec),SMbus 提供了两个层面的功能,一种初级功能是对盘内 vpd 的读写,这个功能在 3.3Vaux 或主电源存在的时都可用。对于企业仓库管理,如果主板带电但是主机未开机,管理人员可以远程通过BMC检查盘的静态信息,如 SN、MN、电源需求等;另一种高级功能是基于 MCTP-over-SMbus 协议之上的管理功能,(此 spec 未做更多解释),此功能在主电源存在时可用。

Server 的 BMC 系统可以通过 SMBus/I2C 与 NVMe SSD 通信

依据另一份规范《NVM Express Management Interface 1_0a》(NVMe MI),利用 SMbus 可以来处理基础的管理命令(主要的一项就是对于 Subsystem Management Data Structure 的监控),还可以处理基于 MCTP 的相关请求。

可以看出两套协议都对 MCTP 有所涉及,那基于 MCTP到底能做什么呢?

按照 NVMe MI,它可以提供如下指令集合:

NVM Express Admin Command Set

Management Interface Command set

PCIe Command Set (optional)

NVM Express Management Enhancements

具体到每个命令集合里面又分为了 mandatory 和 optional 部分,举个例子,对于 NVM Express Admin Command Set,mandatory 的命令包括 Get Feature、Get Log Page、Identify,optional 的命令包括 firmware activate、firmware image download、Format NVM、Namespace Management、Namespace Attachment、Security Send、Security Receive、Set Feature 还有 Vendor Specific 部分。

利用这些 admin 命令,管理者就可以远程获取 NVMe 设备的信息、配置参数或者利用 Vendor Specific 部分实现特定功能的监控。比如主机开机的情况下,无需登录主机就可以升级固件, 再配合 Activate firmware without reset 就可以支持远程升级了。实现了这部分接口,可以做的事情还有很多,不过需要注意到很多 optional 命令有一些潜在的安全风险,实现起来可能需要配合一些措施保证数据的安全性,毕竟数据领域安全第一。

从企业 IT 系统运维的角度讲,带外管理提供了一套独立于主机系统的管理方案,能够配合服务器 BMC 系统,高效实现 NVMe 设备监控、管理及升级等工作。

看起来实现这些功能是有必要的,那需要怎么实现呢?

图示2来自《NVM Express Management Interface 1_0a》

上图中可以看出 NVMe MI 协议是可以基于 SMBus/I2C 或者 PCIe VDM 来实现的。

从左侧的 SMBus/I2C 这边路径来说,固件要实现 DSP0237 MCTP over SMBus/I2C Binding、DSP0236 MCTP Base Specification 和前面说到的 NVMe MI 1.0a(或者最新版NVMe MI 1.1)。基于 PCIe VDM 这部分的实现略微有点复杂,不在此介绍。

结合上面两个原理图,我们模拟了一个 BMC 系统向一块 Memblaze 某系列 NVMe SSD 发了一条获取 NVMe-MI 数据结构的命令。我们节选了部分结果,首先是 BMC 和 SSD 之间传输的数据,如下图。

整个过程有发数据和接收数据两个阶段,两者都可以根据协议解析出来。下面就是命令返回数据的解析:

上图可以看到返回数据又包含 NVMe-MI 的 Header 信息和 NVMe-MI Data Structure 信息(这部分是我们想要的返回结果)。

到这我们就从物理引脚、系统构成、技术原理及命令结果几个角度解读了 NVMe-MI 相关知识。那如果开发完相关功能怎么测试呢?

可以考虑三种方式:第一种是采购业内的 SSD 测试模组外包测试;第二种是跟 Server 厂商关系牢靠,Server 厂商提供 BMC 的接口或者设备联合测试;第三种是自研相关的硬件设备并设计测试用例来验证。总体而言测试需要考虑上面的 DSP0237、DSP0236、NVMe MI 三种规范来验证,最后放一张 NVMe-MI 兼容性的测试大纲。

图示3来自UNH-IOL_NVMe-MI_Conformance_Test_Suite_v12.0

(本文作者:Memblaze-测试开发部经理任玉峰)

责任编辑:PSY

原文标题:SSD将被远程控制?NVMe-MI接口的带外管理

文章出处:【微信公众号:ssdfans】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    9443

    浏览量

    156108
  • IT
    IT
    +关注

    关注

    2

    文章

    958

    浏览量

    65526
  • 低功耗
    +关注

    关注

    12

    文章

    2990

    浏览量

    106235

原文标题:SSD将被远程控制?NVMe-MI接口的带外管理

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Xilinx FPGA NVMe Host Controller IP,NVMe主机控制器

    实现必须以及可选的NVMe Admin Command Set和NVM Command Set,实现对PCIe SSD的复位/断电管理、IO(Page)读写、DMA读写和数据擦除功能
    发表于 02-21 10:16

    Xilinx FPGA高性能NVMe SSD主机控制器,NVMe Host Controller IP

    实现必须以及可选的NVMe Admin Command Set和NVM Command Set,实现对PCIe SSD的复位/断电/SMART/Error Information管理
    发表于 03-27 17:23

    高性能NVMe主机控制器,Xilinx FPGA NVMe Host Accelerator IP

    实现必须以及可选的NVMe Admin Command Set和NVM Command Set,实现对PCIe SSD的复位/断电/SMART/Error Information管理
    发表于 04-10 22:55

    NVME控制器设计1

    的相关寄存器来发送 DMA 或队列管理请求, NVMe控制模块在得到任务信息后生成对应的 NVMe 命令, 并通过指令提交与完成机制实现NVMe
    发表于 04-24 09:45

    NVME控制器之队列管理模块

    队列管理模块是整个NVMe Host控制器的核心模块,该模块实现了提交队列与完成队列的管理,多队列请求的仲裁判决等功能。队列管理模块中含有数
    发表于 05-03 20:19

    NVMe控制器IP设计之接口转换

    (addr、en、data_db)转换为与AXI PCIe IP模块相连接的AXI4-Lite接口。该模块的主要功能是在队列管理模块需要更新SSD内部门铃寄存器时,通过访问BAR空间实现更新N
    发表于 05-10 14:33

    NVMe协议研究扫盲

    内部的并行性实现可扩展性、高吞吐量和低延迟的目标。相较于SATA协议,NVMe协议具有以下几点优势:管理更高效、功能性更强、I/O效率更高、读写延迟和功耗更低。由于NVMe SSD与H
    发表于 06-02 23:28

    NVMe IP高速传输却不依赖便利的XDMA设计之三:系统架构

    尽可能降低功耗,减少运行中的 I/O 队列数量。 因此, 需要实现动态的队列管理功能, 在满足高性能的同时适应不同的应用环境。 具体要求为使用 PCIe3.0 以上接口的高性能固态硬盘的顺序读写数据
    发表于 06-29 17:42

    NVMe高速传输之摆脱XDMA设计30: NVMe 设备模型设计

    NVMe 设备模型一方面模拟 PCIe EP 设备功能, 另一方面模拟 NVMe 行为功能,实现 NVMe 协议事务的处理。 PCIe EP 设备具有 TYPE0 类型的配置空间, 要
    发表于 09-29 09:31

    如何提高滤波器的抑制

    如何提高滤波器的抑制?怎样去设计滤波器?
    发表于 04-20 07:26

    为什么安卓使用的是UFS,而苹果则是NVME

    什么是UFS?什么是NVME?UFS与NVME这两者分别代表了什么含义?有什么样的特点?为什么安卓使用的是UFS,而苹果则是NVME
    发表于 06-18 08:27

    如何为工业应用设计NVMe SSD

    RK3399核心板有哪些应用?如何为工业应用设计NVMe SSD
    发表于 03-07 06:12

    NVMe协议中对NVMe SSD进行管理的Admin Command Set

    环节出问题都可能导致此路不通,这套管理命令集也就成了摆设。而不管是AIC或者U.2的盘,硬件接口上都保留了SMBus管脚,这样主机和盘之间就能通过通道进行通信,因此通过
    的头像 发表于 03-28 10:48 1.1w次阅读
    <b class='flag-5'>NVMe</b>协议中对<b class='flag-5'>NVMe</b> SSD进行<b class='flag-5'>管理</b>的Admin Command Set

    在ZCU102评估套件上实现NVMe SSD接口的解决方案

    NVMeG3-IP 内核提供了一个在 ZCU102 评估套件上实现 NVMe SSD 接口的解决方案;同时也为不含 PCIe 集成块的 Xilinx Zynq UltraScale+ MPSoC
    的头像 发表于 11-28 15:37 3651次阅读

    DERA D7400系列NVMe SSD成为首款NVMe-MI 1.2认证产品

    NVMe-MI(NVMe Management Interface)是一种用于设备管理和监控的标准接口,旨在提高固态存储设备(SSD)的可管理
    的头像 发表于 03-09 10:15 1496次阅读
    DERA D7400系列<b class='flag-5'>NVMe</b> SSD成为首款<b class='flag-5'>NVMe-MI</b> 1.2认证产品