2.2 HOST主桥

本文详细介绍了PowerPC处理器中HOST主桥的工作原理,以MPC8548为例,阐述了PCI设备配置空间访问机制、存储器域到PCI总线域的地址转换过程,以及PCI总线域到存储器域的转换。文中提到了Outbound和Inbound寄存器组的角色,解释了如何通过这些寄存器进行地址转换和DMA操作。同时,对比了x86处理器中的HOST主桥实现方式,指出两种处理器在PCI配置空间访问和地址转换上的差异。
摘要由CSDN通过智能技术生成

本节以MPC8548处理器为例说明HOST主桥在PowerPC处理器中的实现机制,并简要介绍x86处理器系统使用的HOST主桥。

MPC8548处理器是Freescale基于E500 V2内核的一个PowerPC处理器,该处理器中集成了DDR控制器、多个eTSEC(Enhanced Three-Speed Ethernet Controller)PCI/PCI-XPCIe总线控制器等一系列接口。MPC8548处理器的拓扑结构如22所示。

  2.2 <wbr>HOST主桥

 

 如上图所示,MPC8548处理器的L1 CacheE500 V2内核中,而L2 CacheFSB[1]直接相连,不属于E500内核。值得注意的是有些高端PowerPC处理器的L2 Cache也在CPU中,而L3 CacheCCB总线直接相连。

MPC8548处理器中,所有外部设备,如以太网控制器、DDR控制器和OCeaN连接的总线控制器都与SoC平台总线[2]直接连接。而SoC平台总线通过Cache共享一致性模块与FSB连接。

MPC8548处理器中,具有一个32位的PCI总线控制器、一个64位的PCI/PCI-X总线控制器,还有多个PCIe总线控制器。MPC8548处理器使用OCeaN连接这些PCIPCI-XPCIe总线控制器。在MPC8548处理器系统中,PCI设备进行DMA操作时,首先通过OCeaN,之后经过SoC平台总线到达DDR控制器。

OCeaNMPC8548处理器中连接快速外设使用的交叉互连总线,OCeaN不仅可以连接PCIPCI-XPCIe总线控制器,而且可以连接RapidIO[3]总线控制器。使用OCeaN进行互连的总线控制器可以直接通信,而不需要通过SoC平台总线。

如来自HOST主桥1的数据报文可以通过OCeaN直接发向HOST主桥2,而不需要将数据通过SoC平台总线,再进行转发,从而减轻了SoC平台总线的负担。OCeaN部件的拓扑结构如23所示。

2.2 <wbr>HOST主桥

MPC8548处理器中,有两个HOST主桥,分别是HOST主桥1HOST主桥2,其中HOST主桥1可以支持PCI-X总线,而HOST主桥2只能支持PCI总线。此外该处理器还含有多个PCIe总线控制器。

本节仅介绍HOST主桥,即MPC8548处理器中的PCI总线控制器,而不介绍该处理器的PCIe总线控制器。因为从软件层面上看,MPC8548处理器的PCIe总线控制器与PCI/PCI-X总线控制器功能类似。

MPC8548处理器即可以作为PCI总线的HOST处理器,也可以作为PCI总线的从设备,本节仅讲述MPC8548处理器如何作为PCI总线的HOST处理器管理PCI总线树,而并不关心MPC8548处理器作为从设备的情况。

MPC8548处理器的HOST主桥中,定义了一系列与系统软件相关的寄存器。本节将通过介绍这些寄存器,说明这个HOST主桥的功能。为节约篇幅,本节仅介绍与HOST主桥1相关的寄存器,HOST主桥2使用的寄存器与HOST主桥1使用的寄存器类似。

2.2.1 PCI设备配置空间的访问机制

PCI总线规定访问配置空间的总线事务,即配置读写总线事务,使用ID号进行寻址。PCI设备的ID号由总线号(Bus Number)、设备号(Device Number)和功能号(Function Number)组成。

其中总线号在HOST主桥遍历PCI总线树时确定。PCI总线可以使用PCI桥扩展PCI总线,并形成一颗PCI总线树。在一颗PCI总线树上,有几个PCI(包括HOST主桥),就有几条PCI总线。在一颗PCI总线树中,总线号由系统软件决定,通常与HOST主桥直接相连的PCI总线编号为0,系统软件使用DFS(Depth-First Search)算法扫描PCI总线树上的所有PCI总线,并依次进行编号。

一条PCI总线的设备号由PCI设备的IDSEL信号与PCI总线地址线的连接关系确定,而功能号与PCI设备的具体设计相关。在一个PCI设备中最多有8个功能设备,而且每一个功能设备都有各自的PCI配置空间,而在绝大多数PCI设备中只有一个功能设备。HOST主桥使用寄存器号,访问PCI设备配置空间的某个寄存器。

MPC8548处理器的HOST主桥中,与PCI设备配置空间相关的寄存器由CFG_ADDRCFG_DATAINT_ACK寄存器组成。系统软件使用CFG_ADDRCFG_DATA寄存器访问PCI设备的配置空间,而使用INT_ACK寄存器访问挂接在PCI总线上的中断控制器的中断向量,HOSTHOST3个寄存器的地址偏移和属性如21所示。

 

21 PCI总线配置寄存器

Offset

寄存器

属性

复位值

0x0_8000

CFG_ADDR

可读写

0x0000-0000

0x0_8004

CFG_DATA

可读写

0x0000-0000

0x0_8008

INT_ACK

只读

0x0000-0000

 

MPC8548处理器中,所有内部寄存器都使用存储器映射方式进行寻址,并存放在以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值