为什么 PCIe 设备不能共享通道?

为什么 PCIe 设备不能共享通道?

在较旧的芯片组上,不可能在 PEG 插槽中安装专用显卡并同时启用集成图形设备 (IGD)。

在网上查找后,我发现这是因为它们“共享相同的总线通道”,所以要么是其中之一,要么是另一个,并且如果 BIOS 在 PEG 插槽中检测到卡,它就会禁用 IGD。

我只是想知道为什么 PCIe 设备不能共享相同的通道。据我了解,在旧 PCI 标准中,所有设备都共享相同的通道,那么为什么 PCIe 无法做到这一点?

我知道 PCIe 是串行的,并在交换机和“终端设备”之间创建点对点连接,但我不明白为什么如果 IGD 和专用卡共享相同的通道,它们为什么不能一起工作?

PCIe 设计的哪部分可以防止这种情况发生?

谢谢。

答案1

我只是想知道为什么 PCIe 设备不能共享相同的通道。

PCIe 使用点对点拓扑,因此每个通道需要两端各有一个设备。如果不是这样,它就会像原始 PCI 一样 - 普通 PCI 的一个问题是,当一个设备在总线上通信时,其他设备必须等待。

答案2

这是由于电气原因造成的。PCI 的速度受限于总线电压在每个时钟周期稳定所需的时间。问题是,每次总线变为高电平或低电平时,该转换都必须传播到总线上的所有其他设备,这需要相当长的时间,因为转换实际上会反弹相当长的时间,并反映在迹线上任何位置的每个“阻抗不连续性”上。这包括将总线驱动到 Vcc 或 GND 的低阻抗引脚、每个其他连接设备的高阻抗引脚、任何未占用的 PCI 连接器的引脚等。这需要相当多的纳秒才能平静下来,因此对接口的运行速度设置了一个严格的上限。

PCI Express 的设计目标是运行速度更快,而这部分要求从共享并行总线转向专用点对点链路,该链路在构建时考虑了适当的高频设计。这意味着受控阻抗传输线的一端有一个阻抗匹配的发射器,另一端有一个阻抗匹配的接收器,并配有适当设计的受控阻抗连接器以最大限度地减少反射。再加上嵌入式时钟,可以消除不同“通道”之间的时间延迟差异问题,由此产生的接口可以提供数量级更大的带宽。例如,以 66 MHz 运行的 32 位 PCI 提供 2.128 Gbps,这与 PCIe gen 1 单通道提供的 2 Gbps 大致相同。如今,PCIe gen 4 的 16 个通道提供 256 Gbps,这一数字只有通过现代极高性能串行链路才有可能实现。

相关内容