https://baijiahao.baidu.com/s?id=1718020841628703656&wfr=spider&for=pc

HDD和早期SSD大部分使用SATA接口,正在运行AHCI (Advanced Host Controller Interface),这是由Intel与许多公司合作开发的系统接口标准。AHCI支持NCQ功能和热插拔技术。NCQ的最大深度是32,也就是在对HDD或SSD执行最多32条命令的情况下,与以前的硬盘只能一条命令执行相比,硬盘性能有了显著的提高。

AHCI协议和SATA接口AHCI协议和SATA接口足以满足系统的性能要求,因为整个系统的性能瓶颈在于硬盘端(低速、高延迟),而不是协议和接口端。但是随着SSD技术的迅速发展,SSD磁盘的性能急剧上升,底层闪存带宽越来越宽,介质访问延迟越来越低,系统性能瓶颈已从下面转移到上面的接口和协议处。AHCI和SATA已无法满足高性能、低延时的SSD需求,SSD迫切需要有更快、更有效的协议和接口。

在这样的背景下,NVMe诞生了。09年下半年,在领先的大哥Intel的领导下,美光、戴尔、三星、Marvell等巨头共同开发了一份专为SSD服务的NVMe协议,目的是使SSD不再使用老的SATA和AHCI。在工业存储方面方面,崛起了Agrade睿达等一批优秀的品牌。

NVMe是什么?NVMe是Non-Volatile Memory Express,是一种可在PCle接口上运行的非易失性存储标准。在NVMe设计之初,PCIESSD的低延迟和并行性得到了充分利用,以及当代处理器、平台和应用的并行性。与目前的AHCI标准相比,NVMe能带来多方面的性能提高。NVMe是为SSD而生的,但并不局限于以闪存为媒介的SSD,也可以应用于高性能、低延迟的3DXPoint等新媒体。

三星XS1715是第一款支持NVMe标准的产品,于2013年7月发布。随后推出了企业级NVMe标准SSD。2015发布Intel750,标志着NVMe标准产品进入市场。

当今市场上NVMeSSD产品很多,无论是企业级的还是消费型的,如果说前些年的NVMeSSD还是阳春白雪,如今NVMeSSD已经慢慢地进人了。值得注意的是,NVMe在移动设备上同样拥有一席之地。从iPhone6s开始,苹果的存储设备运行在NVMe协议标准之上。将来的手机存储方向,应该不是UFS,不是eMMC,而是NVMe,等等看。

那NVMe到底有什么好的呢?它与AHCI相比有什么优点?相对于NVMe和AHCI,其优点主要表现在:

1.低时延(Low Latency)

造成硬盘存储时延的三大因素:存储介质本身、控制器以及软件接口标准。

存储介质层面,闪存(Flash)比传统机械硬盘速度快太多了。控制器方面,从SATASSD发展成PCIeSSD,原生PCIe主控与CPU直接相连,而不像传统方式,要通过南桥控制器中转再连接CPU,因此基于PCle的SSD时延更低。软件接口方面,NVMe缩短了CPU到SSD的指令路径,比如NVMe减少了对寄存器的访问次数;使用了MSI-X中断管理;并行&多线程优化--NVMe减少了各个CPU核之间的锁同步操作等。

2.高性能(High Performance & IOPS)

理论上,IOPS=队列深度/IO延迟,故IOPS的性能与队列深度有较大的关系(IOPS并不与队列深度成正比,因为实际应用中,随着队列深度的增加,IO延迟也会提高)。市面上性能不错的SATA接口SSD,在队列深度上都可以达到32,然而这也是AHCI所能做到的极限。但目前高端的企业级PCleSSD,其队列深度可能要达到128,甚至是256才能够发挥出最高的IOPS性能。而在NVMe标准下,最大的队列深度可达64K。此外NVMe的队列数量也从AHCI的1,提高到了64K。

PCle接口本身在性能上碾压SATA,再加上NVMe具有比AHCI更深、更宽的命今队列,NVMeSSD在性能上秒杀SATASSD是水到渠成的事情。

3.低功耗(Low Power Consumption)

NVMe加人了自动功耗状态切换和动态能耗管理功能。

[转帖]AHCI到NVMe,SSD的关键科技革命的更多相关文章

  1. [转帖]深度: NVMe SSD存储性能有哪些影响因素?

    深度: NVMe SSD存储性能有哪些影响因素? http://www.itpub.net/2019/07/17/2434/ 之前有一个误解 不明白NVME 到底如何在队列深度大的情况下来提高性能, ...

  2. USB3.0及NVME SSD安装WIN7X64

    USB3.0及NVME SSD安装WIN7X64https://tieba.baidu.com/p/4822034273?pn=1所有的人都是菜鸟过来的,不过有些人懂得自己动手找到答案:有些人则是懒得 ...

  3. AHCI vs NVMe

    http://www.hkepc.com/13139 儘管現時有不少高階 SSD 產品改用 PCIe 接口,以突破 SATA 接口的頻寬瓶頸,但控制器設計與 SATA  接口 SSD 一樣,採用老舊的 ...

  4. WinPE无法识别NVMe SSD硬盘,如何重装系统

    (源自网络出处不详) 抽风,diy一台新机器,下载的win10系统安装时出现如题所示的问题,开始以为是主板的问题设置u盘启动也不行,后来在某个群里有人说是系统版本问题,无奈重新做了启动优盘(用的17年 ...

  5. NVME SSD vs SATA SSD(转)

    NVMe是个啥?未来SSD主流标准早知 关注固态硬盘的朋友应该对于这个词汇并不陌生,特别是今年NVMe也频繁出现在各大媒体文章中,随着高端SSD市场逐渐从SATA专项PCI-E时,以前的AHCI标准已 ...

  6. (转)科普:SATA、PCIe、AHCI、NVMe

    原文链接:https://forum.51nb.com/thread-1670848-1-1.html IT 界总喜欢发明新名词.而且同一个东西,可能有几个不同的名字.同一个名字,又可能指不同的东西. ...

  7. SATA、PCIe、AHCI、NVMe

    IT 界总喜欢发明新名词.而且同一个东西,可能有几个不同的名字.同一个名字,又可能指不同的东西. 从物理接口角度来说,我们常见的有IDE(淘汰),SATA,PCIe,M.2(固态硬盘) M.2插槽是有 ...

  8. 存储系统设计——NVMe SSD性能影响因素一探究竟

    目录1 存储介质的变革 2 NVME SSD成为主流 2.1 NAND FLASH介质发展 2.2 软件层面看SSD——多队列技术 2.3 深入理解SSD硬件 3 影响NVME SSD的性能因素 3. ...

  9. NVMe SSD是什么?

    https://blog.51cto.com/alanwu/1766945 一直对闪存存储关注的朋友对NVMe SSD一定非常熟悉,NVMe SSD是现如今性能最好的存储盘.这种高性能盘在互联网领域已 ...

  10. vSphere 6.5支持512e,NVMe SSD呢?

    原创 2017-01-12 朱朋博 金笑雨 企事录 2016年底,VMware终于宣布,从vSphere 6.5开始支持512e扇区格式了. 这当然是好事.不过,不黑不舒服斯基说:原来以前的版本连51 ...

随机推荐

  1. 实时媒体AI,打破内容创作天花板,加速视频创新

    摘要:互联网视频经过几代发展,用户体验快速升级,对创新玩法.互动性要求越来越高.那如何解决这些问题? 媒体AI,是行业共识.华为云提供云原生实时媒体AI能力,联合伙伴打造AI算法开放生态市场,加速视频 ...

  2. 云小课 | 华为云KYON之VPC终端节点

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:在华为云KYON( ...

  3. Go语言逆向技术:常量字符串

    摘要:Go语言源代码编译成二进制文件后,源代码中的字符串存放在哪里?是如何组织的? 本文分享自华为云社区<go语言逆向技术之---常量字符串解密>,作者:安全技术猿. Go语言源代码编译成 ...

  4. ElasticSearch 实现分词全文检索 - 经纬度定位商家距离查询

    目录 ElasticSearch 实现分词全文检索 - 概述 ElasticSearch 实现分词全文检索 - ES.Kibana.IK安装 ElasticSearch 实现分词全文检索 - Rest ...

  5. Cypress系列(1)-Window下安装Cypress并打开

    Cypress系列(1)-Window下安装Cypress并打开 系统要求 Cypress是一个被安装在你电脑上的桌面应用,你的操作系统需要满足如下条件才能正常安装 Mac OS 10.9+(仅提供6 ...

  6. Python 异步编程之yield关键字

    背景介绍 在前面的篇章中介绍了同步和异步在IO上的对比,从本篇开始探究python中异步的实现方法和原理. python协程的发展流程: python2.5 为生成器引用.send()..throw( ...

  7. 【Redis】面试题 GEO地理位置信息

    目录 面试 1 http协议详情,http协议版本,http一些请求头 2 GET请求和POST请求的区别 3 如何实现服务器给客户端发送消息,websocket是什么? 4 悲观锁和乐观锁,如何实现 ...

  8. three.js 火焰效果

    代码是网上找的代码,通过调参.修改.封装实现的. 代码: /** * 火焰 */ import * as THREE from '../build/three.module.js'; let MyFi ...

  9. StringBuilder 线程不安全,到底哪里不安全?

    StringBuilder 线程不安全,到底哪里不安全? 在Java中,字符串拼接是一个非常常见的操作,而对于频繁变动的字符串内容,使用StringBuilder是一个性能优化的选择.但是,Strin ...

  10. Flume原理及使用案例

    本文为转载篇!原文: https://www.cnblogs.com/zhangyinhua/p/7803486.html https://www.cnblogs.com/ciade/p/549521 ...