NVME协议解读(一)
NVMe是什么:NVMe是一种Host与SSD之间通讯的协议,它在协议栈中隶属高层。
NVMe制定了Host与SSD之间通讯的命令,以及命令如何执行的。
NVMe有两种命令,一种叫Admin Command,用以Host管理和控制SSD;另外一种就是I/O Command,用以Host和SSD之间数据的传输。下面是NVMe1.2支持的命令列表:
NVMe支持的Admin Command:
NVMe支持的I/O Command:
跟ATA spec中定义的命令相比,NVMe的命令个数少了很多,完全是为SSD量身定制的。大家现在别纠结于具体的命令,了解一下就好。
NVMe有三种队列命令:Submission Queue (SQ),Completion Queue(CQ)和Doorbell Register (DB)。 SQ和CQ位于Host的内存中,DB则位于SSD的控制器内部。如下图所示:
SQ位于Host内存中,Host要发送命令时,先把准备好的命令放在SQ中,然后通知SSD来取;CQ也是位于Host内存中,一个命令执行完成,成功或失败,SSD总会往CQ中写入命令完成状态。DB则是在Host发送命令时,不是直接往SSD中发送命令的,而是把命令准备好放在自己的内存中,Host就是通过写SSD端的DB寄存器来告知SSD命令已经处理完毕,可以前来检阅。流程如下图所示:
①Host写命令到SQ;
②Host写DB,通知SSD取指;
③SSD收到通知,于是从SQ中取指;
④SSD执行指令;
⑤指令执行完成,SSD往CQ中写指令执行结果;
⑥然后SSD发短信通知Host指令完成;
⑦收到短信,Host处理CQ,查看指令完成状态;
⑧Host处理完CQ中的指令执行结果通过DB回复SSD:指令执行结果已处理。
NVME协议解读(一)相关推荐
- NVME协议解读(四)
NVMe详解(四) 5. NVMe协议定义的命令 5.0 命令执行过程 5.1 命令分类 5.2 命令通用格式 5.3Admin 指令 5.4 NVM指令 6 控制器结构 6.1 命令执行过程 6.2 ...
- NVME协议解读(三)
NVMe协议详解(三) 4.内存数据结构 4.1 SQ与CQ的详细定义 4.1.1 空队列 4.1.2 满队列 4.1.3 队列性质 4.2 仲裁机制 4.2.1 RR 带有优先权的RR 4.2.3 ...
- 群联固态硬盘修复工具_固态硬盘掉速修复小教程,SATA和NVMe协议通用
不做云评测,只聊真体验,大家好,我是肉包爸爸. 近日,被我拿来做高速移动硬盘的一块海力士PC401 1T固态硬盘出现严重掉速,格式化后故障依旧. 由于硬盘盒接口为USB3.1 Gen2,所以理论速度被 ...
- 3gpp协议_3GPP都在干什么(16)?:3GPP中网络切片原理及协议解读
本文归属于<3GPP在干什么>系列.全文71页PPT.(此系列是春天工作室一大IP(品牌),主要是协议解读.标准化进展梳理,新技术跟踪等). 今年我们会投入较多的时间和精力,重点研究和跟踪 ...
- NVMe 协议详解(一)
NVMe 协议详解 1. 综述 1.1名词解释 1.1.1 Namespace 1.1.2 Fused Operations 1.1.3 指令执行顺序 1.1.4 写单元的原子性 1.1.5 元数据 ...
- 【协议】NVMe over RoCE 初探 SATA接口(AHCI协议)、PCIe 接口(NVMe 协议)
简略 详细 RDMA RDMA网络配置 硬/软件信息 RDMA驱动安装 验证RDMA连通性 NVMe Initiator 和 target 配置 target 端配置 initiator 端配置 配置 ...
- CANopen协议解读
CANopen协议解读 一.协议标准 二.CANopen报文说明 三.CANopen协议内容 1. ID的理解 2. NMT (1) 节点状态 (2) 节点状态控制 (3) 节点心跳报文 一.协议标准 ...
- NVMe-MI协议解读
众所周知,在一个存储系统中,将设备管理与业务分离是一个良好的设计,比如在Nvme协议中就有一个Admin命令集,与IO命令分开.为了能够更规范合理得对NVMe SSD进行管理,NVMe-MI协议应运而 ...
- 【协议】NVMe over RoCE 初探 SATA、PCIe 接口和AHCI、NVMe 协议
原文:NVMe over RoCE 初探 - 知乎 常见的 SSD 主要分为 SATA和 PCIe 接口,其接口协议对应着 AHCI.NVMe 协议.相比于最原始的 ATA 协议,AHCI 有 2 个 ...
最新文章
- 在VS中用正则表达式查找或替换
- Face Model Compression by Distilling Knowledge from Neurons 论文理解
- 赚到!4个Python初学者必学的Numpy小技巧
- iOS项目预处理器环境变量设置
- RedHat系列软件管理(第二版) --源码包安装
- Synopsys Mentor Candence
- cad在哪里设置图幅大小_CAD新建图纸怎么设置视图范围太小?
- 老子【道德经】全文翻译(全81章)
- 植被物候参数遥感研究进展(好文分享)
- sumif单列求和_求和、单条件求和、多条件求和、隔列求和等实用技巧解读
- 计算机技能大赛备赛计划,技能大赛计划.doc
- python爬取qq音乐歌词风变编程_爬取QQ音乐歌词
- 脱颖而出:为您的独立游戏扩大客户群 游戏运营
- 中南大学青年志愿者协会电脑维修部
- LOL如何拯救小学生
- 【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第六节)
- 【资讯】德勤在香港成立区块链实验室
- python应用程序无法正常启动0x00000ba_应用程序无法正常启动0xc000012d?怎么解决?...
- linux查询服务器cpu核数_查看linux服务器CPU数量
- 网易邮箱支持手机收发邮件的服务器,手机如何使用IMAP服务收发网易的邮件