新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA和IP Core的定制緩沖管理的實現

        基于FPGA和IP Core的定制緩沖管理的實現

        作者: 時間:2010-11-05 來源:網絡 收藏

        隨著通信協議的發展及多樣化,協議處理部分PE在硬件轉發實現方面,普遍采用現有的商用芯片NP(Network Processor,網絡處理器)來完成,流量管理部分需要根據系統的需要進行或采用商用芯片來完成。在很多情況下NP芯片、TM芯片、交換網芯片無法選用同一家廠商的芯片,這時TM成為了成本最低、系統最優化的方案,一般采用來實現,TM的常規結構如圖1所示。

        本文引用地址:http://www.104case.com/article/191494.htm

        圖1.jpg
        圖1 TM的常規結構圖

          目前主流的TM接口均為SPI4-P2接口形式,SPI4-P2接口信號速率高,TCCS(Chan nel-to-channel skew,數據通道的抖動,包含時鐘的抖動)難以控制,在常規情況下很難做到很高的速率。SPI4-P2接口為達到高速率同時避免TCCS問題在很多情況下都對接收端提出了DPA(動態相位調整)的要求。對于SPI4-P2接口形式可直接采用Altera公司的IP 實現。Altera的主流均實現了硬件DPA功能,以Stratix II器件為例,在使能DPA的情況下使用SPI4-P2 IP 可實現16Gb/s的接口數據速率。

          SEG模塊為數據切分塊,根據交換網的數據結構要求,在上交換網的方向上負責把IP包或數據包切分為固定大小的數據塊,方便后期的存儲調度以及交換網的操作處理,SEG模塊可配合使用SPI4-P2 IP 來實現。與SEG模塊對應的是RSM模塊,RSM模塊將從交換網下來的數據塊重新組合成完整的IP包或數據包。

          BM(Buffer Management)模塊為緩沖管理模塊,管理TM的緩沖單元,完成DRAM的存取操作。外部DRAM的控制部分可使用使用DDR SDRAM IP Core實現。

          QM模塊為隊列管理模塊,負責完成端口的數據隊列管理功能,接收BM模塊讀寫DRAM時的數據入隊、出隊請求,TM所能支持的數據流的數目、業務類型數目、端口的數目等性能指標在QM模塊處體現出來。

          Scheduler模塊為調度模塊,根據數據包類型及優先級和端口分配的帶寬進行調度,TM流量整形、QOS等功能通過調度模塊實現。

          CELL_EDIT模塊完成輸出數據的封裝,把由DRAM中讀出的數據封裝后發送出去。

          在TM中需要基于數據服務策略對于不同服務等級的數據包進行不同的管理策略,同時要保證流媒體的數據包不能亂序,數據包有大有小,經過SEG模塊所分割成的數據塊的數目也有多有少,這樣就必須有一套行之有效的數據結構基于鏈表的方法管理這些數據。QM模塊基于業務、數據流的方式管理隊列,包的管理便由BM模塊完成。

          BM模塊中基于包的數據結構方面由兩部分構成:BRAM和PRAM。BRAM為數據緩沖區,對應片外的DRAM。BRAM負責存儲數據單元,相對于SEG模塊切分的數據單元,BRAM內有相應大小的存儲單元BCELL與之對應,BCELL在BRAM內以地址空間劃分,每個BCELL相同大小,BCELL為BRAM的最小存取單元。在實際系統中基于SEG模塊切分的數據單元大小,BCELL一般為64~512B。

          PRAM為指針緩沖區,PRAM對應片外的SSRAM。PRAM內部同樣以地址空間分為PCELL,PCELL與BCELL一一對應,每一個PCELL對應于一個BCELL,對應的PCELL與BCELL地址相同。

          PCELL的地址對應的代表相應單元的BCELL的地址,PCELL中的基本信息是下一跳指針。PRAM與BRAM關系如圖2所示。

        圖2.jpg


        圖2 PRAM與BRAM關系圖


        上一頁 1 2 3 4 下一頁

        關鍵詞: FPGA Core 定制

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南汇区| 泸州市| 五台县| 安新县| 乐昌市| 锦州市| 东宁县| 山阳县| 新宾| 高邑县| 宝清县| 满洲里市| 望城县| 巴东县| 新干县| 依安县| 页游| 葵青区| 浦县| 岱山县| 台南县| 江永县| 商都县| 柏乡县| 六枝特区| 色达县| 丹巴县| 瓦房店市| 沙田区| 庄河市| 武陟县| 安泽县| 岑溪市| 斗六市| 定远县| 会昌县| 青州市| 郯城县| 英吉沙县| 曲阳县| 运城市|