您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > bcm5690交换芯片工作原理
摘要:BCM5690是BroadCOM公司推出的集成有12个千兆端口和1个万兆端口的多层交换芯片。文章比较全方面地介绍了该芯片的结构和功能特性,给出了他的访问控制方式和数据流程,同时给出了用BCM5690设计交换整机的硬件结构和软件实现方法。关键词:千兆以太网;BCM5690;堆叠;数据流程目前,万兆芯片技术不断取得新的发展,尤其在“真”万兆的问题上,只有拥有更先进的芯片,设备厂商才能够在芯片功能和特性的基础上研发自身的交换机体系架构。虽然Broadcom、Intel、Marvell、美国国家半导体(NS)、英飞凌(Infineon)和意法半导体(STMicroelectronics)都推出了最新的千兆以太网芯片产品。但万兆芯片的发展无疑会从硬件和架构层面来加快万兆产品的发展速度。为此,BroadCOM公司研发了BCM5690(12+1)单芯片交换方案。该集成电路芯片集成12个千兆端口和1个万兆端口,是一款功能比较强大和全方面的三层千兆以太网交换芯片。文中将周详介绍BCM5690芯片的功能特性及基于该芯片的交换机实现方法。1BCM5690芯片简介1.1BCM5690芯片结构BCM5690是芯片提供有12个GE接口(千兆端口)和1个HiGig接口(内联端口),并具有堆叠功能。器件的端口采用PCI接口进行管理。其结构框图如图1所示。由图1能看出:BCM5690芯片由以下一些主要功能模块组成:(1)GIGA接口控制器GPIC:用于提供GE口和交换逻辑之间的接口。(2)内联端口(HiGig)控制器IPIC:主要提供HiGig口和内部交换逻辑之间的接口,有时也被用于多片BCM5690之间的堆叠操作。(3)CPU管理接口CMIC:主要提供CPU和BCM5690设备不同功能块之间的接口,同时也用于诸如MIIM、I2C和灯的处理等功能。该模块通过PCI接口和CPU相联,可使CPU访问和控制BCM5690,而DMA引擎则支持数据从CPU传向BCM5690或从BCM5690传向CPU。(4)地址解析逻辑ARL:该逻辑功能模块可在数据包的基础上确定该数据包的转发策略。他利用二层表(L2_TABLE)、二层组播表?L2MCTABLE?、三层表(L3_TABLE)、三层最长前缀匹配表(DEF_IP_HI和DEF_IP_LO)、三层接口表?L3-INTF?、IP组播表(L3_IPMC)、VLAN表(VLAN)及spanningtreeGroup表(VLAN_STAG)来决定怎么转发数据包。(5)公共缓冲池CBP?CBP实际上是1MB共享的包缓冲区。CBP由8192(8K)个单元组成,每个单元128字节。设备里的每个数据包消耗一至多个单元。(6)内存管理单元MMU:BCM5690有一个独立的内存管理单元。每个MMU和设备的功能块(GPIC、IPIC等)相关联。MMU负责数据包的缓冲和调度。他首先接收数据包,然后再将数据包缓冲,并在发送时加以调度,同时他还管理交换单元的流控特性。概括来说,就是缓冲逻辑、调度逻辑、流控逻辑。缓冲逻辑从CP-BUS接收包并存放在CBP,同样也从CBP获取包并将他们发送到CP-BUS上去。包的发送顺序由调度逻辑根据包的优先级别确定。流控逻辑包括Head-of-Line?HOL?阻塞预防和Backpressure两种方式。这些功能模块之间可通过两条内部总线联系起来:CP-Bus(图1粗黑线所示)、S-ChannelBus?图1细黑线所示?。其中CP-Bus用于芯片内数据包的高速传输,他支持所有端口的同时线速转发。而S-ChannelBus则有两个作用:第一是用于MMU到其他功能块的流控;第二是通过CMIC利用软件控制来访问内部寄存器和表。1.2BCM5690芯片特性及功能介绍Broadcom公司XGS系列芯片的重要特性是具有堆叠功能,该功能能将多个交换芯片组合在一起,以形成一个更大规模的系统,或将多个带交换芯片的系统组合在一起形成一个完整的系统设备。这种功能最多能实现30个设备的堆叠。BCM5690能够通过Hi-Gig和GIGA来扩展系统容量。他有四种模式,其中cascade模式通过Hi-Gig口单向互联来形成(环行组网);而全双工堆叠模式则通过BCM5690的Hi-Gig口双向地和BCM567X相连来扩展容量(环形组网);第三是chassis模式,该模式是将Hi-Gig通过背板互连形成(星形组网)。可实现冗余备份和逐级交换,不需中转,且效率比环行组网高;最后是SL形式的堆叠,他通过GIGA口来互连BCM5690。图2所示为BCM5690的逻辑框图。BCM5690是一款千兆以太网交换芯片,他支持二层交换、三层路由及第2~7层数据包的分类和过滤等。地址解析逻辑是BCM5690集成电路芯片的中心部件?GPIC的入口逻辑用他来决定单个包的转发方向。BCM5690集成电路芯片中的快速过滤处理器(FFP)是个通过第2~7层数据包进行分类和过滤的引擎。每个GE口各有一个FFP来负责包的分类和更新。FFP能通过设置寄存器GIMASK和GIR-ULE来改动符合条件的数据包特性?其中GIMASK用于设置匹配选项,GIRULE用于产生操作命令。对于每个数据包来说,最多能改动16个匹配特性。如果同时有多个特性符合匹配条件,则在GIMASK里处于高位的优先设置。对于包的缓冲和流控,BCM5690还集成1MB的数据包缓冲区CBP,这个缓冲区可为所有端口共用。BCM5690中的寄存器MIRROR_CONTROL和IMIRROR_CONTROL用来设置被映像端口和映像端口,两个寄存器的内容应保持一致。他支持本芯片内的映像。BCM5690集成电路芯片中的链路聚合(trunk)最大可支持8端口的Trunking,共32组Trunk,并可进行跨芯片的端口Trunk。另外,BCM5690还支持速度高达66MHz的PCI接口,并可对所有数据包的线速交换及RMON、SNMP、STP和RapidSTP提供支持。2访问控制方式及数据流程2.1访问控制方式BCM5690支持一系列符合PCI标准的寄存器?这些寄存器允许对设备再分配?MODID?、地址空间的自动设置和再映射。CPU对BCM5690的控制都是通过访问PCI寄存器来实现的。BCM5690的寄存器分为直接访问和非直接访问两种。可直接访问的寄存器映射到PCI的内存空间?这些寄存器相对于PCI控制寄存器有一个固定的地址偏移。上电初始化期间,系统自动设置每个PCI设备的基地址及地址范围,以便能够唯一地访问每一个PCI设备中的寄存器。BCM5690的访问机制分为三个类型:一是PCI设置空间;二是PCImemory映射的I/O,比如通过PCI设备对DMA、MIIM和I2C的控制;第三是消息机制。2.2数据流程所有的数据流通过交换芯片都要经过输入部分(Ingress)、内存管理单元(MMU)和输出部分(Egress)这三个流程。其数据流程如图3所示。Ingress(输入逻辑)是数据包在每端口上的逻辑流程。每端口都有自己的输入逻辑,输入逻辑负责所有包的转发(交换)策略,决定将包送给哪个端口,根据转发信息将数据包发送给MMU,进行缓冲和调度,并以线速对包进行处理。输入逻辑和大部分交换功能关联。MMU(内存管理单元)主要负责数据包的缓冲和调度,他接收从输入逻辑过来的数据包并缓冲这些包,同时对这些包进行调度并将他们送给输出逻辑。数据包进入MMU时将存储在CBP里。CBP有1MB的大小供所有端口共用。MMU主要有四部分功能:资源计数、背压、HOL预防机制、调度。其中资源计数主要是统计当前消耗的CBP单元数或CBP数据包个数,决定数据包什么时候进入背压或HOL预防;调度则是根据优先级和COS的四种调度准则来确定包发送的先后顺序和权重。Egress(输出逻辑)主要从MMU获取数据包并将其送入各个端口,这是整个流程中最简单的一环。他先将包发给输出端口,然后确定是否在发送的数据包上添加tag。具体流程如下:首先从MMU请求数据包,如果发送的包需求不带tag,则负责将tag去掉;然后计算数据包的CRC;最后将包交给MAC发送(特别情况下,CMIC将直接把数据包以DMA方式发送给CPU)。3基于BCM5690的交换整机设计3.1硬件实现笔者在设计中采用了两片BCM5690和四片BCM5464,外加四个SFP接口的千兆光接口来实现16端口的10/100/1000M的电口和4个千兆光口的交换整机。BCM5464是BroadCom的四端口的千兆PHY。图4是该交换整机的主控板硬件结构,其硬件电路由交换单元、物理接口单元、RJ45和灯接口单元、光接口单元、控制单元、CPU连接器单元、时钟单元、电源单元组成。其中交换单元选用了两片BCM5690,他们之间通过Hi-Gig口背靠背连接实现通信,带有和其他大部分单元的接口。每片BCM5690通过PCI接口和CPU连接器相连,主要用来和CPU通信以实现对芯片的管理。图4所示电路中的CPU采用Motorola公司的PPC8240,主要负责整个系统的运转调度。12个电口通过背板总线和各个线卡相连,以实现各线卡的上联功能。当主控板独立作为一个独立的三层交换机时,他将同时作为和其他三层设备互联的接口。4个千兆光接口和本设备上联可扩展以太网的传输距离。本系统使用了两个背靠背连接的BCM5690来进行设计,这样可将该系统归为cascade模式。在堆叠完成之后,通过在堆叠口的以太网包首部加上头信息,可使芯片和芯片之间、系统和系统之间通过Broadcom专有的通信协议来实现相互之间的信息传输,从而实现数据包在不同芯片、不同系统之间的转发。另外,还能通过设置IPICCONFIG寄存器(IPIC_CASCADE,MY_MODID)、MODPORT表和Gigabit端口CONFIG寄存器来对堆叠进行设置。3.2软件实现a.初始化流程在设计软件模块的初始化流程时,首先是头模式的设置,由于BCM5690固定工作在小头?little_endian?模式,而PPC8240工作在大头模式,因此需要对头模式进行设置;接下来是查找PCI设备,以获取各个PCI设备的设备号及各自的基地址;之后应对堆叠模式进行设置,以便两片BCM5690之间的二层表内容能够互通;最后是基本交换功能和DMA通道的设置。b.软件结构图5是笔者设计的软件结构简图。其中涉及驱动程式和驱动程式封装的是SAL层、Driver层和BCM层。SAL层可对操作系统和驱动层进行隔离,可提供PCI中断及PCI设备的查找、线程、中断、同步和内存管理。Driver层包括BCM5690寄存器的访问方式实现、表的初始化、内存初始化、芯片堆叠模式的设置、L2和L3地址的操作和查找、数据包的发送/接收及端口的管理等。
本文标题:bcm5690交换芯片工作原理
链接地址:https://www.777doc.com/doc-4345747 .html