PCIe体系结构的组成部件
PCIe总线作为处理器系统的局部总线,其作用与PCI总线类似,主要目的是为了连接处理器系统中的外部设备,当然PCIe总线也可以连接其他处理器系统。 在大多数处理器系统中,都使用了RC、Switch和PCIe-to-PCI桥这些基本模块连接PCIe和PCI设备。在PCIe总线中,基于PCIe总线的设备,也被称为EP(Endpoint)。
基于PCIe总线的通用处理器结构
PCIe总线控制器即为RC(Root Complex).如果该处理器需要连接更多的PCIe设备时,需要使用Switch扩展PCIe链路。
在不同的处理器系统中,RC的实现有较大差异。PCIe总线规范并没有规定RC的实现细则。在有些处理器系统中,RC相当于PCIe主桥,也有的处理器系统也将PCIe主桥称为PCIe总线控制器。而在x86处理器系统中,RC除了包含PCIe总线控制器之外,还包含一些其他组成部件,因此RC并不等同于PCIe总线控制器。
如果一个RC中可以提供多个PCIe端口,这种RC也被称为多端口RC。如MPC8572处理器的RC可以直接提供3条PCIe链路,因此可以直接连接3个EP。如果MPC8572处理器需要连接更多EP时,需要使用Switch进行链路扩展。
上图所示的结构将PCIe总线端口、存储器控制器等一系列与外部设备有关的接口都集成在一起,并统称为RC。RC具有一个或者多个PCIe端口,可以连接各类PCIe设备。PCIe设备包括EP(如网卡、显卡等设备)、Switch和PCIe桥。PCIe总线采用端到端的连接方式,每一个PCIe端口只能连接一个EP,当然PCIe端口也可以连接Switch进行链路扩展。通过Switch扩展出的PCIe链路可以继续挂接EP或者其他Switch。所谓的PCIe Bridge,用以将PCIe总线转换成PCI总线
当前4颗GPU环境的架构:
|
|
|
|
上面的GPU拓扑可以看出来GPU0和GPU1以及GPU2和GPU3分别处于一个switch
和PCIe host bridge
上,也即GPU0和GPU1(GPU2和GPU3)可以通过直连的switch
相互通信,而GPU0和GPU2(GPU3)通信均需要经过一个PCIe Host Bridge
个人理解:
- SOC相当于是通过物理CPU之间的SMP Link通信的(该种方式跨了CPU核心);
- PHB相当于是通过PCIe host bridge 的PCIe设备下的EP和Switch下的EP进行互联的结构
- PXB相当于是同一颗物理CPU下的多个Switch下的EP互联
- PIX相当于是一个Switch内部的多个EP互相连接(效率最高)
参考文章