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。

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

舉例來說，有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