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