一、前言
1. 为什么要有M.2接口?
M.2接口,是Intel推出的一种替代MSATA新的接口规范,也就是我们以前经常提到的NGFF,即Next Generation Form Factor。对于桌面台式机用户来讲,SATA接口已经足以满足大部分用户的需求了,但考虑到超级本用户的存储需求,Intel才急切的推出了这种新的接口标准。
2. M.2接口有哪些优势?
与MSATA相比,M.2主要有两个方面的优势。
mSATA SSD(左)和M.2 2242 SSD(右)的大小比较
二、正文
1. 概念
M.2,以前称为下一代外形(NGFF),是内部安装的计算机扩展卡和相关连接器的规范。它取代了mSATA标准,该标准使用PCI Express迷你卡物理卡布局和连接器。M.2更灵活的物理规格允许不同的模块宽度和长度,并且与更先进的接口功能的可用性相结合,使得M.2比mSATA更适合于固态存储应用,特别适用于小型超极本或平板电脑等设备。
通过M.2连接器把计算机总线接口转换成PCI Express 3.0(最多四个通道),串行ATA 3.0和USB 3.0(后两者中的每一个的单个逻辑端口)。M.2主机或设备的制造商可以选择支持哪些接口,具体取决于所需的主机支持级别和设备类型。M.2连接器具有不同的键槽,表示M.2主机和模块的各种用途和功能,防止将M.2模块插入功能不兼容的主机连接器。
M.2除了在逻辑接口级别支持传统高级主机控制器接口(AHCI)之外,M.2规范还支持NVM Express(NVMe)作为M.2 PCI Express SSD的逻辑设备接口。
M.2规范提供最多四个PCI Express通道和一个逻辑性SATA 3.0(6 Gbit/s)端口,且全部都是通过同一个连接器分拆而成,因此一个M.2模块可能同时存在PCI Express和SATA存储设备。被分拆的PCI Express通道对主机与存储设备提供一个纯PCI Express连接,且没有额外的总线抽象层。[8]在2013年10月的PCI-SIG推出的M.2规范1.0版本中,则提供了详细的M.2规范。
M.2 SSD之间也有不同的规格,主要由2242、2260、2280三种规格,其实三种规格对应的是三种不同长度的产品,方便厂家扩充存储容量。以M.2 2242为例,22是宽度22mm,42是长度42mm;2260、2280以此类推,前边是宽度、后边是长度。
2. 三种接口类型:
有三个选项可用于与M.2存储设备连接的逻辑设备接口和命令集,根据M.2存储设备的类型和可用的操作系统支持,可以使用这些选项:
传统SATA
用于SATA SSD,通过AHCI驱动程序和通过M.2连接器公开的传统SATA 3.0(6 Gbit / s)端口连接。
使用AHCI的PCI Express
用于PCI Express SSD并通过AHCI驱动程序连接并提供PCI Express通道,向后兼容操作系统中广泛的SATA支持,但代价是无法通过使用AHCI访问PCI Express SSD来提供最佳性能。AHCI是在系统中主机总线适配器(HBA)的目的是将CPU /内存子系统与基于旋转磁介质的速度慢得多的存储子系统连接时开发的。因此,当应用于SSD设备时,AHCI具有一些固有的低效率,这些设备的行为更像DRAM,而不像旋转介质。
使用NVMe的PCI Express
用于PCI Express SSD并通过NVMe驱动程序连接并提供PCI Express通道,作为高性能和可扩展的主机控制器接口,专为与PCI Express SSD接口而设计和优化。NVMe从头开始设计,充分利用PCI Express SSD的低延迟和并行性,并补充了当代CPU,平台和应用程序的并行性。在较高层次上,NVMe优于AHCI的主要优势与NVMe在主机硬件和软件中利用并行性的能力有关,基于其设计优势,包括具有更少级别的数据传输,更大的命令队列深度以及更有效的中断处理。
M.2支持传统SATA和PCI Express存储设备,AHCI和NVMe作为逻辑设备接口,如下:
3. NVMe标准
NVMe的优势:
1)CPU并行瓶颈
2)内核IO栈简化
为什么NVMe越来越流行:
NVMe标准在2012年升级到NVMe 1.1,而NVMe 1.2标准是在2014所推出的。直到2017年5月,NVMe升级到1.3版本.
最新的NVMe 1.3版标准究竟有了什么样的升级和改进呢?
总的来说NVMe 1.3升级了8个全新功能他们分别为Device Self Tests设备自检、Boot Partitions引导分区、Sanitize清理、Virtualization虚拟化、Namespace Optimal IO Boundary命名空间最优IO分界、Directives and Streams指令与流、Non-Operational Power State Permissive Mode非操作电源状态允许模式以及Host Controlled Thermal Management主机控制热管理。
三、总结
M.2更多的指的是主板上的硬件接口,而SATA/PCI-E则更多的指的是一种数据传输通道,而AHCI和NVMe为其对应的数据传输协议规范。
四、参考
M.2 的 wikipedia: https://en.wikipedia.org/wiki/M.2
谈M.2接口固态硬盘发展与普及: http://storage.yesky.com/88/37279088.shtml
M.2两种版本全对比:http://ssd.zol.com.cn/579/5798409_all.html#p5798800
NVMe SSD是个啥? http://www.cfan.com.cn/2016/0929/127391.shtml
NVMe Managerment Interface 介绍 http://www.snia.org/sites/default/files/SDCIndia/2016/Presentations/NVMe-MI%20SDC%20India.pdf