新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于QDR-IV SRAM實現高性能網絡系統設計

        基于QDR-IV SRAM實現高性能網絡系統設計

        作者: 時間:2017-02-14 來源:電子產品世界 收藏

          在過去40年里,隨著制造工藝的進步,各種專用存儲設備不斷推向市場,滿足著不同系統的存儲需求。眾多的選擇,意味著系統架構師和設計者可以同時考慮多種方案,根據應用選擇合適的存儲子系統。尤其是在網絡應用方面,架構師面臨著不斷增加的網絡流量所帶來的挑戰。

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

          據估計,2015年到2020年期間,網絡流量的年均復合增長率(CAGR)將達到22%,這一增長主要來自于無線設備的爆炸式增長以及不斷增加的視頻用量。由于數據包處理的隨機性,網絡傳輸的關鍵—路由器和交換機的性能將和所使用的存儲子系統的隨機存取性能(以隨機存取速率(RTR)衡量)直接相關。本文將會介紹四倍數據傳輸率(QDR—IV)靜態隨機存儲器如何用于解決網絡設計中的性能瓶頸,還介紹了在使用200~400Gbps速率下以太網線卡的統計計數器和轉發表進行查找時,如何充分發揮QDR-IV 的性能優勢來優化設計。

          交換機線卡中的存儲子系統

          圖1為一個典型400Gbps數據層線卡的功能模塊、芯片組和存儲子系統。

          圖1:交換機/路由器的數據層線卡

          媒介接入控制器():在共享媒介網絡(如以太網)中,媒介接入控制器具有提供尋址和控制信道訪問的作用,從而可以使網絡節點之間進行聯系。連接著 過載緩沖器(OS buffer),使系統設計者能超載與線卡帶寬有關的前端(如:100G線卡上的120G前端)。過載緩沖可在一段特定的時間內儲存“超額”的數據。該緩沖器需要有在幾毫秒時間內轉存幾個G數據的能力,因此,單位比特成本是最主要的決定標準,也是SDRAM(同步動態隨機存儲器)最為適合的原因。

          網絡處理器(NPU)具有多種功能,包括解析數據以確認協議、驗證數據包的完整性、基于目標地址查找下一跳地址等。此外,網絡處理器收集數據流中數據包的統計信息,用于計費和網絡管理等。以下是連接到NPU的存儲子系統:

           分類查找——檢查傳入包的特點,確定是否接收該傳入數據包。此查找功能用于源端口、目標端口、源地址、目標地址和所用的協議。對每個數據包均進行查找(基于一個長字符串)。此查找功能的首選存儲器是TCAM(三態內容尋址存儲器)。通過TCAM可使用二進位和“無關”狀態進行搜索,這使得它能基于模式匹配來進行更廣泛的搜索。

           轉發查找——FIB(轉發信息庫)表保存了路由中下一跳可能的目標地址。此查找是一個迭代過程,因此會對存儲器進行多次訪問。每個數據包需要2~8次隨機存儲器訪問,轉換為高隨機存取速率。QDR-IV 是高隨機存取速率的理想選擇。

          統計&流量狀態——路由器對每個數據包和數據流(相關數據包組成的流)進行統計。此統計通過計數器的形式實現。每個應用會有很多這類計數器。計數器用來保存前綴、流和數據包分類。因此,刷新計數器需要高性能的存儲器才能滿足多重的讀—修改—寫操作。線卡中的統計和流量狀態可共用一個存儲器??紤]到對高隨機存取速率的需要,QDR-IV 在這方面也是最佳選擇。

          流量管理器(TM)——流量管理器以數據包的粒度為基礎判斷是否允許使用共享介質帶寬,并在帶寬過載時處理擁塞。服務質量(QoS)由流量管理器負責,因此數據包根據層次體系分成不同的等級。這方面關鍵的存儲子系統為:

           數據包緩存——數據包緩存保存將傳至交換機結構的數據包。緩存的密度取決于線卡速率和往返時延(RTT)(最高可達250ms)。數據包緩存的選擇更多地取決于密度和成本,而非性能。這方面適合選擇SDRAM。不過,為了克服DRAM(動態隨機存取存儲器)本身的限制,客戶可采用一種由SRAM和DRAM組成的層次結構,其中快速的SRAM用來作為頭/尾高速緩存,彌補速度較慢但容量較大的DRAM的不足。QDR(四倍數據速率)可作為一種高效的頭/尾高速緩存用于這種結構中。

           調度器數據庫——調度指決定何時將數據包發送到交換機結構的過程,此決定基于數據包的目的和所需的服務質量(QoS)或服務等級(CoS)。數據包被分為幾種等級,分別與不同層次的服務相關(服務提供商的收益部分)。通常來說,調度程序需要對每個數據包進行一次讀加寫操作。雖然調度器對時延周期不敏感,以納秒(nanosecond)為單位的絕對時延期仍然非常重要。調度器需要在一個最小尺寸數據包的到達時間內完成一個隊列/出隊列(讀/寫)動作。因此,讀/寫潛伏期較長的存儲器無疑不適合此應用。

          SDRAM用于大的數據包緩存,而SRAM則用于頭—尾高速緩存。傳送至線卡的數據包保存在一個尾高速緩存中,然后轉移到較慢但容量大的DRAM中。同樣,準備確定發送時間的數據包,也成塊地從DRAM中轉移到SRAM頭高速緩存中。

          通過QDR SRAM可對頭 — 尾高速緩存的調度器數據庫進行高效尋址。表1顯示了一個路由器中不同存儲子系統的隨機存取速率要求,單位為百萬次存取/秒(MT/s)。R是數據包速率,單位為百萬數據包/秒(Mpps)。

          表1:路由器不同功能所需的存儲器RTR要求

          QDR-IV SRAM概述

          QDR-IV SRAM配備了一個同步接口,可在一個時鐘周期內完成兩次寫操作或兩次讀操作,或一次讀寫結合的操作。QDR—IV有兩個雙向數據端口A和B,每個均可以用于讀或寫操作。這一特點帶來了額外的靈活性,架構師可將之用于讀/寫并不一定平衡的應用中。每個端口在兩個時鐘沿均可進行數據傳輸(DDR(雙倍數據速率)操作),工作模式為突發式,每個時鐘周期的突發長度為兩個字(每個字為X18或X36)。地址總線為通用型,同樣支持雙倍數據速率,其上升沿和下降沿能分別為端口A和端口B提供地址。QDR—IV支持嵌入式ECC(錯誤檢查和糾正),可從根本上消除軟錯誤,提高存儲器陳列的穩定性。

          QDR-IV SRAM有兩種規格,即QDR-IV HP和 QDR-IV XP。HP的頻率最高可運行在667 MHz,而XP存儲器則可高達1066 MHz。下表列出了兩種QDR—IV的關鍵結構特點。兩種存儲器均有72和144 Mbs兩種密度可選,并且支持密度或性能的寬度和深度擴展。

          表2:QDR-IV SRAM的主要功能

          QDR-IV HP 和XP的主要區別是內存條(bank)的使用。QDR-IV XP可通過將存儲器空間分成8個內存條來增加性能,用3個地址的最低有效位(LSB)表示。要求的存儲方案是在同一周期內存取不同的內存條。從一個周期到另一周期,所有的內存條均可存取,系統設計師可通過規劃系統架構來相應地分配記憶庫地址,充分發揮極速存儲器的RTR性能。

          以下例子展示了兩種應用,一種使用QDR-IV HP來進行轉發表查找,而另一種將QDR-IV XP用于統計計數器,線路速率均為400Gbps。

          400Gbps線速下的轉發表查找

          如前所述,轉發表查找需要任何地方均為2R到8R的存取,此處R為包速率,單位為百萬數據包/秒(Mpps)。在400Gbps的線速下,R=600,要求RTR為1200到4800MT/s。以符合以下轉發表要求的400Gbps二層交換機為例:

          1M x 144位條目

          每個數據包查找1個目標地址(DA)(讀取)

          每個數據包查找1個源地址(SA)(讀取)

          1次源地址登記(寫)或60 Mpps下的CPU訪問

          基于以上:

          密度要求:1M x 144位 => 144 Mb

          讀訪問速度(目標地址+源地址) = 600 +600 = 1200 Mpps

          寫入更新速率 = 60Mpps

          由于數據總線為讀寫共用,當讀操作后續為寫操作時,總線需要調轉方向。因此,QDR—IV高性能SRAM每次從讀到寫的切換需要4個周期。因時延的緣故,從寫到讀不會出現這種情況,讀取有5個時延周期,而寫入僅有3個時延周期。因總線轉向而導致的帶寬損失可通過在寫入查找表前,最多4次刷新先進先出(FIFO)隊列來盡可能地減少。因此需要FIFO中帶有一個最新條目的4排高速緩存,如果地址匹配的話此緩存可提供源地址或目標地址查找。每次寫入更新的內部整理自檢為:

          = 4個寫入周期 + 4個總線轉向周期/4個周期

          = 2

          用于寫入更新的RTR = 寫入的內部整理自檢* 寫入的更新率

          = 2 * 60 = 120Mpps速率。

          整體RTR要求 = 600+600+120 = 1320MT/s

          以下是使用兩個72Mb, X36 QDR-IV HP的存儲子系統(運行頻率為667Mhz)。這兩個QDR存儲組成帶寬擴展模式,以便每個時鐘周期在端口【A0、A1】和端口【B0、B1】支持144bits的數據。調度器在目標地址、源地址讀取請求和表寫入請求(一次性4次寫入)之間做出判斷,并將它們發送到端口【A0、A1】或端口【B0、B1】。有足夠的帶寬來滿足所有的請求。通過附加QDR-IV HP存儲器進行深度和寬度擴展,還能支持更多的表條目,或支持每條目更多位數。

          圖2:使用QDR-IV HP的轉發表查找

          400Gbps的統計計數器

          如前所述,統計計數器需要任何地方均為2R到16R的存取,此處R為包速率,單位為百萬數據包/秒(Mpps)。在400Gbps的線速下,R=600,要求RTR為1200到9600MT/s。以符合以下統計計數器要求的路由器為例:

          上行為1百萬計數器對

          下行為1百萬計數器對

          每計數器對72bits

          每秒8億次更新

          密度要求:2 M x 72 = 144 Mb

          要求的RTR = 1600 MT/s(由于讀取—修改—寫入操作的原因,為2x數據包更新速率)

          一個工作在800Mhz的極速X36 QDR—IV存儲器即可滿足此要求。SRAM的每個存儲位置存儲兩個計數器,每個36 bits,總共200萬個計數器。一個典型的計數器對是“總收到的數據包數”和“總字節數”,能很容易地保存在SRAM的地址單元內。端口A用于讀取操作,端口B用于寫入操作,因此無需總線轉向時間。

          由于傳入包的隨機性,計數器更新訪問的地址也是隨機的。QDR-IV XP分為8個內存條,在一個周期內同一源地址不能有兩次訪問。因此,為避免出現訪問內存條的沖突,存儲控制器會發送控制流到統計更新邏輯單元。圖3顯示的是基于FPGA的內存控制器實例。在FPGA中,QDR—IV的每個800 Mhz端口都分成4個通道,每個通道都運行在200 MHz。

          圖3:基于FPGA的QDR—IV存儲控制器

          當端口A和B之間出現訪問內存條的沖突時,存儲控制器將發出“忙碌”(Busy)信號,并將違反的存取操作順延至下一個時鐘周期。如出現“忙碌”信號,系統將不再響應更新率請求。這一問題可通過系統地將計數器分配到它們的存儲器陣列地址來解決。QDR—IV有8個內存條,由3個存儲地址LSB(最低有效位)表示。對于當前的例子而言,QDR—IV地址的LSB A【0】被映射到上行(入端口)(A【0】=1】)和下行(出端口)(A【0】=0】),以便形成用于調度的奇數和偶數地址。以下圖4是假定上行和下午計數器均不超過4億次更新/秒的情況下,如何實現用于統計更新功能的存儲子系統。

          端口B I/F

          端口A I/F

          圖4:基于極速性能QDR—IV的統計計數器解決方案

          傳入的數據包,以及對應的計數器,自動分為幾類。這些計數器類別需要分配不同的內存條,以便避免內存條沖突,并充分發揮QDR-IV XP存儲器的性能。根據整體系統架構的不同,分類如下:

          1、 基于上行或下行的計數器分類

          2、 如果多個NPU(網絡處理器)連入同一個統計計數器FPGA,則每個NPU需分配一個不同的內存條

          3、 基于以太網連接的計數器分類和內存條分配

          4、 基于虛擬通道(VL)或服務等級(CoS)的計數器分類和存儲器陣列庫分配

          5、 基于流的計數器分類和適當的內存條分配

          6、 用于定制方案的其它數據包/計數器分類法

          結論

          QDR-IV SRAM的高隨機存取速率使其非常適合高性能要求的網絡應用。本文介紹了使用QDR-IV HP和QDR-IV XP用于轉發表查找和統計計數器應用實例。系統架構師和設計師可以參照這些例子開始自己的設計,并根據具體的應用需要進行改動。QDR-IV HP和QDR-IV XP均得到了Altera公司和Xilinx公司的存儲控制器IP的支持,使存儲子系統支持100G到400G的線卡。



        關鍵詞: MAC SRAM

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 和硕县| 鄢陵县| 娄烦县| 元江| 皮山县| 卓资县| 宜宾县| 大庆市| 四川省| 酉阳| 射阳县| 奉化市| 那坡县| 盈江县| 昌吉市| 乐都县| 太原市| 湟源县| 和田市| 威宁| 江北区| 永平县| 惠来县| 巴南区| 安远县| 司法| 稻城县| 锡林浩特市| 新化县| 榆社县| 贡嘎县| 辽阳县| 鹿泉市| 漳浦县| 双柏县| 屯留县| 宝丰县| 虞城县| 兖州市| 叶城县| 伽师县|