新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 星載交換機高性能隊列管理器的設計與實現

        星載交換機高性能隊列管理器的設計與實現

        作者: 時間:2013-02-19 來源:網絡 收藏

        3器工作方法

        當系統復位后,器對地址空間進行初始化,將可用的地址指針寫入到地址空間。信元存儲空間分為兩部分,一部分為共享存儲空間,另一部分為K個針對每個端口固定分配的信元空間,以確保每個端口都有可用的存儲空間。當一個信元到達時,如果固定分配的空間和共享空間剩余容量之和不能滿足該信元時,則拒絕該信元。器只需要知道到達信元的輸出端口和優先級,就可以確定其進入哪個邏輯隊列。信元的寫入和讀出采用狀態機進行控制。

        當有新的信元(n,k)到達時,其中n為優先級,1≤n≤N;k為輸出端口,1≤k≤K。信元寫入控制流程如圖4所示。最后根據wr_addr,將信元寫入緩沖區。如果發生隊列擠占,則被擠占的邏輯隊列需要被更新,如果僅有一個信元,則header和tailer都被置0;反之,用前一個信元的地址來更新tailer。寫入信元的邏輯隊列需要被更新:如果該邏輯隊列沒有信元,則header和tailer都被置為wr_addr;反之,將tailer的內容記錄在pre_addr的第wr_addr個地址中,將wr_addr記錄在nxt_addr的第tailer個地址中,tailer的內容被更新為wr_addr。

        當有信元讀出時,各輸出端口采用輪詢的方式,信元讀出控制流程如圖5所示。讀出信元的邏輯隊列需要被更新:如果僅有一個信元,則header和tailer都被置0;反之,用下一個信元的地址來更新header,tailer不變。

        4仿真結果

        采用XilinxVertex-5FPGA,開發環境是Xilinx集成開發環境ISE13.1,電路核心模塊用VerilogHDL編程,仿真工具采用ModelSimSE。星載有16個輸出端口,信元有4個優先級,PFIFOk為256,SFIFO為4096。仿真驗證結果表明電路功能符合要求。

        4.1寄存器讀寫指針時序仿真

        由仿真時序圖6可以看出,初始狀態時,PFIFO0、PFIFO2、…、PFIFO15和SFIFO都為空,隊列管理器將空閑指針依次寫入PFIFO0、PFIFO2、…、PFIFO15中,當它們都為滿時,最后寫入SFIFO中。

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

        4.2信元的讀寫時序仿真

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

        在衛星通信中,業務種類繁多且突發性強,用戶對服務質量(QoS)要求較高,而衛星網絡拓撲結構變化快,傳播時延大,這就要求星載具有較小的交換時延和丟包率。本文了一種隊列管理器,通過硬件仿真驗證,其基本能夠滿足星載的各種性能指標要求,本隊列管理器采用動態擴展的設計方式,靈活度較大,但也存在許多不足之處,如組播信元的處理考慮不足、可能存在隊頭阻塞問題及IP包的管理問題,有可能由于一個信元的丟失導致整個IP包無法接受,這些都是今后進一步的研究工作。

        交換機相關文章:交換機工作原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 九江县| 道孚县| 仁怀市| 西盟| 德庆县| 秀山| 页游| 襄汾县| 思茅市| 夏河县| 双柏县| 金阳县| 河源市| 舞钢市| 柳河县| 台中县| 贵港市| 杭州市| 沽源县| 武鸣县| 海安县| 合阳县| 锡林浩特市| 孟津县| 台东市| 镇赉县| 新乡市| 同心县| 扬州市| 和平县| 开远市| 阿克| 车致| 镶黄旗| 洪洞县| 甘南县| 漾濞| 沁水县| 阿合奇县| 林周县| 双峰县|