为什么您的 CPU 设置了系统中可能的最大 PCI 通道数?即使 DMA 很普遍

Why is the max number of PCI lanes possible in your system set by your CPU? Even with DMA being widespread

有几个场景我很好奇:

  1. 通过 PCI 总线从 GPU1 内存传输到 GPU2 内存
  2. 使用 DMA 从 GPU1 传输到主存
  3. 不使用 DMA 从 GPU1 传输到主存

是否所有这些场景都受限于 CPU 支持的 PCIe 通道总数?对于Intel系统,ARM系统?

Will all these scenarios be limited to the total number of PCIe lanes supported by the CPU?

PCIe 不完全是一种总线——例如,肯定不像 PCI 或 ISA 那样。它是外围设备和 PCIe 根复合体(通常是 CPU 本身)之间的一组点对点连接。任何给定的根联合体都将支持一些固定数量的 PCIe 通道,每个通道都连接到一个设备。 (通常成组。例如,通常将 16 个 PCIe 通道连接到大多数 GPU。)

所以,是的。 PCIe 设备之间或设备与内存之间的任何通信都必须通过 CPU,并且将受到设备(或多个设备)将它们连接到总线主机的 PCIe 通道数量的限制。