首页 理论教育PCIExpress非透明桥片数据传递

PCIExpress非透明桥片数据传递

【摘要】:非透明桥发现这个数据请求发向BAR2地址空间,则接收这个数据请求,并在桥片中暂存这个数据请求。图2-18 通过非透明桥21555进行数据传递非透明桥21555除了可以支持存储器到存储器之间的数据传递,还支持PCI总线域到存储器域,以及PCI总线域之间的数据传递,此外非透明桥21555还可以通过I2O和Doorbell寄存器进行Primary PCI总线与Secondary PCI总线之间的中断信号传递。非透明桥有效解决了使用PCI总线连接两个处理器存在的问题,因而得到了广泛的应用。

下面以图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 Transla-ted 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地址空间,则接收这个数据请求,并在桥片中暂存这个数据请求。(www.chuimin.cn)

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

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

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

978-7-111-29822-9-Part01-37.jpg

图2-18 通过非透明桥21555进行数据传递

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

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