两个独立的设备(端点)可以在没有根联合体参与 PCIe 的情况下相互通信(根据 PCIe 规范是的,但是如何)?
在内存和 IO 事务的情况下,一个端点如何知道另一个端点的地址?
交换机如何在两个下游端口之间路由数据包?
谢谢并恭祝安康
对的,这是可能的。
正如您所说,内存写入事务需要收件人的“有效”地址,而数据和内存读取事务需要创建写入或读取请求所需的“有效”地址和数据“大小”。
对于来自下游端口的请求,交换机通过与其“基本和限制”寄存器进行比较,负责路由到任何上游(根)或下游(点对点)。
交换机路由:
先检查一下自己的地址吧,如果匹配,就会消费。每个开关中都有两个条形图。
如果不是,请根据请求类型检查其 IO/P-MMIO/NP-MMIO Base 和 Limit Register 对。
如果 TLP 传输到上游端口并且匹配到其基本和限制寄存器,它将在辅助接口上作为“不支持的请求”处理。(同样,它将传递到下游端口,而不是它接收到的端口,因为它可能是对等通信)。
如果在任何接口不匹配,它将转发到其主接口,因为它不匹配网桥和该网桥下的任何功能。