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报文结构示意图
热门推荐
大专生如何选择合适的公务员岗位,机会与策略
800元自行车丢失后怎么办?报警流程及法律依据详解
自动驾驶的分级标准及其在中国的发展现状
高情商拒绝offer的技巧(以职业妥协为关键)
如何根据八字命理中的天干地支进行排盘分析
养老机器人问题多?积极应对让科技护老!
什么是点价贸易?
硫磺皂可以洗头发吗?使用禁忌和正确用法全解析
'两千多的玉镯线上买还是线下买好' - 线上购买与线下购买的对比分析
个人所得税中房贷扣除的规定及法律解读
揭秘碧玉手镯表面白色物质真相:成分分析及处理方法
即热式饮水机最大危害
钟鼎文诗歌创作及其诗论简谈
缓解胀气和改善消化的运动指南
如何挑选合适的油烟机?这类油烟机有哪些特点?
如何确保地铁站接地系统的可靠性和安全性?
鸿钧老祖为何不在《西游记》中出现?从菩提祖师身份看其中玄机
营养学家点赞!春笋炒腊肉的 3 大健康益处,90% 的人没吃对
营养学家点赞!春笋炒腊肉的 3 大健康益处,90% 的人没吃对
RTX 3060显卡游戏性能提升秘籍与配置建议
用四角号码做人名索引时,标注的各个数字代表什么含义
【性能比较】不同橡胶配方对耐油性能的影响
高效沟通的说话方法在不同文化中有何差异?
讨要工资需要提前准备什么材料
SQL Server 迁移后验证和优化指南
人大代表师延财:建议设立“中国核科学日”,提升产业工人待遇
腊八节是怎么来的?为啥要喝粥?腊八粥该怎么熬?祝福语有哪些?
腊八这一天需要一些仪式感 今天,别忘了喝腊八粥!
存款准备金制度迎改革猜想 5%隐形下限或松动
集章,让城市有了全新打开方式