什么是PCIe Bifurcation?
PCIe Bifurcation(通道拆分,也称分叉)是一种将单个PCIe物理插槽的通道在电气层面分割为多个独立通道组的硬件配置技术。以最常见的x16插槽为例,在支持Bifurcation的主板上,一个x16插槽可以拆分为两个x8通道、一个x8加两个x4通道,甚至四个x4通道,从而让多个设备共享同一个物理插槽的带宽资源。PCI-SIG标准将lane数限制为2的幂(x1、x2、x4、x8、x16、x32),因此不存在x10或x12等非标准拆分模式。

这一技术的核心价值在于不改变总通道数的前提下提升系统扩展能力。例如在工控主板上原本只有一个x16插槽,通过Bifurcation可以同时连接两块NVMe SSD(各占x4)和一张千兆网卡(占x8),最大化利用PCIe资源。
PCIe Bifurcation的三种实现方式
根据CPU和平台的不同,PCIe Bifurcation有三种实现方式:Hard Strap(硬件硬连线)、Soft Strap(软配置)和Wait For BIOS(BIOS运行时配置)。
1. Hard Strap(硬件硬连线)
Hard Strap是桌面级CPU最常用的Bifurcation实现方式,通过CPU引脚上的CFG信号电平决定通道拆分模式。以Intel第7代Core处理器为例,CFG[6:5]信号组合决定PCIe Root Port的拆分方式:CFG[6:5]=11对应1个x16通道;CFG[6:5]=10对应2个x8通道;CFG[6:5]=00对应1个x8加2个x4通道(数据来源:Intel 7代i5 Datasheet)。主板厂商根据设计的插槽布局在PCB布线时通过上拉或下拉电阻固定这些引脚的电平,一旦确定便无法通过软件修改,除非重新设计PCB布线。
典型应用场景:
- 提供单显卡插槽的主板:CFG[6:5]置高电平(11),x16直连显卡。
- 提供双显卡插槽的主板:CFG[6:5]置一高一低(10),两个插槽各分配x8通道。
- 集成M.2 NVMe插槽的主板:CFG[6:5]置低电平(00),x8分配给显卡,两个x4分配给M.2 SSD。
2. Soft Strap(软配置)
Soft Strap主要应用于PCH(Platform Controller Hub)下的PCIe Root Port,其Bifurcation配置信息存储在BIOS镜像文件的Descriptor区域中,可通过工具修改。修改后直接烧录BIOS即可生效,无需修改BIOS程序代码。主板厂商在生产阶段根据PCB设计利用软件写入相应的配置值,用户在BIOS界面中通常看不到这些选项。
3. Wait For BIOS(BIOS运行时配置)
Wait For BIOS是服务器级CPU(如Intel Xeon至强系列)采用的Bifurcation方式。CPU提供大量的PCIe通道(如Xeon E5 v4提供40条通道),在系统启动时通过BIOS对PCIe Root Complex的寄存器进行设置来确定通道宽度。在Intel Xeon平台上,可通过pcie_iou_bif_ctrl寄存器的iou_start_bifurcation字段进行配置(资料来源:Intel Xeon E5 v4 Datasheet Volume 2)。
在Dell PowerEdge R730等服务器上,BIOS设置中的Integrated Devices → Slot Bifurcation选项提供了x4+x4、x8+x8和x4+x4+x4+x4等多种拆分模式。这意味着用户可以在不更换硬件的情况下,根据实际需求动态调整PCIe通道分配。
使用lspci和setpci命令可以查看当前系统的Bifurcation配置状态:
# 查看PCIe Root Port的Bifurcation配置(以Xeon E5 v4平台为例)
$ setpci -s 00:01.0 190.B
01 # x8模式
$ setpci -s 00:02.0 190.B
04 # x16模式
$ setpci -s 00:03.0 190.B
03 # x8x8拆分模式
BIOS中配置PCIe Bifurcation的通用步骤
在支持Bifurcation的消费级和工控主板上,BIOS/UEFI设置通常遵循以下步骤(以AMI BIOS为例):
- 启动时按Del或F2进入BIOS设置界面。
- 导航至Advanced或Chipset Configuration菜单。
- 查找PCI Subsystem Settings或PCIe Configuration/Bifurcation相关选项。
- 选择目标PCIe插槽(如PCIe x16 Slot 1)。
- 选择拆分模式:x8x8(两个x8)、x8x4x4(一个x8加两个x4)、x4x4x4x4(四个x4)等。
- 按F10保存更改并退出。
- 进入操作系统后通过lspci -vvv命令验证拆分结果。
不同品牌主板的具体菜单位置有所不同:ASUS通常在AI Tweaker或Advanced菜单中;技嘉在Peripherals菜单中;超微(Supermicro)在Advanced → PCIe Configuration中。工控主板制造商常将这些选项归类在Chipset Configuration下。
PCIe Bifurcation vs PCIe Switch
除了Bifurcation外,PCIe Switch(PCIe交换机)是另一种实现通道扩展的技术路径,两者有本质区别:
| 对比项 | PCIe Bifurcation | PCIe Switch(交换机) |
|---|---|---|
| 实现层级 | CPU/Root Complex物理层拆分 | 独立桥接芯片(如Broadcom PEX8747) |
| 成本 | 无额外硬件成本 | 需要专用交换机芯片,成本较高 |
| 延迟 | 无额外延迟 | 增加少量延迟(约150-300ns) |
| 对主板的依赖 | 需要主板BIOS/硬件支持 | 不依赖主板支持,即插即用 |
| 扩展灵活性 | 受限于CPU提供的总通道数 | 可扩展更多设备,支持设备间直接通信(Peer-to-Peer) |
| 带宽分配 | 固定拆分(启动时确定) | 动态分配,空闲设备可让出带宽 |
PCIe Switch方案在HPC(高性能计算)场景中较为常见,例如通过交换机连接GPU和InfiniBand网卡实现设备间直接数据传输(P2P DMA),但成本较高且增加延迟是其劣势。
在工控领域的典型应用场景
多路NVMe SSD扩展
工控设备需要高速存储时,一张x16转4路M.2 NVMe的扩展卡需要主板支持x4x4x4x4 Bifurcation,使每个M.2插槽独立获得x4通道带宽。如果主板不支持Bifurcation,则需选用内置PCIe交换机芯片(如ASM1184E)的扩展卡,但成本会明显增加。
多设备组合扩展
在工控主机中,当PCIe插槽数量有限时,Bifurcation可以实现一槽多用:x16插槽拆分为x8+x4+x4模式,x8通道连接图像采集卡,一个x4通道连接NVMe存储,另一个x4通道连接千兆网卡,满足工控视觉检测系统对采集、存储和网络通信的综合需求。
服务器虚拟化环境
在单路工控服务器中,通过BIOS将x16拆分为x8x8,可同时安装两张高性能计算卡或AI推理卡,满足工业边缘计算场景对算力的需求。
使用PCIe Bifurcation的注意事项
- 主板支持是前提:并非所有主板都支持Bifurcation,需查阅主板规格或BIOS菜单确认。廉价消费级主板通常不提供Bifurcation选项。
- 拆分卡的兼容性:使用PCIe拆分卡时需确认拆分模式与主板支持的Bifurcation模式一致。例如4路NVMe卡需要x4x4x4x4模式,而双路卡需要x8x8或x8x4x4。
- CPU通道数的限制:Bifurcation只能拆分CPU已经提供的通道,无法突破总通道数上限。例如CPU只有16条通道,拆分为2个x8后总共仍是16条通道。
- PCIe Gen版本匹配:拆分卡、主板插槽和设备的PCIe代次需匹配,否则会以最低代次运行。例如Gen3的拆分卡插入Gen4的插槽,只能以Gen3速度运行。
- 时钟信号分配:对于需要独立时钟的PCIe设备,拆分卡需提供Clock Buffer(时钟缓冲器),否则下游设备可能无法被正确识别。
- 物理尺寸与电气宽度:x16物理插槽即便拆分为x8x8,两个分插槽的物理尺寸通常仍为x16,但每个接口实际只传输x8的电气信号。
总结
PCIe Bifurcation是一项在不增加硬件成本的前提下提升PCIe扩展灵活性的关键技术。它在工控场景中尤其重要——当系统插槽数量有限、而需要连接NVMe存储、采集卡和网卡等多种设备时,合理的Bifurcation配置可以显著提高系统的集成度和性能。相比PCIe Switch方案,Bifurcation零延迟、零额外成本的特性使其成为工控主板扩展的首选方案。选择支持Bifurcation的工控主板和配套拆分卡,是在PCIe资源有限条件下实现多设备集成的有效路线。