博通BCM53101M以太网交换芯片原理解析

时间:2024-03-12 10:39:45

 

Quality of Service 服务质量

BCM53101M的QoS为每个端口提供6个内部队列以支持6种不同的流量类别(traffic class, TC)。在流量拥塞的情况下,可通过拥塞管理,对数据包进行调度,在出口传输队列(egress transmit queues)中先传输高优先级的数据包,再传输低优先级的数据包。在此通过设置TC的优先级实现,使得高优先级的TC比低优先级的延迟要低。BCM53101M可以根据“Port-Based QoS”、“IEEE 802.1p QoS”、“MACDA-Based QoS”、“TOS/DSCP QoS”4种信息,指派数据包发往6个出口传输队列中的一个。

图1 QoS处理流程

端口的6条内部队列指的是每个出口(egress port拥有6条传输队列(transmit queues),即CoS0 – CoS5,其中CoS4和CoS5专门用于BroadSync™ HD类型流量的传输,不和其他类型流量共享,而CoS0 – CoS3则被IMP(egress)端口使用。Broadcom的BroadSync™ HD技术可通过以太网高效地向联网的电子设备传输高清音/视频数据流,以下是关于这项技术的官方说明。

"BroadSync™ HD Technology enables extraordinary streaming of high definition (HD) audio/video (A/V) traffic over Ethernet to networked electronic devices. This technology promotes Ethernet as a cost effective, easy-to-install connectivity solution, with professional levels of Quality of Service (QoS), for the consumer and professional A/V electronics market.

BroadSync HD Technology is Broadcom\'s custom implementation of the IEEE 802.1 Audio Video Bridging (AVB) draft standard, which provides guaranteed QoS, frame synchronization and timing that is necessary to stream professional-quality audio and video traffic over Ethernet."

 

在CoS0 – CoS3中,BCM53101M使用绝对优先级(Strict Priority)和加权循环调度算法(WRR, Weighted Round Robin)进行队列调度。设置为绝对优先的队列,其优先级高于使用WRR调度的队列。调度策略可以在TX Queue Control Register中设置,可设置一个或多个队列为绝对优先队列,其他队列按照WRR算法设置。WRR算法中每条队列的权重(weights)可在TX Queue Weight Register中设置。

四种调度策略的设置

  • CoS0 – CoS3 : WRR
  • CoS0 – CoS2 : WRR , CoS3 : SP
  • CoS0 – CoS1 : WRR , CoS2 – CoS3 : SP
  • CoS0 – CoS3 : SP

当所有队列都设置为绝对优先队列时,则采用CoS3﹥CoS2﹥CoS1﹥CoS0的优先级原则。而WRR算法的调度是在一个循环周期内,根据每条队列的权重进行调度。

默认设置

  • Queue 0 = 0001
  • Queue 1 = 0010
  • Queue 2 = 0100
  • Queue 3 = 1000

默认各条队列的权重大小为Q3﹥Q2﹥Q1﹥Q0。以上设置的是二进制数,其对应十进制的值代表了在一个循环周期内,该队列被允许发包的数量。例如Q0的值是1,则在每个循环周期内,Q0只能发一个包。Q2的值是4,则在每个循环周内,Q2可以发4个包。

 

Port Trunking/Aggreation 端口聚合

端口聚合也称链路聚合。

BCM53101M提供基于MAC地址的端口聚合,这种聚合允许端口被“组织”成一个组,在两个交换设备之间形成一条单一的链路,使得有效带宽得以增加,如图2所示。

图2 端口聚合

BCM53101M允许建立两个聚合组(trunk groups),聚合组由预先确定的端口组成,用户可通过Trunking Group 0 寄存器进行使能,并且聚合组中的各端口必须设置成相同的连接速度(link speed)。通过执行动态散列算法(dynamic hashing algorithm),每个转发到主干链路的数据包都会发往聚合组中的一个有效端口,使得各端口流量更均衡。

此外,这种基于MAC地址的链路聚合算法提供动态故障转移的冗余方案,如果聚合组内部的一个端口失效,则组内的其他端口自动假设所有流量都是指定为主干链路的。