摘 要: 隨著網(wǎng)絡(luò)業(yè)務(wù)需求的發(fā)展,構(gòu)建具有可擴展性" title="可擴展性">可擴展性和靈活性的路由器成為網(wǎng)絡(luò)技術(shù)研究領(lǐng)域的熱點問題,。在傳統(tǒng)網(wǎng)絡(luò)可重構(gòu)" title="重構(gòu)">重構(gòu)技術(shù)的基礎(chǔ)上,,提出了大規(guī)模接入?yún)R聚路由器(ACR)中分布式網(wǎng)絡(luò)可重構(gòu)" title="可重構(gòu)">可重構(gòu)邏輯(DIRL)系統(tǒng),。該系統(tǒng)賦予了分布式路由器網(wǎng)絡(luò)可重構(gòu)能力,,提高了設(shè)備的可擴展性和靈活性,,降低了設(shè)備的維護和更新成本,。
關(guān)鍵詞: 接入?yún)R聚路由器,; 分布式網(wǎng)絡(luò)可重構(gòu)邏輯; 現(xiàn)場可編程門陣列,; 閃速存儲器
?
隨著互聯(lián)網(wǎng)用戶需求的增加以及網(wǎng)絡(luò)技術(shù)的進步,,新一代互聯(lián)網(wǎng)已經(jīng)能承載包括語音、視頻,、圖像,、數(shù)據(jù),、流媒體等在內(nèi)的多種業(yè)務(wù),,其所蘊含的技術(shù)內(nèi)涵更加豐富。為了適應(yīng)新一代網(wǎng)絡(luò)的業(yè)務(wù)需求,,如何構(gòu)建具有更強可擴展性和靈活性的路由器逐漸成為網(wǎng)絡(luò)技術(shù)研究的一個熱點,。1999年, LEE D C, HARPER S J等人提出了重構(gòu)路由器的原型結(jié)構(gòu),,并將結(jié)構(gòu)中的可重構(gòu)硬件部分用現(xiàn)場可編程門陣列(FPGA)動態(tài)實現(xiàn)[1],。此外,HADZIC I, SMITH J等人運用基于SRAM的FPGA證明了可重構(gòu)技術(shù)" title="可重構(gòu)技術(shù)">可重構(gòu)技術(shù)能夠為網(wǎng)絡(luò)設(shè)備提供動態(tài)的功能擴展[2],。
本文在分析傳統(tǒng)重構(gòu)技術(shù)的基礎(chǔ)上,,結(jié)合工程實踐,,提出了一種分布式網(wǎng)絡(luò)可重構(gòu)邏輯(DIRL)系統(tǒng)。
1 重構(gòu)技術(shù)的發(fā)展?fàn)顩r
1.1重構(gòu)的基本思想
重構(gòu)是指信號處理系統(tǒng)中的硬件功能或硬件功能模塊間的通信連接可以重新配置,。
近年來,,隨著微電子技術(shù)、計算機技術(shù)的發(fā)展,,尤其是大規(guī)模高性能的可編程器件的出現(xiàn),、軟硬件設(shè)計方法和設(shè)計工具上的改進,重構(gòu)技術(shù)逐漸成為國際上計算系統(tǒng)研究的新熱點,。它的出現(xiàn)使過去傳統(tǒng)意義上的硬件軟件的界限變得模糊,,使硬件系統(tǒng)軟件化。電路重構(gòu)的本質(zhì)就是利用可編程器件的可多次重復(fù)配置邏輯狀態(tài)的特性,,在運行時根據(jù)需要改變系統(tǒng)的電路結(jié)構(gòu),,從而使系統(tǒng)兼具靈活、簡捷,、硬件資源可復(fù)用,、易于升級等多種優(yōu)良性能。
1.2 FPGA的可重構(gòu)性
FPGA是在PAL,、GAL,、PLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物,從結(jié)構(gòu)來看主要有兩種:一種是基于逆熔絲技術(shù)的FPGA,另一種是基于SRAM 的FPGA,。用逆熔絲開關(guān)作基本元件的FPGA具有非易失性,。編程完成后,即使撤除工作電壓,FPGA的配置數(shù)據(jù)仍然保留,不能重構(gòu)。而基于SRAM的FPGA通過陣列中的SRAM 單元對FPGA 進行編程,。SRAM編程型FPGA具有易失性,每次重新加電后FPGA都要重載配置數(shù)據(jù),。根據(jù)這一特點可以斷開先前的電路功能后重新下載不同的配置數(shù)據(jù)來實現(xiàn)不同邏輯功能。重載配置數(shù)據(jù)這一特點成為FPGA 在許多新領(lǐng)域得到廣泛應(yīng)用的關(guān)鍵,并成為可重構(gòu)系統(tǒng)發(fā)展的持續(xù)驅(qū)動力量,。
1.3 網(wǎng)絡(luò)可重構(gòu)技術(shù)
隨著基于FPGA的可重構(gòu)技術(shù)的發(fā)展以及網(wǎng)絡(luò)在各個領(lǐng)域的廣泛應(yīng)用,,通過網(wǎng)絡(luò)對異地設(shè)備實現(xiàn)遠程重構(gòu)的設(shè)計理念逐漸成為可能。支持網(wǎng)絡(luò)可重構(gòu)的設(shè)備可大幅度減少設(shè)備維護,、升級的費用,。
鑒于網(wǎng)絡(luò)可重構(gòu)技術(shù)所具有的優(yōu)勢,各大公司和研發(fā)單位紛紛推出了支持網(wǎng)絡(luò)可重構(gòu)技術(shù)的產(chǎn)品和設(shè)計方法,,其中較為典型的是Xilinx公司推出的網(wǎng)絡(luò)可重構(gòu)邏輯IRL(Internet Reconfigurable Logic)的設(shè)計思想" title="設(shè)計思想">設(shè)計思想[3],。IRL設(shè)計思想中包含多套組件,如圖1所示,。
?
研發(fā)主機指設(shè)備研發(fā)單位所具備的硬件/軟件設(shè)計環(huán)境,,可重構(gòu)設(shè)備所需要的重構(gòu)文件可以在研發(fā)主機中生成。這些重構(gòu)文件可以是遠程重構(gòu)設(shè)備中FPGA的配置文件,也可是針對硬件的軟件驅(qū)動,,可重構(gòu)設(shè)備中的應(yīng)用軟件同樣也可作為重構(gòu)文件,。網(wǎng)絡(luò)服務(wù)器負責(zé)從研發(fā)主機獲取重構(gòu)文件,提供針對用戶的重構(gòu)文件下載服務(wù),??芍貥?gòu)設(shè)備中的處理器負責(zé)從網(wǎng)絡(luò)服務(wù)器中獲取、驗證重構(gòu)文件,,并通過板上系統(tǒng)總線對FPGA進行配置,,對軟件進行更新。
運用IRL系統(tǒng)可遠程升級,、可重構(gòu)設(shè)備中的軟件,、驅(qū)動、固件和硬件,。
2 基于ACR的DIRL系統(tǒng)及其關(guān)鍵技術(shù)研究
2.1 ACR可重構(gòu)需求分析
國家科技部在“863”計劃信息技術(shù)領(lǐng)域“高性能寬帶信息網(wǎng)(一般稱之為3TNet,,指T比特的路由、T比特的交換和T比特的傳輸)[4]”專項中部署了重大課題“大規(guī)模匯聚路由器系統(tǒng)性能與關(guān)鍵技術(shù)研究”(大規(guī)模接入?yún)R聚路由器,,Access Convergence Router,,以下簡稱ACR)。ACR是3TNet核心設(shè)備之一,,具有邊緣路由器面向業(yè)務(wù)面向用戶的特點,,需要針對3TNet中不斷出現(xiàn)的新的網(wǎng)絡(luò)業(yè)務(wù)以及運行管理策略對自身的功能、結(jié)構(gòu)進行不斷的升級,、調(diào)整,。傳統(tǒng)路由器更新、重構(gòu)解決方案通常采用增添或更換功能板卡的方式,,該方式存在以下的不足:
(1)時效性:每次更新都需要專門技術(shù)人員對路由器進行現(xiàn)場操作和調(diào)試,,時效性較差。
(2)經(jīng)濟性:經(jīng)濟代價較大,。被替換的功能板卡上的器件一般無法再次回收利用,,還要付出額外的人工維護費用。
(3)靈活性:開發(fā)商在進行設(shè)備研發(fā)時必須考慮為今后的更新預(yù)留接口或資源,。這會給ACR的軟件,、硬件平臺設(shè)計帶來一定的限制,靈活性較差,。
考慮到傳統(tǒng)重構(gòu)技術(shù)的不足,,把網(wǎng)絡(luò)可重構(gòu)設(shè)計思想引入到ACR的體系結(jié)構(gòu)中將是一種較為可行的解決方案,。通過在ACR中設(shè)計網(wǎng)絡(luò)可重構(gòu)系統(tǒng),,使ACR設(shè)備可以通過網(wǎng)絡(luò)控制其軟件及硬件設(shè)備的更新與重構(gòu),傳統(tǒng)重構(gòu)方式所存在的不足將迎刃而解,。
2.2 現(xiàn)有網(wǎng)絡(luò)可重構(gòu)技術(shù)不能滿足ACR需求
路由器是負責(zé)在網(wǎng)絡(luò)層對IP包進行轉(zhuǎn)發(fā)的主要設(shè)備,。ACR屬于高端路由器,,其結(jié)構(gòu)的最主要特點是轉(zhuǎn)發(fā)與控制相分離。ACR功能結(jié)構(gòu)見圖2,。
?
線路接口是數(shù)據(jù)包進出物理鏈路的接口,。轉(zhuǎn)發(fā)處理是在轉(zhuǎn)發(fā)表中查找輸入包目的地址從而決定目的端口。高速交換網(wǎng)絡(luò)實現(xiàn)報文的交換,。內(nèi)部通信模塊是保證路由器各個模塊協(xié)調(diào)工作,、主控模塊對其他各個模塊進行有效控制的模塊。主控板上的主處理器負責(zé)運行路由協(xié)議,、維護并更新路由表等工作,。從處理器位于各個功能板上,通過內(nèi)部以太網(wǎng)絡(luò)與主處理器進行通信,,從主控板獲取路由信息,、配置文件、控制信息[5],。
在ACR中,,接口處理、包轉(zhuǎn)發(fā),、路由表查找以及高速交換都是由FPGA完成的,,它們分布于各個不同的功能板上,完成不同的任務(wù)?,F(xiàn)有的網(wǎng)絡(luò)可重構(gòu)技術(shù)IRL是基于單處理器單電路板的解決方案,,不適用于ACR的分布式體系結(jié)構(gòu)中。用單處理器對ACR中不同功能板上的FPGA進行重構(gòu)是不現(xiàn)實的,。
為了解決現(xiàn)有網(wǎng)絡(luò)重構(gòu)技術(shù)在ACR應(yīng)用中存在的問題,,本文提出了一種適應(yīng)于分布式路由器的DIRL(Distributed Internet Reconfigurable Logic)系統(tǒng)設(shè)計思想。
2.3 DIRL系統(tǒng)設(shè)計
DIRL系統(tǒng)的主要功能是通過網(wǎng)絡(luò)對ACR設(shè)備的硬件進行重構(gòu),,對軟件進行更新,。該系統(tǒng)采用分布式結(jié)構(gòu),根據(jù)功能分為主控,、目標(biāo),、粒度三種單元。各個單元之間的關(guān)系如圖3,。
?
DIRL系統(tǒng)為ACR的硬件重構(gòu)和軟件更新部分劃分了粒度,,它是重構(gòu)系統(tǒng)的最基本組成單元。傳統(tǒng)的增加硬件板卡數(shù)量的方式也可以被認為是一種粗粒度的重構(gòu),,其重構(gòu)粒度是以每個硬件板卡為單位的,。在DIRL系統(tǒng)中,粒度單元的劃分遵循高內(nèi)聚、低耦合的原則,。高內(nèi)聚指粒度單元內(nèi)部功能緊聚合,,如將粒度單元進行更深度的劃分將會對功能的實現(xiàn)帶來不利影響;而低耦合指粒度單元之間的功能上的關(guān)聯(lián)應(yīng)盡量小,。這樣的結(jié)構(gòu)使DIRL系統(tǒng)重構(gòu)一個粒度單元時不必對其他的粒度單元進行改動,,節(jié)省重構(gòu)時間,提高重構(gòu)效率,。根據(jù)這個原則,,DIRL的粒度單元可以分為以下幾類:
(1)FPGA
FPGA是DIRL系統(tǒng)的主要粒度單元,,ACR可根據(jù)應(yīng)用環(huán)境下載不同的配置數(shù)據(jù)改變其功能,。
(2)VxWorks
嵌入式操作系統(tǒng)VxWorks是支持應(yīng)用軟件運行,、DIRL系統(tǒng)下載和重構(gòu)的軟件平臺,。VxWorks采用模塊化設(shè)計,用戶可以根據(jù)需要對系統(tǒng)進行裁減[7],。
?。?)應(yīng)用軟件
ACR各個功能板上的應(yīng)用程序軟件可以通過DIRL系統(tǒng)進行更新和升級。
目標(biāo)單元接收主控單元下發(fā)的重構(gòu)數(shù)據(jù)并負責(zé)所在功能板上所有粒度單元的重構(gòu),,按功能劃分為五個模塊:處理器模塊,、通信模塊、內(nèi)存模塊,、粒度單元數(shù)據(jù)存儲模塊和下載控制模塊,,如圖4所示。
?
處理器模塊是目標(biāo)單元的核心,,用來進行運算并對其它模塊進行控制,。通信模塊與主控單元通過內(nèi)部以太網(wǎng)進行通信,接收主控單元下發(fā)的數(shù)據(jù)并傳送給處理器模塊,。內(nèi)存模塊為處理器模塊提供處理數(shù)據(jù)所需要的高速存取空間,。粒度單元數(shù)據(jù)存儲模塊存儲目標(biāo)單元所控制的所有粒度單元的配置數(shù)據(jù),一般采用Flash這種非易失性可擦寫存儲器件,。下載控制模塊完成對粒度單元的重構(gòu)(注:由于目標(biāo)單元和它所控制的粒度單元位于同一塊功能板,,通過板上系統(tǒng)總線對FPGA進行重構(gòu)是可行的)。
主控單元從網(wǎng)絡(luò)服務(wù)器中下載重構(gòu)文件并下發(fā)給目標(biāo)單元,。DIRL系統(tǒng)運行流程如圖5,。
?
2.4 DIRL系統(tǒng)關(guān)鍵技術(shù)-基于分級的地址匹配方法
在DIRL系統(tǒng)中,當(dāng)主控單元從網(wǎng)絡(luò)服務(wù)器中獲取重構(gòu)文件后,,需要選擇正確的目標(biāo)單元和粒度單元進行重構(gòu)操作,。針對DIRL這種分層結(jié)構(gòu)中的粒度單元尋址問題,,本文提出了粒度單元地址分級匹配方法。
DIRL系統(tǒng)中重構(gòu)文件的格式為自定義格式,,如圖6,。
?
重構(gòu)文件在文件起始位置分別附帶了8bit的目標(biāo)單元號IOT(Identifier Of Target Unit),、8bit的粒度單元號IOG(Identifier Of Granularity Unit)以及32bit的重構(gòu)文件長度信息,。IOT標(biāo)識重構(gòu)文件所對應(yīng)的目標(biāo)單元號,每個目標(biāo)單元在ACR設(shè)備中擁有唯一的IOT,。IOG標(biāo)識重構(gòu)文件所針對的粒度單元號,。每個目標(biāo)單元下屬的粒度單元都進行統(tǒng)一的編號。
粒度單元重構(gòu)的本質(zhì)是用重構(gòu)文件覆蓋目標(biāo)單元中Flash上存儲的原配置文件,,系統(tǒng)重啟后就會調(diào)用更新后的文件,。DIRL分層體系結(jié)構(gòu)決定了對粒度單元配置文件存儲地址的查找分為兩級進行。
首先根據(jù)重構(gòu)文件中的IOT數(shù)據(jù)選擇正確的目標(biāo)單元,,完成一級匹配,。重構(gòu)文件下載到主控單元后,應(yīng)用程序讀取重構(gòu)文件的IOT數(shù)據(jù),,將此數(shù)據(jù)與主控單元維護的目標(biāo)單元號列表中的數(shù)據(jù)相對應(yīng),。目標(biāo)單元號列表保存了ACR設(shè)備中的每個目標(biāo)單元的編號。如果在目標(biāo)單元號列表中查到了重構(gòu)文件包含的IOT數(shù)據(jù),,主控單元則通過內(nèi)部以太網(wǎng)向該目標(biāo)單元發(fā)送更新控制包,。如在目標(biāo)單元號列表中未找到該IOT對應(yīng)的數(shù)據(jù),則提示匹配失敗并向網(wǎng)絡(luò)服務(wù)器報告出錯,。
目標(biāo)單元接收到主控單元下發(fā)的更新控制數(shù)據(jù)包后,,將重構(gòu)文件下載到本地內(nèi)存中。下一步進行二級匹配,,即根據(jù)重構(gòu)文件中的IOG數(shù)據(jù)查找對應(yīng)粒度單元的配置文件在Flash中的存儲地址,。
為了有效利用Flash的存儲空間,單個功能板上所有FPGA的配置文件按粒度號連續(xù)存儲在Flash中,。由于各個功能板上可能使用不同型號的FPGA,,其配置文件的長度可能不同,因此相同IOG的FPGA配置文件在不同功能板上的存儲地址可能并不相同,,IOG與配置文件在Flash中的存儲地址不能直接對應(yīng),。DIRL系統(tǒng)借鑒索引技術(shù)的設(shè)計思想,在Flash的固定存儲位置建立一個的索引表來指示粒度單元配置文件的存儲地址,。每個索引表項中有64bit,,前32bit表示粒度單元配置文件在Flash中的存儲起始地址,后32bit表示配置文件的大小,。這樣通過索引表IOG就可與粒度單元的配置文件在Flash中的存儲地址相對應(yīng),。
對于某種特定型號的FPGA,,無論設(shè)計簡單或是復(fù)雜,其配置的數(shù)據(jù)長度是固定的,。查找FPGA配置文件存儲地址時還要比較配置文件長度信息是否與索引表中的一致,。如果不一致就判斷此配置文件無效,向主控單元上報錯誤信息,。而VxWorks映像文件與應(yīng)用軟件根據(jù)設(shè)計需求長度是不固定的,,只需按照索引表指定的地址更新文件即可。
分級的地址匹配方法解決了分布式路由器體系結(jié)構(gòu)中粒度單元的定位問題,。通過該方法可將重構(gòu)文件可靠,、準(zhǔn)確地下載到目標(biāo)單元Flash中,進而完成對相應(yīng)粒度單元的重構(gòu),。
通過ACR工程實踐證明,,DIRL系統(tǒng)賦予了分布式路由器網(wǎng)絡(luò)可重構(gòu)能力,提高了設(shè)備的可擴展性和靈活性,,極大地降低了設(shè)備的維護,、更新成本。若將DIRL可重構(gòu)設(shè)計思想引入到網(wǎng)絡(luò)體系結(jié)構(gòu)設(shè)計中,,將構(gòu)成一個可重構(gòu)的網(wǎng)絡(luò),。整個網(wǎng)絡(luò)的可重構(gòu)將增強網(wǎng)絡(luò)的可擴展性,降低網(wǎng)絡(luò)的升級成本,。
參考文獻
[1] LEE D C, HARPER S J, ATHANAS P M, et al. A stream-based reconfigurable router prototype. In: Proceedings of the IEEE. Symposium on Field Programmable Gate ?Arrays for Custom Computing Machines. Virginia, 1999-9:?581-585.
[2] ?HADZIC I, SMITH J. On-the-fly programmable hardware?for networks.In:Proceedings of GLOBECOM. GLOBECOM’99,Sydney, 1998,(11):98-102.
[3]?XILINX. Architecting systems for upgradability with IRL?(Internet Reconfigurable Logic) [EB/OL].:www.Xilinx.com, ?2001-6-29.
[4] ?鄔江興.3Tnet與IPTV的未來發(fā)展[R].北京:第二屆中國國際新媒體產(chǎn)業(yè)論壇,,2005.
[5] ?張興明.大規(guī)模接入?yún)R聚路由器(ACR)總體技術(shù)規(guī)范[R].國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,2005.
[6] ?段然,,樊曉椏.可重構(gòu)計算技術(shù)及其發(fā)展趨勢[J].計算機應(yīng)用研究,,2004,21(8):14-17.
[7] ?周啟平,,張楊,,吳瓊.VxWorks開發(fā)指南與Tornado實用手冊.北京:中國電力出版社,2004:168-170.
?