M.2

<image>

<image>

M.2是电子计算机内部扩展卡及相关电子连接器的外观尺寸与针脚的接口规范。其采用了全新的物理布局，以取代PCI Express及mSATA接口标准。M.2具有灵活的物理规范，允许更多种类的模块宽度与长度，并与更高级的接口相配，使M.2比mSATA更适合日常应用，尤其是用于超级本或平板电脑等设备的固态硬盘。

M.2是由 PCI-SIG 和 SATA-IO 标准组织所开发，PCI-SIG M.2 和 SATA Rev. 3.2 规格中皆有其定义。原本称为 NGFF (Next Generation Form Factor)，随后于 2013 年正式重新命名为 M.2。许多人仍称 M.2 为 NGFF。

最早商业化应用是由Intel 所主推的一种全新界面规范，用以取代 mSATA，并首先导入到笔电平台，目的同样是为了推动小型化系统的发展，不过 Intel 在制订M.2界面的规范时，并未限制其所使用的讯号协定，仅定义了尺寸规格与工作电压等项目，也因此M.2得以相容于多种界面讯号控制器，包括 SATA、PCIe、USB、音讯等等，对于厂商在设计产品时，可提供更高的自由度。小型的 M.2 外观尺寸适用于许多扩充卡类型，例如 Wi-Fi、蓝牙、卫星导航、近距离无线通讯 (NFC)、数位无线电、无线千兆联盟 (WiGig)、无线广域网络 (WWAN) 和固态硬盘 (SSD)。

M.2连接器可使用PCI Express 3.0（最多4个通道）、SATA 3.0或USB 3.0计算机总线。理论上M.2界面最多可提供PCI Express x4的带宽。M.2连接器有几种不同的插槽形式，代表着M.2主机和模块不同的目的和功能，避免用户将M.2模块插入到功能不兼容的主机连接器中。

M.2可使用AHCI逻辑设备接口以支持传统的SATA总线，也可使用NVMe作为PCI Express总线的逻辑设备接口。使用AHCI支持SATA能确保软件层面对传统SATA设备的向下兼容性，而采用NVM Express的设计则能充分利用PCI Express存储设备的高性能，同时执行大量I/O操作。

## 特性

<image>

总线分拆M.2连接器为PCI Express 3.0、Serial ATA (SATA) 3.0或USB 3.0（对USB 2.0向下兼容）。也因如此，M.2模块可以集结多种功能，包括Wi-Fi、蓝牙、卫星导航、近场通信（NFC）、数字广播、无线千兆联盟（WiGig）、无线广域网（WWAN）和固态硬盘（SSD）。2013年8月SATA 3.2的版本规范中，正式将M.2设为新的存储设备格式，并对其硬件格式作出定义。

M.2规范提供最多四个PCI Express通道和一个逻辑性SATA 3.0 端口(Port)（6 Gbit/s），且全部都是通过同一个连接器分拆而成。被分拆的PCI Express通道对主机与存储设备提供一个纯PCI Express连接，且没有额外的总线抽象层。在2013年10月的PCI-SIG推出的M.2规范1.0版本中，则提供了详细的M.2规范。

有三种逻辑设备接口和M.2存储设备接口命令集的选项可用，这可根据M.2存储设备的类型和操作系统的支持性选用：

传统SATA：用于SATA SSD，以及通过M.2连接器分拆出的AHCI驱动程序和旧式SATA 3.0 端口(6 Gbit/s)。

使用AHCI的PCI Express：用于PCI Express SSD和通过AHCI驱动程序和PCI Express通道提供的接口，使用AHCI访问PCI Express SSD，利用广泛的SATA支持在操作系统层面以提供非最佳性能的向下兼容。开发AHCI的时候, 系统的主机总线适配器 (HBA)的用途是将CPU/内存子系统通过一个相比慢得多的基于旋转磁介质的存储子系统相连，正因如此，AHCI在用于SSD设备时有一些固有的低效能问题，因为其行为更类似DRAM而非旋转磁介质。

使用NVMe的PCI Express：用于PCI Express SSD和通过NVMe驱动程序和PCI Express通道提供的接口，作为一个高性能并可扩展的主机连接器接口设计，尤其是专门为PCI Express SSD的接口而优化。NVMe已全新设计，为PCI Express SSD提供低延迟和并行性，助益现代CPU、平台和应用程序的并行性。在高层次水平，NVMe相比AHCI的主要优势是NVMe能充分、并行地利用主机的硬件和软件，它的设计优势包括更少的数据传输层级，更大的命令队列，以及更有效的中断处理。

资料传输方式：

M.2 SATA：硬盘→内存→CPU→内存→硬盘

M.2 NVMe：硬盘→CPU→硬盘

由于M.2 NVMe固态硬盘的资料传输是走PCI-e通道，通过总线与CPU直连，省去内存调用硬盘的步骤，因而能够达到最大的传送速率和资料量。

## M.2模组规格及插槽防呆位置(或称防呆键位)

<image>

M.2模块是被安装到主机电路板提供匹配的连接器，并且使用一个安装螺钉固定模块到指定位置。组件可能被安装在M.2模块的任意侧面，实际的模块类型限定了可以安装的组件最大厚度；允许的组件最大厚度是每侧1.5毫米。有多种用于单侧或双侧的M.2模块主机端连接器，根据M.2扩展卡和主机PCB的情况提供不同的空间量。主机上的电路板通常被设计为能接受多种长度的M.2模块，这也意味着接受较长M.2模块的插座通常也能接受较短的同类模块，只需要为较短的模块提供不同位置的安装螺钉。

M.2模块的外形是长方形，在短边一侧有一个连接器（台湾俗称“金手指”，有最多67针的75个点位，0.5毫米间距，各针分布在PCB的两短边），并在另一侧短边的中心有一个半圆形安装固定孔。连接器上的各引脚额定最多50V和0.5A，而连接器本身要求耐受最低60次拔插。M.2标准允许模块宽度为12、16、22和30毫米，长度16、26、30、38、42、60、80和110毫米。仅存在以下长宽组合受到允许：1216、1620、1630、2024、2226、2228、2230、2242、2260、2280、2828、3026、3030、3042、22110。市售M.2 扩充卡主要是22毫米宽度，长度有30、42、60、80和110毫米等规格。对于固态硬盘适用的 M.2 模组，最常见的尺寸为 22mm (宽) x30mm (长)、22mm x 42mm、22mm x 60mm、22mm x 80mm 和 22mm x 110mm。这些扩充卡将会依据上述的尺寸来称呼：前两位数代表宽度 (都是 22mm)，而剩余的位数则是代表长度，从 30mm 起到 110mm 长。因此，M.2 固态硬盘被区分为 2230、2242、2260、2280 和 22110。

M.2标准的设计目的是为了修订和完善mSATA标准，较小的印刷电路板（PCB）可能是其主要诱因之一。随着mSATA带来PCI Express Mini Card的外形和连接器优势，M.2的设计旨在最大化利用PCB空间并最小化模块空间。作为其设计结果，M.2标准允许更长的模块和双面组件群，M.2 SSD设备可以提供更大的存储容量，与mSATA设备占用同样空间，但提供双倍的存储容量。

M.2模块的PCB板提供最多75个点位的连接器；取决于模块类型，部分针位被去除以存在一个或多个防呆键位。主机上的M.2连接器（插槽）可能填充一个或多个匹配的接口，这取决于主机可接受的模块类型；截至2014年4月，主机侧的连接器可以只填充一个防呆键位（无论B key或 M Key）。此外，用于SATA或双通道PCI Express (PCIe ×2)的M.2插槽被称为"socket 2 configuration"或者"socket 2"，用于四通道PCI Express (PCIe ×4)的插槽被称为"socket 3 configuration"或"socket 3"。

插槽形式及其变化:

考量到 PCIe/SATA/USB 等不同界面之装置皆可以转设计为 M.2 之型式，因此 M.2 其并非专属于 SSD 之格式规范，各自之脚位讯号与电气特性皆存在着极大差异。M.2/NGFF 为此定义了多组的插槽防呆位置（或称防呆键位，目前存在于实体产品之型式计有 A/B/E/M key），来避免不同硬件界面装置因针位脚座尺寸相近，而产生混插或误插之情事，最后导致不正常运作或损坏之困扰。整体而言，不同的金手指防呆位置，可让消费者于安装使用 M.2 装置时，可获得最低程度之依循法则。以实例来说，我们因为防呆键位的限制，而无法将 M.2 Wi-Fi 网卡硬塞到 M.2 SSD 的插槽之中。

Socket 1主要针对无线网卡，对应的防呆键位为A Key。M.2 SSD 主要适用于 Socket 2、Socket 3这两种插槽，Socket 2插槽可以支援走 SATA 及 PCIe x2通道的M.2 SSD，所对应的键位为 B Key，而 Socket 3插槽则支援走 PCIe x4通道的M.2 SSD，对应的键位为 M Key，两种插槽因为防呆缺口的位置不一样，所以无法混用，不过市面上有些 M.2 SSD 产品为了能同时兼容于两种插槽，便把金手指的部分设计成 B+M Key 的形式，但是能够插得进去，不代表就能够正常使用，因为某些主板上的M.2插槽仅能支援 PCIe 通道，如果你插入 SATA 的M.2 SSD，那么就会无法侦测到，除非厂商在设计时，就已经加入 SATA 及 PCIe 的控制器，使它能够兼容于两者，这部分各家不一，只能从主板规格表上自行查询。另外，如果是走 SATA 通道的M.2 SSD，那么一样会受到6Gb/s 带宽的限制，在传输效能上等同于2.5吋的 SATA SSD。

Key编号｜防呆键位针数｜提供接口

A｜8 - 15｜2×PCIe×1、USB 2.0、I2C和DP×4

B｜12 - 19｜PCIe×2、SATA、USB 2.0、USB 3.0、音频、UIM、 HSIC、HSIC、I2C和SMBus

C｜16 - 23｜保留供未来使用

D｜20 - 27

E｜24 - 31｜2×PCIe×1、USB 2.0、I²C、SDIO、UART和PCM

F｜28 - 35｜未来存储器接口（FMI）

G｜39 - 46｜保留供自定义使用（在M.2规范中未使用）

H｜43 - 50｜保留供未来使用

J｜47 - 54

K｜51 - 58

L｜55 - 62

M｜59 - 66｜PCIe×4、SATA和SMBus

类型编号｜正面｜背面

S1｜1.20 mm｜不适用

S2｜1.35 mm｜不适用

S3｜1.50 mm｜不适用

D1｜1.20 mm｜1.35 mm

D2｜1.35 mm｜1.35 mm

D3｜1.50 mm｜1.35 mm

D4｜1.50 mm｜0.70 mm

D5｜1.50 mm｜1.50 mm

<image>

举例来说，有B Key 和M Key 型两个防呆键位的M.2模块，使用最多两个PCI Express通道并提供广泛的兼容性，而只有一个防呆键位的M型M.2使用最多四个PCI Express通道；以上两例也可能提供SATA存储设备。类似的防呆键位适用于提供USB 3.0连通性的M.2模块。

各种类型的M.2设备使用“WWLL-HH-K-K”或“WWLL-HH-K”命名表示方案，其中“WW”（width，宽度）和“LL”（length，长度）分别表示以毫米为单位的模块宽度和长度。“HH”部分是一个编码形式，表示模块是单侧或者双侧，以及已安装组件的最大厚度，可能的值已列在右上表中。模块防呆键位指定在“K-K”部分，使用左上表中的key ID表示；它也可能指定为仅“K”，如果该模块只有一个缺口。

除了插入式模块，M.2标准也包括永久焊接单面模块的选项。1216、2226、3026、2024、2228、2828尺寸即专为此设计。

## 外部链接

- Serial ATA International Organization (SATA-IO)
- Peripheral Component Interconnect Special Interest Group (PCI-SIG)
- Understanding M.2, the interface that will speed up your next SSD , Ars Technica, February 9, 2015, by Andrew Cunningham
- Samsung XP941 M.2 PCIe SSD Review (512 GB) , September 22, 2013, by Les Tokar
- LFCS: Preparing Linux for nonvolatile memory devices , LWN.net, April 19, 2013, by Jonathan Corbet
- PCIe SSD 101: An Overview of Standards, Markets and Performance, SNIA, August 2013, archived from the original on February 2, 2014
- LSI SandForce SF3700 Flash Controllers on YouTube, November 18, 2013
- //www.google.com/patents/US20130294023 Interface card mount – US patent 20130294023, November 7, 2013, assigned to Raphael Gay