支持subtractive功能的PCI-PCI桥工作原理

主要涉及两个概念:Bridge 和subtractive译码。还未详细修改,几年前的东西了,错误在所难免。

 

Pci框架概括

P2P 桥1的primary接口连接在PCI 总线0上 , P2P 桥1 的secondary接口连接到PCI 总线1 。P2P 桥2的primary接口连接在PCI 总线1 上, P2P 桥2 的secondary接口连接在PCI总线2 。桥后面(secondary)的总线编号总是等于桥的编号,系统主桥的编号为0 。

 

P2P bridge的结构

P2P bridge的内部结构大体如下,P2P bridge允许在桥一侧的master与在桥另一侧的目标设备(target)之间传输数据。P2P桥的结构如下。由以下几个模块组成:配置寄存器、primary的master接口、secondary的target接口、primary的target接口,secondary的master接口,还包括可选的上/下行的数据缓冲区。

下图可以看到一个bus总线的target接口连接到下个bus总线上的master接口。而数据通道之间的模块主要处理两bus间必要的地址传输和数据缓冲。

 

p2p bridge的功能:

 P2P 桥是为了扩充PCI 总线的负载能力。具体的说,P2P 桥的作用是协调两条PCI 总线之间的交通,P2P 桥必须具有如下的功能:

(1) 监视桥两侧PCI 总线上起动的所有 (transaction),并决定是否将(transaction)通过桥传送至另一条PCI 总线。当桥确定一条总线上的(transaction)需要传送到另一条总线上时,必须充当master 的(transaction)目标,以及充当目标总线的新(transaction)的主设备。;对于(transaction)的master 和target 来说,驻留于(transaction)的起始总线和目标总线之间的P2P 桥是不可见的。

(2) 桥监视第二总线上的SERR # (system error) , 如果采样有效, 则将其传送至第一总线的SERR # 。

(3) 桥监视第一总线上的RST # ,如果采样有效,则将其传送到第二总线上的RST# 。

 

 

关于decode的过程

资源的仲裁和地址译码

系统要合理的分配资源给pci设备使得所有pci设备功能不会去使用其他设备使用的资源,使得各个设备功能正确运行。这个过程就涉及到资源仲裁。为了提供正确的资源仲裁,操作系统必须知道:1、pci设备在使用的资源;2、pci设备通过地址传输调用资源的方法。而后者指的过程就是地址译码。

decode window:

the firmware or operating system definesthe address range for the decode windows

PCI-to-PCIbridges use decode windows of two types: decodewindows used to access I/O locations of devices and decode windows used toaccess memory locations of devices.

例如下图的地址队列。从primary指向secondary的白色地址部分可以认为是一个bridge window。

subtractive decode:

如果bridge支持subtractive decode,当在primary面没有找到另外的相应设备,则4个周期的超时之后,认为在当前总线上没有找到相应设备,产生从primary面到secondary面的响应。如果此bridge不支持subtractive decode的功能,则bridge不会响应并且不会传输数据,而是调用中断提示错误。

positive decode:   

如果地址译码过程中,桥会将primary侧的译码请求通过桥的windows传送到secondary侧,而此译码地址正好在window规定的范围中。

negative decode:   

在bridge的地址window外从secondary面到primary面的地址译码。这种译码发生在bridge的secondary面的设备想要访问primary面的设备的时候,而传输的地址数据不在window范围中定义。如果地址在window中范围内,则允许同一总线中的对应设备处理(transaction)--- peer-to-peer transactions而不经过bridge。如图5

图4 Addressdecoding types

图 5 Secondaryside bridge rules

 

PCI-PCI Bridge的类型

Windows系统中支持3种类型的p2pbridge。这些类型是:

1、  只支持subtractive的pci-pcibridge

2、  只支持positive的p2p bridge

3、  Subtractive类型p2p bridge

 

Subtractive-onlyPCI-to-PCI bridge

这种类型的bridge没有windows的概念的pci-pci bridge。只能实现通过subtractive decode方式访问pci bridge 的secondary侧的地址资源。不支持传输(transactions)的开始和终止都在secondary侧的pci总线上。点对点(peer to peer)的传输(transactions)是不支持的。

注:此种类型的bridge在pci-pci bridge的spec中没有定义。

Positive-only PCI-to-PCIbridge

这种类型的bridge只能通过positive decodes来实现源自桥的primary侧的传输。Subtractive decode是不支持的。由于此种桥具有bridge window,所以能实现点对点(peer to peer)的传输(transactions)。同时还能支持negative decode

由于此类桥不支持subtractive decodes ,所以positive-only p2p bridge 不能寻址secondary侧的设备。

Subtractive PCI-to-PCIbridge

这种类型的bridge具有bridge windows的功能,而且支持positive 、subtractive decode。如下图。因为此类桥有positive decode window,可以通过window 实现在桥的secondary侧的peer-peer的transactions。同时也可以实现negative decode过程。

由于这类bridge支持subtractive decodes,那么就能支持桥的secondary侧的legacy设备的寻址。

SubtractivePCI-to-PCI bridge

 

参考资料:

1、  PCI-to-PCI BridgeArchitecture Specification, revision 1.1

2、  Ich6 pci-pci bridge部分

3、  Supporting Subtractive PCI-to-PCI Bridges in Windows

 注:所有图片均来自网络。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值