NGFF

**M.2** 是電腦內部擴充卡及相關連接器的外觀尺寸與針腳的電氣介面規範。採用了全新的物理布局和連接器，以取代 PCI Express (PCIE) 及 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 具有靈活的物理規範，允許更多種類的模組寬度與長度，並與更進階的介面相配，使 M.2 比 mSATA 更適合日常應用，尤其是用於超極致筆電或平板電腦等裝置的固態硬碟。

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 毫米。市售 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 標準也包括永久焊接單面模組的選項。

## 參見

* 電腦裝置頻寬列表
* 固態硬碟
* 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
* LSI SandForce SF3700 Flash Controllers （頁面存檔備份，存於網際網路檔案館） on YouTube, November 18, 2013
* Interface card mount – US patent 20130294023, November 7, 2013, assigned to Raphael Gay