《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 星載交換機(jī)中高性能隊(duì)列管理器的研究與實(shí)現(xiàn)
星載交換機(jī)中高性能隊(duì)列管理器的研究與實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2012年第1期
王孟磊1,施 揚(yáng)2,喬廬峰2,禹明剛1
1.解放軍理工大學(xué) 通信工程學(xué)院研究生1隊(duì),江蘇 南京210007; 2.解放軍理工大學(xué) 通信工程學(xué)院電信工程系,江蘇 南京210007
摘要: 針對(duì)星載交換機(jī)中硬件處理速度和存儲(chǔ)器容量受限的情況,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)高性能隊(duì)列管理器。采用虛擬輸出排隊(duì)機(jī)制改善輸入緩存中存在的隊(duì)頭阻塞問題;使用前向地址指針pre_addr和后向地址指針nxt_addr控制信元的寫入和讀出。通過ModelSim SE行為級(jí)時(shí)序仿真可知,其能夠達(dá)到星載交換機(jī)的隊(duì)列時(shí)延要求,具有較高的交換性能及穩(wěn)定性。
中圖分類號(hào): TN919.6
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2012)01-0044-04
Research and implementation of a high performance queue management equipment on the satellite onboard switch
Wang Menglei1,Shi Yang2,Qiao Lufeng2,Yu Minggang1
1.Postgraduate Team 1 ICE, PLAUST, Nanjing 210007,China; 2.Department of Telecommunications Engineering ICE, PLAUST,Nanjing 210007,China
Abstract: This paper implements a high performance queue management equipment due to the limitation of hardware procession speed and memory capacity on the satellite onboard switch. It utilizes virtual output queue(VOQ) to improve the HOL problem of input buffer, and control the writing and reading of a cell by implementing the previous address pointer(pre_addr) and the next address pointer (nxt_addr). The results of ModelSim SE behavioral timing simulation show that it satisfies the need of queue delay of the satellite onboard switch, and has high performance and stability.
Key words : satellite onboard switch;queue management equipment;VOQ;ModelSim SE simulation

    星載交換機(jī)是以衛(wèi)星為核心的天基信息系統(tǒng)的關(guān)鍵子系統(tǒng),是制約天基信息系統(tǒng)發(fā)展的關(guān)鍵技術(shù)之一,而星載交換機(jī)的核心是高性能的交換芯片。由于太空劇烈變化的環(huán)境溫度和各種離子的影響,使得宇航級(jí)電子器件的性能指標(biāo)遠(yuǎn)高于地面設(shè)備電子器件,而可選用作為宇航級(jí)電子器件的范圍又遠(yuǎn)低于地面設(shè)備器件的選用范圍,同時(shí)星載設(shè)備對(duì)可靠性的要求遠(yuǎn)高于地面設(shè)備。這就要求星載交換機(jī)在技術(shù)體制、電路結(jié)構(gòu)、數(shù)據(jù)包隊(duì)列管理方式、調(diào)度算法等都與地面的交換機(jī)有很大不同,這些問題均有待于進(jìn)行深入研究。

    對(duì)于以衛(wèi)星為核心的天基信息系統(tǒng),利用地面高性能IP交換機(jī)仍然存在較大問題,使其在天基信息系統(tǒng)中的使用受到了限制。
    (1)功耗:星上設(shè)備對(duì)功耗有嚴(yán)格的控制,地面高性能骨干IP交換機(jī)的功耗通常在數(shù)百瓦到幾千瓦,這對(duì)于星載設(shè)備來說是難以承受的。
    (2)系統(tǒng)可靠性:星上設(shè)備對(duì)系統(tǒng)可靠性要求極高,需要在不同層面上考慮冗余備份問題。
    (3)系統(tǒng)重量與體積:星上載荷的重量是衛(wèi)星系統(tǒng)的重要指標(biāo),星載高性能交換機(jī)在體積和重量上與地面設(shè)備相比必須大幅度減輕。
    (4)系統(tǒng)硬件結(jié)構(gòu)優(yōu)化:IP交換機(jī)系統(tǒng)的硬件復(fù)雜度和集成度非常高,但由于空間溫度環(huán)境、空間粒子流等的影響,元器件選擇上存在很大制約,地面設(shè)備中廣泛使用的SDRAM、DDR、高性能CPU等器件都無法直接使用,這要求系統(tǒng)硬件結(jié)構(gòu)和算法的復(fù)雜度必須降低,使之在可用宇航級(jí)元器件(如低速SRAM、處理器和存儲(chǔ)器)的基礎(chǔ)上實(shí)現(xiàn)較高的交換能力。
    (5)系統(tǒng)軟件結(jié)構(gòu)優(yōu)化:IP路由器系統(tǒng)的軟件復(fù)雜度非常高,由于在天基信息系統(tǒng)中高性能網(wǎng)絡(luò)處理器無法直接使用,所以部分傳統(tǒng)上采用軟件實(shí)現(xiàn)的功能和算法要采用硬件固化的方法來實(shí)現(xiàn)。這就需要簡(jiǎn)化復(fù)雜的IP協(xié)議棧。
    基于以上分析,地面高性能IP交換機(jī)在天基信息系統(tǒng)中的使用受到了很大限制。由于星上存儲(chǔ)器容量不能像地面那樣寬裕,隊(duì)列長(zhǎng)度受限,而衛(wèi)星空中接口的往返傳播時(shí)延又大于地面,為了更好地設(shè)計(jì)流量控制,需要在星載交換機(jī)結(jié)構(gòu)中使用一個(gè)復(fù)雜度低且有效的隊(duì)列管理器,減少對(duì)緩存區(qū)容量的要求,保證低時(shí)延,降低掉包率,達(dá)到用戶的QoS要求,提高吞吐量。
1 基本概念
    在星載交換機(jī)中,為了實(shí)現(xiàn)IP數(shù)據(jù)包快速轉(zhuǎn)發(fā),一般采用基于定長(zhǎng)信元的體制,IP數(shù)據(jù)包在進(jìn)入交換結(jié)構(gòu)前,被分割成許多固定長(zhǎng)度的分組(下文統(tǒng)稱為信元)。交換結(jié)構(gòu)的緩存方式主要有輸入緩存、輸出緩存和共享緩存。對(duì)于一個(gè)N×N交換結(jié)構(gòu),輸出緩存中存儲(chǔ)器的訪問速度是線路速率的(N+1)倍;采用共享緩存方式是線路速率的2×N倍;而對(duì)于輸入緩存方式,存儲(chǔ)器的訪問速度是線路速率的兩倍,與交換機(jī)的端口數(shù)目無關(guān)。為了增大交換機(jī)的容量,支持更高的線路速率,在星載交換機(jī)中有必要研究輸入緩存的方式。
    對(duì)于輸入緩存中存在的隊(duì)頭阻塞HOL(Head of Line blocking)問題,采用虛擬輸出排隊(duì)(VOQ)技術(shù)可改善該問題,使吞吐量達(dá)到100%。VOQ要獲得高的性能,關(guān)鍵問題是要設(shè)計(jì)一個(gè)匹配輸入和空閑輸出端口的高效、公平的調(diào)度算法,也就是二部圖的匹配問題。
    采用虛擬輸出排隊(duì)機(jī)制的輸入排隊(duì)交換結(jié)構(gòu)模型如圖1所示。在每個(gè)輸入端口的緩存區(qū)中,設(shè)置N個(gè)(N為交換機(jī)端口數(shù)目)FIFO隊(duì)列,每個(gè)FIFO隊(duì)列對(duì)應(yīng)一個(gè)輸出端口。也就是說,將輸入端口為i,輸出端口為j的分組緩存到虛擬輸出隊(duì)列VOQi,j中,在調(diào)度器的控制下,將匹配的VOQi,j中的分組調(diào)度出去。

 

 

2 隊(duì)列管理器結(jié)構(gòu)
    隊(duì)列管理器由輸入控制接口電路、多隊(duì)列請(qǐng)求處理電路、多端口請(qǐng)求處理電路、緩沖區(qū)接口控制電路、調(diào)度器等模塊組成。隊(duì)列管理器的基本結(jié)構(gòu)如圖2所示。

    輸入控制接口電路將接收到的IP數(shù)據(jù)包切割成許多長(zhǎng)度為64 B的信元,并做必要的標(biāo)識(shí),以便進(jìn)行IP數(shù)據(jù)包的重組。每個(gè)信元都包含一個(gè)信頭,信頭結(jié)構(gòu)包括目的輸出端口、優(yōu)先級(jí)和可以擴(kuò)展的標(biāo)識(shí)。多隊(duì)列請(qǐng)求處理電路根據(jù)信元的輸出端口和優(yōu)先級(jí)將信元流分成多個(gè)VOQ隊(duì)列,多端口請(qǐng)求處理電路在調(diào)度器的控制下將信元從信元緩沖區(qū)讀出。
    設(shè)星載交換機(jī)有K個(gè)輸出端口,信元有N個(gè)優(yōu)先級(jí)。信元緩沖區(qū)(SRAM)的地址空間被劃分成K個(gè)私有區(qū)和1個(gè)共享區(qū)。私有區(qū)k(1≤k≤K)只能被去往第k個(gè)輸出端口的信元占用,而共享區(qū)可以被去往任何輸出端口的信元占用。設(shè)置K個(gè)私有FIFO(PFIFO1,PFIFO2,…,PFIFOK)和1個(gè)共享FIFO(SFIFO)。私有區(qū)k(1≤k≤K)的全部可用地址被記錄在(PFIFOK)中,共享區(qū)的全部可用地址被記錄在SFIFO中。
    每個(gè)輸出端口均維持N個(gè)邏輯隊(duì)列,第n(1≤n≤N)個(gè)邏輯隊(duì)列對(duì)應(yīng)于第n種優(yōu)先級(jí)信元。每個(gè)邏輯隊(duì)列由兩部分組成;第一部分位于私有區(qū),第二部分位于共享區(qū)。邏輯隊(duì)列可能只存在第一部分,而不存在第二部分。在信元緩沖區(qū)中一共形成N×K個(gè)邏輯隊(duì)列。
    在電路模塊中,設(shè)置N×K組寄存器,每個(gè)邏輯隊(duì)列分別使用一組寄存器來控制信元的寫入與讀出,每組寄存器包括:header、tailer、depth 3個(gè)寄存器。其中header為隊(duì)首寄存器,記錄每條邏輯隊(duì)列的隊(duì)首地址;tailer為隊(duì)尾寄存器,記錄每條邏輯隊(duì)列的隊(duì)尾地址;depth為深度寄存器,記錄每條邏輯隊(duì)列的信元個(gè)數(shù)。每條邏輯隊(duì)列中上(前)一個(gè)信元和下(后)一個(gè)信元的存儲(chǔ)地址分別由前向地址指針pre_addr、后向地址指針nxt_addr記錄。
    圖3中給出了前向地址指針pre_addr、后向地址指針nxt_addr以及信元存儲(chǔ)地址之間關(guān)系的一個(gè)示例。圖中所示的邏輯隊(duì)列的隊(duì)首地址由header記錄,隊(duì)尾地址由tailer記錄。該邏輯隊(duì)列中信元的存儲(chǔ)地址依次是4(隊(duì)首),7 026,3 900,5 732,5 733,7 025,1(隊(duì)尾)。

    在本隊(duì)列管理器設(shè)計(jì)中,交換機(jī)的端口數(shù)目和信元的優(yōu)先級(jí)可以根據(jù)星載交換機(jī)的設(shè)計(jì)要求和交換容量進(jìn)行動(dòng)態(tài)地?cái)U(kuò)展,私有區(qū)和共享區(qū)的存儲(chǔ)容量也可以根據(jù)流量管理的要求進(jìn)行動(dòng)態(tài)地?cái)U(kuò)展。前向地址指針pre_addr、后向地址指針nxt_addr利用FPGA內(nèi)置RAM實(shí)現(xiàn);PFIFO1、PFIFO2,…,PFIFOK和SFIFO利用FPGA內(nèi)置FIFO實(shí)現(xiàn);隊(duì)首寄存器header和隊(duì)尾寄存器tailer利用寄存器實(shí)現(xiàn)。
3 隊(duì)列管理器工作方法
    當(dāng)系統(tǒng)復(fù)位后,隊(duì)列管理器對(duì)地址空間進(jìn)行初始化,將可用的地址指針寫入到地址空間。信元存儲(chǔ)空間分為兩部分,一部分為共享存儲(chǔ)空間,另一部分為K個(gè)針對(duì)每個(gè)端口固定分配的信元空間,以確保每個(gè)端口都有可用的存儲(chǔ)空間。當(dāng)一個(gè)信元到達(dá)時(shí),如果固定分配的空間和共享空間剩余容量之和不能滿足該信元時(shí),則拒絕該信元。隊(duì)列管理器只需要知道到達(dá)信元的輸出端口和優(yōu)先級(jí),就可以確定其進(jìn)入哪個(gè)邏輯隊(duì)列。信元的寫入和讀出采用狀態(tài)機(jī)進(jìn)行控制。
    當(dāng)有新的信元(n,k)到達(dá)時(shí),其中n為優(yōu)先級(jí),1≤n≤N;k為輸出端口,1≤k≤K。信元寫入控制流程如圖4所示。最后根據(jù)wr_addr,將信元寫入緩沖區(qū)。如果發(fā)生隊(duì)列擠占,則被擠占的邏輯隊(duì)列需要被更新,如果僅有一個(gè)信元,則header和tailer都被置0;反之,用前一個(gè)信元的地址來更新tailer。寫入信元的邏輯隊(duì)列需要被更新:如果該邏輯隊(duì)列沒有信元,則header和tailer都被置為wr_addr;反之,將tailer的內(nèi)容記錄在pre_addr的第wr_addr個(gè)地址中,將wr_addr記錄在nxt_addr的第tailer個(gè)地址中,tailer的內(nèi)容被更新為wr_addr。

    當(dāng)有信元讀出時(shí),各輸出端口采用輪詢的方式,信元讀出控制流程如圖5所示。讀出信元的邏輯隊(duì)列需要被更新:如果僅有一個(gè)信元,則header和tailer都被置0;反之,用下一個(gè)信元的地址來更新header,tailer不變。
4 仿真結(jié)果
    本設(shè)計(jì)采用Xilinx Vertex-5 FPGA實(shí)現(xiàn),開發(fā)環(huán)境是Xilinx集成開發(fā)環(huán)境ISE13.1,電路核心模塊用Verilog HDL編程實(shí)現(xiàn),仿真工具采用ModelSim SE。星載交換機(jī)有16個(gè)輸出端口,信元有4個(gè)優(yōu)先級(jí),PFIFOk為256,SFIFO為4 096。仿真驗(yàn)證結(jié)果表明電路功能符合設(shè)計(jì)要求。
4.1 寄存器讀寫指針時(shí)序仿真
    由仿真時(shí)序圖6可以看出,初始狀態(tài)時(shí),PFIFO0、PFIFO2、…、PFIFO15和SFIFO都為空,隊(duì)列管理器將空閑指針依次寫入PFIFO0、PFIFO2、…、PFIFO15中,當(dāng)它們都為滿時(shí),最后寫入SFIFO中。

    由仿真時(shí)序圖7可以看出,隊(duì)列管理器首先從PFIFO0中讀出可用指針,當(dāng)其為空時(shí),就從SFIFO中讀出,然后依次從PFIFO0、PFIFO2、…、PFIFO15中讀出可用指針。當(dāng)它們都為空時(shí),則從SFIFO中讀出,直到no_ptr=1,說明地址空間無可用指針。

4.2 信元的讀寫時(shí)序仿真
    由仿真時(shí)序圖8可以看出,隊(duì)列管理器根據(jù)信頭中的輸出端口和優(yōu)先級(jí),依次將信元寫入信元存儲(chǔ)器,信元存儲(chǔ)器形成64個(gè)邏輯隊(duì)列,然后在調(diào)度器的控制下,依次將信元從相應(yīng)的邏輯隊(duì)列中讀出。

    在衛(wèi)星通信中,業(yè)務(wù)種類繁多且突發(fā)性強(qiáng),用戶對(duì)服務(wù)質(zhì)量(QoS)要求較高,而衛(wèi)星網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)變化快,傳播時(shí)延大,這就要求星載交換機(jī)具有較小的交換時(shí)延和丟包率。本文設(shè)計(jì)了一種高性能隊(duì)列管理器,通過硬件仿真驗(yàn)證,其基本能夠滿足星載交換機(jī)的各種性能指標(biāo)要求,本隊(duì)列管理器采用動(dòng)態(tài)擴(kuò)展的設(shè)計(jì)方式,靈活度較大,但也存在許多不足之處,如組播信元的處理考慮不足、可能存在隊(duì)頭阻塞問題及IP包的管理問題,有可能由于一個(gè)信元的丟失導(dǎo)致整個(gè)IP包無法接受,這些都是今后進(jìn)一步的研究工作。
參考文獻(xiàn)
[1] CHAO H J,Liu Bin.High performance switches and routers [M].New Jersey,US:John Wiley & Sons Inc,2007:225-278.
[2] THO Le-Ngoc.Switching for IP-based multimedia satellite  communications[J].IEEE Journal on Selected Areas in  Communications,22(3),2004(4):318-322.
[3] Zeng Yuan,Gong Wenbin,Liu Huijie,et al.Scheduling  algorithm for satellite onboard switch[J].Computer Engineer ing,2009,35(2):158-160.
[4] Zhang Yi,Zhou Quan,Li Jun.An input-buffer scheduling  algorithm in satellite switching system[J].Journal of Elec tronics&Information Technology,2009,31(6):1429-1431.
[5] Wang Peng,Yao Mingwu,Bao Minquan,et al.Switch chip  of avionics full duplex ethernet based on FPGA[J].Computer Engineering,2008,34(23):261-263.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。