NVMe and an interesting technology change
utcc.utoronto.ca
utcc.utoronto.ca
https://www.myfixguide.com/samsung-860-pro-ssd-teardown/
Notice how little of the case is actually occupied by circuitry: https://i.imgur.com/lzPTC3T.jpg
I think the better question than M.2 vs. U.2 is the "plugs directly into motherboard" form factor vs "uses a cable from the motherboard to plug into an enclosure for a separate circuit board that needs separate mounting points in the case" form factor.
Since forever, hard drives have come in 3.5" and 2.5" form factors, so when SSDs hit the market it made sense for them to come in backwards-compatible enclosures, in the same way it made sense for them to implement backwards-compatible protocols like SATA.
NVMe, as a protocol, breaks backwards compatibility, to great benefit, so I don't think it's surprising that breaking backwards compatibility on form factor happens at the same time.
U.2 seems ideal if you've already got a server chassis design that accepts 2.5" hot-swap SSDs, and you want to use the NVMe command set instead of SATA. For most consumer purposes, having M.2 storage that you just plug into the motherboard like you do RAM and the CPU is completely worth the switch away from the 2.5" drives.
Another point the author may not be aware of, most server SSD sales happen as parts of bigger integration deals. The SKUs for many/most U.2 devices for instance might never hit something like Newegg or Amazon but might be moving in massive volumes at Supermicro or Sanmina or the like. This is in contrast to say 3.5" hard disks which spent most of their life forwarded by pushing consumer demand and the only difference in an enterprise disk may be some firmware knobs.
Compared to M.2 form, U.2 has two benefits:
1. support hot-swapping(SAS-age enterprise character)
2. better thermal performance/heat dissipation(for larger shape)
for data centers, the future will be the EDSFF family[2](goodness of U.2+goodness of M.2). M.2 can still stay for the consumer market.
[1] https://en.wikipedia.org/wiki/U.2
[2] https://www.anandtech.com/show/13218/ssd-form-factors-prolif...
Dual-port support is also a niche benefit that U.2 carries over from SAS.
I love that part so much, I'm a complete convert. Considering replacing SATA SSDs with NVMe SSDs just to reduce the cable load inside my rig. Just wish PCIe cards with dual NVMe ports were more abundant.
I also haven't seen those quad-M.2 boards listing support for the mainstream Ryzen (AM4) platform, only the Threadripper and Intel HEDT platforms. Have you gotten an AM4 Ryzen system to split its x16 slot into 4x4?
The Southbridge/PCH on the motherboard is at heart a PCIe fan-out switch that is designed to offer bifurcation down to x2 and x1 ports, but on the flip side doesn't support aggregating lanes into ports wider than x4 (which is the width of the host connection to the CPU).
There are already plenty of low-end NVMe drives that use x2 connections instead of x4. If you put them into a PCIe port that's coming directly off the CPU, you'll have at least two lanes rendered unusable.
Intel has a SSD coming soon that is essentially two x2 drives on a single x4 M.2 card (one with 3D XPoint memory and one with QLC NAND flash memory). I'm expecting this to only be fully functional when attached to the PCH or another PCIe switch that supports bifurcation down to x2. When attached to a CPU PCIe port, I expect only one half of the drive to be accessible.
The bifurcation limitations of CPU PCIe ports may end up changing as PCIe 4.0 and 5.0 make their way to the market, and make SSDs with x1 and x2 connections more viable.
On my Asus Z270i, the M.2 that's right there has a heatsink too.
U.2 seems to be more popular in applications where drives may need to be changed out more frequently, like datacenters.
Once Samsung M.2 PCIe drives graduated from the OEM market to the retail market and provided better real-world performance than the big power-hungry enterprise-based Intel drive, U.2 for consumers was doomed.
Yeah, it's a real mess to get it up to speed and if it involves parity calculations (RAID 5) then there is a CPU bottleneck. Used to be single-core only until a couple years ago, no idea how the situation looks today.
If we need some sort of new-gen ssd raid, the unweildiness of m.2 mounting won't gonna cut it.
The u2 benefits, compared to m2 mentioned on wikipedia seems to miss the point - u.2 is meant to be important in server space where you can have 12 drives per 1U, all with frontal/top load. all these cards we have with m.2 are not meant and cannot be operated at storage-system scale.
Intel didn't make enough PCIe lanes available in consumer chipsets to run enough U.2 drives to be attractive. Whether U.2 or M.2, Intel was always only going to give you one or two.
Competition might, but it doesn't look like Zen's popular enough (Zen provides 24 lanes at the low end, 64 on HEDT, and as you noted 128 on EPYC, IIRC Intel's entire consumer lines is a flat 16).
The overhead of RAID might nullify the performance gains of NVMe though, as this benchmark of 3 NVMe drives shows: https://www.pcper.com/reviews/Storage/Triple-M2-Samsung-950-...
It delivers similar performance to a SATA SSD array I built years ago for bandwidth (not sure about IOPS though).
Another choice is a somewhat more usual four M.2 card and https://click.intel.com/u-2-to-m-2-ssd-cable-replacement-u-2... this cable. To me this seems much more of a hack than OCuLink.
If there's an interface that solves the problems of the 80% that don't need more than one drive in their laptop or PC (let alone more than the two most laptops can fit if the manufacturers wanted) and it avoids all these issues... then the alternative isn't going anywhere.
It's the same story with SAS, despite its considerable superiority over SATA, it was never going to appear in consumer hardware.
Could probably do more assuming a headless storage-dedicated motherboard: IIRC EPYC only requires 4 lanes going to the chipset, if the mobo provides only U.2 slots and no PCIe (or alternatively lets you disable and reuse the PCIe lanes going to PCIe slots) it should support up to 31 drives.
It does away with layers of abstraction and gives you 4x pcie lanes pretty much straight to the device.