M.2

**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操作。

## 特性

总线分拆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模組規格及插槽防呆位置(或稱防呆鍵位)

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。





举例来说，有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尺寸即专为此设计。

## 参见
* 電腦裝置頻寬列表
* 固态硬盘
* U.2

## 参考资料

## 外部链接

* 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
* <span class="plainlinks">LSI SandForce SF3700 Flash Controllers</span>  on YouTube, November 18, 2013
* [//www.google.com/patents/US20130294023 Interface card mount] &#x2013;&#x20; US patent 20130294023, November 7, 2013, assigned to Raphael Gay