SSD还是那个SSD,但协议总是在悄然更新,性能也一代代上涨。主流支持的当然还是NVMe1.3,但其实已经有不少1.4的盘涌现了。相较于前代有什么进步呢?我们今天就来聊一聊。
传统机械硬盘则使用intel 制定的AHCI标准(最高Q32T1 ),走SATA 通道。但时代变了,玩家觉得游戏读盘慢,服务器运营商觉得效率低,随着各行的需求提升,新的标准后来也就出现了。
为了 提高带宽、传输效率,选择走 PCIe通道(因此固态盘都可以通过PCIe 拓展卡,解决接口不够的问题),对应的协议就是NVMe(NVMExpress )。
M.2 盘默认都支持。全称“ 非易失性内存主机控制器接口规范” (non-volatilememory express ),是专门给为NAND SSD 固态盘设计的。
SSD 跟CPU 开了个直通车,还把指令数量精简为以前(SCSI 、ATA )的一半,把I/O 命令和响应映射到主机的共享内存,可以多核并行。最多65535个IO队列、64000队列深度,车变多了、路变宽了、还多了数不清的车道,比AHCI 不知道多到哪里去了。
咱们都知道,哪怕顺序读写和HDD 机械盘一样,但SSD 就是快,因为4K 随机读写速度快了不知道多少倍。衡量随机读写性能的单位,一般不用速度(MB/s ),而是IOPS,它表示 每秒进行读写的次数(Input/OutputOperations Per Second )。
这也有NVMe 的功劳,通过Doorbell机制,它降低了I/O 操作等待时间;提升同一时间内的操作数,也就是 线程T,更大容量的操作队列,也就是 队列深度Q,
这些单位我们用DiskMark 之类的跑分软件时,从左侧项目栏也能看到,能反映在不同读写任务的组合下,硬盘的性能表现如何。
HDD 就像是单核的(磁头结构),而SSD 如同多核。结构不同,读写逻辑上和机械盘自然是不同的,算是先天优势。
NVMe 在2009年立项,牵头的都是美光、三星、Marvell 、DELL 、NetAPP 、EMC 、IDT 等著名大公司了。最早1.0 版本于2011年登场,奠定一些基础规范,带宽到了11.6Gbps (约1200MB/s )。
1.2 到1.3 的整体性能上限翻了倍,支持到了PCIe 3.0 x4通道。主流的还是第四版修订的1.3C ,最新的1.4 版本在2019 年6 月面世,在支持PCIe 4.0 x4之后,顺序读写速度从3500MB/s 左右,翻倍到约7000MB/s 。
NVMe 1.4 更新的三大主要特性如下:
①IO Determinism翻译过来是“IO 决定”,可以把整块SSD 的物理空间划分成多个NVM Set ,其中可以包含多个通道(Channel )和晶粒(Die )。每个Set 区互相独立,划分给不同App 使用,
等于是“大硬盘分成多个小硬盘”,划清界限了,你用你的,我用我的,防止IO 延迟产生性能波动。分明白了就不会互相打架、效率自然就上去了。
②Persistent Memory Region(PMR )即“持久性内存区域”,提供了内存级别的速度和低延迟,哪怕电源断电,存在它身上的数据也能保留。但因此比较吃性能,可以通过弹性缓冲区解决。
③Multipathing指“多路径访问共享命名空间”功能,它可以用不同其他主机的NVMe 控制器访问同一块NameSpace (命名空间- 逻辑空间),
不过这么多功能,主要是为了优化latency(延迟)、提供更好的QoS(服务质量,SSD 性能的一致性),针对商用、服务器、数据中心等专业需求,家用暂时可能用不上这么多特性,毕竟多出来的硬件要求,价格也抬会上去。
当然,规范只是规范,他提供了最大的水桶,但硬盘能装多少水,每家都不一样,我们在选择硬盘的时候,最终还是看哪家用料强、哪家售后强。
参考&引用:
sohu.com/a/251757439_505795
.comzhihuzhuanlan./p/363589126
zh.wikipedia.org/wiki/NVM_Express
www.iczhiku.com/hotspotDetail/lTUGn7nJKuhCCXVMQnGaVQ