Hacker News new | ask | show | jobs
by KamiCrit 2639 days ago
"Most people prefer the simplicity of plugging a M.2 card into a motherboard connector rather than mounting a separate drive and running cables to it."

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.

2 comments

The placement of the M.2 slot on motherboards often seems daft. On my ASUS motherboard, it's directly above my graphics card that dumps 300W worth of heat.
It seems like a lot of video cards are trending towards blower style designs which don't vent hot air inside the case, so if you have one of those it's probably not a big deal.

On my Asus Z270i, the M.2 that's right there has a heatsink too.

Seems very much like the opposite to me, even Nvidia's "Founder's Edition" went to an open design in its latest iteration. Only AMD reference cards seem to still be blowers, AIO designs are pretty much all open.
Now that I look, it does seem like a lot of them are open air cards. I have a mini ITX case, so I only ever look at blower cards since I don't really have the airflow to carry the GPU heat out.
Making a dual NVMe PCIe card would require either an expensive PCIe switch chip or PCIe bifurcation, which needs to be configured in the BIOS if the motherboard supports it at all.
Slower NVMe could use a 2x connection. You could have one card with two electrically separate 2x connections that fit into one 4x slot, at least given my current understanding of the PCIe slot/lane structure.
The problem is that any given PCIe root complex does not necessarily support operating those lanes grouped into an arbitrary number of PCIe ports. When you have an x16 group of lanes coming off a CPU, it usually supports operating as x16, x8+x8, and x8+x4+x4, with the latter two requiring some help from the motherboard to re-route lanes. Operating as x4+x4+x4+x4 is usually not possible on consumer-grade CPUs. I'm not aware of any CPU that supports splitting an x4 down to x2+x2.

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.

That's PCIe bifurcation, and needs the BIOS to handle this correctly and not just define "those 4 lanes are one slot connected to one device".
Every single Ryzen/threadripper/epyc board I’ve played with has supported bifurcation.
I've encountered a Threadripper motherboard that lacked the firmware capabilities necessary to use a passive PCIe x16 to quad M.2 board.

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?

Yes, but now that I look it up it's apparently a feature restricted to X370 and X470 boards. Doesn't really make sense to me considering the PCIe comes off the CPU.
TR4 boards that were released at TR launch day might miss the firmware support for PCIe bifurbication in the initial release. However, it was added in the later firmware releases.
Good to know, in the past it has been kind of random where motherboard manufacturers enabled it.