前情
存储的概念
尺寸外形:设备的形状和大小。
- 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是运行在某种接口上的通信协议,用于规范计算机与存储设备的数据传输!
Non-Volatile Memory Express (NVMe)-非易失性内存主机控制器接口规范
作用:提升硬盘读写带宽
- 存储设备的接口规范
为什么NVMe快?
由于SSD本身的物理特性,其数据的访问已经非常快了,性能的瓶颈就是出在计算机与设备连接的接口和协议上面。我们举一个简单的例子。比如我们有一个仓库会不断的生产出产品来,我们可以机械手将产品从仓库拿到其它地方(如图5所示)。对于SATA的SSD,类似于一个单臂的机器人,仓库生产的很快,但机器人每次只能拿一个,搬移的速度就比较慢。
对于NVMe的SSD,相当于机器人有数百只手
NVMe协议原理:本质上建立了多个计算机与存储设备的通路(队列)
SATA只有一个队列,而NVMe协议最多有64K个队列,每个CPU可以有一个队列,提高了并发程度。