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报文结构示意图
热门推荐
深度解析北交所打新股:规则、风险与机会!(打新必看)
测电笔正确使用方法是什么
篮球鞋选购指南:外场与内场的差异及选购要点
抑郁症会影响行为能力吗?律师解答抑郁症与法律责任的关系
怎样挑选电视机攻略,打造理想家居娱乐体验
骑游上海,收获那么大!
老人买房还是租房?全方位解析利弊与注意事项
内心OS是什么意思
绥靖政策:中国历史上的妥协与和平
揭开手机中DDR内存的神秘面纱,分析其关键影响和性能提升
东方电气:六电并举,六业协同,打造能源装备全产业链
数学旅程:正态分布的数学推导与逻辑之美
《菜根谭》中的智慧与人生
水资源费改税试点为何全面扩围?对企业、居民有何影响?专家解读→
煮鸡蛋和吃鸡蛋的最健康方式是什么?
明朝有多少位被追尊的皇帝?其中哪些实至名归,又有谁引发争议
雅思没过会影响已经拿到的offer吗?
以太网交换机工作原理学习笔记
2025年可再生能源发展趋势:中国市场的全球引领与机遇展望
秋冬季节如何护肤
浅谈短视频侵权与著作权保护
《悟空》输不起还是遭受不公?冯骥公开信后、海外玩家震惊于混乱
超现实主义批判性艺术摄影:梦境与现实的碰撞
中国凉食地理,看完整个人都凉爽了
南充实施空气质量周排位、周扣缴机制,最后一名扣10万
特别策划 | 古装剧与传统文化“双向奔赴”
过期食品与中毒风险,你真的了解吗?
揭秘“艾滋病飞碟说”:科幻与现实的迷雾交织
福清旅游攻略:山海侨乡,古今交融之美
“初试428分未进复试”,如何看考研分数线“内卷”?