两个独立设备(端点)可以相互通信而Root Complex不参与PCIe(根据PCIe规范是但是如何)?
在内存和IO事务的情况下,一个端点如何知道其他端点的地址?
两个下游端口之间的交换机如何路由数据包?
谢谢和问候
答案 0 :(得分:3)
是的,这是可能的。
正如你所说,内存写入交易需要"有效"收件人和数据和内存读取事务的地址需要" Vaild"地址和数据"大小"需要创建写入或读取请求。
对于来自下游端口的请求,交换机通过与其" Base和Limit"进行比较,负责路由到任何上游(Root)或下游(对等)。寄存器。
切换路由:
首先检查自己的栏上的地址,如果匹配,它将消耗。每个交换机都有两个条。
如果没有,请根据请求类型检查其IO / P-MMIO / NP-MMIO基本和限制寄存器对。
如果TLP传输到上游端口,并且如果它与其基本和限制寄存器匹配,则它将被处理为"不支持的请求"在二级接口上。 (同样,它将传递到下游端口,而不是它收到的端口,因为它可能是点对点通信)。
如果在任何接口处不匹配,它将转发到其主接口,因为它不匹配桥和此桥下的任何功能。