因为NVMe的出现,硬盘的性能得到了极大的提升。这个极大是多少呢?读带宽从500MB/s提高到了3200MB/s,写带宽从400MB/s提高到了1200MB/s左右。而读IOPS则达到了50万,甚至更高。也就是说,现在一块基于NVMe的SSD硬盘的性能比一个企业级磁盘阵列还要好。

牛皮吹了这么多,那到底什么是NVMe呢?NVMe的全称是Non-Volatile Memory Express,如果翻译过来就是非易失性内存主机控制器接口规范。你可能还是一头雾水,那我们上搜索引擎搜索一下这个关键词,可能会得到如下图片。

图1 NVMe存储

废话说了半天,到底什么是NVMe呢?首先它是一种接口规范,其次它是用于存储设备的接口规范。准确的说是目前最新的存储设备通信协议。这个协议就好比SAS和SATA一样,用于定义硬件接口和传输协议。

关于存储的几个概念

为了彻底搞清楚什么是NVMe,我们先理清楚几个关于存储的概念。

尺寸外形:也就是设备的形状和大小,通常存储设备的尺寸外形包括如下:

2.5寸或者3.5寸驱动器(在SFF标准中定义)M.2 和 PCI Express(PCIe)(在PCI-SIG标准中定义)接口:也就是设备如何与计算机通信。常见的存储设备接口包括:

SATA接口,通常用于2.5寸和3.5寸硬盘,有时候一些M.2设备也会使用PCI Express(PCIe)接口, 用于M.2和PCIe设备SAS(串行SCSI)和FC(Fibre Channel)接口,仅用于服务器领域和数据中心PCIe接口要比SATA接口快的多,SATA3最大带宽是6Gb/s,而基于4X PCIe的M.2接口最大可以达到32Gb/s。协议:定义了如何在计算机与设备之间传输数据。常见的协议包括:

用于SATA接口的AHCI或者ATA协议,用于PCIe接口的NVMe协议

到这里我们应该比较清晰了,NVMe是运行在某种接口上的通信协议,用于规范计算机与存储设备的数据传输。上述设备尺寸、接口和协议通常是可以组合的。下面是常见的集中组合形式。

一个2.5寸SSD硬盘,基于SATA接口,通信协议是AHCI或者ATA。具体设备大概如图2所示。

图2 SATA接口的SSD

一个M.2的SSD, 基于PCIe接口,通信协议是NVMe。具体设备大概如图3所示。

图3 M.2的SSD

一个PCIe的SSD,基于PCIe接口,通信协议是NVMe。具体设备大概如图4所示。

图4 PCIe的SSD

这里只是给出了几个具体的例子,便于大家理解接口、设备和协议的关系。具体来说,还有其它很多种组合形式,本文不在赘述。

为什么NVMe会这么快

上面我们介绍了什么是NVMe,下面本文将介绍一下为什么NVMe如此之快(注意:这里说的快是基于SSD设备的,如果是机械硬盘则不然)。由于SSD本身的物理特性,其数据的访问已经非常快了,性能的瓶颈就是出在计算机与设备连接的接口和协议上面。

我们举一个简单的例子。比如我们有一个仓库会不断的生产出产品来,我们可以机械手将产品从仓库拿到其它地方(如图5所示)。对于SATA的SSD,类似于一个单臂的机器人,仓库生产的很快,但机器人每次只能拿一个,搬移的速度就比较慢。

图5 单臂机器人

然而对于基于NVMe的SSD呢?相当于这个机器人长了数百只手,这样速度显然就比前者快的多了。

图6 多臂机器人

NVMe协议的原理也是如此,它本质是上建立了多个计算机与存储设备的通路,这样搬运数据的速度自然就提高了。在NVMe协议中,多个通路其实就是多个队列,具体如图7所示。在SATA中计算机与存储设备只能有一个队列,即使是多CPU情况下,所有请求只能经过这样一个狭窄的道路。而NVMe协议可以最多有64K个队列,每个CPU或者核心都可以有一个队列,这样并发程度大大提升,性能也自然更高了。

图7 NVMe的多队列

今天只是一个入门,后面我们再详细的介绍关于NVMe的更多内容。如果觉得不错,还请大家关注本号,如果觉得太烂,还请下面留言。

举报/反馈

一篇文章讲清什么是NVMe相关推荐

  1. 一篇文章讲清Go的内存布局和分配原理

    Go内存分配 Go 之所以在高并发环境下表现优异,除了咱们都知道的GMP模型,其实Go的内存布局和分配机制也起到了不少作用. 今天邀请到公众号「Go编程时光」的号主大佬明哥,给大家盘一盘 Go 中关于 ...

  2. 一篇文章讲清什么是零知识证明

    作用 抽象领域 零知识证明是打通链上数据与链下计算的关键技术,也是实现链上数据隐私保护的重要途径. 零知识证明技术可以解决数据的信任问题,计算的信任问题! 具体领域 数据的隐私保护:在一个数据表格中, ...

  3. 一篇文章讲清NB-IoT技术

    PART 1/"物网(物联网)"的差异化需求 一直以来,人们通过相应的终端(电脑.手机.平板等)使用网络服务,"个人"一直是网络的用户主体.个人对网络质量的要求 ...

  4. 【密码学】 一篇文章讲透数字证书

    [密码学] 一篇文章讲透数字证书 数字证书介绍   数字证书是一种用于认证网络通信中参与者身份和加密通信的证书,人们可以在网上用它来识别对方的身份.   我们在上一篇博客中介绍了数字签名的作用和原理, ...

  5. 用计算机怎么做蒙特卡洛模拟,一篇文章讲明白蒙特卡洛模拟

    先来个测试题: 用仿真的方法计算圆周率π,请写出计算步骤和简单的公式: (思考十秒钟,想不出来可以继续往下看,后面有答案) 001 什么是蒙特卡洛模拟 蒙特卡洛模拟,又称为统计实验方法 以概率论和统计 ...

  6. 参考文献怎么查找,去哪里查找?一篇文章讲明白这些问题

    在我们撰写论文查找参考文献时,往往不知道从哪里入手,本文小编就针对下面这三个方面给大家详细讲解下: 一.查找参考文献方法 二.参考文献资料查找网站 三.参考文献格式规范 一.查找参考文献方法: 1.知 ...

  7. 一篇文章说清Python数据分析,这个学习路线绝了

    近年来,数据分析师的需求非常大,90%的岗位技能需要掌握Python作为数据分析工具. 2021年史上最全Python数据分析学习路线,从语言基础.数据工具.商业分析.到机器学习,一篇文章帮你搞定,奥 ...

  8. 一篇文章讲透控制反转和依赖注入

    https://www.jianshu.com/p/07af9dbbbc4b 转载链接:http://blog.xiaohansong.com/2015/10/21/IoC-and-DI/# http ...

  9. finereport与finebi差别_一篇文章说清FineReport和FineBI的联系与差别

    目前帆软是国内大名鼎鼎的商业智能公司,它旗下特色产品主要是FineReport和FineBI,但是多数人可能会有疑问:FineReport和FineBI到底有什么区别?有了FineReport,还要F ...

最新文章

  1. python函数的基础知识_Python入门基础知识点(函数进阶)
  2. Use Excel Pivot Table as a BI tool
  3. 总结Python机器学习中的回归算法
  4. Angular全套知识讲解,错过必悔!
  5. Codeforces Round #760 (Div. 3)
  6. python36 mysql_python-day36(初识MySQL数据库)
  7. java web html5区别_html5和html有什么区别啊?
  8. 滚动图片广告_女排赢球可喜看台马桶广告扎眼 网友:去男足赛场!别在这儿蹭热点...
  9. linux服务器系统内核参数优化
  10. python怎么让图片旋转45度_是否有方法将matplotlib打印旋转45度?
  11. matlab 相位谱_电气信息类专业课程之matlab系统仿真 第九章 提高仿真能力需要案例(1)...
  12. Axure汉化下载步骤
  13. 【githubgirl】如何通过实现一个简单的编译器(TinyC),并借助实例来描述基本的编译原理及过程
  14. 计算机考研408每日一题 day162
  15. 关于Ubuntu下firefox无法观看视频的解决
  16. python参数类型为uint8,将图像数据类型从uint16转换为uint8
  17. 几十个恶毒网站,不怕死的朋友请进
  18. intellij 打开两个窗口
  19. 不谋正业的诗人:没有副业 诗人都得饿死
  20. 对接快递100快递管家API之订单快速打印接口

热门文章

  1. 百度网盘无限扩容技术,外面399,无论自己用还是用做引流都可以
  2. MySQL(八):InnoDB 日志缓冲区(Log Buffer)
  3. 为什么社区团购需要小程序?
  4. Virtual Box报错VT-x is not available (VERR_VMX_NO_VMX)--大踩坑(二)
  5. shiro-反序列化漏洞
  6. i58250u是低端处理器吗_玩都市天际线要很大的显卡吗
  7. 程序员们逢年过节初一十五都应该祭拜哪些神仙?
  8. 数据分享和开源软件有助于对抗新型冠状肺炎,开源布道师等;开源之道每周评论2020 03 16...
  9. HTML在线颜色选择器源码
  10. PRD(Product Requirement Document,产品需求文档)模板