摘 要:NetFPGA即網(wǎng)絡(luò)可編程門陣列,為設(shè)計(jì)人員提供可重復(fù)使用的網(wǎng)絡(luò)設(shè)計(jì)平臺(tái)。本文主要闡述了NetFPGA的工作原理、NetFPGA的組成結(jié)構(gòu)以及NetFPGA的相關(guān)應(yīng)用。
關(guān)鍵詞:NetFPGA;門陣列;網(wǎng)絡(luò)
信息技術(shù)的時(shí)代,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)飛速發(fā)展,網(wǎng)絡(luò)應(yīng)用于人們的生活、工作和學(xué)習(xí)。隨著網(wǎng)絡(luò)的普及,各種基于網(wǎng)絡(luò)的應(yīng)用不斷增多,流媒體的使用消耗了大量的網(wǎng)絡(luò)帶寬。各種應(yīng)用對(duì)網(wǎng)絡(luò)帶寬和安全性的要求越來(lái)越高,網(wǎng)絡(luò)的硬件也日趨復(fù)雜。而NetFPGA(Network Field Programmable Gate Array)的應(yīng)用為網(wǎng)絡(luò)性能的提高提供了一個(gè)開(kāi)發(fā)的平臺(tái)。
1 NetFPGA的原理
NetFPGA是由美國(guó)斯坦福大學(xué)開(kāi)發(fā)設(shè)計(jì)的,最初的目的是用于課堂教學(xué)。NetFPGA為研究人員提供了一個(gè)可以重復(fù)使用的網(wǎng)絡(luò)設(shè)計(jì)的硬件平臺(tái)[1]。
NetFPGA將FPGA(Field Programmable Gate Array)可編程的特性應(yīng)用于網(wǎng)絡(luò)通訊領(lǐng)域。FPGA是可編程的門陣列。馮氏計(jì)算機(jī)采用二進(jìn)制編碼,程序在計(jì)算機(jī)中最終表現(xiàn)為“0”和“1”的代碼,不管采用什么語(yǔ)言編寫程序最終都要轉(zhuǎn)化為二進(jìn)制的編碼。FPGA依靠“0”和“1”的編碼進(jìn)行功能的實(shí)現(xiàn)。
FPGA支持模塊化和層次化的設(shè)計(jì)風(fēng)格,由多個(gè)功能單元模塊組成。其中有三個(gè)重要的模塊:可編程的I/O模塊、可編程的邏輯單元和可編程的連線。可編程的I/O模塊定義FPGA的非專用引腳為輸入或者輸出引腳,并進(jìn)行相應(yīng)的設(shè)置??删幊痰倪壿媶卧纱鎯?chǔ)器和觸發(fā)器組成,存儲(chǔ)器一般由Flash和SRAM組成,存儲(chǔ)器中保存了“真值表”,“真值表”是由數(shù)值為“0”和“1”的編碼組成。例如6個(gè)輸入和1個(gè)輸出的組合邏輯電路,在存儲(chǔ)器中相應(yīng)的保存了6個(gè)輸入和1個(gè)輸出的“真值表”,設(shè)計(jì)者修改“真值表”內(nèi)部的數(shù)值,配合觸發(fā)器,就可以等效于6輸入1輸出的組合邏輯電路。實(shí)際使用中,邏輯電路的規(guī)模比較大,所以需要配合第三個(gè)模塊可編程連線模塊進(jìn)行使用??删幊踢B線模塊能夠根據(jù)編程確定相應(yīng)線路的連接和斷開(kāi),將各個(gè)編程邏輯單元有機(jī)組合起來(lái),形成大型的邏輯電路。FPGA可編程的原因就是因?yàn)榇鎯?chǔ)器中存在多張“真值表”,通過(guò)編程更改“真值表”中的“0”和“1”值,實(shí)現(xiàn)大規(guī)模的邏輯功能[2]。
NetFPGA即網(wǎng)絡(luò)可編程的門陣列,是一個(gè)軟硬件都可編程的開(kāi)發(fā)平臺(tái)。NetFPGA將FPGA可編程的特性應(yīng)用于網(wǎng)絡(luò)通信領(lǐng)域,研究人員或設(shè)計(jì)人員可以通過(guò)NetFPGA平臺(tái)搭建一個(gè)高速的網(wǎng)絡(luò)系統(tǒng),進(jìn)行相應(yīng)的研究和測(cè)試。NetFPGA支持模塊化的設(shè)計(jì),通過(guò)各種子模塊能夠進(jìn)行復(fù)雜的硬件設(shè)計(jì)。
2 NetFPGA的組成
2001年推出NetFPGA-v1版本,2007年推出了NetFPGA2.1,NetFPGA2.1的硬件資源包含Virtex-II Pro XC2VP50 FPGA、Spartan-II XC2S200 FPGA、ZBT SRAM、DDR2 SDRAM、BCM5464 PHY芯片、33MHz PCI總線接口、4個(gè)千兆以太網(wǎng)接口、2個(gè)Serial ATA接口、時(shí)鐘資源[3]。
整個(gè)NetFPGA平臺(tái)由硬件和軟件組成,硬件主要包含:UFPGA、CFPGA、SRAM、SDRAM、PHY、PCI、SATA等核心部件,軟件包含基于LINUX操作系統(tǒng)的設(shè)備驅(qū)動(dòng)程序和與相關(guān)工程對(duì)應(yīng)的軟件。
3 基于NetFPGA的應(yīng)用舉例
隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大和網(wǎng)絡(luò)應(yīng)用的普及,網(wǎng)絡(luò)變得越來(lái)越復(fù)雜。為了加強(qiáng)網(wǎng)絡(luò)的管理和控制,需要對(duì)網(wǎng)絡(luò)進(jìn)行測(cè)量,掌握網(wǎng)絡(luò)的運(yùn)行情況,方便管理員對(duì)網(wǎng)絡(luò)進(jìn)行管理。網(wǎng)絡(luò)流量的檢測(cè)可以獲知網(wǎng)絡(luò)的運(yùn)行狀況和性能等相關(guān)信息,所以流量采集是網(wǎng)絡(luò)測(cè)量的一項(xiàng)重要內(nèi)容。傳統(tǒng)流量采集大多基于軟件的流量采集,使用串行的方式處理數(shù)據(jù)包,這種采集方法隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,受到了越來(lái)越多的限制。
在高速的網(wǎng)絡(luò)中為了提高網(wǎng)絡(luò)測(cè)量的精度,通過(guò)利用NetFPGA內(nèi)部并行處理的優(yōu)勢(shì),設(shè)計(jì)基于NetFPGA的并行處理網(wǎng)絡(luò)數(shù)據(jù)流量采集器。經(jīng)過(guò)大量的驗(yàn)證和總結(jié),設(shè)計(jì)和開(kāi)發(fā)人員提出了采集器的結(jié)構(gòu)模型。由硬件和軟件兩部分組成,硬件部分基于NetFPGA平臺(tái)進(jìn)行設(shè)計(jì),軟件部分進(jìn)行流量信息的匯總[4]。
4 結(jié)束語(yǔ)
NetFPGA主要提供給設(shè)計(jì)網(wǎng)絡(luò)電子系統(tǒng)的人員使用,設(shè)計(jì)人員通過(guò)NetFPGA快速搭建相應(yīng)功能的芯片,設(shè)計(jì)路由器、交換機(jī)等網(wǎng)絡(luò)設(shè)備。由于NetFPGA可以重復(fù)編程,且開(kāi)發(fā)周期短,NetFPGA在網(wǎng)絡(luò)通信方面應(yīng)用廣泛,在未來(lái)發(fā)展前景將更加的廣闊。
[參考文獻(xiàn)]
[1]李彬.基于NetFPGA的網(wǎng)絡(luò)流量分類[D].電子科技大學(xué).2011年5月.
[2]FPGA學(xué)習(xí)的一些誤區(qū).2014年9月;http://wenku.baidu.com/view/1eaaacfe941ea76e58fa045c.html。
[3]龔亮亮.基于NetFPGA的網(wǎng)絡(luò)安全通信[D].吉林大學(xué).2011年4月.
[4]劉付斌,高相銘.基于NetFPGA的網(wǎng)絡(luò)數(shù)據(jù)流量采集器[J].測(cè)控技術(shù).2014年第1期.