Re: NVMe drives - what's the story?
Paul Kelly <[email protected]> Wed, 13 Jan 2021 04:54:29 +0000
| Newsgroups | gmane.user-groups.linux.ilug.general |
|---|---|
| Message-ID | <[email protected]> |
On 12/01/2021 21:27, P=C3=B3l Ua Lao=C3=ADnech=C3=A1in wrote:
>> I got a relatively-cheap PCI NVMe with M2 interface, plus an adapter
>> from M2 to PCI, and the games are loading very, very quickly. Looks
>> like the CPU is now my bottleneck for games.
> What's the difference between PCIe, M2 and NVMe with an M2 interface?
>
> AIUI, you can have M2 SATA and M2 PCIe?
M.2 defines a connector, its pinout, and physical card sizes. There are=20
several different personalities M.2 can have, with keying of the slot=20
used to prevent incompatible cards from being inserted. "B" key slots=20
are typically used for SATA but can also offer x2 PCIe and USB=20
connectivity. M.2 WiFi cards (usually "E" or "A" keyed) use the PCIe=20
lanes for network but also use the USB support to connect Bluetooth. "M"=20
key slots can offer x4 PCIe and SATA. A card will be notched to fit one=20
or more keys. M.2 SATA cards usually fit both B- and M-keyed slots but=20
all the fancy new NVMe cards demand an M-keyed slot.
The PCIe lanes of an M.2 slot are no different in capability &=20
performance to what you find in a traditional PCIe slot, and you can=20
acquire widgets in the darker corners of the internet that will turn an=20
M.2 slot into a PCIe slot. PCIe adapter cards also exist with M.2 slots=20
for SSDs, but be aware that many of the cards offering multiple M.2=20
slots only support NVMe in one slot and SATA in the other(s). Sharing a=20
PCIe lane (with a PCIe switch) or splitting lanes out ("bifurcation")=20
from an x16 slot into several x4 connectors are both hard to do, so=20
adapter cards that support multiple NVMe-capable M.2 slots tend to=20
either be very expensive or only work in specific slots of specific=20
motherboards.
On the other hand NVMe is more of a protocol and interface=20
specification, like AHCI is for SATA or UHCI for USB, intended to sit=20
directly on a PCIe bus. It's designed from the ground up for modern=20
SSDs. Optimized for minimum latency, a large number of concurrent=20
requests, and support for multi-core processors. It's not tied to the=20
M.2 form factor. It can also be a traditional PCIe card, or U.2 format -=20
which looks for all the world like a 2.5" drive with a SATA connector=20
(actually "SATA Express"). PCIe slot NVMe cards are uncommon these days=20
but U.2 is a thing in the server world, where hot-swap and ease of=20
replacement is a useful feature.
NVMe is usually implemented directly in the controller of the SSD. In an=20
ideal configuration your M.2 socket will be wired through the CPU socket=20
straight to the CPU's own PCIe lanes. In that case there's nothing=20
between the CPU and the SSD controller, and system memory just the far=20
side of that CPU. Storage never had it so good.
--
Paul.
--=20
Irish Linux Users Group
---=20
You received this message because you are subscribed to the Google Groups "=
ILUG" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to [email protected].
To view this discussion on the web, visit https://groups.google.com/a/linux=
.ie/d/msgid/ilug/2c289406-97e8-16e0-fdb2-9209ef5fa458%40esatclear.ie.