《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(27)

接前一篇文章:《PCI Express体系结构导读》随记 ------ 第I篇 第2章 PCI总线的桥与配置(26)

2.5 非透明PCI桥

本回将结合实例说明直接地址翻译过程。

2.5.2 通过非透明桥片进行数据传递

下文以图2-16中处理器x访问处理器y存储器地址空间的实例,说明非透明桥21555如何将PCI总线x域与PCI总线y域联系在一起。

处理器x需要访问处理器y的存储器空间之前,需要做一些必要的准备工作。具体如下:

(1)首先确定由哪一个BAR寄存器空间映射处理器y的存储器地址空间。本节假定使用BAR2寄存器映射处理器y的存储器地址空间。

(2)BAR2寄存器使用Downstream Memory 2 Translated Base寄存器,将来自Primary PCI总线的访问转换为对Secondary PCI总线地址空间的访问。其中Downstream Memory 2 Translated Base寄存器可以由处理器x或者处理器y根据需要进行设置。

假定处理器x和y的HOST主桥使用"直接相等"策略,建立存储器域与PCI总线域间的映射;而处理器x使用BAR2地址空间访问处理器y存储器空间0x1000-000~0x1FFF-FFFF处理器x的系统软件事先将BAR2寄存器设置完毕。处理器x访问处理器y的这段存储器空间的步骤如下,读者可参考图2-18理解这一步骤。

(1)首先处理器x访问在处理器x域中、且与非透明桥的BAR2空间相对应的存储器地址空间

(2)HOST主桥将进行存储器域到PCI总线域的转换 ,并将这个请求发送到Primary PCI总线上

(3)非透明桥 发现这个数据请求发向BAR2地址空间,则接收 这个数据请求,并在桥片中暂存这个数据请求

(4)非透明桥根据Downstream Memory 2 Translated Base寄存器的内容 ,按照图2-17所示的规则进行地址转换。假设Downstream Memory 2 Translated Base寄存器的基地址被预先设置为0x10000000,大小为256MB(这个物理地址属于处理器y的主存储器地址空间)。

(5)经过非透明桥的转换后,这个数据请求将穿越非透明桥,从Primary PCI总线域进入Secondary PCI总线域,然后访问处理器y的基地址为0x10000000的存储器区域;

(6)处理器y的HOST主桥接收这个存储器访问请求,并最终将数据请求发向处理器y的存储器

非透明桥21555除了可以支持存储器到存储器之间的数据传递 ,还支持PCI总线域到存储器域 、以及PCI总线域之间的数据传递,此外非透明桥21555还可以通过I2O和Doorbell寄存器进行Primary PCI总线与Secondary PCI总线之间的中断信号传递。本节对这部分内容不做进一步介绍。

非透明桥有效解决了使用PCI总线连接两个处理器存在的问题 ,因而得到了广泛的应用。在PCIe体系结构中,也存在非透明PCI桥的概念。如在PLX的Switch芯片中,各个端口都可以设置为非透明模式。

至此,"2.5 非透明PCI桥"就全部讲解完了。

2.6 小结

本章介绍了在PCI总线中使用的桥 ,包括HOST主桥PCI桥 ,并较为详细地介绍了如何使用这些桥访问PCI设备的配置空间

其中HOST主桥并不在PCI总线规范的约束范围内,不同的处理器可以根据需要设计出不同的HOST主桥。本篇更加侧重介绍PowerPC处理器使用的HOST主桥,在该主桥的设计中,提出了许多新的概念,并极大促进了PCI总线的发展,在这个桥片中出现的许多新的思想被PCI V3.0总线规范采纳。

在PowerPC处理器的HOST主桥中,明确了存储器域PCI总线域 的概念。而区分存储器域与PCI总线域也是本章的书写重点 ,本书将始终强调这两个域的不同。有些处理器系统并没有明确区分这两个域的差别,因此许多读者忽略了PCI总线域的存在,并错误地认为PCI总线域是存储器域的一部分。

在本篇中,还重点介绍了PCI桥的实现机制。在许多较为简单处理器系统中,并不包含PCI桥,但是读者仍然需要深入理解PCI桥这一重要概念。深入理解PCI桥的运行机制,是理解PCI体系结构的重要基础。

相关推荐
憧憬一下12 天前
深入解析PCIe设备事务层与配置过程
arm开发·嵌入式硬件·嵌入式·pcie·linux驱动开发
FPGA技术实战20 天前
Xilinx PCIe高速接口入门实战(一)
fpga开发·pcie
北冥有鱼被烹1 个月前
微知-lspci访问到指定的PCIe设备的几种方式?(lspci -s bus;lspci -d devices)
pcie
北冥有鱼被烹1 个月前
微知-如何通过lspci指定某个deviceid查看pcie设备?(lspci -d 15b3:和lspci -d :1021 )
linux·pcie
9527华安2 个月前
FPGA视频GTH 8b/10b编解码转PCIE3.0传输,基于XDMA中断架构,提供工程源码和技术支持
fpga开发·音视频·pcie·gth·xdma·pcie3.0
9527华安2 个月前
FPGA实现PCIE视频采集转USB3.0输出,基于XDMA+FT601架构,提供3套工程源码和技术支持
fpga开发·pcie·xdma·usb3.0·ft601
9527华安2 个月前
FPGA实现PCIE与电脑端QT上位机双向数据传输,基于XDMA中断模式,提供3套工程源码和技术支持
qt·fpga开发·电脑·pcie·xdma
9527华安2 个月前
FPGA实现PCIE采集电脑端视频转SFP光口UDP输出,基于XDMA+GTX架构,提供4套工程源码和技术支持
fpga开发·udp·以太网·pcie·xdma
9527华安2 个月前
电脑端视频通过PCIE到FPGA端图像缩放转UDP网络视频输出,基于XDMA+PHY芯片架构,提供3套工程源码和技术支持
图像处理·fpga开发·udp·pcie·xdma·图像缩放
9527华安3 个月前
FPGA实现PCIE视频采集转SDI输出,基于GTX+XDMA中断架构,提供2套工程源码和技术支持
qt·fpga开发·pcie·xdma·sdi