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