Monday, December 21, 2015

NVMe SSDs, Motherboards and i7 Limitations

TL;DR

Do not buy 2x NVMe disks and plug into M.2 ports if you want max speed. (TL;DR = Too long; did not read = very short summary provided).

Quick Into

For the past month or more I've been hunting for a new laptop to replace my 4-year old Asus gaming laptop & I've been reading a lot about new hardware.

Most shiny new toy is SSD & Non-Volatile Memory Express (NVMe), particularly, the Samsung Pro 950 which can do 2500 MB/s reads & 1500 MB/s writes, where normal SSDs can do 550 MB/s max. This is because the 950 is an NVMe which uses PCIe slots, not SATA slots.

Technical Details

I noticed that the majority of the laptops are designating only 1 slot as NVMe & another as SATA only, even when both are M.2 PCIe slots. This means only one can be used for the Samsung 950 & get max speed, while the other will function at SATA speed only. The most advanced Intel chipset available for Input/Output devices today is the HM170 which offers 16 PCIe lanes. (more lanes = more devices can connect to the PCIe bus).

However, Asus is releasing a new laptop "ASUS ROG G752VY-DH78K" which has a new Intel chipset: the CM236. This chipset offers 20 PCIe lanes! 4 more than the HM170, and an M.2 port supporting NVMe requires exactly 4 PCIe lanes, but the big catch is that any Intel Skylake processor (i7-6820HK or i7-6700HQ) only has 16 PCIe lanes!

So even though you can plug a 950 NVMe on both M.2 slots, they will be sharing the bus towards the CPU, and you will not get max speed of both at the same time, if there are other devices also using the 16 PCIe lanes, such as graphics cards (and you're likely to have one anyway).

This is valid for desktops as well since the above limitation comes from the i7 Skylake architecture.

Conclusion

If you plan on putting both M.2 slots in RAID0 or do some sort of dual access on them using NVMe disks, you will not see max speed of both.

Desktops

If you have a desktop, your motherboard might have a built-in M.2 slot, which would have dedicated 4x PCIe lanes. You can use a PCIe-to-M.2 adapter to plug an M.2 NVMe into a PCIe card in a standard PCIe bus. This way you should get max speed of both NVMe disks since the bus is not shared and all lanes are dedicated.

If you're using graphics cards in SLI mode, then maybe it would start sharing the bus with them. Watch out from that.

Links & References


No comments: