PCIe点对点通信

时间:2016-05-03 11:20:16

标签: pci-e pci-bus

两个独立设备(端点)可以相互通信而Root Complex不参与PCIe(根据PCIe规范是但是如何)?

在内存和IO事务的情况下,一个端点如何知道其他端点的地址?

两个下游端口之间的交换机如何路由数据包?

谢谢和问候

1 个答案:

答案 0 :(得分:3)

是的,这是可能的。

正如你所说,内存写入交易需要"有效"收件人和数据和内存读取事务的地址需要" Vaild"地址和数据"大小"需要创建写入或读取请求。

对于来自下游端口的请求,交换机通过与其" Base和Limit"进行比较,负责路由到任何上游(Root)或下游(对等)。寄存器。

切换路由:

  1. 首先检查自己的栏上的地址,如果匹配,它将消耗。每个交换机都有两个条。

  2. 如果没有,请根据请求类型检查其IO / P-MMIO / NP-MMIO基本和限制寄存器对。

  3. 如果TLP传输到上游端口,并且如果它与其基本和限制寄存器匹配,则它将被处理为"不支持的请求"在二级接口上。 (同样,它将传递到下游端口,而不是它收到的端口,因为它可能是点对点通信)。

  4. 如果在任何接口处不匹配,它将转发到其主接口,因为它不匹配桥和此桥下的任何功能。