协议
先来定义:
AHCI:是一种通讯协议;
NVME:是一种通讯协议;
SATA:是一种接口标准,协议层使用AHCI进行通讯,数据通过SATA总线传输;
PCIE:是一种接口标准,协议上使用NVME进行通讯,数据通过PCIE主线传输;
USB:是一种接口标准,协议上使用USB自己的通讯协议进行通讯 (具体是啥没有查),数据通过USB总线传输;
NGFF:全称Next Generation Form Factor,是一种计算机内部扩展卡及相关连接器规范。目的是取代mini PCI-E和mSATA,主要为固态硬盘等准备。现在的名字叫M.2,没错,NGFF就是M.2。总结下,NGFF是一个接口,新的名字叫M.2
M.2:即NGFF,M.2是一种接口标准,协议上支持AHCI和NVME;数据可以通过SATA总线(使用AHCI协议)、PCIE总线(使用NVME协议)、USB总线传输;接口上按缺失位可分为key M和key B(就是某一个引脚缺失而已),俩接口样子不一样,规定使用的通讯协议也不同(这点可以去搜索下);
另外,偷个图:
硬件
我们平时看到的M.2模块大多是M.2 2242或M.2 2280规格,除此之外M.2还提供了多种标准规格。一个基本的原则是小体积可以安装到大体积插槽内,M.2 2242就比M.2 2280更灵活。
并不是所有的M.2接口都是给固态硬盘使用的,比如下图中的M.2 E Key插槽就是留给无线网卡专用。仔细观察你会发现E Key的缺口位置和普通固态硬盘上的B Key有所不同,M.2插槽就是通过缺口的位置来表达自己能够支持的M.2设备类型。
常见的M.2固态硬盘分为一个缺口(M Key)和两个缺口(B Key)两种类型。下图中从上到下分别是东芝饥饿鲨RD400 NVMe固态硬盘、东芝Q200 240G M.2固态硬盘和东芝RC100 NVMe固态硬盘,分别对应PCIE NVMe、SATA AHCI、PCIE NVMe接口。也就是说,两个缺口的M.2固态硬盘既有可能是NVMe协议,也有可能为SATA协议,而只有一个缺口(M Key)的通常只有NVMe协议一种可能。
与固态硬盘相对应的是,M.2插槽上的卡口位置也有一些不同。下图比较了Socket 2和Socket 3两种最常见M.2插槽。Socket 2插槽支持PCIe x2或SATA通道,而Socket 3插槽则支持PCIe x4或SATA通道。
现在结论就比较明朗了,由于插槽卡口的限制,两个缺口(B+M Key)的固态硬盘可以安装到Socket 2或Socket 3两种形式的M.2插槽中,而一个缺口(M Key)的固态硬盘只能安装到Socket 3插槽。
两个缺口的固态硬盘只能支持PCIe x2通道,在持续读写带宽上会有所限制,但决定日常使用性能的4K随机读写效能却不受影响。
总结来说,从极致性能出发,一个缺口(M Key)的M.2 NVMe固态硬盘最强(不是100%一定,具体还要看主控规格);从兼容性出发,两个缺口的M.2 SATA固态硬盘更好(如Q200 M.2版);要兼顾性能和兼容性,两个缺口的M.2 NVMe固态硬盘(如RC100)比较理想。
参考: