基于FPGA的數(shù)據(jù)中繼器設(shè)計(jì)
3 方案的選取與實(shí)現(xiàn)
從以上輸入處理和輸出處理流程來(lái)看,物理層和鏈路層的功能可以通過選擇相應(yīng)的商用器件來(lái)實(shí)現(xiàn),實(shí)現(xiàn)起來(lái)并不復(fù)雜;但圖1中虛線框內(nèi)的處理功能是在10Gbps的高速率下進(jìn)行的,實(shí)現(xiàn)起來(lái)比較困難。目前在高速數(shù)據(jù)處理中,能完成這部分功能的處理器件可分為固定功能器件和可編程器件兩種,其中固定功能器件主要指ASIC(Application Specific Integrated Circuit),可編程器件又有FPGA(Field Programmable Gate Array)和NP(Network Processor)兩種,下面對(duì)這三種器件進(jìn)行比較。
首先能夠同時(shí)提供極高轉(zhuǎn)發(fā)性能和較低成本的只有ASIC芯片了。ASIC的硬件資源最為豐富,處理能力是NP不能比擬,萬(wàn)兆核心層設(shè)備采用ASIC是對(duì)于性能的一種保障。但是它的先天不足也是無(wú)法回避的,由于ASIC的固定特性一直無(wú)法解決路由器對(duì)多業(yè)務(wù)支持的需求,ASIC芯片一旦產(chǎn)出后,其原有的功能無(wú)法添加,也可以把業(yè)內(nèi)目前需要的功能都做在ASIC里面,但是現(xiàn)在主流的很多技術(shù)如MPLS、QoS等都是只停留在草案階段,還未標(biāo)準(zhǔn)化,所以現(xiàn)在就做死在ASIC里面顯然是有很大風(fēng)險(xiǎn)的。由此可看出,ASIC可為任何固定功能提供高性能,但卻幾乎沒有靈活性和可擴(kuò)展性。第二種NP,目前網(wǎng)絡(luò)處理器(NP)技術(shù)是業(yè)內(nèi)非常受歡迎的技術(shù)之一,NP技術(shù)本身就是通過廠家自己編寫微碼的方式對(duì)網(wǎng)絡(luò)協(xié)議處理進(jìn)行優(yōu)化,通過內(nèi)置微引擎的方式實(shí)現(xiàn)加速處理,性能是CPU無(wú)法比擬的。這樣的結(jié)構(gòu)注定了NP就比ASIC擁有更多的靈活性,對(duì)新增業(yè)務(wù)的支持能力永遠(yuǎn)都比ASIC強(qiáng)。但是NP也有其自身不能克服的缺點(diǎn),NP的硬件資源對(duì)比ASIC肯定還是有很大差距的,所以其在處理海量多業(yè)務(wù)時(shí)轉(zhuǎn)發(fā)性能下降很快,不能達(dá)到線速。
第三種是FPGA,FPGA對(duì)任何高速并行數(shù)據(jù)處理都非常理想,具有可編程的能力和較高的靈活性,便于實(shí)現(xiàn)多業(yè)務(wù)支持,同時(shí),由于其可編程性是通過硬件實(shí)現(xiàn)的,因此可以提供較高的高速數(shù)據(jù)處理性能??紤]到硬件的可編程性沒有軟件靈活,所以最新的FPGA上可以加上一個(gè)微處理器的核心(core),加上了微處理器核心的FPGA,在可編程性上變得“軟硬兼?zhèn)洹薄?除了加上微處理器的核心,F(xiàn)PGA芯片公司還花大力開發(fā)芯片的高速I/O,通過網(wǎng)絡(luò)友好的功能,該類型FPGA可提供高性能數(shù)據(jù)和網(wǎng)絡(luò)控制處理功能。這使他們成為WAN/MAN/LAN網(wǎng)絡(luò)中專用高速數(shù)據(jù)處理的理想候選器件,并將在靈活性/性能間進(jìn)行折衷的控制權(quán)交到用戶手中。此外,F(xiàn)PGA對(duì)任何高速數(shù)據(jù)的并行處理都比較理想,而且具有非常的靈活性和擴(kuò)展性,且開發(fā)周期短,能夠形成具有自主知識(shí)產(chǎn)權(quán)的內(nèi)核,最終還可以形成自己的ASIC,因此在本文設(shè)計(jì)中選擇了FPGA作為高速數(shù)據(jù)處理的核心部件。
根據(jù)高速數(shù)據(jù)中繼器的功能需求,并考慮高速數(shù)據(jù)中繼與轉(zhuǎn)發(fā)中路由器的實(shí)際性能指標(biāo),確定了該高速數(shù)據(jù)中繼器需要達(dá)到以下技術(shù)指標(biāo):具有10Gbit/s線速度處理40字節(jié)長(zhǎng)IP包的能力;支持100MSPS的查表速度;可提供64K條本機(jī)地址表項(xiàng)。
從上述三點(diǎn)性能指標(biāo)來(lái)看,第一點(diǎn)通過選擇性能指標(biāo)高的FPGA即可實(shí)現(xiàn),而第二點(diǎn)和第三點(diǎn)則無(wú)法由FPGA單獨(dú)完成。從這兩點(diǎn)性能指標(biāo)來(lái)看,都是關(guān)于路由查表方面的,一個(gè)是表項(xiàng)容量方面的指標(biāo),一個(gè)是查表速度方面的指標(biāo)。目前流行的查表方案是采用CAM(Content Addressable Memory)來(lái)實(shí)現(xiàn),因此本文總體設(shè)計(jì)中也采用CAM來(lái)實(shí)現(xiàn)查表處理。由此得出的高速數(shù)據(jù)中繼器總體設(shè)計(jì)結(jié)構(gòu)如圖二所示。
圖 二:基于FPGA的數(shù)據(jù)中繼器設(shè)計(jì)結(jié)構(gòu)
在該設(shè)計(jì)結(jié)構(gòu)中,輸入處理和輸出處理使用FPGA來(lái)實(shí)現(xiàn),由于這些處理功能都是在10Gbps的高速下完成的,占用的FPGA資源較多,加之輸入輸出處理時(shí)都有查表模塊,占用的FPGA I/O資源也較多,要在一片F(xiàn)PGA內(nèi)完成這些處理功能是很困難的。為降低設(shè)計(jì)難度和為以后功能擴(kuò)展預(yù)留一些FPGA資源,對(duì)輸入處理采用一片F(xiàn)PGA來(lái)完成,對(duì)輸出處理同樣采用一片F(xiàn)PGA來(lái)完成。對(duì)于其他功能部分,控制管理平面(板極處理機(jī))采用Power PC來(lái)實(shí)現(xiàn),輸入查表和輸出查表使用CAM來(lái)實(shí)現(xiàn)。在10G以太網(wǎng)鏈路層處理上選用商用ASIC芯片S19205來(lái)實(shí)現(xiàn),S19205可以兼容IEEE802.3ae標(biāo)準(zhǔn),能工作在10G-LAN、10G-WAN和10G-POS(Packet Over SDH)三種模式;在10G以太網(wǎng)的PMA和PMD子層的功能實(shí)現(xiàn)上選用了Gtran公司的GT10來(lái)實(shí)現(xiàn),它是一個(gè)Transponder,在內(nèi)部即實(shí)現(xiàn)了光電轉(zhuǎn)換,又實(shí)現(xiàn)了串并轉(zhuǎn)換,通過提供不同的時(shí)鐘網(wǎng)絡(luò)配合S19205就可以實(shí)現(xiàn)這三種10G接入方式。對(duì)于10G-LAN接入和10G-WAN接入而言,F(xiàn)PGA程序的處理流程是相同的,這樣,S19205在GT10的配合下,可以將10G-LAN和10G-WAN的差別屏蔽在FPGA功能處理之外,使得該設(shè)計(jì)結(jié)構(gòu)既可工作在10G-LAN模式,也可工作在10G-WAN模式,達(dá)到設(shè)計(jì)復(fù)用的目的。
評(píng)論