使用Broadcom公司的最新交换芯片实现板级高性能交换型路由器的软硬件设计

上传人:豆浆 文档编号:1136865 上传时间:2017-05-29 格式:DOC 页数:5 大小:45.50KB
返回 下载 相关 举报
使用Broadcom公司的最新交换芯片实现板级高性能交换型路由器的软硬件设计_第1页
第1页 / 共5页
使用Broadcom公司的最新交换芯片实现板级高性能交换型路由器的软硬件设计_第2页
第2页 / 共5页
使用Broadcom公司的最新交换芯片实现板级高性能交换型路由器的软硬件设计_第3页
第3页 / 共5页
使用Broadcom公司的最新交换芯片实现板级高性能交换型路由器的软硬件设计_第4页
第4页 / 共5页
使用Broadcom公司的最新交换芯片实现板级高性能交换型路由器的软硬件设计_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《使用Broadcom公司的最新交换芯片实现板级高性能交换型路由器的软硬件设计》由会员分享,可在线阅读,更多相关《使用Broadcom公司的最新交换芯片实现板级高性能交换型路由器的软硬件设计(5页珍藏版)》请在金锄头文库上搜索。

1、1使用 Broadcom 公司的最新交换芯片实现板级高性能交换型路由器的软硬件设计 发于今日电子2006 年十一月刊 published at Electronics Products China on November, 2006 摘要:本文阐述了应用 Freescale 公司 MPC8245CPU 和 Broadcom 公司 BCM56500 交换芯片实现的基于 PCI 总线的板级高端口密度三层交换机的设计和实现。最后给出了业已实现的路由协议和其他协议栈并给出了交换性能指标。关键词:三层交换、BCM56500、PCI、TCP/IP、协议栈)随着用户需求和网络技术的发展,高速率高端口密度的多

2、层 IP 路由交换功能的应用已经越来越广泛了。由于实现三层以上路由功能的判据较为复杂,传统的路由器采用软件实现路由功能,由高性能的 CPU 同时实现控制平台和数据通道。自从三层交换的概念提出以来,主要的技术可以分为两类:路由型交换机和交换型路由器。路由型交换机通过各种技术来发现、建立和缓存路由捷径来实现路由加速功能。一般情况下路由型交换机不实现大型动态路由协议,主要应用在基于 ATM 的多协议交换技术中。交换型路由器可以用来实现类似 OSPF、EIGRP 等的动态路由协议,采用 RISC CPU 加 ASIC 专用交换芯片分离控制平台和数据通道。由于数据通道单独由 ASIC 实现,可以达到端口

3、线速。本文阐述了一个使用Freescale 公司的 MPC8245 高性能 RISC CPU 和 Broadcom 公司的 BCM56500 高速交换芯片来实现应用在网络接入系统中的 24 个千兆端口的三层交换的解决方案。由于本数据交换板是使用于宽带接入系统,测试结果表明该设计方案的高性能、高端口密度和硬件实现的稳定性能够充分满足系统的需求。1. MPC8245 简介及其 PCI 总线支持MPC8245 是一款 2003 年 Freescale 公司推出的基于 MPC603e 核的高性能低功耗的 32位嵌入式 RISC 处理器,带有 DUART 接口、双通道 DMA 控制器和标准 控制器等通用

4、模块。MPC8245 对 PCI 总线的支持是一大亮点,支持 PCI 总线 2.2 标准,可以同时工作在 PCI 主设备和从设备状态。由于它对 PCI 总线出色稳定的支持,被工业上广泛地运用于网络路由器、交换机、大容量存储设备、打印机和图象显示处理等应用。2. BCM56500 简介和主要架构分析BCM56500 是 BroadCOM 公司最新推出的第五代高性能高集成度的多层交换芯片,单片集成了 24 个千兆以太网端口。BCM56500 芯片同时支持 IPv4 和 IPv6 协议;支持硬件处理的二层交换,三层路由以及二到七层数据包的分类和过滤功能;芯片内部集成 2MB 数据包缓冲内存。BCM5

5、6500 芯片支持 PCI 总线 2.2 标准,系统设计中通常使用 RISC CPU 通过 PCI总线对 BCM56500 进行初始化、配置管理和实现三层交换功能。由于 BCM56500 拥有高集成2度、高端口密度和卓越的配置管理功能,是一款理想的实现边缘汇聚的三层交换企业级芯片。BCM56500 的结构框图如图 1 所示。图 1. BCM56500 芯片结构框图由图可以看出:BCM56500 芯片由以下一些主要功能模块组成:1) 千兆接口控制器(GPIC):用于提供千兆接口与交换逻辑之间的接口。2) CPU 管理接口(CMIC):主要提供 CPU 与 BCM56500 设备不同功能块之间的接

6、口,同时也用于诸如 MIIM、 和指示灯的处理等功能。该模块通过 PCI 总线接口与 CPU 相联,可使 CPU 访问和控制 BCM56500。3) 地址解析逻辑(ARL):该逻辑功能模块可在数据包的基础上确定该数据包的转发策略。它利用二层表(L2_TABLE)、二层组播表(L2_MCTABLE)、三层表(L3_TABLE)、三层最长前缀匹配表(DEF_IP_HI 和 DEF_IP_LO)、三层接口表(L3_INTF)、IP 组播表(L3_IPMC)、VLAN 表(VLAN)以及生成树表(VLAN_STAG)来决定如何转发数据包。4) 公共缓冲池(CBP):公共缓冲池实际上是 2MB 共享的包

7、缓冲区,由 8192 个单元组成,每个单元 256 字节。设备里的每个数据包消耗一至多个单元。) 5) 内存管理单元(MMU):BCM56500 有一个单独的内存管理单元。每个内存管理单元与设备的功能块(GPIC)等相关联。内存管理单元负责数据包的缓冲和调度,它首先接收数据包,然后再将数据包缓冲,并在发送时加以调度,同时它还管理交换单元的流控特性,概括来说,就是缓冲逻辑、调度逻辑、流控逻辑。缓冲逻辑从 CP-BUS 接收包并存放在公共缓冲池,同样也从公共缓冲池获取包并将它们发送到 CP-BUS。包的发送顺序由调度逻辑根据包的优先级别确定。流控逻辑包括 Head-of-Line(HOL)阻塞预防

8、和 Backpressure 两种方式。这些功能模块之间可通过两条内部总线联系起来:CP-Bus(图粗黑线所示)、S-Channel(图细黑线所示)。其中 CP-Bus 用于芯片内数据包的高速传输,它支持所有端口的同时线速转发。而 S-Channel Bus 则有两个作用:第一是用于内存管理单元到其它功能块的流控;第二是通过 CPU 管理接口由 CPU 控制访问内部寄存器和表,以及通过过滤器选送特殊数据包到 CPU 并由 CPU 发送特定数据包到端口以实现三层功能。3. 板级高端口密度 LAN Switch 硬件设计与实现图 2 是该交换板的硬件结构,其硬件电路由 CPU 控制单元(子卡)、交

9、换单元、物理层芯片单元、RJ45/光接口单元、CPU 连接器单元、时钟单元、电源单元组成。3图 2. 交换板硬件结构图笔者在设计中采用了一片 BCM56500 实现 24 个千兆数据端口,采用一片 BCM5464 物理层芯片和一片 BCM5461 物理层芯片来提供不同类型的数据端口。使用 BCM5464 物理层芯片接出 4 个千兆电接口(SGMII 接口)接入前面板,使用 BCM5461 物理层芯片接出 1 路千兆电接口(SGMII 接口)作为板内使用。使用 BCM56500 的 SERDES 接口接出 2 路千兆光接口接入前面板,另外使用 1 路 SERDES 接口也作为板内使用,其余 16

10、 路千兆端口使用 SERDES接口接入系统背板,供系统其他板卡上联作为星型数据总线。(注:BCM5464 是 BroadCom公司的四端口千兆物理层芯片,BCM5461 是 BroadCom 公司的单端口千兆物理层芯片。)在硬件设计中,交换单元选用了 BCM56500,通过 PCI 接口与 CPU 控制单元相连,以实现对交换芯片的配置管理和快速通讯。设计中的实际连接如图 3 所示。其中由于系统中只1 个 PCI 从设备,设备号采用 PCI_AD31线上的信号来选中,因此实际连线中 CPU 的IDSEL 直接连接 PCI_AD31即可。在 PCI 驱动软件中,要保证使用硬件相应的设备号进行选中和

11、配置。图 3. 系统 PCI 连接图4. LAN Switch 的软件启动和硬件初始化过程LAN Switch 采用 Windriver 公司的 VxWorks*作系统。在 CPU 最小系统(CPUSDRAMFlash串口)完成启动后,需要通过 PCI 总线对 LAN Switch 交换部分进行初始化。主要步骤如下:(1) 由于 BCM56500 工作在 little endian 模式,而 MPC8245 工作在 big endian 模式,因此需要对头模式进行设置(可以使用字节位移指令或者对 CONFIG_ADDR 和CONFIG_DATA 在访问前进行字节交换);(2) 根据硬件连接选择

12、 PCI 设备的设备号,配置交换芯片 BCM56500 的 PCI 基地址和窗口大小;(3) 通过 PCI 总线使用交换芯片 BCM56500 的 CPU 管理接口确定交换芯片的型号,然后根据不同的芯片类型进行初始化和 DMA 通道的配置; (4) 挂接交换芯片的驱动程序和各种 API,完成 LAN switch 的初始化过程。其中第三、第四步骤需要 BroadCom 公司的软件开发支持包(SDK)支持,直接从程序中调用 BoradCom 的初始化程序可以保证正常完成初始化和加载驱动程序。4以下对 PCI 驱动的设计配置和 SDK 做进一步的说明。本文前面已经说明了对于 BCM56500 的

13、IDSEL 信号已经确定,本设计中使用 VxWorks 的标准 PCI 驱动程序,对于 BCM56500 的 PCI 挂接例程如下:1) 在 bootROM 中 sysHwInit()调用 sysPciAutoConfig()对 PCI_SYSTEM 结构进行实例化;2) 同样在 sysHwInit()中使用 pciConfigOutLong()对 BCM56500 的基地址和窗口大小进行配置,然后使用 pciConfigOutByte()挂接 BCM56500 的中断至 CPU 的外部中断向量表;3) 至此,PCI 配置完成。通过 BCM56500 的 S_Channel 可以配置 BCM5

14、6500 中的各个寄存器和表项。S_Channel 的消息传递有特殊的格式和规范,一般通过 BroadCom 公司提供的软件开发支持包(SDK)中自带的标准函数来进行配置。本设计使用 BroadCom 公司 SDK 较新版本 5.2.3,SDK 的设计严格分层,自下而上分成操作系统(RTOS)、操作系统适配层(SAL)、芯片系统层(SOC)、分发层(Dispatch)和 BCM 的应用接口层(API 层)。由于 SDK 支持 BroadCom 公司的几乎所有交换芯片,因此在使用 SDK 的时候,在使用 API 之前需要进行芯片查询和按照搜索到的芯片挂接相对应的API。整个的芯片查询和挂接 AP

15、I 的过程,使用 SDK 实现相当方便。初始化 SDK 的 API 的过程如下:1) SDK 软件初始化:diag_shell(), sysconf_int();2) 在本地的 PCI 总线上查询 BroadCom 设备:sysconf_prob();3) 根据查询到的设备进行相对应的驱动程序挂接:sysconf_attached();4) 应用正确的驱动程序对交换芯片进行初始化:system_init();5) 芯片基本的初始化后,进入正常的工作状态,此时可以进行应用程序的初始化了:bcm_init(), 应用程序和协议栈入口。5. 实现后的 LAN Switch 交换性能测试结果和三层功能

16、实现设计定型后的 LAN Switch 经过 SmartBits 测试,每个端口都可以达到线速转发,稳定性测试表明可以达到 48 小时千兆线速无丢帧性能。5笔者使用 SmartBits 600 的一块千兆卡对 LAN Switch 进行性能测试,SmartBits 的两个千兆光模块分别连接 LAN Switch 的两个千兆光接口。设置 SmartBits 全双工地从一个端口发送千兆速率的 128Byte 的数据包,数据流通过 LAN Switch,被 SmartBits 从另一个端口收到。性能测试实验中,满负荷数据流持续时间为 48 小时,所得的结果如图 4 所示,发送数据帧和接收数据帧数量相等,没有丢帧现象出现。图 4. 千兆光接口 48 小时性能测试结果由于这个设计方案使用 CPUASIC 方案,三层的 IP 路由转发功能由 ASIC 交换芯片的三层转发表(L3_Table)实现线速转发。其他的三层协议栈功能应用 ASIC 交换芯片中过滤器实现。BCM56500 系 BoradCom 公司最新的第三代交换芯片内嵌

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号