《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 星載交換機(jī)中高性能隊列管理器的研究與實現(xiàn)
星載交換機(jī)中高性能隊列管理器的研究與實現(xiàn)
來源:電子技術(shù)應(yīng)用2012年第1期
王孟磊1,施 揚(yáng)2,喬廬峰2,禹明剛1
1.解放軍理工大學(xué) 通信工程學(xué)院研究生1隊,江蘇 南京210007; 2.解放軍理工大學(xué) 通信工程學(xué)院電信工程系,江蘇 南京210007
摘要: 針對星載交換機(jī)中硬件處理速度和存儲器容量受限的情況,設(shè)計實現(xiàn)了一個高性能隊列管理器。采用虛擬輸出排隊機(jī)制改善輸入緩存中存在的隊頭阻塞問題;使用前向地址指針pre_addr和后向地址指針nxt_addr控制信元的寫入和讀出。通過ModelSim SE行為級時序仿真可知,其能夠達(dá)到星載交換機(jī)的隊列時延要求,具有較高的交換性能及穩(wěn)定性。
中圖分類號: TN919.6
文獻(xiàn)標(biāo)識碼: B
文章編號: 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)境溫度和各種離子的影響,使得宇航級電子器件的性能指標(biāo)遠(yuǎn)高于地面設(shè)備電子器件,而可選用作為宇航級電子器件的范圍又遠(yuǎn)低于地面設(shè)備器件的選用范圍,同時星載設(shè)備對可靠性的要求遠(yuǎn)高于地面設(shè)備。這就要求星載交換機(jī)在技術(shù)體制、電路結(jié)構(gòu)、數(shù)據(jù)包隊列管理方式、調(diào)度算法等都與地面的交換機(jī)有很大不同,這些問題均有待于進(jìn)行深入研究。

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

 

 

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

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

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

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

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

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

    在衛(wèi)星通信中,業(yè)務(wù)種類繁多且突發(fā)性強(qiáng),用戶對服務(wù)質(zhì)量(QoS)要求較高,而衛(wèi)星網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)變化快,傳播時延大,這就要求星載交換機(jī)具有較小的交換時延和丟包率。本文設(shè)計了一種高性能隊列管理器,通過硬件仿真驗證,其基本能夠滿足星載交換機(jī)的各種性能指標(biāo)要求,本隊列管理器采用動態(tài)擴(kuò)展的設(shè)計方式,靈活度較大,但也存在許多不足之處,如組播信元的處理考慮不足、可能存在隊頭阻塞問題及IP包的管理問題,有可能由于一個信元的丟失導(dǎo)致整個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)載。