星載交換機(jī)高性能隊(duì)列管理器的設(shè)計(jì)與實(shí)現(xiàn)
星載交換機(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í)星載設(shè)備對可靠性的要求遠(yuǎn)高于地面設(shè)備。這就要求星載交換機(jī)在技術(shù)體制、電路結(jié)構(gòu)、數(shù)據(jù)包隊(duì)列管理方式、調(diào)度算法等都與地面的交換機(jī)有很大不同,這些問題均有待于進(jìn)行深入研究。
本文引用地址:http://m.butianyuan.cn/article/148101.htm對于以衛(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ǔ)上實(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)。這就需要簡化復(fù)雜的IP協(xié)議棧。
基于以上分析,地面高性能IP交換機(jī)在天基信息系統(tǒng)中的使用受到了很大限制。由于星上存儲器容量不能像地面那樣寬裕,隊(duì)列長度受限,而衛(wèi)星空中接口的往返傳播時(shí)延又大于地面,為了更好地設(shè)計(jì)流量控制,需要在星載交換機(jī)結(jié)構(gòu)中使用一個(gè)復(fù)雜度低且有效的隊(duì)列管理器,減少對緩存區(qū)容量的要求,保證低時(shí)延,降低掉包率,達(dá)到用戶的QoS要求,提高吞吐量。
1基本概念
在星載交換機(jī)中,為了實(shí)現(xiàn)IP數(shù)據(jù)包快速轉(zhuǎn)發(fā),一般采用基于定長信元的體制,IP數(shù)據(jù)包在進(jìn)入交換結(jié)構(gòu)前,被分割成許多固定長度的分組(下文統(tǒng)稱為信元)。交換結(jié)構(gòu)的緩存方式主要有輸入緩存、輸出緩存和共享緩存。對于一個(gè)N×N交換結(jié)構(gòu),輸出緩存中存儲器的訪問速度是線路速率的(N+1)倍;采用共享緩存方式是線路速率的2×N倍;而對于輸入緩存方式,存儲器的訪問速度是線路速率的兩倍,與交換機(jī)的端口數(shù)目無關(guān)。為了增大交換機(jī)的容量,支持更高的線路速率,在星載交換機(jī)中有必要研究輸入緩存的方式。
對于輸入緩存中存在的隊(duì)頭阻塞HOL(HeadofLineblocking)問題,采用虛擬輸出排隊(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ì)列對應(yīng)一個(gè)輸出端口。也就是說,將輸入端口為i,輸出端口為j的分組緩存到虛擬輸出隊(duì)列VOQi,j中,在調(diào)度器的控制下,將匹配的VOQi,j中的分組調(diào)度出去。
2隊(duì)列管理器結(jié)構(gòu)
隊(duì)列管理器由輸入控制接口電路、多隊(duì)列請求處理電路、多端口請求處理電路、緩沖區(qū)接口控制電路、調(diào)度器等模塊組成。隊(duì)列管理器的基本結(jié)構(gòu)如圖2所示。
輸入控制接口電路將接收到的IP數(shù)據(jù)包切割成許多長度為64B的信元,并做必要的標(biāo)識,以便進(jìn)行IP數(shù)據(jù)包的重組。每個(gè)信元都包含一個(gè)信頭,信頭結(jié)構(gòu)包括目的輸出端口、優(yōu)先級和可以擴(kuò)展的標(biāo)識。多隊(duì)列請求處理電路根據(jù)信元的輸出端口和優(yōu)先級將信元流分成多個(gè)VOQ隊(duì)列,多端口請求處理電路在調(diào)度器的控制下將信元從信元緩沖區(qū)讀出。
設(shè)星載交換機(jī)有K個(gè)輸出端口,信元有N個(gè)優(yōu)先級。信元緩沖區(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ì)列對應(yīng)于第n種優(yōu)先級信元。每個(gè)邏輯隊(duì)列由兩部分組成;第一部分位于私有區(qū),第二部分位于共享區(qū)。邏輯隊(duì)列可能只存在第一部分,而不存在第二部分。在信元緩沖區(qū)中一共形成N×K個(gè)邏輯隊(duì)列。
在電路模塊中,設(shè)置N×K組寄存器,每個(gè)邏輯隊(duì)列分別使用一組寄存器來控制信元的寫入與讀出,每組寄存器包括:header、tailer、depth3個(gè)寄存器。其中header為隊(duì)首寄存器,記錄每條邏輯隊(duì)列的隊(duì)首地址;tailer為隊(duì)尾寄存器,記錄每條邏輯隊(duì)列的隊(duì)尾地址;depth為深度寄存器,記錄每條邏輯隊(duì)列的信元個(gè)數(shù)。每條邏輯隊(duì)列中上(前)一個(gè)信元和下(后)一個(gè)信元的存儲地址分別由前向地址指針pre_addr、后向地址指針nxt_addr記錄。
圖3中給出了前向地址指針pre_addr、后向地址指針nxt_addr以及信元存儲地址之間關(guān)系的一個(gè)示例。圖中所示的邏輯隊(duì)列的隊(duì)首地址由header記錄,隊(duì)尾地址由tailer記錄。該邏輯隊(duì)列中信元的存儲地址依次是4(隊(duì)首),7026,3900,5732,5733,7025,1(隊(duì)尾)。
在本隊(duì)列管理器設(shè)計(jì)中,交換機(jī)的端口數(shù)目和信元的優(yōu)先級可以根據(jù)星載交換機(jī)的設(shè)計(jì)要求和交換容量進(jìn)行動態(tài)地?cái)U(kuò)展,私有區(qū)和共享區(qū)的存儲容量也可以根據(jù)流量管理的要求進(jìn)行動態(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)。
交換機(jī)相關(guān)文章:交換機(jī)工作原理
評論