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

  • No; They are not compatible with one another – Ramhound Mar 5 '19 at 12:47
  • Thanks. I thought so, but I waned to be sure. So the mainboard is where the SATA or NVMe controller resides, not the SSD drive, right? – bzamfir Mar 5 '19 at 12:52
  • The best way to verify this information is to simply check the manual for your motherboard. There is a significant difference in an NVMe and SATA M.2 drive. – Ramhound Mar 5 '19 at 12:53

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.

| improve this answer | |
  • You should add that B+M key slots can't push a full PCIe x4, only up to the limitations of B key m.2, PCIe x2. – udlp Aug 7 '19 at 11:57

M.2 SATAs either plug into an adapter card which connects to the board using SATA / SATA express, or many modern laptops have a built in port on the SATA bus. Some PCIe adapters that have an NVMe M.2 slot sometimes have a SATA M.2 slot above them but there will often be a SATA connector and it is provided with a SATA cable. Only the NVMe port uses the PCIe interface and the M.2 SATA port is connected to the SATA port. The host controller on the point to point SATA bus uses AHCI. The devices on the bus device controllers use SATA transport protocol. The devices do not have a built in AHCI controller, just a regular SATA controller. You can't put them in an NVMe/AHCI slot because they aren't a PCIe device and they need the AHCI controller on the other end of the SATA bus as the PCIe device that interfaces with the PCIe interface. The SATA controller doesn't know how to interface with PCIe.

M.2 AHCI PCIe drives have a built in AHCI controller and hence use an AHCI driver and can directly interface with the PCIe bus as AHCI host controllers. They either connect to a built in M.2 port on the PCIe bus or, if there isn't one on the motherboard, they connect to an adaptor which is inserted into a PCIe slot.

M.2 NVMe PCIe drives have a built in NVMe controller and hence use an NVMe driver. They either connect to a built in M.2 port on the PCIe bus or, if there isn't one on the motherboard, they connect to an adaptor which is inserted into a PCIe slot. There are all sorts of other adapters. For instance, a 3.5 inch Bay with a SATA M.2 slot connected to a SATA port and an M.2 NVMe slot connected via SAS (Mini SAS – Mini SAS cable) to a PCIe adapter. The M.2 NVMe / AHCI ports on the motherboard may also be connected to the SATA bus as well as the PCIe bus and therefore allow M.2 SATAs to also be inserted in the slot. Which looks something like this:

enter image description here

PCIe SSDs have a built in NVMe controller. They aren't adapters into which M.2 drives plug into; but instead, the card is the actual SSD; it has an AIC (Add In Card) form factor (which can be either FHFL, FHHL or HHHL). They directly connect with a PCIe connector to a PCIe slot. The NVMe controller uses the PCIe protocol to access RAM.

mSATA SSDs connect to mSATA ports on the SATA bus or to an adapter that connects via SATA. The adapter can sometimes be on multipurpose PCIe adapters and, like the M.2 SATA, actually connects via SATA / SATA Express cable provided with the adaptor, whereas the M.2s connect to the PCIe bus pins of the adaptor. mSATA has the same form factor as mPCIe but they aren't compatible. Some other devices use mPCIe such as WiFi cards. I think there are some rare mPCIe SSDs as well. mPCIe (replacement for the former mPCI) slots can be connected to the USB 2.0 bus or PCIe bus. The controller on board the mPCIe card will either support the USB interface, PCIe interface or both.

enter image description here

M.2 SATAs and mSATAs can appear on PCIe adapters without a SATA port on the adapter because the card has a built in AHCI controller which interfaces with the PCIe interface.

The M.2 specification identifies 12 keys A–M, but in common use are B and M. M.2 SATA SSDs are B+M-keyed (can fit in sockets for B-keyed and M-keyed modules), while M.2 NVMe/AHCI SSDs for PCIe 3.0 x4 lane are M-keyed.

U.2 is the form factor for a new type of 2.5 inch SSD that supports hotplugging unlike M.2. U.2 drives can be AHCI or NVMe. The U.2 drives can fit into a bay and connect via SAS to a PCIe adapter card with a Mini SAS port or the U.2 can actually fit on the PCIe adapter itself. The SAS cable used is a SFF-8639 to Mini SAS which is faster than a SATA express cable.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.