The first problem you have is that you are using HDTune for the benchmark. The way it does its benchmarking is to try and map out how the performance of a hard drive changes as you move across the platter. This type of access is a worst case for SSDs and does not lend itself to pushing an SSD as far as it can go. The rating for SSDs are usually done with ATTO Disk Benchmark. As a benchmark ATTO has the opposite problem. It is a best case scenario, which is why the ratings say "up to".
Also, being on SATAII will limit you to around 260-280MB/s.
Another common cause of not getting the expected speeds from a SSD is if the SATA controller is in IDE emulation mode instead of in AHCI mode.
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:
(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.
Best Answer
Question 1:
The GIGABYTE Gaming 7 motherboard only has 2 x M.2 Socket 3 connectors on it. One appears to be a M.2 PCI-Express connector the other is a M.2 SATA connector. This is clear by the fact the chart in the manual, for each M2D_32G M.2 connector, is slightly different. If they were both M.2 PCI-Express connectors they would be identical. The "PCIe x4 SSD runs at x2 speed." comment is in reference to any device connected to the PCIe 3.0 x4 bus this includes NVMe devices. So if your goal is to use two Samsung 950 NVMe SSDs you won't acomplish your goals with that motherboard.
Directly from the manual:
You should take note of this though:
Question 2:
The chart belows explains what SATA ports you will or will not lose based on the configuration you select.
Question 3:
Your motherboard does not support the use of two NVMe devices based on the manual you provided.
My conclusion is also based on this statement.
This statement by itself, indicates that only one of the M2H_32G connectors, is a M.2 PCI-Express connector. If the board supported two M.2 PCI-Express devices, the bandwidth to a second PCI-E slot would have to be shared, the amount of PCI-E bus is finite in the chipset being used.