NVMe-MI协议深度解析:实现原理与MI报文结构详解
创作时间:
作者:
@小白创作中心
NVMe-MI协议深度解析:实现原理与MI报文结构详解
引用
1
来源
1.
https://picture.iczhiku.com/weixin/message1599102053308.html
NVMe-MI(NVMe Management Interface)协议是NVMe协议的重要补充,它提供了一种独立于NVMe协议的管理接口,使得即使在SSD出现故障时,也能通过另一条路径获取SSD的状态信息。本文将从宏观角度解读NVMe-MI协议的实现原理,并详细解析MI报文的结构。
知道NVMe-MI的作用后,我们先从宏观角度看一下它是怎么实现的。与NVMe协议不同,NVMe-MI协议是通过MCTP协议进行传输,同时底层物理层支持PCIe或者SMBus/I2C,本文后续默认物理层都是SMBus/I2C。物理层使用I2C的好处就是和NVMe协议完全隔离,即使SSD在NVMe看来是故障的,还能有另外一条路径查看SSD状态。
从整个协议栈我们可以看出一次完整的MI命令执行过程:
- Host将想要发送的命令按照MI的协议规范组成MI报文;
- 将MI报文当作MCTP的数据封装为MCTP报文;
- 完整的MCTP报文通过I2C链路发给SSD;
- SSD收到MCTP报文后,解封MCTP报文得到MI报文;
- 解析MI报文后获取发送消息,然后将要回复的数据按照MI协议规范组成MI报文;
- 再将回复MI报文当作MCTP的数据封装为MCTP报文;
- 再将MCTP报文通过I2C链路发送给Host;
- Host解封MCTP报文,再解析MI报文获取回复消息。
图1:NVMe-MI协议执行流程示意图
在整个过程中,我们具体来看一下MI报文,这是属于MI协议范畴,过程中涉及的MCTP协议,I2C协议可自行查看相关协议文档。
一个完整MI报文分为3部分,Header,Data和IC(Integrity Check)
Header:总共4个字节,主要指明该MI消息的类型;
Data:MI消息的具体数据,数据格式和大小因Header里面指明的类型不同而不同;
IC:总4个字节,Header和Data的CRC校验值,使用的是CRC-32C算法。
图2:MI报文结构示意图
热门推荐
惊恐发作:当“心脏病”症状背后的心理真相
电脑系统更新后无法上网?网络恢复步骤详解
如何排出肺里的烟毒
西安秦岭黄峪沟游玩攻略:溪水露营、登山徒步,周末休闲好去处
Windows系统跟Mac系统一样吗
民间借贷纠纷的调解与仲裁
情商低有哪些表现?识别低情商的特征,提升人际沟通能力
数字化转型的双引擎:技术数据是燃料,战略组织是方向盘
夏季晚上钓鲫鱼的最佳时机:揭秘鲫鱼夜间活力变化规律
治疗鸡眼的6个民间小偏方
体能测试评估仪与健康管理
肝功能化验报告怎么看? 轻松读懂肝功能化验指标!
ThinkBook16+ 2024重装系统教程
天坛旅游攻略
聚力赋能增效 看武侯区如何破解“小马拉大车”问题
Fazekas分级标准是什么
西米替丁的作用
气血两虚是什么原因导致的
CPU温度过高怎么办?CPU正常温度指南
儿童保险基本知识问答
微信公众号每天能发多少篇文章?
日常生活中的6 个API实际示例
无线充电技术在电动汽车普及中面临的挑战和解决方案是什么?
微信不弹出新消息提醒是怎么回事?注意检查这几个地方
桂林至昆明自驾游路线指南:途经城市与景点推荐
龙胆泻肝丸的配方是什么
双电机直排筛振动电机安装角度及正确转向解析与应用
15位教师分享《望庐山瀑布》教学心得
什么是伴侣治疗?_ 详细指南
产品定义:从核心要素到成功案例的全面解析