M.2

mSATAのSSD（左）とM.2のSSD（右）のサイズ比較
左から、Wifi(A/E-Key,1630)、SSD(B/M-Key,2242)、SSD(B/M-Key,2280)、SSD(M-Key,2280)の比較
M.2（エムドットツー）（旧称: Next Generation Form Factor、NGFF）は、コンピュータの内蔵拡張カードのフォームファクタと接続端子について定めた規格である。M.2はmSATAの後継として開発された。機能性に優れカードの幅や長さについてもより柔軟性を持つことから、SSDやそれを組み込むウルトラブックやタブレットコンピュータなどの小さいデバイスに適した規格とされる。
M.2は本質的にはSATA Expressの小型版といえる。M.2の提供するバスインターフェイスは論理的にはSATA Expressの上位互換である。M.2はSATA Expressの持つPCI ExpressとSATA 3.0との互換性に加えて、USB 3.0との内部互換性を備える。M.2端子には一つ以上の切り欠きがあり、組み合わせで機器のタイプを示す。

**機能**
M.2の拡張カードには、SSD、Wi-Fi、Bluetooth、GPS、NFC、デジタルラジオ、WiGig、WWANなど様々な機能を持たせることができる。バス方式はPCI Express、Serial ATA 3.0、USB 3.0（USB 2.0と下位互換）の三種類が提供される。SATA規格ではrevision 3.2で新たにM.2についてのハードウェアレイアウトを定めている。
M.2は4つのPCI Expressレーンと1つのSATA 3.0 6Gbpsポートを一つの端子内に備えており、PCI Express機器とSATAストレージ機器をM.2カードとして接続することができる。PCI Expressレーンはストレージ機器から見て通常のPCI Expressと全く同じに、追加の抽象化なく接続できる。2013年12月、PCI-SIGは、M.2規格 1.0でM.2について定めている。
M.2ストレージ機器はSATA Expressと同じく、論理的インターフェイスおよび命令セットについて以下の三種類のいずれかを使うことができる。
 レガシーSATA
 SATA接続のSSDなどに使われる。M.2端子のSATA 3.0 6Gbpsポートを使用し、AHCIで機器と通信する。
 PCI Express上のAHCI
 PCI Express接続のSSDなどに使われる。PCI Expressレーンを使用し、AHCIで機器と通信する。AHCIはCPUと外部機器の速度差が大きい頃ホストバスアダプタのために開発された規格であるため、非効率な部分がある。そのため最高速度ではないものの、普及しているSATA機器との後方互換性を確保できる。2018年現在ではNVM Expressへの移行が完了している。
 PCI Express上のNVM Express
 PCI Express接続のSSDなどに使われる。PCI Expressレーンを使用し、NVM Expressで機器と通信する。NVM Expressは低レイテンシと並列性を主眼に置いて新たに開発されたストレージインターフェイスで、近年のCPU、プラットフォーム、アプリケーションの並列性を活かすことができる。

**フォームファクタと端子**
M.2はmSATAの後継ではあるが、フォームファクタや端子の互換性を持たない。mSATAは拡張カードのフォームファクタと端子規格には既存のMini PCI Expressの物をそのまま採用したが、M.2はフットプリントを小さく、拡張カードのサイズを大きくできるよう新規に設計された。基板の両面に部品が張り出したような機器も可能になるため、単純に考えてM.2のSSDはmSATAのSSDに比べて容量を倍にすることができる。
M.2カードは直方体で、短辺に端子を持つ。0.5mmのピッチで75のポジションと最大67のピンを持ち、ピンは基板の両面にわたる。端子の逆側の辺の中央に半円形のネジ穴がある。端子の各ピンは最大50V、0.5A、端子自体は最大60回の抜き差しに耐えるものとされる。M.2機器の幅は12、16、22、30mmの4種、長さは16、26、30、38、42、60、80、110mmの8種類からなる。最初期に一般に流通したM.2機器のサイズは、幅22mm、長さは30、42、60、80、110mmというものだった。
M.2カードは端子によってホスト機器の回路に接続され、逆側のネジ1本で固定される。カード基板上の部品は両方の面に張り出してもよい。タイプによって最大の厚みは異なるが、最大で片面ごとに1.5mmである。空間を確保するため、ホスト側の端子は片面のカードと両面のカードで別のものが使われる。ホスト機器は通常複数の種類の長さのM.2カードをサポートするため、その場合基板上にはマウント用のネジ穴が複数用意されることになる。
BとMの切り欠きの例。両面にピンがあることが確認できる
M.2端子は75個のポジションを持つが、全てのピンを同時に使うことはなく、そのうちいくつかのピンを取り除くことで機器タイプを示す（ノッチ）。ホスト側は端子の形を調整することで、対応するM.2機器のタイプを示すことができる。現在ホスト側の端子の種類はA,B,E,Mの四種類が多く使用されている。例えば、端子のBとMの両方の位置に切り欠きを持つM.2カードは2つのPCIeレーンを使用でき、最大の互換性を持つ。逆にMの位置のみに切り欠きを持つM.2カードは、互換性を犠牲に4つのPCIeレーンを使うことができる。どちらの場合も、（ホスト側が対応していれば）SATAやUSB 3.0方式で接続することは可能である。実際の機器において、PCI Express 4レーンを使用するSSDではM、PCI Express 2レーンまたはSATA接続のSSDではBとMのKeyIDが割り当てられている。ただしホスト側が必ずしも全てのインターフェイスに対応しているわけではなく、MキーであってもPCIeのみでSATAは未対応、BキーであってもSATAのみでPCIeは未対応などの場合がある。
また、従来のMini PCI ExpressではPCIeレーンを1つしか利用できなかったが、M.2機器では最大4レーンまで使用することが可能になり、Wi-FiやWiGigを1枚に収めた拡張カードが登場するなど、デバイスの小型化に貢献している。例として、WWANモジュールではUSB接続のためBkeyが使用され、Wi-FiとBluetoothモジュールではAとEを、Wi-FiとBluetooth、WiGigのモジュールではAのKeyIDが使用されている。
M.2機器のタイプは Type WWLL-HH-K-K や Type WWLL-HH-K といった形式のコードで表される。ここで WW は機器の幅、LL は機器のmmでの長さを意味する。HH は機器が両面と片面のどちらであるかと、カードの厚みの情報を持つ（fig.2 参照）。K-K の部分は端子の切り欠きの種類をKey IDとして表す（fig.1 参照）。切り欠きがひとつだけの場合、表示は K 一つだけになる。
なお、NVMe SSD用には、Type 2280のものが多い。
M.2の規格では、端子を使わずに片面だけの機器を回路上にそのまま実装する形で接続することもできる。

**PCI Expressリビジョン**
以上のように、M.2フォームファクタではPCIeの有無および最大レーン数だけを規定しリビジョンは規定しない。一方、ホスト側および機器側のPCIe対応レーン数およびリビジョンをアピールするために、一部の製品メーカーで、PCI Express Gen3に対応するものにつき「Hyper M.2」あるいは「Ultra M.2」と言う独自の呼称が定められる場合がある。しかし、これらはM.2フォームファクタとは無関係である。

**脚注**

**関連項目**
 シリアルATA (SATA)- ソリッドステートドライブ (SSD)- NVM Express

**外部リンク**
  The Serial ATA International Organization (SATA-IO)-  PCIe SSD 101: An Overview of Standards, Markets and Performance, SNIA, August 2013, pp. 6–7-  Samsung XP941 M.2 PCIe SSD Review (512 GB), September 22, 2013-  LFCS: Preparing Linux for nonvolatile memory devices, LWN.net, April 19, 2013- Interface card mount US patent 20130294023, November 7, 2013- title=LSI SandForce SF3700 Flash Controllers, November 18, 2013