Protocols

PCIe Bifurcation

By CourseTron Team ·  7 min read ·  Updated Oct 2026 💬 𝕏 in f
Table of Contents
    ? Print / Save as PDF

    In short: PCIe bifurcation lets the Root Complex electrically partition one physical x16 slot into several narrower, fully independent links (e.g. 2×x8 or 4×x4), so a single CPU slot can host multiple devices — each enumerating as its own endpoint — instead of wasting lanes on one card.

    A modern CPU exposes a fixed budget of PCI Express lanes — a desktop Ryzen or Core part typically has 16 to 20 usable lanes off the processor, a server EPYC or Xeon has 80 to 128. Those lanes are precious. Bifurcation is the mechanism that stops a single x16 slot from monopolising all sixteen of them when the workload only needs narrower connections. If you have never traced how a lane actually carries a packet, start with our primer on PCIe lanes explained; this article assumes that foundation and focuses on how the lanes get split.

    What a lane split actually is

    A PCIe link is a bundle of differential lane pairs negotiated during Link Training and Status State Machine (LTSSM) at power-up. Each lane is two differential pairs (TX and RX). A x16 link is sixteen such lanes operating as one logical link under one Link layer and one Transaction layer. Bifurcation changes that grouping before training begins: instead of presenting the sixteen lanes as one link, the Root Port logic is told to present them as two x8 links, four x4 links, or combinations like x8+x4+x4.

    The key word is independent. After bifurcation, each sub-link has its own LTSSM, its own link-up event, its own flow-control credits, and enumerates as a separate PCI device under a separate Root Port in config space. The devices behind the split do not share bandwidth dynamically — the partition is static and decided at boot.

    Bifurcation is not the same as a PCIe switch. A switch (a PEX/PLX-class chip from Broadcom, Microchip, etc.) is silicon that fans out and arbitrates; bifurcation is the absence of a switch — the CPU's own Root Complex directly drives each narrower link, so there is no added latency, no switch BOM cost, and no shared upstream bottleneck.

    One x16 slot split into 4×x4 linksCPU RootComplex (x16)x4NVMe SSD 0 · own endpointx4NVMe SSD 1 · own endpointx4NVMe SSD 2 · own endpointx4NVMe SSD 3 · own endpointCourseTron · coursetron.com
    One x16 slot bifurcated as 4×x4 — a passive "quad M.2" carrier card. Each SSD enumerates independently; no switch chip is present.

    Why it matters for multi-device boards

    Consider the canonical example: a passive quad-M.2 riser. Each NVMe SSD needs only a x4 link to reach its full ~7.9 GB/s on Gen4. A single x16 slot carries exactly 4×x4 of lanes. If the motherboard can bifurcate the slot to 4×4×4×4, that one $30 passive carrier board hosts four SSDs with zero added silicon. If the board cannot bifurcate, you are forced to buy a carrier with an onboard switch — often $200+ and a thermal headache — because something has to fan the single x16 link out to four endpoints.

    The same logic drives dual-GPU compute nodes (x8+x8), NIC-plus-storage combos, and AI accelerator carriers. Bifurcation is what makes dense, low-cost expansion possible.

    Bandwidth arithmetic

    ConfigLinksPer-link lanesGen4 BW/link (one-way)
    x16 (no split)116~31.5 GB/s
    x8 + x828~15.75 GB/s each
    x8 + x4 + x438 / 4 / 4~15.75 / 7.88 / 7.88 GB/s
    x4 ×444~7.88 GB/s each

    Note the totals conserve: the lane budget is fixed, bifurcation only reallocates it. A x4 Gen4 link (16 GT/s/lane, 128b/130b encoding) yields roughly 7.88 GB/s one-way — more than enough to saturate most NVMe drives, which is precisely why 4×x4 is the sweet spot for storage carriers.

    Gen4 one-way bandwidth per link (GB/s)x16 (no split)x16~31.5x8 + x8x8x8~15.75 eachx8 + x4 + x4x8x4x415.75 / 7.88 / 7.88x4 ×4x4x4x4x4~7.88 eachThe lane budget is conserved: every layout totals about 31.5 GB/s per slot.CourseTron · coursetron.com
    Gen4 one-way bandwidth per link for each bifurcation layout; the lane budget is conserved across all four.

    Where the split is configured and enforced

    Bifurcation is a platform-level decision made in firmware. On boot, the UEFI/BIOS writes the desired topology into the CPU's PCIe controller straps (or the PCH's equivalent registers) before LTSSM runs. You will typically find it under settings named "PCIe Bifurcation", "Slot Lane Configuration", or "NVMe RAID riser mode". Crucially, the card itself is dumb — a passive bifurcation riser has no logic to request a split; it simply wires lane groups to connectors and relies on the host being told the right layout.

    A common failure mode: you install a 4×M.2 card, only the first SSD appears, and the slot trains as x4 instead of x16. That is the board defaulting to no bifurcation — the other three lane groups never trained because firmware presented one x16 link, not four x4 links. The fix is a firmware setting, never a different cable.

    Lane regrouping: x16 becomes x8 + x8Link A (x8)Link B (x8)one x16 linkLanes 0–7Lanes 8–15CourseTron · coursetron.com
    At link training the sixteen lanes are regrouped. The divider marks the boundary where the x16 becomes two fully independent x8 links, each training separately.

    Signal integrity and verification

    Splitting a slot shifts the engineering problem onto the PCB. Each sub-link still has to meet the same eye-diagram and jitter budget at Gen4 (16 GT/s) or Gen5 (32 GT/s). With a riser inserted, the channel gets longer and crosses a connector, so designers often need a retimer (a protocol-aware signal conditioner) to recover margin — distinct from bifurcation itself. Teams validate these channels with SerDes and compliance tooling such as Synopsys HSPICE/SerDes IP characterisation, Cadence Sigrity for channel analysis, and Siemens HyperLynx for pre-layout SI simulation; protocol compliance is then checked against the PCI-SIG test suites. Design houses like Avecas VLSI design services run exactly these channel and compliance flows when qualifying multi-endpoint boards.

    For the full link-layer background and lane-level signalling, revisit PCIe lanes explained and our companion piece on PCIe link training and LTSSM. Hands-on labs covering this live in our protocol engineering courses.

    Want to design and debug real PCIe topologies — bifurcation straps, retimers, LTSSM traces and compliance — on actual hardware? Join CourseTron's Protocols track and build a multi-endpoint carrier from schematic to link-up. Explore the course →

    FAQ

    Does bifurcation reduce total bandwidth?

    No. The lane budget is conserved — you are only redistributing the same sixteen lanes across more links. Each device simply gets a narrower share rather than the whole x16.

    Why doesn't my second NVMe show up on a quad-M.2 card?

    Almost always because the slot is not bifurcated in firmware. The host is presenting a single x16 link, so only the first lane group trains. Enable the x4x4x4x4 (or appropriate) setting in UEFI.

    Is a bifurcation riser the same as a PCIe switch card?

    No. A bifurcation riser is passive and needs host firmware support; a switch card contains an active PEX chip that fans lanes out on its own and works in any slot, but adds cost, power, and latency.

    Can any x16 slot be bifurcated?

    Only if both the CPU/chipset silicon and the motherboard firmware support it on that specific slot. Chipset-attached slots often cannot bifurcate; CPU-direct slots usually can, subject to the vendor exposing the option.

    Advertisement