Native Z170 Hyper M.2 vs PCIe3 M.2


Native Z170 Hyper M.2 vs PCIe3 M.2

Article: Intel Z170 native M.2 vs PCIe3

Article by: Wendy Robertson


With consumer grade NVMe SSDs finally arriving, it becomes
important that the performance of NVMe SSDs can be fully realised by the way they
are connected to the motherboard.

In this article I will examine the performance difference
(if any) of an M.2 NVMe SSD connected using the Intel Z170 ‘native’ hyper M.2
solution via the Z170 Skylake PCH (Platform Controller Hub),
and the same M.2 NVMe SSD connected using the main PCIe3 x16 sockets via the Intel
Skylake CPU. 

NVMe (Non Volatile Memory Express)
SSDs are PCIe based and can be installed in a standard PCIe slot, M.2 socket, or
via the brand new U.2 connector. PCIe SSDs are not new, and have been around
for several years. However, the PCIe SSDs of the past required a special
controller which sat between the SSD hardware and the PCIe system bus, to allow
the SSD hardware and the PCIe bus to perform the translation and communication
between the two interfaces. This was of course a very complex and time
consuming task, which inevitably led to increased latency.

NVMe is a native solution, with its own highly optimised
protocol, which features a very much reduced command set, much lower latency
when compared to AHCI, and is specifically optimised for Non Volatile Memory
(FLASH memory).

M.2 is a small form factor, initially designed for small
form factor PCs, such as laptops, but have found their way into desktop PCs.
Initially, M.2 appeared ‘natively’ in desktop PC’s with the Intel Z97 chipset.
The Z97 native solution was very limited. It could use only two generation 2
PCIe lanes, and was thus limited to maximum bandwidth of 10Gbps, or 1GB per
second. In practice, and due to the overheads, this translated to a maximum
throughput of around 740 MB/s. Latency was also quite high with the Z97 native
solution and therefore, to get maximum performance from M.2 in a Z97 setup, M.2
SSDs were often mounted in a PCIe3 PCIe to M.2 adapter card, thereby utilising
the higher bandwidth and lower latency of main PCIe3 sockets on the motherboard.

However, mounting an M.2 SSD in a PCIe3 card, and then
connecting this to the main PCIe3 sockets on the motherboard does have its
limitations. If you’re using a main PCIe3 socket then you’re limited to a
single graphics card, and that single graphics card will be limited to using
eight PCIe3 lanes. This shouldn’t really be a problem as current graphics cards
should not be limited by the reduced bandwidth, but it does rule out using an effective
SLI or crossfire graphics solution.

The new Intel Skylake CPU requires an Intel 100 series
chipset to function, with the high performance desktop variant being designated
Z170.  For a device to be ‘natively’ supported, it must either be a feature
built into the CPU, such as the DRAM controller, Intel HD graphics, DMI, and
16x PCIe3, or alternatively, a feature of the chipset itself, PCH (platform
controller hub).

Most Z170 motherboard manufacturers are connecting M.2 via
the platform controller hub, but a few are connecting M.2 via the main 16x
PCIe3 sockets. You should watch out for this because, as I explained above,
connecting via the main PCIe3 sockets will be stealing bandwidth from those
sockets. On the positive side, M.2 connected via the main PCIe3 sockets is
likely to enjoy lower latency, and therefore better performance.

My Asus Z170 Deluxe motherboard uses the native Z170 PCH
solution, and therefore makes the full bandwidth available to the two main
PCIe3 sockets for graphics cards, or other bandwidth hungry PCIe3 solutions. In
the picture below, we can see the layout of the Asus Z170 Deluxe.

Native Z170 Hyper M.2 vs PCIe3 M.2

Asus Z170 Deluxe

At the bottom right of the picture you see the native M.2
socket. This solution uses 4x PCIe3 lanes, with a maximum bandwidth of 32Gbps,
or 3.2 GB/s. You can also see that the Asus Z170 Deluxe supports Hyper M.2 X4
with the built in M.2 socket, via an PCIe3 x4 add in card. Worth noting as well
is that the Asus Z170 Deluxe supports the new U.2 standard, for 2.5 inch NVMe
SSD solutions.

In the block diagram below, you can see how native hyper M.2
is connected on the Asus Z170 Deluxe motherboard.

Native Z170 Hyper M.2 vs PCIe3 M.2

We can see clearly that the hyper M.2 socket is connected
via the Intel Skylake Z170 PCH (platform controller hub). Finally, in the
screenshot below, you can see both the U.2 and M.2 PCIe3 adapter cards supplied
with the Asus Z170 Deluxe. The hyper M.2/U.2 card allows you to mount an M.2 or
U.2 SSD in the main PCIe3 x16 sockets, should you prefer to take that route
rather than using the built in hyper M.2 socket.

Native Z170 Hyper M.2 vs PCIe3 M.2

Before I go any further, I should explain some important
things that have changed between the Intel Z97 and the Intel Z170 chipsets.

The platform controller hub on the Intel Z97 chipset is
connected to the CPU via an interface known as DMI 2, which allows maximum
bandwidth between the PCH and the CPU of 20 Gbps, or 2 GB/s without overheads. 
On the Intel Skylake Z170 platform, DMI has been upgraded to DMI 3, which
allows 8GT per second, or 8 Giga transfers per second, with a maximum bandwidth
of 40 Gbps, (4GB/s).

Intel Z97 connected to all connected devices using PCIe
generation 2 lanes; with each lane allowing a maximum bandwidth of 500 MB/s.
Z97 had eight PCIe2 lanes available for connecting all the devices.

Intel Z170 PCH connects to all connected devices using PCIe3
lanes, with each lane providing a maximum bandwidth of 1GB/s, and Z170 has 20
PCIe3 lanes at its disposal. So the Intel Z170 platform controller hub is a
huge upgrade from a performance perspective.

So, let’s compare ‘native’ hyper M.2 via the Z170 platform
controller hub, and hyper M.2 connected via the main PCIe3 x16 sockets, to find
out which one performs the best.

Let’s head to the next page………