專利名稱:基于變長包的交換系統(tǒng)及交換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊領(lǐng)域,特別是涉及應(yīng)用在核心路由器的信息交換領(lǐng)域。
背景技術(shù):
交換系統(tǒng)作為路由器的關(guān)鍵技術(shù),歷來都很受關(guān)注。目前比較成熟的交換系統(tǒng)主要有輸出排隊的交換系統(tǒng)、輸入排隊的交換系統(tǒng)、聯(lián)合輸入輸出排隊的交換系統(tǒng)和并行分布式排隊的交換系統(tǒng)。目前這些交換系統(tǒng)應(yīng)用的交換單元在工程中普遍采用crossbar來實現(xiàn),因此僅支持定長包的處理。所謂定長包是指信息包長為一固定常數(shù)值的信息包。相對而言,變長包是指信息包長為可變值的信息包。
輸出排隊交換系統(tǒng)是指所有緩沖區(qū)隊列放置于目的端口,如圖2所示,信息包110進(jìn)入輸入端口101,經(jīng)交換單元103交換、調(diào)度被送往目的端口104的緩沖隊列105,隨后被輸出調(diào)度。由于輸出排隊交換系統(tǒng)在輸入端口101沒有緩沖區(qū)隊列,所有到達(dá)信息包110必須立即送往目的端口104。從吞吐量和時延特性的角度來看,這是有利的,但是所有到達(dá)的信息包同時傳送到目的端口需要太多的內(nèi)部連接帶寬和存儲器帶寬。對于一個N×N的輸出排隊交換網(wǎng)絡(luò),有可能N個信息包同時到達(dá)任意一個目的端口,要在一個時隙里接收N個信息包,輸出緩沖區(qū)隊列105的存儲器必須能在一個時隙里完成N次寫入,傳送到存儲器的內(nèi)部線路速率也必須為信息包到達(dá)速率的N倍。這樣需要一個內(nèi)部加速比為N的交換單元103。而同時輸出緩沖區(qū)隊列的存儲器還必須支持讀出一個信息包到輸出線路,這樣存儲器的工作速率必須是線路速率的N+1倍。對于高速路由器,這種系統(tǒng)是不易于實現(xiàn)的。
輸入排隊交換系統(tǒng)是指所有緩沖區(qū)隊列放置于目的端口,如圖2所示信息包210進(jìn)入輸入端口201的緩沖區(qū)隊列202、經(jīng)交換單元203交換、調(diào)度被送往目的端口204,隨后被輸出調(diào)度。單純的輸入排隊交換系統(tǒng)會導(dǎo)致低的吞吐量。因為每個輸入端口201只有一個緩沖區(qū)隊列202,當(dāng)兩個隊列首部信息包同時要到同一個目的端口204時就會發(fā)生隊首阻塞,而隊列后部要到空閑目的端口的信息包也無法發(fā)送。為了克服吞吐量低的缺點,輸入排隊交換系統(tǒng)通常采用虛擬輸出排隊VOQ方式,即對于N×N的交換網(wǎng)絡(luò),每個輸入端口放置N個緩沖區(qū)隊列,分別對應(yīng)N個目的端口。這樣每個緩沖區(qū)隊列中所有信息包的目的端口一致,也就避免了隊首阻塞的發(fā)生。VOQ看似復(fù)雜,但由于一個時隙每個輸入端口最多只能有一個信息包到達(dá)和一個信息包離開,因此存儲器帶寬的要求與單一緩沖隊列時一樣。通過使用頭尾指針,一個輸入端口的N個緩沖隊列可以在物理上共享一個存儲器。邏輯上的劃分可以是靜態(tài)也可以是動態(tài)的。VOQ系統(tǒng)中應(yīng)用的存儲器帶寬利用率高,又無隊首阻塞,因而很適用于高速路由器,缺點是VOQ系統(tǒng)的調(diào)度比單一緩沖隊列時要復(fù)雜。但是由于存儲器帶寬和線路速率的限制,目前商用高速路由器多數(shù)采取此種方式。不足之處在于基于輸入排隊交換系統(tǒng)的調(diào)度策略僅能實現(xiàn)粗粒度的優(yōu)先級服務(wù),其時延、時延抖動特性均不如基于輸出排隊交換系統(tǒng)的調(diào)度算法。
聯(lián)合輸入輸出排隊交換系統(tǒng)是在輸入端口、目的端口分別進(jìn)行緩沖排隊。該系統(tǒng)如圖3所示,信息包310進(jìn)入輸入端口301的緩沖區(qū)隊列302、經(jīng)交換單元303交換、調(diào)度被送往目的端口304的緩沖區(qū)隊列305,隨后被輸出調(diào)度?;诼?lián)合輸入輸出排隊系統(tǒng)模擬輸出排隊的調(diào)度策略,通過精心設(shè)計,能夠?qū)τ谒蓄愋偷牡竭_(dá)業(yè)務(wù)實現(xiàn)單一信息包的時延控制。這一系統(tǒng)最先由Prabhakar和McKeown提出,他們證明了對于任何類型到達(dá)業(yè)務(wù)任何規(guī)模的交換網(wǎng)絡(luò),聯(lián)合輸入輸出排隊交換系統(tǒng)采用加速比為4時,可以完全相同的仿效FIFO(First In First Out)輸出緩沖隊列工作。Shang-Tse Chuang等得出了進(jìn)一步的結(jié)論,他們證明最小加速比僅需為2-1/N。這一結(jié)論對于任何類型業(yè)務(wù)任何規(guī)模的交換網(wǎng)絡(luò)都成立,而且它適用于一大類廣泛使用的輸出排隊交換系統(tǒng)的調(diào)度算法,如WFQ,strict priority,F(xiàn)IFO。缺點在于目前基于此種系統(tǒng)所提出的調(diào)度算法復(fù)雜度過高,在工程中無法實現(xiàn),只具有理論意義。
并行分布式排隊的交換系統(tǒng)是將業(yè)務(wù)負(fù)荷分擔(dān)到多個平面,進(jìn)行并行處理,這樣可以進(jìn)一步降低對存儲器存取速率和交換單元工作速率的要求。典型的并行分布式排隊的交換系統(tǒng)如并行分組交換系統(tǒng)PPS,如圖4所示,該系統(tǒng)利用多個容量較小的交換單元,如子層交換單元411、412、413,通過并行處理來組建一個大容量的交換機(jī)410,通過輸入端口進(jìn)行業(yè)務(wù)分配實現(xiàn)負(fù)載平衡,在各個小型交換系統(tǒng)中并行處理,然后通過目的端口的復(fù)用,從而使其等效或模擬一個輸出排隊的交換系統(tǒng)。這樣使得采用存儲器的隨機(jī)存取速率可以低于端口速率,同時可以實現(xiàn)高性能的調(diào)度策略。并行分布式排隊的交換系統(tǒng)缺陷在于多個平面的并行處理將導(dǎo)致控制管理上的復(fù)雜,而且由于并行處理將導(dǎo)致信息包亂序的問題,目前尚無易于工程實現(xiàn)的解決亂序問題的方案。
由上述可見,幾種現(xiàn)有技術(shù)的交換系統(tǒng)都存在下列不足1、現(xiàn)有技術(shù)不能支持變長包的處理。
交換系統(tǒng)所應(yīng)用的交換單元在工程普遍采用crossbar來實現(xiàn),一般高性能的crossbar交換單元都采用了定長交換的方式,在數(shù)據(jù)信息包進(jìn)入crossbar以前,將它分割為固定長度的信元cell,這些cell通過交換單元以后被按照原樣組織成原來的變長信息包packet。而在采用定長信息包處理時,在路由器中需要增加分片、重組的開銷。而且由于切片后信息包長較小,內(nèi)部信息包頭開銷所占比例增大,處理效率較低。
2、現(xiàn)有技術(shù)不能同時滿足速度、性能和復(fù)雜度三方面的要求。
現(xiàn)有交換系統(tǒng)雖然各有優(yōu)勢,但在高速環(huán)境下不能同時滿足速度、性能和復(fù)雜度三方面的要求。輸出排隊的交換系統(tǒng)存在N倍加速問題,在高速環(huán)境下應(yīng)用受限,提高速度將大大增加成本,而且隨著速度的提高會降低信息交換的穩(wěn)定性。輸入排隊的交換系統(tǒng)雖然不需加速,但輸入排隊交換系統(tǒng)的調(diào)度算法僅能實現(xiàn)粗粒度的優(yōu)先級服務(wù),其時延、時延抖動特性均不如基于輸出排隊交換系統(tǒng)的調(diào)度算法。聯(lián)合輸入輸出排隊交換系統(tǒng)僅處于理論研究階段,其調(diào)度算法的復(fù)雜度過高,工程中很難實現(xiàn)。并行分布式排隊的交換系統(tǒng)多個平面處理將導(dǎo)致控制管理的復(fù)雜,而且亂序問題的解決還需要額外的復(fù)雜開銷。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題在于提供一種基于變長包的交換系統(tǒng)及方法,以實現(xiàn)能夠支持變長信息包的處理、能夠同時滿足速度、性能和復(fù)雜度三方面的要求。
在此基礎(chǔ)上,本發(fā)明進(jìn)一步解決的技術(shù)問題是提供一種基于變長包的交換系統(tǒng)及方法,易于實現(xiàn)組播復(fù)制。
為解決上述問題,本發(fā)明提供了一種基于變長包的交換系統(tǒng),該系統(tǒng)包括輸入端口,用于輸入信息包;目的端口,用于輸出信息包;其特征在于,還包括交換單元,支持多個信息通道,用于通過所述信息通道接收自輸入端口輸入的信息包或交換單元之間傳送的信息包,并交換處理所接收的信息包;所述存儲單元,設(shè)置于每個輸入端口和目的端口,用于在每個輸入端口根據(jù)目的端口數(shù)目設(shè)置區(qū)分目的端口的緩沖隊列;以及根據(jù)支持優(yōu)先級的數(shù)目在每個目的端口設(shè)置區(qū)分優(yōu)先級的優(yōu)先級緩沖隊列;連接總線,用于實現(xiàn)輸入端口、存儲單元、交換單元和目的端口之間的連接。
其中,所述交換單元由現(xiàn)場可編程門陣列或特定應(yīng)用集成電路或基于網(wǎng)絡(luò)處理器實現(xiàn)。
其中,所述存儲單元包括數(shù)個級聯(lián)的多隊列先入先出存儲器或靜態(tài)隨機(jī)存儲器或同步動態(tài)隨機(jī)存儲器。
為解決上述問題,本發(fā)明提供了一種基于變長包的交換方法,該方法應(yīng)用于包括輸入端口、交換單元、存儲單元和目的端口的交換系統(tǒng),其特征在于,首先執(zhí)行步驟A,分配數(shù)個存儲單元到輸入端口、目的端口;其次執(zhí)行步驟B,在所述每一輸入端口的存儲單元中根據(jù)目的端口數(shù)目設(shè)置區(qū)分目的端口的緩沖隊列,在所述目的端口的存儲單元中根據(jù)支持優(yōu)先級的數(shù)目設(shè)置區(qū)分優(yōu)先級的優(yōu)先級緩沖隊列;接著執(zhí)行步驟C,調(diào)度輸入端口到達(dá)的信息包,根據(jù)其欲到達(dá)的目的端口送往對應(yīng)存儲單元的緩沖隊列;然后執(zhí)行步驟D,輪循調(diào)度欲到達(dá)每一目的端口的緩沖隊列中的信息包,按優(yōu)先級標(biāo)記送往對應(yīng)區(qū)分優(yōu)先級的優(yōu)先級緩沖隊列;最后執(zhí)行步驟E,按優(yōu)先級標(biāo)記,調(diào)度同一目的端口的優(yōu)先級緩沖隊列中的信息包輸出。
其中,所述步驟D進(jìn)一步包括組播復(fù)制信息包。
其中,所述優(yōu)先級的數(shù)目為整數(shù)值。
其中,所述輪循調(diào)度具體包括判斷所述到達(dá)同一目的端口的數(shù)個不同輸入端口的緩沖隊列是否為空,若否,則依次讀取所述緩沖隊列中的一個完整包;否則,不進(jìn)行處理。
其中,所述調(diào)度由現(xiàn)場可編程門陣列或特定應(yīng)用集成電路或基于網(wǎng)絡(luò)處理器實現(xiàn)。
其中,所述存儲單元包括數(shù)個級聯(lián)的多隊列先入先出存儲器或靜態(tài)隨機(jī)存儲器或同步動態(tài)隨機(jī)存儲器。
與現(xiàn)有技術(shù)相比,本發(fā)明提供的交換系統(tǒng)具有以下有益效果首先,由于本發(fā)明交換系統(tǒng)中交換單元的支持,因而能夠很好的支持變長信息包的處理,因此,避免了分片重組的開銷,提高了處理效率。其次,由于僅需要存儲單元和交換單元兩倍加速即可支持高性能低復(fù)雜度的調(diào)度算法,從而使核心路由器投入成本較低。再者,由于交換單元中的各個FPGA芯片相互間通過數(shù)據(jù)總線相聯(lián),芯片內(nèi)部的交換采用了全互連的結(jié)構(gòu),從而在結(jié)構(gòu)上更易于實現(xiàn)組播復(fù)制,使得實現(xiàn)組播支持的復(fù)雜度極低。
與現(xiàn)有技術(shù)相比,本發(fā)明的交換方法具有以下有益效果首先,由于本發(fā)明在所述每一輸入端口的對應(yīng)的存儲單元中根據(jù)目的端口數(shù)目設(shè)置區(qū)分目的端口的緩沖隊列,在所述目的端口的存儲單元中根據(jù)支持優(yōu)先級的數(shù)目設(shè)置區(qū)分優(yōu)先級的優(yōu)先級緩沖隊列,然后調(diào)度輸入端口到達(dá)的信息包,根據(jù)其予到達(dá)的目的端口送往對應(yīng)存儲單元的緩沖隊列,然后輪循調(diào)度予到達(dá)每一目的端口的緩沖隊列中的信息包,按優(yōu)先級標(biāo)記送往對應(yīng)區(qū)分優(yōu)先級的優(yōu)先級緩沖隊列;因而能夠很好的支持變長信息包的處理,因此,避免了分片重組的開銷,提高了處理效率。
圖1是現(xiàn)有技術(shù)輸出排隊交換系統(tǒng);圖2是現(xiàn)有技術(shù)輸入排隊交換系統(tǒng);圖3是現(xiàn)有技術(shù)聯(lián)合輸入輸出排隊交換系統(tǒng);圖4是并行分組交換系統(tǒng);圖5是本發(fā)明硬件物理結(jié)構(gòu)圖;圖6是本發(fā)明芯片連接關(guān)系圖;圖7是本發(fā)明基于變長信息包的交換系統(tǒng)工作原理圖;圖8是加權(quán)差額循環(huán)調(diào)度算法示意圖;圖9是本發(fā)明單片F(xiàn)PGA中元件工作的流程圖;圖10是本發(fā)明基于變長包的交換系統(tǒng)流程圖;
圖11是本發(fā)明信息包具體處理流程圖。
具體實施例方式
基于變長包的交換系統(tǒng)的物理結(jié)構(gòu)如圖5所示,該交換系統(tǒng)由交換單元和存儲單元構(gòu)成。其中,交換單元包括4片XC2VP20-6F896C型號的FPGA芯片,單片F(xiàn)PGA芯片內(nèi)支持8個可編程高速IO通道,支持多種串行接口規(guī)范,而且高速IO通道內(nèi)部集成了串并變換、8B/10B編譯碼器、CRC校驗等多個可配置子單元,數(shù)據(jù)總線通過高速IO通道將4片芯片相互連接在一起;其中,存儲單元由16片IDT72V51356L6BB型號的多隊列FIFO芯片構(gòu)成,因為該交換系統(tǒng)內(nèi)部的數(shù)據(jù)處理總線為64位線寬,單個的多隊列FIFO只能支持36位線寬,因此需要將兩片F(xiàn)IFO芯片級聯(lián),實現(xiàn)位數(shù)擴(kuò)展,以支持單片F(xiàn)PGA芯片一個高速IO通道的信息存儲。由于單片F(xiàn)PGA芯片內(nèi)置規(guī)??蛇_(dá)三百萬門,然而對于該交換系統(tǒng)仍然資源不足,因此交換系統(tǒng)的交換單元采用了四片F(xiàn)PGA芯片,其中每片芯片用來支持兩個通道的交換,然后如圖5所示互聯(lián)在一起。即同軸0-7對應(yīng)為交換系統(tǒng)的輸入端口和目的端口,每片F(xiàn)PGA與兩個同軸連接。以連接同軸0、1的FPGA為例,對于目的端口為0、1的信息包,在芯片F(xiàn)PGA 501內(nèi)部處理,處理后分別送信息包存儲單元505、506進(jìn)入各自的緩沖隊列。同理對于目的端口為2、3的信息包送往芯片F(xiàn)PGA502處理,處理后分別送信息包存儲單元507、508進(jìn)入各自的緩沖隊列;對于目的端口為4、5的信息包送往芯片F(xiàn)PGA 503處理,處理后分別送信息包存儲單元512、511進(jìn)入各自的緩沖隊列;對于目的端口為6、7的信息包送往芯片F(xiàn)PGA 504處理,處理后分別送信息包存儲單元510、509進(jìn)入各自的緩沖隊列。總體來說,就是首先根據(jù)到達(dá)信息包的目的端口將信息包送往對應(yīng)的芯片F(xiàn)PGA進(jìn)行處理,處理后經(jīng)調(diào)度分別送往對應(yīng)的信息包存儲單元進(jìn)入各自的緩沖隊列。
各芯片在交換系統(tǒng)內(nèi)部的位置和接口關(guān)系如圖6所示。
交換單元由FPGA01、FPGA23、FPGA45、FPGA67芯片通過2.5G高速差分信號總線相互連接。芯片各自分別完成兩個端口的輸入控制、優(yōu)先級調(diào)度、輸出控制等工作,并負(fù)責(zé)完成與其它端口的交互工作;FPGA之間采用2.5G高速差分信號總線連接,這樣對于不同輸入端口輸入的信息包經(jīng)處理后,通過信號總線傳輸?shù)狡溆璧竭_(dá)的目的端口的優(yōu)先級緩沖隊列,進(jìn)行優(yōu)先級排隊。
每兩片多隊列FIFO級聯(lián)組成信息包存儲單元,負(fù)責(zé)緩存一個端口的優(yōu)先級隊列。該交換系統(tǒng)可以分為四個對稱的部分,每部分由一片F(xiàn)PGA和兩個信息包存儲單元組成,每個信息包存儲單元負(fù)責(zé)緩存一個目的端口的區(qū)分優(yōu)先級的信息包,通過66位寬的數(shù)據(jù)總線連接與FPGA芯片連接。事實上,這四個部分的工作處理過程基本一致,因此我們僅以FPGA01所在部分來具體說明交換系統(tǒng)中各芯片相互間的連接關(guān)系。
如圖6所示,在芯片F(xiàn)PGA01501內(nèi)部支持8個高速IO通道,兩個通道分別用于第1、2兩個端口的收發(fā)信息包,標(biāo)記為601、602。其余6個高速IO通道用于和其他6個端口交互。其中與芯片F(xiàn)PGA23502連接的通道分別為603、604,與芯片F(xiàn)PGA67504連接的通道分別為605、606,與芯片F(xiàn)PGA45503連接的通道分別為607、608,然后通過用數(shù)據(jù)總線611、612與信息包存儲單元505連接在一起,通過用數(shù)據(jù)總線613、614與信息包存儲單元506連接在一起。如此相互的連接,可方便的實現(xiàn)數(shù)據(jù)信息包到各個目的端口的傳送及組播復(fù)制。
基于變長包的交換系統(tǒng)工作原理如圖7所示,首先,在每個輸入端口、目的端口設(shè)置信息包存儲單元,即在輸入端口采取區(qū)分目的端口的排隊。(雖然這樣增加了信息包存儲單元的總個數(shù),但這樣避免了各端口之間的交互,可以采用分離的調(diào)度算法,即調(diào)度算法僅需考慮到單一目的端口的擁塞狀態(tài),而不需要考慮其他端口的狀態(tài),獨立的進(jìn)行調(diào)度。(與之對應(yīng)的是集中控制的調(diào)度算法,它需要考慮到交換系統(tǒng)中所有端口的狀態(tài)進(jìn)行調(diào)度。)這樣更易于硬件的實現(xiàn)。其次,對于目的端口相同的緩沖隊列,采用輪循調(diào)度策略(即判斷所述到達(dá)同一目的端口的N個不同源端口隊列是否為空,對于非空的隊列,依次從中讀取一個完整包,空隊列則不進(jìn)行處理。)對到達(dá)的信息包進(jìn)行調(diào)度,輸出信息包被送往目的端口的優(yōu)先級隊列進(jìn)行區(qū)分優(yōu)先級的排隊。
例如,對于8×8的交換網(wǎng)絡(luò),在每個輸入端口設(shè)置一個信息包存儲單元,所有輸入端口一共有8個信息包存儲單元,即兩片F(xiàn)IFO級聯(lián),其中在每個信息包存儲單元中設(shè)置8個分離的緩存隊列,即分別到0、1…7端口的緩存隊列,以分別緩存到達(dá)不同目的端口的信息包。同樣,在每個目的端口設(shè)置1個信息包存儲單元,即兩片F(xiàn)IFO級聯(lián),所有目的端口一共是8個信息包存儲單元,其中在每個信息包存儲單元中設(shè)置優(yōu)先級緩存隊列,分別緩存從不同輸入端口輸入的并且到達(dá)此目的端口的優(yōu)先級信息包。更具體描述,即在對應(yīng)目的端口為0的信息包存儲單元中設(shè)置優(yōu)先級緩存隊列,以緩存所有輸入端口(即輸入端口0、輸入端口1…7)輸入的并且予到達(dá)目的端口為0的信息包,并且按照優(yōu)先級標(biāo)記進(jìn)行優(yōu)先級排隊。即在目的端口為0的端口中,8個優(yōu)先級緩存隊列分別為0端口的優(yōu)先級0信息包、0端口的優(yōu)先級1信息包、0端口的優(yōu)先級m信息包…0端口的優(yōu)先級7信息包。同理,對對應(yīng)其它輸入端口、目的端口的信息包存儲單元進(jìn)行設(shè)置。當(dāng)然,優(yōu)先級的數(shù)目可以為任意整數(shù)值,比如在目的端口為0的端口中,設(shè)置為2個優(yōu)先級緩沖隊列,即0端口的優(yōu)先級0信息包、0端口的優(yōu)先級1信息包;同理,優(yōu)先級緩沖隊列數(shù)目也可以大于輸入端口的數(shù)目。這樣設(shè)置后,所有被輪循調(diào)度的信息包按照所設(shè)置的優(yōu)先級隊列進(jìn)行排隊。
交換單元中的芯片F(xiàn)PGA在優(yōu)先級隊列的出口選用多種輸出排隊交換方法的調(diào)度策略對排隊的優(yōu)先級隊列進(jìn)行調(diào)度,比如加權(quán)公平排隊策略(Weighted Fair Queuing,WFQ)、統(tǒng)計公平排隊(Stochastic Fair Queuing,SFQ)、差額輪詢(Defcit Round Robin,DRR)、自定時公平排隊策略(SelfClocked Fair Queuing,SCFQ)等,以實現(xiàn)對不同優(yōu)先級業(yè)務(wù)的帶寬分配。其中針對目的端口的調(diào)度是二倍加速,即經(jīng)過信息包存儲單元一級加速及信息包交換單元中的交換子單元二級加速,這樣可以導(dǎo)致優(yōu)先級隊列的擁塞,以便實現(xiàn)帶寬分配。這種方法的優(yōu)勢在于僅用二倍加速在性能上可逼近需要N倍加速的輸出排隊方法。該方法可以針對端口采取隊列管理策略(比如,先到先丟(First In First Drop,F(xiàn)IFD)、末尾丟棄(Drop Tail)、隨機(jī)早期探測(RandomEarly Detection,RED)、標(biāo)記隨機(jī)早期探測(RED with IN and OUT bit,RIO)和加權(quán)隨機(jī)早期探測(Weighted RED,WRED)等隊列管理機(jī)制。)與支持優(yōu)先級的帶寬調(diào)度策略(比如,加權(quán)公平排隊策略(Weighted Fair Queuing,WFQ)、統(tǒng)計公平排隊(Stochastic Fair Queuing,SFQ)、差額輪詢(Deficit RoundRobin,DRR)、自定時公平排隊策略(Self Clocked Fair Queuing,SCFQ)等)相結(jié)合,能夠為到達(dá)信息包業(yè)務(wù)提供很好的(Qulity ofServers,QoS)支持。同時考慮了當(dāng)前元器件的工藝水平限制。如直接采用傳統(tǒng)的輸出排隊交換方法,在一個目的端口設(shè)置一個邏輯上分離而物理上單一的信息包存儲單元,這對于當(dāng)前商用存儲器隨機(jī)訪問速率水平是較難實現(xiàn)的。因此我們分兩步實現(xiàn)基于變長包的信息交換,首先通過采用2.5G高速差分電路連接的4片F(xiàn)PGA根據(jù)到達(dá)信息包的目的端口實現(xiàn)端口間的交換,此處采用2倍加速的輪循調(diào)度算法,進(jìn)而通過單片F(xiàn)PGA控制多隊列FIFO構(gòu)成的輸出信息包存儲單元實現(xiàn)基于優(yōu)先級的帶寬分配。這樣交換方法可以不必工作于N倍加速狀態(tài),通過FPGA,在優(yōu)先級隊列的出口采用允許低延遲隊列的加權(quán)差額循環(huán)調(diào)度算法(Modified Weighted Deficit Round Robin,MWDRR)對信息包進(jìn)行調(diào)度,即所述允許低延遲隊列的加權(quán)差額循環(huán)算法(MWDRR)是在常規(guī)的差額循環(huán)算法(DRR)基礎(chǔ)上改進(jìn)而成的,它不僅能夠很好的支持區(qū)分優(yōu)先級的調(diào)度,而且對流媒體業(yè)務(wù)能夠提供更好的支持。MWDRR算法將最高優(yōu)先級隊列設(shè)置為低延遲隊列,對其他的7個優(yōu)先級隊列采取支持優(yōu)先級的差額輪詢方式按整信息包進(jìn)行調(diào)度。對于低延遲隊列,采用交替優(yōu)先模式,使低延遲隊列和其他優(yōu)先級隊列交替獲得服務(wù)。如圖8所示,假設(shè)隊列0是低延遲隊列,則各隊列獲得服務(wù)的次序為0、1、0、2、0、3、0、4、0、5、0、6、0、7。MWDRR算法主要通過差額計數(shù)器來調(diào)度各隊列的輸出。在初始時刻將各隊列的差額計數(shù)器清零,每個循環(huán)周期的開始為各隊列的差額計數(shù)器加上一個與其權(quán)值成比例的數(shù)值,根據(jù)交替優(yōu)先模式各隊列按對應(yīng)的順序輪循,差額計數(shù)器計數(shù)值大于0的隊列即調(diào)度頭信息包輸出,相應(yīng)計數(shù)器減去輸出信息包長的字節(jié)數(shù)。差額計數(shù)器計數(shù)值小于0的隊列則被跳過,等待下一個循環(huán)的輪循。)這樣,通過所述MWDRR算法對信息包進(jìn)行優(yōu)先級隊列調(diào)度,以實現(xiàn)支持不同優(yōu)先級業(yè)務(wù)的帶寬分配,進(jìn)而實現(xiàn)在低倍速下即可支持高性能地復(fù)雜的調(diào)度算法,而且該交換方法中的交換單元通過芯片F(xiàn)PGA內(nèi)部采用全互連方式實現(xiàn),這樣對從不同輸入端口輸入的信息包可以通過交互的數(shù)據(jù)總線傳輸?shù)接璧竭_(dá)的目的端口,從而能夠支持變長信息包處理。
圖9給出了交換單元中單片芯片對到達(dá)信息包的處理過程首先,0、1端口到達(dá)信息包通過同軸電纜801、同軸電纜802進(jìn)入芯片F(xiàn)PGA 501內(nèi)部;其次,經(jīng)高速IO 5011完成串并變換;再次,寫入各自的異步FIFO 5012;同理,2至7端口的到達(dá)信息包由其他三片F(xiàn)PGA經(jīng)同軸電纜901、902…905進(jìn)入芯片F(xiàn)PGA 501,通過高速IO 5011完成串并變換后先寫入各自的異步FIFO 5012。接著,對于所有目的端口為0、1端口的信息包,經(jīng)過交換子單元進(jìn)行區(qū)分源端口的排隊;然后,通過FPGA內(nèi)部邏輯實現(xiàn)輪循調(diào)度進(jìn)行輪循讀取,送往各自優(yōu)先級隊列;最后,優(yōu)先級隊列中的信息包根據(jù)所述調(diào)度算法被信息包存儲子單元505讀出,被FPGA芯片中的優(yōu)先級緩存子單元調(diào)度,送往異步FIFO 5012,經(jīng)高速IO通道5011通過標(biāo)記為801同軸電纜輸出。
對于單播信息包,若其目的端口為2至7端口,則送往芯片內(nèi)對應(yīng)端口的異步FIFO,然后經(jīng)過高速IO從芯片輸出。
對于0、1端口到達(dá)的組播信息包,根據(jù)其組播標(biāo)記將信息包直接復(fù)制到其它對應(yīng)目的端口的異步FIFO,完成組播復(fù)制,送往其對應(yīng)目的端口。
如圖10所示基于變長包的交換方法,該交換方法應(yīng)用于包括輸入端口、目的端口、存儲單元、交換單元的交換系統(tǒng),其包括步驟首先執(zhí)行步驟S401,即分配數(shù)個存儲單元到輸入端口、目的端口;接著執(zhí)行步驟S402,即在所述每一輸入端口的存儲單元中根據(jù)目的端口數(shù)目設(shè)置區(qū)分目的端口的緩沖隊列,在所述目的端口的存儲單元中根據(jù)支持優(yōu)先級的數(shù)目設(shè)置區(qū)分優(yōu)先級的優(yōu)先級緩沖隊列,所述優(yōu)先級的數(shù)目為任意整數(shù)值;接著執(zhí)行步驟S403,即調(diào)度輸入端口到達(dá)的信息包,根據(jù)其到達(dá)的目的端口送往對應(yīng)輸入端口存儲單元的緩沖隊列;接著執(zhí)行步驟S404,即根據(jù)每一目的端口,輪循調(diào)度到達(dá)此端口的緩沖隊列中的信息包,按優(yōu)先級標(biāo)記送往對應(yīng)區(qū)分優(yōu)先級的優(yōu)先級緩沖隊列;最后執(zhí)行步驟S405,即按優(yōu)先級標(biāo)記,調(diào)度同一目的端口的優(yōu)先級緩沖隊列中的信息包輸出。
信息包具體處理流程如圖11所示,具體包括首先執(zhí)行步驟S101,即外部端口從轉(zhuǎn)發(fā)模塊接收數(shù)據(jù)包;接著執(zhí)行步驟S102即進(jìn)行過濾空閑字和數(shù)據(jù)對齊后對IP報文進(jìn)行重組;接著執(zhí)行步驟S103,即對于重組后的IP報文,根據(jù)其內(nèi)部標(biāo)識和組播標(biāo)識完成報文過濾和復(fù)制;接著執(zhí)行步驟S104,判斷目的端口是否在本片F(xiàn)PGA中,若否,即對于目的端口在其它芯片F(xiàn)PGA的報文,送往36bit寬的內(nèi)部報文緩存;若是則執(zhí)行步驟S111;接著執(zhí)行步驟S105,即判斷是否有完整報文,若是則輸出報文到其它FPGA處理,若否則輸出空閑碼到其它FPGA處理;步驟S111,對于目的端口在本片F(xiàn)PGA的IP報文,將其由32bit+K碼的格式轉(zhuǎn)換為64bit+頭尾標(biāo)識的格式;步驟S111后,緊接著執(zhí)行步驟S112,即送往一個66bit寬的內(nèi)部報文緩存。
步驟S201,F(xiàn)PGA之間的互連接口接收其它FPGA通過高速通道送來的數(shù)據(jù),接著執(zhí)行步驟S202,即進(jìn)行過濾空閑字和數(shù)據(jù)對齊后對IP報文進(jìn)行重組;接著執(zhí)行步驟S203,即對于重組后的IP報文,根據(jù)其內(nèi)部標(biāo)識和組播標(biāo)識完成報文過濾和復(fù)制,然后執(zhí)行步驟S204,即將其由32bit+K碼的格式轉(zhuǎn)換為64bit+頭尾標(biāo)識的格式;步驟S204后,緊接著執(zhí)行步驟S205,即送往另一個66bit寬的內(nèi)部報文緩存。
隨后執(zhí)行步驟206,即對于步驟112和步驟205后的兩個內(nèi)部緩存中的報文一起進(jìn)行區(qū)分優(yōu)先級的排隊;接著執(zhí)行步驟S207,即寫入到外部緩存隊列;接著執(zhí)行步驟S208,即對于外部緩存隊列中的報文,根據(jù)優(yōu)先級調(diào)度算法從外部緩存隊列中讀取報文;接著執(zhí)行步驟S209,即將其由64bit+頭尾標(biāo)識的格式轉(zhuǎn)換為32bit+K碼的格式最后執(zhí)行步驟S210,即送往線路接口模塊。
由上述可見,本發(fā)明給出的實施例是以基于FPGA(Field Programable GateArray現(xiàn)場可編程門陣列)和多隊列FIFO的組合為基礎(chǔ)的,在實際的工程中還可以采用基于NP(Network Processor網(wǎng)絡(luò)處理器)和ASIC(ApplicationSpecific Integrated Circuit特定應(yīng)用集成電路)代替FPGA,采用SRAM(StaticRandom Access Memory靜態(tài)隨機(jī)存儲器)和SDRAM(Synchronous DynamicRandom Access Memory同步動態(tài)隨機(jī)存儲器)代替多隊列FIFO來實現(xiàn)。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明公開的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種基于變長包的交換系統(tǒng),包括輸入端口,用于輸入信息包;目的端口,用于輸出信息包;其特征在于,還包括交換單元,支持多個信息通道,用于通過所述信息通道接收自輸入端口輸入的信息包或交換單元之間傳送的信息包,并交換處理所接收的信息包;所述存儲單元,設(shè)置于每個輸入端口和目的端口,用于在每個輸入端口根據(jù)目的端口數(shù)目設(shè)置區(qū)分目的端口的緩沖隊列;以及根據(jù)支持優(yōu)先級的數(shù)目在每個目的端口設(shè)置區(qū)分優(yōu)先級的優(yōu)先級緩沖隊列;連接總線,用于實現(xiàn)輸入端口、存儲單元、交換單元和目的端口之間的連接。
2.按照權(quán)利要求1所述的基于變長包的交換系統(tǒng),其特征在于,所述交換單元由現(xiàn)場可編程門陣列或特定應(yīng)用集成電路或基于網(wǎng)絡(luò)處理器實現(xiàn)。
3.按照權(quán)利要求1所述的基于變長包的交換系統(tǒng),其特征在于,所述存儲單元包括數(shù)個級聯(lián)的多隊列先入先出存儲器或靜態(tài)隨機(jī)存儲器或同步動態(tài)隨機(jī)存儲器。
4.一種基于變長包的交換方法,應(yīng)用于包括輸入端口、交換單元、存儲單元和目的端口的交換系統(tǒng),其特征在于,包括步驟A、分配數(shù)個存儲單元到輸入端口、目的端口;B、在所述每一輸入端口的存儲單元中根據(jù)目的端口數(shù)目設(shè)置區(qū)分目的端口的緩沖隊列,在所述目的端口的存儲單元中根據(jù)支持優(yōu)先級的數(shù)目設(shè)置區(qū)分優(yōu)先級的優(yōu)先級緩沖隊列;C、調(diào)度輸入端口到達(dá)的信息包,根據(jù)其欲到達(dá)的目的端口送往對應(yīng)存儲單元的緩沖隊列;D、輪循調(diào)度欲到達(dá)每一目的端口的緩沖隊列中的信息包,按優(yōu)先級標(biāo)記送往對應(yīng)區(qū)分優(yōu)先級的優(yōu)先級緩沖隊列;E、按優(yōu)先級標(biāo)記,調(diào)度同一目的端口的優(yōu)先級緩沖隊列中的信息包輸出。
5.按照權(quán)利要求4所述的基于變長包的交換方法,其特征在于,所述步驟D進(jìn)一步包括組播復(fù)制信息包。
6.按照權(quán)利要求4所述的基于變長包的交換方法,其特征在于,所述步驟B中的優(yōu)先級的數(shù)目為整數(shù)值。
7.按照權(quán)利要求4所述的基于變長包的交換方法,其特征在于,所述輪循調(diào)度具體包括判斷所述到達(dá)同一目的端口的數(shù)個不同輸入端口的緩沖隊列是否為空,若否,則依次讀取所述緩沖隊列中的一個完整包;否則,不進(jìn)行處理。
8.按照權(quán)利要求4所述的基于變長包的交換方法,其特征在于,所述調(diào)度由現(xiàn)場可編程門陣列或特定應(yīng)用集成電路或基于網(wǎng)絡(luò)處理器實現(xiàn)。
9.按照權(quán)利要求4所述的基于變長包的交換方法,其特征在于,所述存儲單元包括數(shù)個級聯(lián)的多隊列先入先出存儲器或靜態(tài)隨機(jī)存儲器或同步動態(tài)隨機(jī)存儲器。
全文摘要
本發(fā)明提供了一種基于變長包的交換系統(tǒng),該系統(tǒng)包括輸入端口,用于輸入信息包;目的端口,用于輸出信息包;還包括交換單元,支持多個信息通道,用于通過所述信息通道接收自輸入端口輸入的信息包或交換單元之間傳送的信息包,并交換處理所接收的信息包;所述存儲單元,設(shè)置于每個輸入端口和目的端口,用于在每個輸入端口根據(jù)目的端口數(shù)目設(shè)置區(qū)分目的端口的緩沖隊列;以及根據(jù)支持優(yōu)先級的數(shù)目在每個目的端口設(shè)置區(qū)分優(yōu)先級的優(yōu)先級緩沖隊列;連接總線,用于實現(xiàn)輸入端口、存儲單元、交換單元和目的端口之間的連接。本發(fā)明能夠很好的支持變長信息包的處理,僅需兩倍加速即可支持高性能低復(fù)雜度的調(diào)度算法,在結(jié)構(gòu)上更易于實現(xiàn)組播復(fù)制。
文檔編號H04L12/56GK1728682SQ20041007068
公開日2006年2月1日 申請日期2004年7月29日 優(yōu)先權(quán)日2004年7月29日
發(fā)明者汪斌強(qiáng), 張興明, 伊鵬, 羅敏軒, 胡曦明, 郝京宇 申請人:國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心