m.2 nvme接口定义(m.2接口sata和nvme区别)
近日在京东上看到一些令人啼笑皆非的固态硬盘商品介绍,既是对知识的不尊重,也是对诚信宣传的负面典型。
混乱的接口与协议
对于接口和协议,相对准确的描述是:接口(Interface)是组件之间的交互界面(既可以是硬件也可以指软件的交互)。组件可以独立运作,并遵照协议(Protocol)与其他组件进行通信。协议可以控制接口连接、通信和数据传输的约定或标准。
譬如网卡是网络接口(硬件),可以遵照TCP/IP(协议)进行通信,局域网内也可以使用IPX/SPX协议进行通信。M.2作为一种接口,可以使用SATA通道或PCIe通道来连接固态硬盘。其上可以遵循AHCI或NVMe协议。
但是,NVMe规范文件中也有这样的描述:NVM Express (NVMe) is an interface that allows host software to communicate with a non-volatile memory subsystem. NVMe是一个允许主机软件和非易失性存储子系统通信的接口。也就是说,NVMe标准化组织将NVMe定义为一种"接口"。
源头上出现的混淆延续到终端产品的表述上就变得五花八门了。英特尔、金士顿、希捷等将PCIe和NVMe放在一起统称为接口;浦科特将PCIe写作传输通道,NVMe则是传输接口标准;闪迪则把NVMe写作一种协议。
在这样的混乱环境下我们无法判定谁对谁错。但有一些基本的认识是可以肯定的:PCIe提供了传输通道和接口,它的规格决定了传输带宽(顺序读写速度);NVMe实现了低延迟。下图中的表述就是明显存在错误的:
一秒区分NVMe与SATA?翻车也只需一秒
透过M.2接口,既可以将固态硬盘连接到SATA控制器,也可以连接到PCIe总线(硬盘自带控制器)。前者就是大家常说的M.2 SATA固态硬盘,后者则主要是当前正在快速普及的NVMe固态硬盘。
M.2接口定义有多种"缺口"(Key键位)来区分不同类型的设备,早在数年前。出现在M.2固态硬盘上的键位主要有B Key和M Key。
对于M.2固态硬盘而言,只具备一个缺口(B Key)时可以使用PCIe x4通道(理论最高带宽4GB/s),基本上都属于NVMe固态硬盘。同时具备两个缺口(B+M Key)时可以使用PCIe x2通道(理论最高带宽2GB/s),或者也可以使用SATA通道(理论最高带宽600MB/s),并不是如某厂商宣传的那样"M.2固态硬盘只要有两个缺口就肯定是SATA固态硬盘"。
同时具备B+M Key,使用PCIe x2通道的NVMe固态硬盘虽然相对较少,但随手就能举出若干例子:、、。京东本有审核,却让这种明显的错误出现,值得深思。
此外,在使用SM2263XT主控(无缓存设计)的某商品介绍中,赫然出现了"大缓存设计"的描述:不知是无心之失还是有意误导。
下图是SATA Express接口连接不同类型固态硬盘的原理图,其中的SATA Express可以简单替换成M.2来看。比较令人遗憾的是,单从M.2接口的外观是很难判断它究竟能支持何种类型的固态硬盘的,最终的判断依然要靠"插上试试看"。