NVMe 原理 - 命令的处理

news2025/6/14 12:11:13

蛋蛋读NVMe之一 (ssdfans.com)

NVMe 所处层次

img

NVMe是一种Host与SSD之间通讯的协议,它在协议栈中隶属高层。NVMe在协议栈中处于应用层或者命令层。

NVMe是为SSD所生的。NVMe出现之前,SSD绝大多数走的是AHCI和SATA的协议,后者其实是为传统HDD服务的。与HDD相比,SSD具有更低的延时和更高的性能,AHCI已经不能跟上SSD性能发展的步伐了,已经成为制约SSD性能的瓶颈。既然SATA接口速度太慢,我用PCIe好了,不过上层协议还是AHCI。AHCI只有一个命令队列,最多同时只能发32条命令。SSD需要PCIe,更需要NVMe。

NVMe 传输模型分类

主机和NVM子系统之间有两个定义的通信结构:

  • 一个是基于内存的传输模型
  • 一个是基于消息的传输模型。基于消息的传输模型有两种子类型:
    • 仅消息传输模型
    • 消息/内存传输模型

不同模型在命令、响应、数据传输方式的不同:

  • 在基于内存的传输模型中,命令、响应和数据通过显式的内存读写操作在主机和NVM子系统之间输。
  • 基于消息的传输模型是指在主机和NVM子系统之间发送包含命令胶囊和响应胶囊的消息。
    • 在纯消息传输模型中,数据仅使用胶囊或消息在主机和NVM子系统之间发送。
    • 基于消息/内存的传输模型使用消息和显式内存读写操作的组合来在主机和NVM子系统之间传输命令胶囊、响应胶囊和数据。数据可以选择性地包含在命令胶囊和响应胶囊中

img

NVMe 命令

NVMe制定了Host与SSD之间通讯的命令,以及命令如何执行的。

NVMe有两种命令

  • 一种叫Admin Command,用以Host管理和控制SSD;

  • 另外一种就是

    I/O Command

    ,用以Host和SSD之间数据的传输。

    • namespace 命名空间是主机可以访问的一组格式化的非易失性内存。与每个命名空间相关联的是在该命名空间上操作的I/O命令集。一个NVM Express控制器可以支持使用命名空间ID引用多个命名空间。

在NVMe 2.0规范中命令集分为了三种:

NVMe 2.0 规范

  • Fabrics Command:fabric命令集命令用于特定于NVMe over fabric的操作,包括建立连接、NVMe带内认证、获取或设置属性。

NVMe 命令的发送

Host又是怎么把这些命令发送给SSD执行呢?

NVMe协议中的三种队列:Submission Queue (SQ),Completion Queue(CQ)和Doorbell Register (DB)

SQ和CQ位于Host的内存中,DB则位于SSD的控制器内部。

SSD作为一个PCIe Endpoint通过PCIe连着Root Complex (RC), 然后RC连接着CPU和内存

NVMe 命令的处理

img

说,NVMe处理命令需要几步?答:八步:

第一步:Host写命令到SQ;

第二步:Host写DB,通知SSD取指;

第三步:SSD收到通知,于是从SQ中取指;

第四步:SSD执行指令;

第五步:指令执行完成,SSD往CQ中写指令执行结果;

第六步:然后SSD发短信通知Host指令完成;

第七步:收到短信,Host处理CQ,查看指令完成状态;

第八步:Host处理完CQ中的指令执行结果,通过DB回复SSD:指令执行结果已处理,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104630.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

元宇宙产业委与中国传媒大学就“虚拟空间文化生产与管理微专业”课程深度合作

12月17日、18日两天下午,由中国移动通信联合会元宇宙产业工作委员会牵头,为中国传媒大学虚拟空间文化生产与管理微专业成功邀请5位行业内大咖级讲师,为校内、外在读本科生和研究生,以及对虚拟文化生产与管理感兴趣且获得学士学位的…

工控CTF之协议分析6——s7comm

协议分析 流量分析 主要以工控流量和恶意流量为主,难度较低的题目主要考察Wireshark使用和找规律,难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律,难可以难得五花八门 常见的工控协议有:Modbus、MMS、IEC60870、…

windows下安装make,使用makefile文件

文章目录前言Makefile简介make作用安装make:1.windows上安装:chocolatey一、Chocolatey介绍二、Chocolatey安装安装make配置make连接前言 本人在学习go-micro中,用到Makefile,本人之前用过Makefile,但是不知道为什么这…

【蓝桥杯】第12届Scratch国赛中级组第1题 -- 文字特效

[导读]:蓝桥杯大赛是工业和信息化部人才交流中心举办的全国性专业信息技术赛事。蓝桥杯大赛首席专家倪光南院士说:“蓝桥杯以考促学,塑造了领跑全国的人才培养选拨模式,并获得了行业的深度认可。” 春雷课堂计划推出Scratch蓝桥杯…

红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01

书接上回,前一篇我们在全平台构建好了Ruby3的开发环境,现在,可以和Ruby3第一次亲密接触了。 Ruby是一门在面向对象层面无所不用其极的解释型编程语言。 我们可以把编写Ruby代码看作是一场行为上的艺术,编码就像跳舞一样&#xf…

工控CTF之协议分析3——IEC60870

协议分析 流量分析 主要以工控流量和恶意流量为主,难度较低的题目主要考察Wireshark使用和找规律,难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律,难可以难得五花八门 常见的工控协议有:Modbus、MMS、IEC60870、…

关于要不要转行做程序员的问题

写在前边: 种一棵树,最好的时间是十年前,其次是现在。 什么时候开始都不晚。 这篇文章废话少说,我作为一个普通本科电气工程及其自动化专业的人转行作为Python程序员来说的经历到现在已经工作两年了,距离培训整整过…

LabVIEW使用硬件抽象层适应不同的接口

LabVIEW使用硬件抽象层适应不同的接口 在实验室工作时,拥有不同品牌/型号的各种设备,有时(或多或少)具有相同的目的。为了缩短开发时间,想创建一个硬件抽象层,允许使用所有相同类型的仪器,并具…

操作系统实验6:地址映射与共享

本次实践项目有两个基本内容: (1)用Bochs调试工具跟踪Linux-0.11的地址转换过程; (2)实现基于共享物理页框的进程间内存共享。 知识点补充 GDT和GDTR 和一个段有关的信息需要 8 个字节来描述&#xff0c…

【3D目标检测】Orthographic Feature Transform for Monocular 3D Object Detection

目录概述细节网络结构正交特征变换模块其余部分概述 本文是基于单目图像的3D目标检测方法。 【2018】【OFT-Net】 研究的问题: 在图像表示中,物体的比例会随着深度的变化而变化;物体的外观随着视点的不同而不同;物体的距离&…

看漫画也能学Python?小学生都能学会,《看漫画学python 2》PDF中文超清版,可分享

学习Python的小伙伴大部分应该都知道《看漫画学Python:有趣、有料、好玩、好用(全彩版)》这本书! 《看漫画学Python》进阶版,在第1版的基础上讲解Python进阶知识,帮助读者完善Python知识体系,提…

点云Delaunay三角剖分(三维)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 四面体网格是一种三维非结构化网格,它划分了一个三维域。这种类型的分区有许多有利的性质。例如,它很适合具有任意复杂几何结构的领域,它可以很容易地在局部细化和粗化(没有悬挂节点),并且它可以完全自动地创建…

GitHub上超强Python零基础入门学习资源,让你的学习事半功倍

根据2020年StackOverflow开发者调查报告,Python是世界上最受欢迎的语言之一,排名仅次于Rust和TypeScript。更令人惊讶的是,Python是开发人员最想尝试的语言。 如果你是一位使用Python的开发人员,而且希望提高自己的技术水平&…

【Numpy基础知识】使用genfromtxt导入数据

使用Numpy进行I/O操作 来源:Numpy官网:https://numpy.org/doc/stable/user/basics.html 文章目录使用Numpy进行I/O操作导包【1】定义输入【2】将行拆分为列【3】跳过行和选择列【4】选择数据类型【5】设置名称【6】调整转换【7】快捷键功能NumPy 提供了几…

JAVA面试(不同类型的公司特点)

工作那么多年面试过很多公司,同时也面试过很多求职者。作为一个JAVA程序员,10年风雨路,10年技术路,一路走来,实属不易,JAVA语言从诞生,到发展起来,到风靡全球,到如今的混…

java回顾:私服搭建

目录 一、搭建私服 1.1、搭建私服原因 1.2、nexus软件的安装 1.3、私服的使用 1.4、仓库介绍 1.5、从私服下载资源 1.6、下载失败 1.7、将资源上传到私服 1.7.1 问题 一、搭建私服 1.1、搭建私服原因 公司开发了jar包,可供其他项目组使用、无网络使用…

次世代培训——我们从游戏美术发展历程讲起

自90后们记忆最初的小霸王游戏算起,中国游戏大致经历了从像素时代-预渲染时代-初世代-中世代-次世代这样几个阶段的变革。有趣的是,当主机、PC游戏早已跨过了像素时代,手游的兴起和发展却依然要遵从这一发展规律从头开始,当人们已…

FineReport智能报表工具- CSS修改控件样式

1. 概述 1.1 使用场景 在实际项目中,为了让 FineReport 报表中的控件和页面风格一致, 可以通过 CSS 修改控件的显示样式。 如下图所示,希望参数面板上文本框控件的边框变为红色,字体颜色变为蓝色。 除更换控件字体、修改边框颜色…

从风控中那些被标准化定义的问题谈起

说到风控业务中被标准化的定义问题,作为风控人最应该来谈谈这个内容,尤其是在数字化的风控内容上。数字化风控的标准化程度较高,在互金经过了一番喷薄的发展后,对于SOP守则,业务问题的定义及留给后续从业者可借鉴的资料…

足球人生:青春不过几届世界杯

🎉花有重开日,人无再少年。将近一个月的卡塔尔世界杯正式落帷幕,见证了最伟大的世界杯决赛,新老两代球王的巅峰对决,节奏拉满。诸神黄昏,球王加冕,最完美的结局。究竟怎样的颠沛流离才配得上这一…