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报文结构示意图
热门推荐
天干无合化现象:命理学中的五行转化缺失
保养车辆,到底看里程还是看时间?维保记录又如何查询呢?
智能科技赋能:探索适老化展厅装修效果图的未来感
深度剖析:填缝剂、美缝剂、真瓷胶和环氧彩砂的区别
缅北“四大家族”之一的白所成,被抓后面露凶光
降维算法的数学本质:高维到低维的映射关系
Excel中两招让“肥胖”工作簿瞬间瘦身,解决文件卡顿难题
业委会与物业公司的关系及职责分工
父母必读 | 青少年儿童心理健康知多少
火电厂燃料智能化:推动能源行业转型升级的新引擎
喝茶别忘“好搭档”,扒一扒花茶的经典搭配,每天都有新花样
夏天空调开26℃好,还是24℃好?终于知道答案了
什么是RFC税号?墨西哥RFC税号申请流程和常见问题解析
檀香木盆景养护法(保持通风与湿度是关键)
物业是否有权利断水断电
物业停电证据的收集方法
韭黄炒蛋的做法
试用期核心考核目标:提升员工绩效与团队协作
明代永乐青花瓷器压手杯特点,如何鉴别
IntelliJ IDEA插件安装指南:在线安装与离线安装全攻略
浅析中国古典诗词意象的两个基本要素:象和意
雾化治疗避坑指南!搞懂这些细节,提高效果!
中央空调外机进水会坏吗(中央空调外机进水的原因及处理方法)
提升直流电源精度的关键技术与应用探讨
插画怎么构图?新手插画构图技巧!
无为而治如何让管理更高效
销控如何分析库存管理
主题炒作,解密最具A股特色的投资方法
论述人与动物之间的情感关系
一般劳务报酬个税计算怎么算