技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > 千兆以太網(wǎng)交換芯片BCM5690及其在交換整機(jī)中的應(yīng)用

千兆以太網(wǎng)交換芯片BCM5690及其在交換整機(jī)中的應(yīng)用

時(shí)間:2008-04-23 15:20:00來源:ronggang

導(dǎo)語(yǔ):?文章比較全面地介紹了該芯片的結(jié)構(gòu)和功能特性,給出了它的訪問控制方式和數(shù)據(jù)流程,同時(shí)給出了用BCM5690設(shè)計(jì)交換整機(jī)的硬件結(jié)構(gòu)和軟件實(shí)現(xiàn)方法
摘 要:BCM5690是BroadCOM公司推出的集成有12個(gè)千兆端口和1個(gè)萬兆端口的多層交換芯片。文章比較全面地介紹了該芯片的結(jié)構(gòu)和功能特性,給出了它的訪問控制方式和數(shù)據(jù)流程,同時(shí)給出了用BCM5690設(shè)計(jì)交換整機(jī)的硬件結(jié)構(gòu)和軟件實(shí)現(xiàn)方法。 關(guān)鍵詞:千兆以太網(wǎng);BCM5690;堆疊;數(shù)據(jù)流程   目前,萬兆芯片技術(shù)不斷取得新的發(fā)展,尤其在“真”萬兆的問題上,只有擁有更先進(jìn)的芯片,設(shè)備廠商才能夠在芯片功能與特性的基礎(chǔ)上開發(fā)自身的交換機(jī)體系架構(gòu)。雖然Broadcom、Intel、Marvell、美國(guó)國(guó)家半導(dǎo)體(NS)、英飛凌(Infineon)和意法半導(dǎo)體(STMicro electronics)都推出了最新的千兆以太網(wǎng)芯片產(chǎn)品。但萬兆芯片的發(fā)展無疑會(huì)從硬件與架構(gòu)層面來加快萬兆產(chǎn)品的發(fā)展速度。   為此, BroadCOM公司開發(fā)了BCM5690(12+1)單芯片交換方案。該集成電路芯片集成了12個(gè)千兆端口和1個(gè)萬兆端口,是一款功能比較強(qiáng)大和全面的三層千兆以太網(wǎng)交換芯片。文中將詳細(xì)介紹BCM5690芯片的功能特性以及基于該芯片的交換機(jī)實(shí)現(xiàn)方法。 1 BCM5690芯片簡(jiǎn)介   1.1 BCM5690芯片結(jié)構(gòu)   BCM5690是芯片提供有12個(gè)GE接口(千兆端口)和1個(gè)HiGig接口(內(nèi)聯(lián)端口),并具有堆疊功能。器件的端口采用PCI接口進(jìn)行管理。其結(jié)構(gòu)框圖如圖1所示。
  由圖1可以看出:BCM5690芯片由以下一些主要功能模塊組成:   (1)GIGA接口控制器GPIC:用于提供GE口與交換邏輯之間的接口。  ?。?)內(nèi)聯(lián)端口(HiGig)控制器IPIC:主要提供HiGig口與內(nèi)部交換邏輯之間的接口,有時(shí)也被用于多片BCM5690之間的堆疊操作。  ?。?) CPU管理接口CMIC:主要提供CPU與BCM5690設(shè)備不同功能塊之間的接口,同時(shí)也用于諸如MIIM、I2C和燈的處理等功能。該模塊通過PCI接口與CPU相聯(lián),可使CPU訪問和控制BCM5690,而DMA引擎則支持?jǐn)?shù)據(jù)從CPU傳向BCM5690或從BCM5690傳向CPU。  ?。?) 地址解析邏輯ARL:該邏輯功能模塊可在數(shù)據(jù)包的基礎(chǔ)上確定該數(shù)據(jù)包的轉(zhuǎn)發(fā)策略。它利用二層表(L2_TABLE)、二層組播表L2MC TABLE、三層表(L3_TABLE)、三層最長(zhǎng)前綴匹配表(DEF_IP_HI和DEF_IP_LO)、三層接口表L3-INTF、IP組播表(L3_IPMC)、VLAN表(VLAN)以及spanning tree Group表(VLAN_STAG)來決定如何轉(zhuǎn)發(fā)數(shù)據(jù)包。  ?。?) 公共緩沖池CBPCBP實(shí)際上是1MB共享的包緩沖區(qū)。CBP由8192(8K)個(gè)單元組成,每個(gè)單元128字節(jié)。設(shè)備里的每個(gè)數(shù)據(jù)包消耗一至多個(gè)單元。  ?。?)內(nèi)存管理單元MMU:BCM5690有一個(gè)單獨(dú)的內(nèi)存管理單元。每個(gè)MMU與設(shè)備的功能塊(GPIC、IPIC等)相關(guān)聯(lián)。MMU負(fù)責(zé)數(shù)據(jù)包的緩沖和調(diào)度。它首先接收數(shù)據(jù)包,然后再將數(shù)據(jù)包緩沖,并在發(fā)送時(shí)加以調(diào)度,同時(shí)它還管理交換單元的流控特性。概括來說,就是緩沖邏輯、調(diào)度邏輯、流控邏輯。緩沖邏輯從CP-BUS接收包并存放在CBP,同樣也從CBP獲取包并將它們發(fā)送到CP-BUS上去。包的發(fā)送順序由調(diào)度邏輯根據(jù)包的優(yōu)先級(jí)別確定。流控邏輯包括Head-of-LineHOL阻塞預(yù)防和Backpressure兩種方式。   這些功能模塊之間可通過兩條內(nèi)部總線聯(lián)系起來:CP-Bus(圖1粗黑線所示)、S-Channel Bus圖1細(xì)黑線所示。其中CP-Bus用于芯片內(nèi)數(shù)據(jù)包的高速傳輸,它支持所有端口的同時(shí)線速轉(zhuǎn)發(fā)。而S-Channel Bus則有兩個(gè)作用:第一是用于MMU到其它功能塊的流控;第二是通過CMIC利用軟件控制來訪問內(nèi)部寄存器和表。   1.2 BCM5690芯片特性及功能介紹   Broadcom公司XGS系列芯片的重要特性是具有堆疊功能,該功能可以將多個(gè)交換芯片組合在一起,以形成一個(gè)更大規(guī)模的系統(tǒng),或者將多個(gè)帶交換芯片的系統(tǒng)組合在一起形成一個(gè)完整的系統(tǒng)設(shè)備。這種功能最多可以實(shí)現(xiàn)30個(gè)設(shè)備的堆疊。   BCM5690能夠通過Hi-Gig和GIGA來擴(kuò)展系統(tǒng)容量。它有四種模式,其中cascade模式通過Hi-Gig口單向互聯(lián)來形成(環(huán)行組網(wǎng));而全雙工堆疊模式則通過BCM5690的Hi-Gig口雙向地與BCM567X相連來擴(kuò)展容量(環(huán)形組網(wǎng));第三是chassis模式,該模式是將Hi-Gig通過背板互連形成(星形組網(wǎng))??蓪?shí)現(xiàn)冗余備份和逐級(jí)交換,不需中轉(zhuǎn),且效率比環(huán)行組網(wǎng)高;最后是SL形式的堆疊,它通過GIGA口來互連BCM5690。圖2所示為BCM5690的邏輯框圖。   BCM5690是一款千兆以太網(wǎng)交換芯片,它支持二層交換、三層路由以及第2~7層數(shù)據(jù)包的分類和過濾等。   地址解析邏輯是BCM5690集成電路芯片的中心部件GPIC的入口邏輯用它來決定單個(gè)包的轉(zhuǎn)發(fā)方向。   BCM5690集成電路芯片中的快速過濾處理器(FFP)是一個(gè)通過第2~7層數(shù)據(jù)包進(jìn)行分類和過濾的引擎。每個(gè)GE口各有一個(gè)FFP來負(fù)責(zé)包的分類和更新。FFP可以通過配置寄存器GIMASK和GIR-ULE來改變符合條件的數(shù)據(jù)包特性其中GIMASK用于配置匹配選項(xiàng),GIRULE用于產(chǎn)生操作命令。對(duì)于每個(gè)數(shù)據(jù)包來說,最多可以改變16個(gè)匹配特性。如果同時(shí)有多個(gè)特性符合匹配條件,則在GIMASK里處于高位的優(yōu)先配置。   對(duì)于包的緩沖和流控,BCM5690還集成了1MB的數(shù)據(jù)包緩沖區(qū)CBP,這個(gè)緩沖區(qū)可為所有端口共用。   BCM5690中的寄存器MIRROR_CONTROL和IMIRROR_CONTROL用來設(shè)置被鏡像端口與鏡像端口,兩個(gè)寄存器的內(nèi)容應(yīng)保持一致。它支持本芯片內(nèi)的鏡像。   BCM5690集成電路芯片中的鏈路聚合(trunk)最大可支持8端口的Trunking,共32組Trunk,并可進(jìn)行跨芯片的端口Trunk。另外,BCM5690還支持速度高達(dá) 66MHz的PCI接口,并可對(duì)所有數(shù)據(jù)包的線速交換以及RMON、SNMP、STP和Rapid STP提供支持。 2 訪問控制方式及數(shù)據(jù)流程   2.1 訪問控制方式   BCM5690支持一系列符合PCI標(biāo)準(zhǔn)的寄存器這些寄存器允許對(duì)設(shè)備再分配MODID、地址空間的自動(dòng)配置和再映射。CPU對(duì)BCM5690的控制都是通過訪問PCI寄存器來實(shí)現(xiàn)的。BCM5690的寄存器分為直接訪問和非直接訪問兩種??芍苯釉L問的寄存器映射到PCI的內(nèi)存空間這些寄存器相對(duì)于PCI控制寄存器有一個(gè)固定的地址偏移。上電初始化期間,系統(tǒng)自動(dòng)配置每個(gè)PCI設(shè)備的基地址及地址范圍,以便能夠唯一地訪問每一個(gè)PCI設(shè)備中的寄存器。BCM5690的訪問機(jī)制分為三個(gè)類型:一是PCI配置空間;二是PCI memory 映射的I/O,比如通過PCI設(shè)備對(duì)DMA、MIIM和I2C的控制;第三是消息機(jī)制。
  2.2 數(shù)據(jù)流程   所有的數(shù)據(jù)流通過交換芯片都要經(jīng)過輸入部分(Ingress)、內(nèi)存管理單元(MMU)和輸出部分(Egress)這三個(gè)流程。其數(shù)據(jù)流程如圖3所示。   Ingress(輸入邏輯)是數(shù)據(jù)包在每端口上的邏輯流程。每端口都有自己的輸入邏輯,輸入邏輯負(fù)責(zé)所有包的轉(zhuǎn)發(fā)(交換)策略,決定將包送給哪個(gè)端口,根據(jù)轉(zhuǎn)發(fā)信息將數(shù)據(jù)包發(fā)送給MMU,進(jìn)行緩沖和調(diào)度,并以線速對(duì)包進(jìn)行處理。輸入邏輯與大部分交換功能關(guān)聯(lián)。   MMU(內(nèi)存管理單元)主要負(fù)責(zé)數(shù)據(jù)包的緩沖與調(diào)度,它接收從輸入邏輯過來的數(shù)據(jù)包并緩沖這些包,同時(shí)對(duì)這些包進(jìn)行調(diào)度并將它們送給輸出邏輯。數(shù)據(jù)包進(jìn)入MMU時(shí)將存儲(chǔ)在CBP里。CBP有1MB的大小供所有端口共用。MMU主要有四部分功能:資源計(jì)數(shù)、背壓、HOL預(yù)防機(jī)制、調(diào)度。其中資源計(jì)數(shù)主要是統(tǒng)計(jì)當(dāng)前消耗的CBP單元數(shù)或CBP數(shù)據(jù)包個(gè)數(shù),決定數(shù)據(jù)包什么時(shí)候進(jìn)入背壓或HOL預(yù)防;調(diào)度則是根據(jù)優(yōu)先級(jí)和COS的四種調(diào)度準(zhǔn)則來確定包發(fā)送的先后順序和權(quán)重。   Egress(輸出邏輯)主要從MMU獲取數(shù)據(jù)包并將其送入各個(gè)端口,這是整個(gè)流程中最簡(jiǎn)單的一環(huán)。它先將包發(fā)給輸出端口,然后確定是否在發(fā)送的數(shù)據(jù)包上添加tag。具體流程如下:首先從MMU請(qǐng)求數(shù)據(jù)包,如果發(fā)送的包要求不帶tag,則負(fù)責(zé)將tag去掉;然后計(jì)算數(shù)據(jù)包的CRC;最后將包交給MAC發(fā)送(特殊情況下,CMIC將直接把數(shù)據(jù)包以DMA方式發(fā)送給CPU)。   3 基于BCM5690的交換整機(jī)設(shè)計(jì)   3.1 硬件實(shí)現(xiàn)   筆者在設(shè)計(jì)中采用了兩片BCM5690和四片BCM5464,外加四個(gè)SFP接口的千兆光接口來實(shí)現(xiàn)16端口的10/100/1000M的電口和4個(gè)千兆光口的交換整機(jī)。BCM5464是BroadCom的四端口的千兆PHY。
  圖4是該交換整機(jī)的主控板硬件結(jié)構(gòu),其硬件電路由交換單元、物理接口單元、RJ45和燈接口單元、光接口單元、控制單元、CPU連接器單元、時(shí)鐘單元、電源單元組成。其中交換單元選用了兩片BCM5690,它們之間通過Hi-Gig口背靠背連接實(shí)現(xiàn)通信,帶有與其它大部分單元的接口。每片BCM5690通過PCI接口與CPU連接器相連,主要用來與CPU通信以實(shí)現(xiàn)對(duì)芯片的管理。   圖4所示電路中的CPU采用Motorola公司的PPC8240,主要負(fù)責(zé)整個(gè)系統(tǒng)的運(yùn)轉(zhuǎn)調(diào)度。12個(gè)電口通過背板總線與各個(gè)線卡相連,以實(shí)現(xiàn)各線卡的上聯(lián)功能。當(dāng)主控板單獨(dú)作為一個(gè)獨(dú)立的三層交換機(jī)時(shí),它將同時(shí)作為與其它三層設(shè)備互聯(lián)的接口。4個(gè)千兆光接口與本設(shè)備上聯(lián)可擴(kuò)展以太網(wǎng)的傳輸距離。   本系統(tǒng)使用了兩個(gè)背靠背連接的BCM5690來進(jìn)行設(shè)計(jì),這樣可將該系統(tǒng)歸為cascade模式。在堆疊完成之后,通過在堆疊口的以太網(wǎng)包首部加上頭信息,可使芯片與芯片之間、系統(tǒng)與系統(tǒng)之間通過Broadcom專有的通信協(xié)議來實(shí)現(xiàn)相互之間的信息傳輸,從而實(shí)現(xiàn)數(shù)據(jù)包在不同芯片、不同系統(tǒng)之間的轉(zhuǎn)發(fā)。   另外,還可以通過設(shè)置IPIC CONFIG 寄存器(IPIC_CASCADE, MY_MODID)、MODPORT表和Giga bit端口CONFIG寄存器來對(duì)堆疊進(jìn)行配置。   3.2 軟件實(shí)現(xiàn)   a.初始化流程   在設(shè)計(jì)軟件模塊的初始化流程時(shí),首先是頭模式的設(shè)置,由于BCM5690固定工作在小頭little_endian模式,而PPC8240工作在大頭模式,因此需要對(duì)頭模式進(jìn)行設(shè)置;接下來是查找PCI設(shè)備,以獲取各個(gè)PCI設(shè)備的設(shè)備號(hào)以及各自的基地址;之后應(yīng)對(duì)堆疊模式進(jìn)行設(shè)置,以便兩片BCM5690之間的二層表內(nèi)容能夠互通;最后是基本交換功能和DMA通道的配置。   b.軟件結(jié)構(gòu)
  圖5是筆者設(shè)計(jì)的軟件結(jié)構(gòu)簡(jiǎn)圖。其中涉及驅(qū)動(dòng)程序和驅(qū)動(dòng)程序封裝的是SAL層、Driver層和BCM層。SAL層可對(duì)操作系統(tǒng)與驅(qū)動(dòng)層進(jìn)行隔離,可提供PCI中斷以及PCI設(shè)備的查找、線程、中斷、同步和內(nèi)存管理。Driver層包括BCM5690寄存器的訪問方式實(shí)現(xiàn)、表的初始化、內(nèi)存初始化、芯片堆疊模式的設(shè)置、L2和L3地址的操作與查找、數(shù)據(jù)包的發(fā)送/接收以及端口的管理等。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:單線數(shù)字溫度傳感器DS18B20的...

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)