不同TC号的包通过交换开关时,从多个入端口进来的、涌向同一个出端口的包,竞争该出端口的使用权,交换开关对该出端口执行两方面的仲裁:端口仲裁和VC仲裁。
如图2.19所示,端口仲裁是对在不同入端口上到达的、但映射到公共出端口的同一虚通道上的两个包进行仲裁,如图中对来自入端口1和2的、映射到出端口0的VC0(VC1)上的两个TC[2:0](TC[7:3])包进行仲裁,决定哪个入端口的TC[2:0](TC[7:3])包先送到出端口0的VC0(VC1)。端口仲裁器可通过配置寄存器选择轮转的、加权轮转的或基于可编程时间的轮转仲裁方案。
VC仲裁发生在端口仲裁之后,是对已进入不同VC的、要从同一出端口发送到链路上去的包进行仲裁。如图2.19中对来自VC0和VC1的包进行仲裁,决定哪个VC号的包先推到出端口0外的链路上。VC仲裁可通过配置寄存器选择严格优先序的、轮转的或加权轮转的仲裁方案。
端点设备和仅有一个端口的根复合体中不存在端口仲裁,仅支持事务层里的VC仲裁。