PCI-e bifurcation explained

PCI-e bifurcation explained

OK, some asked about 'what is bifurcation' from the previous post. Essentially, if you have a PCI-e x8 slot, you can split it in half and make it 2 x4 slots. If you have a x16, you can make it 1 x8 and 2x4, or 4x4.

You can see below, i've overlayed my BIOS setup on top of the motherboard diagram (here a SuperMicro x10DRi-LN4+). Now, if your BIOS doesn't have a bifurc option, you can possibly get it to do so by adding support into the BIOS. I'm not going to help you with this, its very complex, but I was able to add both UEFI NVME boot and bifurcation to a different SuperMicro motherboard by adding the UEFI modules into it manually. YMMV. Void where prohibited.

So in my case, I have a NVME carrier which is capable of holding 4 NVME drives. It is passive (no PCI bridge is onboard). This means that it is conceptually 4 PCI-E x4 drives. Without bifurcation, it just won't work. Some people refer to this as 'pci splitting'. You may see references to this in the 'crypto-mining' industry, where people are using 1x interfaces via cables to mining ASIC.

Be careful here, bifurcation is supported on server motherboards with modern chipsets, but its support on desktops is not as universal. And just because your motherboard supports it doesn't mean your BIOS will.

It may also have downstream affects on other PCI-e cards, e.g. reducing their lane-width. Caveat Emptor.

23 Comments on “PCI-e bifurcation explained

  1. Thanks for such easy and simple explanation. This means a PCIe x16 slot can be run in 8x mode but what if we have two PCIe x16 slots?

    • usually you can take a /x16 into 4 x /x4, or 2 x /x8, etc. If you have 2 pcie x16, you can convert each of them.
      It may be tricky to understand which one runs to which physical slot, so experimentation / motherboard manual may be required.

      Not all chipset/motherboard bios expose bifurcation, but if its there, its helpful.

      • Question: If I have 4 nvme drives, the bandwidth with 4×4 bifurcation means I have only a single PCIe4 bandwidth (3.94GB/s) per nvme drive? It makes seance for me seeing it that way.

        • bifurcation does not reduce bandwidth.
          if you have a /x16, and 4 x4 drives, each gets x4 of the bandwidth.

  2. Hello DB,

    Very nice article. To me the most interesting part is the one you havent explaind…how to make BIOS allow bifurcation even if manufacturer didn’t want you to do it. If you can spare some time I am in a greatly need of your help.

    This is the situation. I have a Supermicro X11SSZ-F mobo, AOC-SLG3-2M2 card and two Corsair MP510 NVMes. 2M2 card is in the Slot6 x16.

    As you can imagine, mobo doesn’t see two NVMes, just one, and with newest version of bios there is still no option to bifurcate x16 slot to x4x4x4x4 (or to any other value).

    By now I read more that 20 posts about this issue, and there are lots of solutions but none can apply to X11SSZ-F…

    Can you please help me to make both of NVMes work…?

    Thank you in advance!

  3. Hello!
    I really liked your article and the explanation in it!
    I have the same problem only P9X79 Delux motherboard. Could you help with the BIOS for it with bifurcation support on PCIe for installing the DELL UltraSpeed ​​4xSSD board, it is the same as asus hyper m.2.
    I changed the BIOS at https://www.win-raid.com/t2790f44-OFFER-ASUS-P-X-DELUXE-BIOS-MOD-NVME-Dxe.html#msg38148.
    But only one of the 4 installed drives is visible.
    I would be very grateful for your help if you can give the BIOS firmware ready for work.
    Thank.

  4. I am wondering. I have the AOC-SHG3-4M2P card. It is an x8 card. If bifurcation is for splitting up a slot, then why does the manual for this card mention setting the bifurcation for that slot to x4x4x4x4? That’s x16… It has a switch on it to combine what is literally x16 between the four SSDs down to x8. What am I not understanding?

    • bifurcation splits a bridge.
      on most systems, the only bridge is in the processor (formerly the north/south bridge).
      If you have a card w/ a bridge (like a PLX) on it, that in turn can be bifurcated if the bios or other setup supports.

      you might have a /x8 upstream and a /16 downstream. E.g. it might present /8 to the processor side, and 4×4 to the nvme side. This would be a good thing, e.g. it would be oversubscribed (so not all 4 cards can operate full speed simultaneously), but, in burst, all of them can sometimes operate full speed without using a /16 upstream.

  5. Question, I have an SuperMicro X10drg-q, it seems it does not have bifurcation, what if I use this Asus M.2 Hyper thingy, and I had 2, will it work ok if I did it through software mode(Within Windows/Stripped)?

    I don’t think that’s the issue, what if I use all 4 Nvme’s WITHOUT bifurcation? Can I still raid 0 them through Windows????

    Thanks again.

    • if you have a M.2 card with no PCI bridge (e.g. it doesn’t have a big chip on it), and it has >1 NVME slot, then you must enable bifurcation.

      bifurcation means splitting the big slot into little slots.

      There are single NVME expander cards, e.g. 1 NVME, they don’t need this.
      As for RAID-0 stripe, as long as you can see the cards, you can do this.

      as for your motherboard, its materially similar to the one i posted about, same chipset. Maybe you just don’t have the bios updated?
      https://forums.unraid.net/topic/87033-asus-hyper-x16-nvme-card-x10drg-q/
      suggests that it will work.

  6. My Understanding at the moment?
    Bifurcation is the ability to assign PCIe lane functions. It can take a 16x lane slot and divide the lanes into 2 – 8x lanes or 4 – 4x lanes.  My Asus x99 motherboard has this ability to suport bifunction and my gigabyte x99 udp 3 motherboard  does not. The expansion card in question ( NV95NF ) does not support bifunction but requires the 16x slot to function at 4x x 4. 
    The Gigabyte bios only has a auto, gen 1, gen 2, or gen 3 setting. I can not tell if the auto would recognize the lane usage automatically for the NV95NF (https://store.sfpcables.com/nvme-ssd-adapter-card-pcie-x16-to-4x-m-2-nvme-connectors) card to run all four m.2 modules. 
    Opinions welcome and facts are GOLD! Thanks!

  7. I have a question regarding pcie4 bifurcation and x8 pcie2/3 cards (like video capture ones that require x8 connection)

    If I’ll have pcie4 x4 on the x16 slot(assigned by chipset, x570) does it mean only x4pins work or is there hijink on the CPU/chipset side that makes is effectively pcie3x8 with all pins used correctly(x8 pcie2/3 is what I need)?

    • if you have a /16 slot, you can split it into 2 x /8. Or 4 x /4.
      I suppose it might be possible to do 1 /8 and 2/4, but i’m not sure.

      Its about addressing and bandwidth. Bifurcation is a split: it neither creates nor destroys bandwidth, each lane(pin) still has the same intrinsic bandwidth.

      out of your processor comes N lanes. The mother board manufacturer could have made N /1 slots, or N/2 /2 slots, or N/4 /4 slots, etc. Or any combination.

      What bifurcation does is allow you to override (downards) the decision they made. It is instructing the bios that, the motherboard manufacturer is wrong, its not a single /16 slot, its e.g. 4 /4. This is now just like they had wired 4 connectors.

      if you need /8 pcie, then you can split your /16 in half and use that.

      Note: you do not need to enable bifurcation unless you have a card w/ multiple devics and no bridge.

      If you have a single device on a /8 card, feel free to plug it into the /16 slot with no additional configuration. it will still be /8 speed, and the other lines are unused. But this is part of the standard.

      Bifurcation only really makes sense w/ e.g. NVME carrier cards. Perhaps some network cards.

  8. Thank you for very simple and right on the point explanation
    Can you please clarify can I then use x16 on my Mac Pro 5.1 for ASUS HYPER M.2 PCIe x16 NVMe VROC RAID Card V2. Now I have only one of for NVMe 1TB working and is plugged in x4
    You are first who explained problem, and I was trying to find info for long time
    Thank you in advance and best regards

  9. “Be careful here, bifurcation is supported on server motherboards with modern chipsets”

    As you stated and as indicated by AMD’s own materials, CPU PCIe bifurcation is dependent on the chipset:

    https://i0.wp.com/www.techarp.com/wp-content/uploads/2018/07/AMD-B450-chipset-slide-11.jpg?ssl=1

    But why? The PCIe controller is in the CPU itself. The PCIe bus off the CPU leads directly to the PCIe slot. The chipset isn’t involved at all. However, if I insert the exact same Ryzen 3000 CPU into a motherboard with either a B450 or an X570 chipset, PCIe bifurcation off the CPU will only work on the later motherboard.

    Is this a market segmentation tactic, where AMD disables a feature when paired with a lower end chipset, although theoretically it would work perfectly fine on B450 too?

  10. This board X10DRi-LN4+ supports 2 PCI-E 3.0 x16, 3 PCI-E 3.0 x8, and 1 PCI-E 2.0 x4 (in x8) slot, I’m thinking if it’s possible to make it 7 /x8 for 7 graphic cards with some pice riser cards / extension cables.

Leave a Reply to Triple JJJ Cancel reply

Your email address will not be published. Required fields are marked *

*