NVMe-MI --- Message Servicing Model(消息服务模型)

2023-05-16

4. 消息服务模型

4.1 NVMe-MI 消息

        图23展示了NVMe-MI消息的分类。NVMe-MI消息的两个主要类别是请求消息响应消息。当使用带外机制时,请求消息由管理控制器发送到管理端点。在使用带内隧道机制时,请求消息由主机软件发送到NVMe控制器。发送请求消息的实体统称为请求者,接收请求消息的实体统称为响应者。在接收到请求消息后,响应者处理请求消息。当处理完成时,响应者向请求者发送一个响应消息。

        请求消息可以分类为命令消息或控制原语。命令消息指定响应者要执行的操作,可以进一步分类为NVMe-MI命令、NVMe管理命令或PCIe命令。控制原语在带外机制中使用。

        响应消息可分为成功响应和错误响应。

4.1.1 请求消息

        请求消息是由请求者生成并发送给响应者的NVMe-MI消息。请求消息指定响应者要执行的操作。请求消息一共有两种类型:Command Message、Control Primitive。

        其中Command Message命令消息的消息体格式与命令集相关,由消息头中的NMIMT字段指定。NVMe-MI支持三种命令集:

  • 管理接口命令集:Management Interface Command Set,协议第5章;
  • NVM Express管理命令集:NVM Express Admin Command Set,协议第6章;
  • PCIe命令集:PCIe Command Set,协议第6章。

4.1.2 响应消息

        响应消息是当响应者完成先前发出的请求消息后,生成的NVMe-MI消息。

        响应消息的格式如图24和图25所示。第一个dword包含消息头Message Header。Status字段对响应消息关联的状态进行编码。接下来是Response Body,其格式跟NVMe-MI消息类型和特定的消息状态有关,最后如果完整性检查(IC)位设置为“1”,则响应消息以NVMe-MI消息完整性检查字段结束。

        在带外机制中,消息头中的CSI位指定了响应消息与之关联的请求消息的命令槽位。NVMe-MI消息类型(Msg Type)字段跟请求消息中相同字段的值保持一致。

        在带内隧道机制中,Message Header中的CSI位是保留的。

        响应消息Status状态表:

 4.1.2.1 通用错误响应

        如果在响应消息状态Status之外,未提供其他信息的错误,将生成通用错误响应。Byte7:5被保留,通用错误响应的格式如图27所示。

 4.1.2.2 无效参数错误响应

        当Status字段设置为无效参数 Invalid Parameter(04h),无效参数响应格式如图28所示,响应特定字段汇总在图29中。

         该字段表示请求消息中包含的第一个无效参数的Byte位置和Bit位。

4.2 带外消息服务模型

        本规范中的带外机制使用请求和响应服务模型。管理控制器向管理端点发送请求消息,管理端点处理请求消息,当处理完成时,将响应消息发送回管理控制器。在任何情况下,管理端点都不会生成未经请求的响应消息。

        与可能跨越多个MCTP数据包的其他NVMe-MI消息不同,包含控制原语的NVMe-MI消息应仅包含一个MCTP数据包。

        本规范利用命令槽来提供命令消息服务。管理控制器向管理端点发送命令消息,该消息以管理端点中的特定命令槽为目标。一个管理控制器还未收到上一条发布到命令槽的命令消息的响应消息时,不应该发送一个新的命令消息。每个管理端点包含两个命令槽,每个都包含状态信息和暂停标识。

        Command Message 命令消息是管理端点可以接收的唯一类型的多包NVMe-MI消息。传送到管理端点的命令消息的最大数量等于命令槽的数量。每个命令槽的操作都是独立的,允许管理控制器有两个独立的命令消息流到管理端点。与每个命令槽相关的命令消息是并行服务的。如果NVM子系统实现多个管理端点,则每个管理端点的命令服务并行发生。一个实现N个管理端点的NVM子系统可能有多达2N个并行服务的命令消息。

        图30是命令服务状态图用于描述功能需求,并不强制执行。

    

  • Idle 空闲:这是命令服务状态机的默认状态(例如,在复位之后)。当接收到命令消息的第一个MCTP包(MCTP包头中的SOM位为1且消息类型MT为4h的MCTP包)时,命令服务从Idle状态转换到Receive状态。
  • Receive 接收: 当命令消息的第一个数据包已经被接收并且正在被组装或验证时的状态。当接收到Abort Control Primitive或消息完整性check失败时,命令服务从Receive转换为Idle状态;当命令消息完整性检查成功时,命令服务从Receive转换为Process状态。
  • Process 处理:处理命令消息时的状态。命令消息的处理包括检查命令消息的错误并执行命令消息指定的操作或中止命令消息。当需要发送响应消息时,命令服务从Process状态转换成Transmit状态(即,暂停标志被清除为0)。当接收到Abort Control Primitive,命令服务从Process状态转换到Idle状态。
  • Transmit 传输:命令消息的响应消息被传输到管理控制器的状态。一旦与命令消息的响应相关联的整个NVMe-MI消息已经在物理层传输或由于接收到Abort Control Primitive,命令服务从Transmit状态转换到Idle状态。

注意:将两个或多个重叠命令消息接收到同一命令槽的行为是不允许的,如果这样导致管理端点丢弃命令消息,则这认为是接收到非空闲命令槽(CMNICS)的命令消息。

4.2.1 控制原语

       Control Primitives控制原语是从管理控制器发送到管理端点的请求消息。作用是:

  • 影响先前发出的命令消息的服务(Pause 、Resume、 Abort、 Replay);
  • 获取命令槽的状态和管理端点(Get State)。

        控制原语仅适用于带外机制,在带内隧道机制中被禁止。控制原语以命令槽为目标,与Command Message 命令消息不同,Control Primitives控制原语可以在命令槽处于任何命令服务状态时发送,并由管理端点立即处理。除非另有说明,否则控制原语不会更改命令槽的命令服务状态。

       Control Primitives 控制原语的格式如图31所示,字段描述如32中描述。

  • CPO控制原语操作码:该字段指定要执行的控制原语的操作码,如图33。
  • TAG 标签:该字段是一个不确定的值,由管理控制器发送并由管理端点返回到相应的响应消息中,管理控制器可以使用此字段中的任何值。
  • CPSP:此字段用于传递Control Primitive特定参数信息。

          控制原语关联的成功响应的格式如图34所示,字段在图35中描述。

        当与该控制原语相关联的动作完成时,管理端点向管理控制器发送响应消息。与Command Message不同 ,管理控制器可以向命令槽发出控制原语,而无需等待对先前向该命令槽发出的控制原语的响应。如果发送多个控制原语而不等待来自管理端点的响应,则仅保证与最后一个控制原语相关联的动作和响应(即,与先前发出但未确认的控制原语相关联的动作可能会或可能不会执行,并且响应)。控制原语的接收永远不会破坏与命令槽关联的先前控制原语。响应消息要么被完全传输,要么被丢弃。

        TAG字段是从控制原语请求消息复制到响应消息中的不透明值。通过使用唯一的TAG值,管理控制器可以将响应消息与请求消息链接起来(例如,使用序列号?)。

4.2.1.1 Pause

        Pause控制码用于暂停响应传输和暂停管理端点中两个命令槽的超时等待数据包。暂停控制原始码中的CSI位不使用,应清除为0h。

        与每个命令槽相关的是一个暂停标志,它决定槽是否被”暂停“。暂停标志的状态包括在成功响应中,也可使用获取状态原语读取。

        暂停原语的CPSP字段为预留。控制原语成功响应中CPSR字段的格式如图36所示。

         命令槽上的暂停控制原始码的结果取决于收到暂停控制原始码时命令槽的命令服务状态,如下所述。

服务状态响应结果
Idle暂停原语无效,暂停标志也不会改变
Receive暂停单元将暂停标志设置为1,并提醒管理端点,与该命令相关的其余MCTP数据包可能被延迟。在暂停标志被设置时,发送到该命令槽的进一步数据包被正常接收。
Process暂停单元将暂停标志设置为1,命令槽将会保持在Process状态,直到收到Resume控制原语。暂停对命令槽中的命令处理没有影响。尽管命令处理可以完成,但命令槽不应该过渡到传输状态。
Transmit暂停原语将暂停标志设置为1,暂停传输与命令槽中的命令相关的数据包边界上的MCTP响应数据包。

        管理端点在收到暂停原始语后应发送一个具有成功状态的响应消息。当一个命令槽已经暂停时, 再发出一个暂停控制原语不是一个错误的行为。
        当暂停标志被设置为 "1 "时,管理端点禁用超时等待数据包计时器,并且不传输对命令的响应。等待数据包的超时时间是100毫秒或适当的MCTP传输绑定规范中定义的时间, 以两者中较小者为准。在管理端点暂停时,管理控制器不应发送命令。

4.2.1.2 Resume

        Resume控制原语用于从Pause的状态中恢复。这是对Pause控制原语的补充。与Pause控制原语一样,Resume控制原语影响两个槽,Resume控制原语中的CSI位应被清空为'0'。如果一个命令槽在收到Resume原始码之前没有暂停,则Resume原始码会成功完成,没有任何影响。

       Resume原语的CPSP字段被保留。控制原语成功响应中的CPSR字段被保留。

       Resume控制原语的结果是基于收到Resume控制原语时命令槽的命令服务状态,如下所述。

服务状态响应结果
Idle暂停原语无效。
ReceiveResume原语提醒管理端点,与该命令相关的任何剩余MCTP数据包的传输正在恢复。暂停标志被清除为’0‘
ProcessResume原语允许先前暂停的命令槽在处理完成后过渡到发送状态,并在对恢复原语做出响应后开始发送一个响应。暂停标志被清除为‘0’
Transmit管理端点在对恢复原语作出响应后,恢复传输与该时隙相关的命令所对应的响应。暂停标志被清除为‘0’

        管理端点在收到恢复原语后,应发送一个带有成功状态的控制原语响应消息。 

4.2.1.3 Abort

        Abort控制原语用于将一个命令槽重新初始化为空闲状态,将与该命令槽相关的暂停标志清除为‘0’,并尝试中止与该命令槽相关的命令服务。

        中止一个命令信息对管理端点的其他命令槽、其他管理端点或NVMe子系统中的NVMe控制器没有影响。命令槽中的后续命令服务不受中止的影响。管理控制器可以发出一个中止原语,以清理处于未知状态的命令槽相关的资源。

        中止原语的CPSP字段为预留。控制原语成功响应中的CPSR字段格式如图37所示。

        Abort控制原语的结果是基于收到Abort控制原语时命令槽的命令服务状态,如下所述。 

服务状态响应结果
Idle中止原语无效。管理端点应发送一个具有成功状态的响应信息,CPAS字段被清除为0h。
Receive管理端点丢弃命令槽的内容并过渡到空闲状态。管理端点应发送一个带有成功状态的响应信息,CPAS字段设置为1h。
Process

中止原语使命令槽中的命令的处理被中止。

(a)如果在命令处理开始之前收到中止原语,则管理端点会丢弃命令槽的内容并过渡到空闲状态。管理端点应发送一个成功的响应,CPAS字段设置为1h;或

(b)如果在处理命令时收到了中止原语,则管理端点会丢弃命令槽的内容并过渡到空闲状态。管理端点试图中止该命令。

1. 如果命令被中止,并且对NVM子系统没有影响,那么管理端点应发送一个成功响应,CPAS字段设置为1h。

2. 如果管理端点无法中止命令,那么管理端点应发送一个成功响应,并将CPAS字段设置为2h;或

3. 如果命令已经完成处理(例如,管理端点暂停),那么管理端点应发送一个成功响应,CPAS字段被清除为0h。

Transmit管理端点丢弃命令槽的内容并过渡到空闲状态。管理端点传送一个带有成功状态的响应信息,CPAS字段被清除为0h。

        向一个暂停的槽发出中止控制原语不是错误。槽的状态被重新初始化,将暂停标志清除为‘0’。 

4.2.1.4 Get State

        获取状态控制原语用于获取一个命令槽和管理端点的状态。请求消息中CPSP字段的格式如图38所示。

         管理端点在收到获取状态原语后,应发送一个具有成功状态响应消息。控制原语成功响应中的CPSR字段的格式如图39所示。其中CS ‘Yes’表示该字段的值在管理端点内每个命令槽是独立的。

4.2.1.5 Replay

        Replay控制原语用于重传在一个命令槽中处理的最后一个命令信息的响应信息。Replay的响应信息形成一个新的MCTP响应信息,其信息数据从原始响应信息的响应Replay偏移量开始,一直到响应信息的末尾,包括原始MIC。

 

4.2.2 带外错误处理

        本节描述了NVMe-MI带外消息处理模型的特定错误处理。

4.2.2.1 命令超时

        MCTP定义了MCTP控制消息的最大响应时间(参考相应的MCTP传输绑定规范)。

        如果管理端点确定命令处理可能无法在100ms或适当的MCTP传输绑定规范中规定的请求-响应时间(以较短者为准)内完成,管理端点应利用“需要更多处理”响应机制。当传输繁忙或不可用时,来自管理端点的响应消息允许延迟到该超时之外。

        管理端点应该只对预计需要超过规定时间的命令(例如,格式化NVM)使用更多处理要求的响应。强烈不鼓励实施者在处理所需时间小于或等于所需时间的命令信息时使用该响应。

4.2.2.2 控制原语超时

        管理端点应尝试在100ms或适当的MCTP传输绑定规范中指定的请求-响应时间(以较短者为准)内对控制原语作出响应。当传输繁忙或不可用时,来自管理端点的响应消息允许延迟超过这个超时。

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NVMe-MI --- Message Servicing Model(消息服务模型) 的相关文章

  • 设计模式 - Objective-C - MVC 模型视图控制器

    您好 我已经阅读了网上有关 MVC 的教程 并且已经阅读了此处的主题 我想我已经了解了 MVC 的概念 但我不确定它的实现 我尝试将其应用于一个简单的程序 一个带有标签和按钮的窗口 该按钮增加一个计数器 标签显示它的值 我尝试了两种不同的方
  • AngularJS 的面向对象方法

    Angular 似乎没有提供内置的解决方案来定义具有属性和方法的类实例 并且需要开发人员来构建它 您认为这样做的最佳做法是什么 如何将其与后端链接 我收集的一些技巧使用工厂服务和命名函数 资料来源 Tuto 1 https medium c
  • 如何在不等待事件侦听器运行的情况下触发事件?

    我对 NET C 中的事件有疑问 我必须为几种情况编写代码 在这些情况下 我正在运行后台任务 并且我想通知主线程或控制器类发生了某些事情 例如任务已完成或完成了文件复制 但我不这样做不希望后台任务等待主线程的委托来处理事件 我想做一些类似消
  • 为什么有两个类:视图模型和域模型?

    我知道使用域模型作为视图模型可能很糟糕 如果我的域模型有一个名为 IsAdmin 的属性 并且我有一个创建控制器操作来创建用户 那么有人可以更改我的表单并使其 POST IsAdmin true 表单值 即使我没有在视图中公开这样的文本字段
  • 如何在 django 中指定索引类型? (btree 和 hash 对比等)

    就像标题所说 如何在 django 模型中的字段上指定我想要的索引类型 class Person age models IntegerField db index True 现在怎么办 我如何确保它是一个btree index而不是一个ha
  • 我需要双向创建 automapper createmap 吗?

    这可能是一个愚蠢的问题 n00b 到 AutoMapper 并且时间很短 我想使用 AutoMapper 从 EF4 实体映射到 ViewModel 类 1 如果我打电话 CreateMap
  • 反转博客条目和评论的显示顺序,Ruby on Rails

    我是 Rails 新手 所以可以在这里使用一些帮助 我已经按照几个教程创建了一个博客 其中包含评论 甚至还有一些 AJAX 花哨的内容 但我仍然坚持一些我希望很简单的事情 博客和评论的默认显示是首先列出最旧的 我如何反转它以在顶部显示最新条
  • Rails 在模型中验证值在数组内

    我有一个表格 我可以在其中传递一个字段命名 type我想要检查它的值是否在允许类型的数组内以便任何人不得发布不允许的类型 数组看起来像 allowed types type1 type2 type3 type4 type5 type6 ty
  • Rails 4 模型子文件夹

    我在 app models request book 文件夹中创建了模型 但 Book Request Status table name 返回表名称 statuses book request statuses 是正确的表名称 如何获得正
  • 如何从视图内的 JavaScript 函数更改模型属性?

    有什么方法可以通过视图内的 javascript 函数更改我的模型属性吗 具体来说 我有一个编辑视图 需要使用以下命令访问字符串属性值 函数 SomeJSFunction var somevar 然后对 somevar 进行一些更改并将模型
  • Django,多表继承有那么糟糕吗?

    这并不是 django 特有的 一罐模型 Place with location name and other common attributes Restaurant menu ConcertHall hall size 在两个单独的表中
  • 无法销毁多对多关系中的记录

    我是 Rails 新手 所以我确信我犯了一个简单的错误 我在两个模型之间建立了多对多关系 User and Group 它们通过连接模型连接GroupMember 这是我的模型 删除了不相关的内容 class User lt ActiveR
  • 如何将 Request->all() 与 Eloquent 模型一起使用

    我有一个 lumen 应用程序 需要在其中存储传入的 JSON 请求 如果我写这样的代码 public function store Request request if request gt isJson data request gt
  • 如何使用SqlAlchemy通过id查询数据库?

    我需要通过其查询 SQLAlchemy 数据库id类似的东西 User query filter by username peter 但对于身份证 我该怎么做呢 通过 Google 和 SO 搜索没有帮助 查询有一个获取函数 https d
  • 为树视图创建 Qt 模型

    我正在用 Qt 使用 C 编写一个应用程序 我需要在树视图中表示一个对象结构 实现此目的的方法之一是为此创建一个模型 但在阅读有关该主题的 Qt 文档后我仍然很困惑 我的 结构 非常简单 有一个Project持有的物体Task中的对象std
  • 如何在 Laravel 中基于迁移文件制作模型

    我已经创建了一个迁移 我想根据迁移文件制作一个模型 这可能吗 如果是这样 该怎么办 这是不可能的 到目前为止 您最多可以通过运行以下命令同时创建迁移和模型 php artisan make model ModelName m
  • MVC 模型在 OnExecuted 操作过滤器中为 null ...或者设置模型的更优雅的方式?

    我有一个 ActionFilter 它覆盖了 OnActionExecuted 方法 在 POST 操作中 filterContext Controller ViewData Model 始终为 null 我确实发现下面的文章似乎在说它不应
  • (Django) (外键问题) model.person_id 不能为 NULL

    我知道这在 Django 圈子里似乎是一个被过度询问的问题 但我不敢说我 还没有找到解决方案 我的模型 from djago import User class InfoPersonal models Model person models
  • 在 Ember 中将模型属性插入 Img 元素 URL

    我有一个模型image id财产 我有一个包含图像元素的模型视图 我需要将 id 插入图像元素的src属性来完成图像的 URL 以便我有效地执行此操作 img src 我的第一次尝试使用了 Handlebars 助手 img src 但这也
  • Laravel 中如何返回数组而不是集合?

    在 Laravel 中 可以仅选择一个字段并将其作为集合 数组返回 例如考虑模型Foo链接到表foos其中有字段id a b c 考虑以下示例数据 1 10 15 20 1 12 15 27 1 17 15 27 1 25 16 29 1

随机推荐

  • ubuntu18.04 查看在用串口

    1 终端输入cutecom 打开串口助手 xff0c 可能没有下载 xff0c 可根据提示下载安装 sudo cutecom 2 点击device旁边的下拉按钮即可查询当前在用的串口
  • Linux解决未定义的引用过程记录

    Linux解决未定义的引用过程记录 在摸索vscode使用的过程中 xff0c 编写的代码出现了为定义的引用错误 csdn上搜索了很多 xff0c 代码小白看完觉得写的非常的简略 xff0c 完全无从下手 xff08 应该是我太菜了 xff
  • 十一种室内定位传感器方案汇总介绍与对比(机器人、物联网领域)

    室内定位传感器方案汇总 目录 室内定位传感器方案汇总 1 定位方案概述 1 1 内定位系统有最基本的5种算法 xff1a 1 2 常用的室内定位技术主要包括以下几种 xff1a 1 3 定位理论 1 4 不同的定位方案对比 2 各种定位方案
  • C++中的unique函数

    STL中的unique函数的头文件 xff1a span class hljs preprocessor include lt iostream gt span unique 的作用是 去掉 容器中相邻元素的重复元素 xff0c 这里所说的
  • 单片机开发入门---从零开始玩转FRDM-KL25Z

    一 背景介绍 最近需要开发一个程序 xff0c 使用飞思卡尔的开发板FRDM KL25Z xff0c 来设计一款 西蒙游戏 的改进版 xff0c 下面我们先来了解一下西蒙游戏 西蒙游戏 是一款益智休闲类小游戏 xff0c 它的游戏规则是 x
  • SSD---系统架构

    SSD主要由两大模块构成 主控和闪存介质 另外可选的还有Cache缓存单元 主控是SSD的大脑 xff0c 承担着指挥 运算和协调的作用 xff0c 具体表现在 xff1a 前端实现标准主机接口与主机通信 xff0c 接口包括SATA SA
  • SSD核心技术---FTL

    FTL算法的优劣与否 xff0c 直接决定了SSD在性能 xff08 Performance xff09 可靠性 xff08 Reliability xff09 耐用性 xff08 Endurance xff09 等方面的好坏 xff0c
  • SSD---PCIe介绍

    SSD已经大跨步迈入PCIe时代 作为SSD的一项重要技术 xff0c 我们有必要对PCIe有个基本的了解
  • SSD---NVMe介绍

    何为NVMe xff1f NVMe即Non Volatile Memory Express xff0c 是非易失性存储器标准 xff0c 是跑在PCIe接口上的协议标准 NVMe的设计之初就有充分利用了PCIe SSD的低延时以及并行性 x
  • SSD---ECC原理

    我们知道 xff0c 所有型号的闪存都无法保证存储的数据会永久稳定 xff0c 这时候就需要ECC xff08 纠错码 xff09 去给闪存纠错 ECC能力的强弱直接影响到SSD的使用寿命和可靠性 本章将简单介绍ECC的基本原理和目前最主流
  • 音响发烧友---HiFi音频功放

    最近一直想做个开源的电子项目 xff0c 思考许久还是选择做个HiFi音频功放 作为一个音响发烧友 xff0c 带大家DIY一台属于自己的功放 聆听一下 xff0c 纯正的音乐之美 首选需要了解一下功放的类型 xff1a 纯甲类功率放大器乙
  • Altium Designer20常用使用快捷键

    一 AD20常用快捷键 PCB布线常使用 xff1a ctrl 43 m 测量长度 Q 单位切换 shift 43 ctrl 43 r 取消显示标注 shift 43 S 显示层切换 ctrl 43 右击 高亮显示一条线 ctrl 43 D
  • Altium Designer20 交叉选择模式

    在使用Altium Designer进行PCB布局时 xff0c 首先我们需要将原理图元器件更新到PCB中 xff0c 所有的元件封装都会汇集到PCB中 xff0c 但并没有根据电路模块进行分类聚集 xff1b 我们可以使用AD的交叉选择模
  • Altium Designer20 批量修改元件丝印大小和位置

    在进行PCB布线时 xff0c 我们经常需要调整元件丝印的大小和位置 有了丝印才能在PCB焊接和调试板子的时候得心应手 xff0c 下面介绍一种便捷的方法 xff0c 来实现批量修改元件丝印和位置 1 修改元件丝印大小 xff08 1 xf
  • 图像重叠区域

    http www cnblogs com dwdxdy archive 2013 08 02 3232331 html
  • bat批处理---实现输入指定拷贝文件

    在windows平台下 xff0c 平常的给芯片下载程序过程中 xff0c 经常遇到需要在多个文件夹下面拷贝bin文件的情况 xff0c 为了实现能够通过输入参数 xff0c 来选择需要拷贝的问下 xff0c 写了一个 bat批处理文件 只
  • Altium Designer20 PCB规则设置

    我们在进行PCB布线之前 xff0c 需要对PCB布线进行规则设置 xff0c 如果大家只是DIY爱好者 xff0c 那我们将设置价格最经济的PCB规则 xff0c 我们可以以捷配官网的PCB工艺信息作为参考 xff1b 下面我将介绍常用的
  • 入门到放弃之 NVMe-MI --- 协议简介

    在学习NVMe MI协议之前 xff0c 感觉协议是如此的枯燥 xff0c 通过短时间的阅读Spec发现协议规范定义的精妙绝伦 xff1b 协议中各种细节处理的相当到位 xff0c 最有趣的是消息服务模型的状态机设计 xff0c 希望大家一
  • NVMe-MI --- Message Transport(消息传输)

    3 消息传输 该规范定义了一个支持多种消息传输的接口 消息格式与带外机制和带内隧道机制相同 3 1 NVMe MI消息 NVMe MI消息在带外机制和带内隧道机制中都有使用 NVMe MI消息的格式如图17和图18所示 在带外机制中 xff
  • NVMe-MI --- Message Servicing Model(消息服务模型)

    4 消息服务模型 4 1 NVMe MI 消息 图23展示了NVMe MI消息的分类 NVMe MI消息的两个主要类别是请求消息和响应消息 当使用带外机制时 xff0c 请求消息由管理控制器发送到管理端点 在使用带内隧道机制时 xff0c