Clarification regarding SATA vs NVMe on M.2 SSD drives

m.2nvmesatassd

I have a question regarding SATA and NVMe SSD drives, on M.2 interface.

Giving that they have the same hardware connector (that is, M.2), are they compatible from functional point if view?

I mean, can I replace a M.2 SATA SSD with a M.2 NVMe SSD?
Or it must be that the mainboard should support NVMe?

Basically I want to know of the SATA / NVMe controller actually sits on the SSD M.2 drive, and they can be interchanged on a mainboard with M.2 connector.

Thank you

Best Answer

The best way to determine compatibility is to check the motherboard and device manuals to identify what interfaces they use, or to try it.


"M.2" is a standard that outlines a number of connectors, and an important factor is the keying.

An "M.2" connector doesn't necessarily support all of the busses that can be carried, including PCI Express 3.0 (NVMe) SATA 3.0 or USB 3.0 (and thus USB 2.0).

For example the "B key" and "M key" variants are quite common, but they can be combined on the card-edge connector:

B key and M key

This keying gives you a hint at what interfaces might be supported:

  • "B key" - PCIe x2, SATA, USB 3.0 audio, UIM, HSIC, SSIC, I2C and SMBus
    • Used more commonly for perhiperals, like WiFi and Cellular Modems
    • Can still be used for storage
  • "M key" - PCIe x4, SATA, SMBus
    • Used more commonly for storage devices

However, ultimately it's up to the host (i.e: motherboard) to provide those interfaces.

As you've found, there are "M.2 storage devices" that use the SATA interface, but they will only work on a motherboard with a suitably keyed connector that actually wires up / provides the SATA interface.

Equally, an "M.2 storage device" that uses the PCI Express interface (and is thus likely NVMe, but could be AHCI) will need support from the motherboard.


This can become a complex topic...

It is entirely possible that the one connector on a motherboard will support both PCI Express (thus NVMe) and SATA.

SATA support over M.2 will often come at the cost of disabling a SATA connector, for example:

When a device in SATA mode is installed on the M.2 socket, SATA_2 port cannot be used.

It is also quite possible that an M.2 NVMe device will share bandwidth with (or steal from) other PCI Express cards, for example

The PCIE_x8/x4_2 slot shares bandwidth with the M.2_2 slot.

Related Question