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