昨天我们讲了PCIe系统里的报文顺序规则,其实在整条报文的传递路径上,对于报文顺序影响最大的就是PCIe Switch(再回忆一下,PCIe Switch内部可以看作是多个PCI-PCI的桥组成的)。事实上,PCI系统里的顺序规则主要就是针对PCI桥的。

因此,PCIe Switch的报文传递规则非常重要,今天我们分析一下。

当两个报文进入到一个switch的输入端口时(此时这个端口我们称之为ingress port),通常都是进入到switch内部的同一个输入队列(ingress queue),这个输入队列是遵循顺序规则的。(注意:我们说是通常情况下,例外是什么呢?当这个端口具有两个虚拟通道(virtual Channel)时,是有两个队列的。虚拟通道简单理解就是有两条通往switch出口的路径

 当两个报文从同一输入队列发往同一输出队列时,switch会按照前面讲过的顺序规则传递报文的。

 当两个报文从同一输入队列发往不同的输出队列时,这两个输出队列并不需要保序。因为接下来各走各的路到不同的目的设备去了。

当两个报文从两个不同的输入队列发往同一个输出队列时,只涉及到输出队列的顺序规则。注意:并不是按照谁先进谁先出的原则(First In, First Out)。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注