接前一篇文章:《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(9)
4.2 PCIe体系结构的组成部件
PCIe总线作为处理器系统的局部总线,其作用与PCI总线类似,主要目的是为了连接处理器系统中的外部设备,当然PCIe总线也可以连接其它处理器系统。在不同的处理器系统中,PCIe体系结构的实现方法略有不同。但是在大多数处理器系统中,都使用了RC、Switch和PCIe-to-PCI桥这些基本模块连接PCIe和PCI设备。在PCIe总线中,基于PCIe总线的设备,也被称为EP(Endpoint)。
4.2.1 基于PCIe架构的处理器系统
在不同的处理器系统中,PCIe体系结构的实现方式不尽相同。PCIe体系结构以Intel的x86处理器为蓝本实现,已被深深地烙下x86处理器的印记。在PCIe总线规范中,有许多内容是x86处理器独有的,也仅在x86处理器的Chipset中存在。在PCIe总线规范中,一些最新的功能也在Intel的Chipset中率先实现。本节将以一个虚拟的处理器系统A和PowerPC处理器为例简要介绍RC的实现,并简单归纳RC的通用实现机制。
1. 处理器系统A
2. PowerPC处理器
PowerPC处理器挂接外部设备使用的拓扑结构与x86处理器不同。在PowerPC处理器中,虽然也含有PCI/PCIe总线,但是仍然有许多外部设备并不是连接在PCI总线上的。在PowerPC处理器中,PCI/PCIe总线并没有在x86处理器中的地位。在PowerPC处理器中,还含有许多内部设备,如TSEC(Three Speed Ethenet Controller)和一些内部集成的快速设备,与SoC平台总线直接相连,而不与PCI/PCIe总线相连。在PowerPC处理器中,PCI/PCIe总线控制器连接在SoC平台总线的下方。
以Freescale(飞思卡尔)的P4080处理器为例,该处理器采用的互连结构与之前的PowerPC处理器有较大的不同。P4080处理器是Freescale第一颗基于E500mc内核的处理器。E500mc内核与之前的E500 V2和V1相比,从指令流水线结构、内存管理和中断处理上说并没有本质的不同。E500mc内核内置了一个128KB大小的L2 Cache,该Cache连接在BSB总线上;而E500 V1/V2内核中并不含有L2 Cache,而仅含有L1 Cache而且与FSB直接相连。在E500mc内核中,还引入了虚拟化的概念。
P4080处理器共集成了8个E500mc内核,并使用CoreNet连接这8个E500mc内核。由CoreNet互连的处理器使用交换结构进行数据交换,而不是基于共享总线结构。在P4080处理器中,一些快速外部设备,如DDR控制器、以太网控制器和PCI/PCIe总线接口控制器也是直接或者间接地连接到CoreNet中,L3 Cache也是连接到CoreNet中。P4080处理器的拓扑结构如上图4-8所示。
P4080处理器的设计重点并不是E500mc内核,而是CoreNet。CoreNet内部由全互连网络组成,其中任意两个端口间的通信并不会影响其它端口间的通信。与MPC8548处理器相同,P4080处理器也使用OceaN(OCeaN是一个基于交叉矩阵的总线结构,连接在OCeaN中的外部设备可以直接通信,而不相互干扰)结构连接PCIe与RapidIO接口。
在P4080处理器中不存在RC的概念,而仅存在PCIe总线控制器,当然也可以认为在P4080处理器中,PCIe总线控制器即为RC。P4080处理器内部含有3个PCIe总线控制器,如果该处理器需要连接更多的PCIe设备时,需要使用Switch扩展PCIe链路。
在P4080处理器中,所有外部设备与处理器内核都连接在CoreNet中,而不使用传统的SoC平台总线进行连接(这种方式也可以被认为是SoC平台总线从共享总线结构升到Switch结构),从而在有效提高了处理器与外部设备间通信带宽的同时,极大降低了访问延时。此外P4080处理器系统使用PAMU(Peripheral Access Management Unit)分隔外设地址空间与CoreNet地址空间。在这种结构下,10GE/1GE接口使用的地址空间与PCI总线空间独立。
P4080处理器使用的PAMU是对MPC8548处理器ATMU的进一步升级。使用这种结构时,外部设备使用的地址空间、PCI总线域地址空间和存储器域地址空间的划分更加明晰。在P4080处理器中,存储器控制器和存储器都属于一个地址空间,即存储器域地址空间。此外这种结构还使用OCeaN连接SRIO(SRIO为串行RapidIO)和PCIe总线控制器,使得在OCeaN中的PCIe端口之间可以直接通信(PCIe端口之间的直接通信过程也成为Peer-to-Peer传送方式),而不需要通过CoreNet,从而减轻了CoreNet的负载。
从内核互连和外部设备互连的结构上看,这种结构具有较大的优势。但是采用这种结构需要使用占用芯片更多的资源,CoreNet的设计也十分复杂。而最具挑战的问题是,在这种结构之下,Cache共享一致性模型的设计与实现。在Boxboro EX处理器系统中,可以使用QPI将多个处理器系统进行点到点连接,也可以组成一个全互连的处理器系统。这种结构与P4080处理器使用的结构类似,但是Boxboro EX处理器系统包含的CPU更多。
更多内容请看下回。