Answers:
首先,在典型的现代(Intel 1)CPU 上实际上有两种类型的PCIe通道:来自CPU的专用通道和芯片组提供的通道。
主流消费者CPU有16个专用通道,通常用于图形,但也可能分为两个或更多插槽。
芯片组还能够提供额外的通道,通过DMI(在Intel板上)与CPU通信。提供的通道数量各不相同,但与其他板载连接共享带宽,例如USB(3.x)和SATA端口。
例如,H170芯片组提供从CPU 16个泳道加上最多 16个通道从芯片组:英特尔H170框图2
从2011年到2015年,通常会看到来自CPU的16个PCIe通道和来自芯片组的8个通道,芯片组通道有时带宽较低(PCIe 3.0对2.0)。
从2015年(Skylake)到现在,已经推出了更新版本的DMI以及CPU和芯片组之间HSIO通道的明确概念,使得最大芯片组通道数更加明确(每个PCIe通道使用一条HSIO通道) - 但是这是很少达到的,因为大多数人都会拥有相当数量的USB,SATA,以太网等端口 - 它们使用相同的HSIO通道。
因此,基本上,几乎每个电路板都应该有来自CPU的16个通道,主板提供不同的附加通道。
PCIe是点对点的,从CPU到插槽(或芯片组到插槽)的通道,PCI不是 - 而是一个共享总线。实际上,这意味着每个PCI插槽在相同的物理线路上共享信令时间,并且在整个系统中通常只有一个PCI总线连接到PCI插槽3。
在现代系统中,PCI总线由PCIe到PCI桥提供。这通常独立于任何用户可见的PCIe通道 - 它不使用16个CPU提供的通道中的任何一个,尽管它可能需要一个HSIO通道在幕后。
就在2012年,该芯片组在多达7系列(Ivy Bridge)芯片组的选定SKU中提供了直接PCI支持而无需外部桥接。完全放弃支持的举措是使用8系列(Haswell)芯片组,尽管仍然支持PCI Legacy Mode在PCIe根端口上进行传统PCI地址解码(参见Intel 8系列PCH数据表,第5.2.2节) 。
1我相信AMD / Ryzen做了类似的事情,但我对它并不熟悉。
2故意不嵌入图像,因为许可证不清楚,可能不允许在CC-BY-SA下重新分发。
3许多内部组件仍然通过PCI总线连接,只是没有通过插槽暴露。实际上,可以将每个PCIe通道作为单独的PCI总线,因为信令是兼容的。但我们只对连接到插槽的那些总线感兴趣。
这个答案适用于英特尔系统,我不确定AMD方面的情况是否有所不同。
在较旧的系统上,PCI总线直接连接到ICH / PCH。更现代的PCH芯片没有内置PCI支持。因此,PCH上的一个PCIe通道用于驱动PCI插槽的PCIe到PCI桥接芯片。通常,所有PCI插槽都将位于同一总线上,并将共享PCI总线带宽。
此外,在某些情况下,驱动PCI插槽的相同PCI总线可以与板载外围设备共享,尤其是在旧系统或具有诸如火线等传统接口的板载支持的系统上。
最后,通过ICH / PCH连接的所有内容(通常包括板载SATA,板载以太网,较小的PCIe插槽和任何PCI插槽)共享到CPU / MCH / IOH的链接。此链接具有较大但不限制的带宽,并且可能会引起争议。