在原始PCI框架(“常规PCI”)和PCI-X中,设备对应于“插槽”,每个插槽都具有连接到同一并行总线的自己的连接器。每个插槽都有一个唯一的ID引脚,该引脚在枚举过程中有效。枚举本质上是在询问(对于每个插槽):“嘿,此插槽中有东西吗?” 该设备通过响应该信号将数据驱动到总线上来做出响应。缺乏响应意味着没有设备。
设备也可以是“桥”,这意味着它形成了从属总线。该总线将具有一个单独的ID(从上游分配),并将具有自己的一组插槽,这些插槽将被独立枚举。
PCI-Express(PCIe)完全不同。PCIe并不是真正的总线,就像设备之间共享的资源一样。取而代之的是,每个设备都具有与其上游设备(以及任何下游设备)各自的点对点串行连接,并且如果具有下游设备,则意味着它也充当网桥。将PCIe视为LAN。每个网桥类似于一个交换机,该交换机具有连接到其他设备的一堆端口。其他设备可以是终端设备,也可以是其他交换机(即PCIe桥)。
PCIe的设计方式使其概念框架和地址(以及因此提供给软件的行为)与PCI和PCI-X兼容。虽然实现是完全不同的。例如,在枚举设备时,由于它是点对点的,因此在枚举的每个点上唯一需要确定的问题是“那里有什么?”。由于每个设备都有自己独立的电线集,因此设备ID本质上都是硬编码的(因此,每个网桥(包括顶层“根联合体”,都会告诉每个设备其设备ID是什么))。
在所有情况下,总线/设备/功能的“功能”部分均严格在外围设备中处理。例如,双端口NIC控制器通常具有两种功能,每个端口一个。它们可以独立配置和操作,但是从CPU到功能的数据路径是相同的。