4

After poring over available Z170 motherboards I have been become confused when it comes to NVMe compatibility. Can you please clarify if my assumptions are correct or wildly misguided.

Consider motherboard X. It has an M.2 slot which supports "SSD and PCIe (3.0 x4)" mode. It has no U.2 connector, and there is no mention anywhere in the specs or manual of NVMe. Assumption: NVMe support is not guaranteed but it's a BIOS issue rather than a hardware drawback, i.e. it could be possible with a BIOS revision.

Consider motherboard Y. It has an M.2 slot which supports "SSD and PCIe (3.0 x4)" mode. It does have a U.2 connector but there is no mention, as above, in the specs or manual of NVMe. Assumption: NVMe support is implicit at least via the U.2 connector because you can't get U.2 drives that aren't NVMe. It follows that NVMe is supported for M.2 drives, too, akin the the assumption below.

Consider motherboard Z. It has an M.2 slot which supports "SSD and PCIe (3.0 x4)" mode. It does have a U.2 connector, and states in the advertising blurb that you can use NVMe drives via the U.2 connector, but fails to say anything about the M.2. Assumption: M.2 NVMe devices are equally compatible, due to the fact the the M.2 socket uses the same PCIe channels as the U.2.

The Samsung SM951 is available as AHCI and NVMe - both use PCIe which perhaps is what fuels my misunderstanding. In the above examples, X, Y and Z are based on the specifications of three real Z170 motherboards from the same manufacturer; I am relying on the consistency of their wording to get my head round this, which may or may not be a good idea.

  • Generic questions are hard to answer. If you want us to answer, that requires our own research, otherwise you will get answers but they might not be high quality answers. For instance, All currently supported versions of Windows, has native support for NVMe drives, which means NVMe support is entirely up to the hardware to support it. – Ramhound Jan 20 '16 at 15:56
  • @Ramhound I'm not sure which part of "X, Y, and Z are based on [...] three real Z170 motherboards" fails to prove research on my part. Nevertheless, Motherboard X, and Motherboard Z. Motherboard Y eludes me at the moment. – CharlieHanson Jan 20 '16 at 16:18
  • I never said you failed to research the subject yourself but I won't answer a question unless I do my own research. I can't research Product X and Product Y unless I know which products they actually are. I sense you just want me to go away, based on your comment, so I will do exactly that. I only answer questions when I have a reasonable assumption, what I am submitting is 100% correct. – Ramhound Jan 20 '16 at 16:24
  • 1
    "M.2 x4 Socket 3, with M Key, type 2242/2260/2280/22110 storage devices support (both SATA & PCIE mode)" indicates to me both AHCI support and NVMe support but that is just me. Now If you want to boot to the device, that ius entirely up to the OS, after POST. – Ramhound Jan 20 '16 at 16:33
  • 1
    What is it about that phrase that indicates NVMe? I originally thought that "PCIe Mode" was the indicator of compatibility, but the fact there are two versions of an M.2 PCIe drive from Samsung throws a spanner in those works. – CharlieHanson Jan 20 '16 at 16:42
8

NVMe support on the motherboard is only about the firmware (BIOS/UEFI). That's because NVMe is not a physical connector or electronic transmission protocol like PCI Express. Instead, it is a way to talk to the SSD controller, much like AHCI is way to talk to the SATA HBA (or backwards-compatible PCIe SSDs).

It is also only about booting. After that, the operating system takes over.

With M.2/U.2, there are two types of connections:

  • SATA (supported by U.2 ports and M.2 slots keyed B or M)
  • PCIe (supported by U.2 ports and M.2 slots keyed A, B, E or M)

A SATA M.2/U.2 SSD interfaces with an external (not on the SSD but on the mainboard) SATA HBA (Host Bus Adapter) using the SATA protocol. The operating system typically talks to the SATA HBA using AHCI. Everything works the same as when connecting a SATA drive to a SATA port. With U.2, you are even using a regular SATA cable.

A PCIe M.2/U.2 SSD on the other hand comes in two varieties. It has an equivalent to the SATA HBA built-in. The host can talk to this controller using one of two standard:

  • AHCI (none available with U.2, but still possible)
  • NVMe

An AHCI controller has limited performance. However, it offers the best compatibility because virtually all (but very old) firmware already supports AHCI. As such, you can boot from such SSDs no problem. (Provided the SSD itself isn't somehow limited in that regard.)

The NVMe specification is more suitable for non-rotational drives like SSDs and offers better performance by reducing overhead and whatnot. However, until relatively recently, mainboard firmware did not support this standard and could not boot from NVMe SSDs. You could still access them from your operating system, provided appropriate drivers were available.

Wikipedia has a great image on this topic:

asdf
(Just ignore that it's apparently only about SATA Express/U.2, M.2 is mostly equivalent in this case.)

tl;dr: All NVMe SSDs use a PCI Express connection. As such, they appear the same to the BIOS, whether connected via U.2, M.2 or a full-size PCI Express slot.

However, having an M.2 or U.2 slot does not guarantee in any way that the firmware can boot from NVMe storage devices.

The manufacturer could provide a NVMe-boot-capable firmware later, yes.

  • Thank you for this. I ended up diving in head first in the end, and after pulling out most of my hair I managed to find the pre-installation drivers and get Windows 7 running from an NVMe SSD. – CharlieHanson Oct 5 '16 at 11:50

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.