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