基于QDR-IV SRAM實現(xiàn)高性能網(wǎng)絡(luò)系統(tǒng)設(shè)計
在過去40年里,隨著制造工藝的進步,各種專用存儲設(shè)備不斷推向市場,滿足著不同系統(tǒng)的存儲需求。眾多的選擇,意味著系統(tǒng)架構(gòu)師和設(shè)計者可以同時考慮多種方案,根據(jù)應(yīng)用選擇合適的存儲子系統(tǒng)。尤其是在網(wǎng)絡(luò)應(yīng)用方面,架構(gòu)師面臨著不斷增加的網(wǎng)絡(luò)流量所帶來的挑戰(zhàn)。
本文引用地址:http://2s4d.com/article/201702/343966.htm據(jù)估計,2015年到2020年期間,網(wǎng)絡(luò)流量的年均復(fù)合增長率(CAGR)將達(dá)到22%,這一增長主要來自于無線設(shè)備的爆炸式增長以及不斷增加的視頻用量。由于數(shù)據(jù)包處理的隨機性,網(wǎng)絡(luò)傳輸?shù)年P(guān)鍵—路由器和交換機的性能將和所使用的存儲子系統(tǒng)的隨機存取性能(以隨機存取速率(RTR)衡量)直接相關(guān)。本文將會介紹四倍數(shù)據(jù)傳輸率(QDR—IV)靜態(tài)隨機存儲器如何用于解決網(wǎng)絡(luò)設(shè)計中的性能瓶頸,還介紹了在使用200~400Gbps速率下以太網(wǎng)線卡的統(tǒng)計計數(shù)器和轉(zhuǎn)發(fā)表進行查找時,如何充分發(fā)揮QDR-IV SRAM的性能優(yōu)勢來優(yōu)化設(shè)計。
交換機線卡中的存儲子系統(tǒng)
圖1為一個典型400Gbps數(shù)據(jù)層線卡的功能模塊、芯片組和存儲子系統(tǒng)。
圖1:交換機/路由器的數(shù)據(jù)層線卡
媒介接入控制器(MAC):在共享媒介網(wǎng)絡(luò)(如以太網(wǎng))中,媒介接入控制器具有提供尋址和控制信道訪問的作用,從而可以使網(wǎng)絡(luò)節(jié)點之間進行聯(lián)系。MAC連接著 過載緩沖器(OS buffer),使系統(tǒng)設(shè)計者能超載與線卡帶寬有關(guān)的前端(如:100G線卡上的120G前端)。過載緩沖可在一段特定的時間內(nèi)儲存“超額”的數(shù)據(jù)。該緩沖器需要有在幾毫秒時間內(nèi)轉(zhuǎn)存幾個G數(shù)據(jù)的能力,因此,單位比特成本是最主要的決定標(biāo)準(zhǔn),也是SDRAM(同步動態(tài)隨機存儲器)最為適合的原因。
網(wǎng)絡(luò)處理器(NPU)具有多種功能,包括解析數(shù)據(jù)以確認(rèn)協(xié)議、驗證數(shù)據(jù)包的完整性、基于目標(biāo)地址查找下一跳地址等。此外,網(wǎng)絡(luò)處理器收集數(shù)據(jù)流中數(shù)據(jù)包的統(tǒng)計信息,用于計費和網(wǎng)絡(luò)管理等。以下是連接到NPU的存儲子系統(tǒng):
分類查找——檢查傳入包的特點,確定是否接收該傳入數(shù)據(jù)包。此查找功能用于源端口、目標(biāo)端口、源地址、目標(biāo)地址和所用的協(xié)議。對每個數(shù)據(jù)包均進行查找(基于一個長字符串)。此查找功能的首選存儲器是TCAM(三態(tài)內(nèi)容尋址存儲器)。通過TCAM可使用二進位和“無關(guān)”狀態(tài)進行搜索,這使得它能基于模式匹配來進行更廣泛的搜索。
轉(zhuǎn)發(fā)查找——FIB(轉(zhuǎn)發(fā)信息庫)表保存了路由中下一跳可能的目標(biāo)地址。此查找是一個迭代過程,因此會對存儲器進行多次訪問。每個數(shù)據(jù)包需要2~8次隨機存儲器訪問,轉(zhuǎn)換為高隨機存取速率。QDR-IV SRAM是高隨機存取速率的理想選擇。
統(tǒng)計&流量狀態(tài)——路由器對每個數(shù)據(jù)包和數(shù)據(jù)流(相關(guān)數(shù)據(jù)包組成的流)進行統(tǒng)計。此統(tǒng)計通過計數(shù)器的形式實現(xiàn)。每個應(yīng)用會有很多這類計數(shù)器。計數(shù)器用來保存前綴、流和數(shù)據(jù)包分類。因此,刷新計數(shù)器需要高性能的存儲器才能滿足多重的讀—修改—寫操作。線卡中的統(tǒng)計和流量狀態(tài)可共用一個存儲器??紤]到對高隨機存取速率的需要,QDR-IV SRAM在這方面也是最佳選擇。
流量管理器(TM)——流量管理器以數(shù)據(jù)包的粒度為基礎(chǔ)判斷是否允許使用共享介質(zhì)帶寬,并在帶寬過載時處理擁塞。服務(wù)質(zhì)量(QoS)由流量管理器負(fù)責(zé),因此數(shù)據(jù)包根據(jù)層次體系分成不同的等級。這方面關(guān)鍵的存儲子系統(tǒng)為:
數(shù)據(jù)包緩存——數(shù)據(jù)包緩存保存將傳至交換機結(jié)構(gòu)的數(shù)據(jù)包。緩存的密度取決于線卡速率和往返時延(RTT)(最高可達(dá)250ms)。數(shù)據(jù)包緩存的選擇更多地取決于密度和成本,而非性能。這方面適合選擇SDRAM。不過,為了克服DRAM(動態(tài)隨機存取存儲器)本身的限制,客戶可采用一種由SRAM和DRAM組成的層次結(jié)構(gòu),其中快速的SRAM用來作為頭/尾高速緩存,彌補速度較慢但容量較大的DRAM的不足。QDR(四倍數(shù)據(jù)速率)可作為一種高效的頭/尾高速緩存用于這種結(jié)構(gòu)中。
調(diào)度器數(shù)據(jù)庫——調(diào)度指決定何時將數(shù)據(jù)包發(fā)送到交換機結(jié)構(gòu)的過程,此決定基于數(shù)據(jù)包的目的和所需的服務(wù)質(zhì)量(QoS)或服務(wù)等級(CoS)。數(shù)據(jù)包被分為幾種等級,分別與不同層次的服務(wù)相關(guān)(服務(wù)提供商的收益部分)。通常來說,調(diào)度程序需要對每個數(shù)據(jù)包進行一次讀加寫操作。雖然調(diào)度器對時延周期不敏感,以納秒(nanosecond)為單位的絕對時延期仍然非常重要。調(diào)度器需要在一個最小尺寸數(shù)據(jù)包的到達(dá)時間內(nèi)完成一個隊列/出隊列(讀/寫)動作。因此,讀/寫潛伏期較長的存儲器無疑不適合此應(yīng)用。
SDRAM用于大的數(shù)據(jù)包緩存,而SRAM則用于頭—尾高速緩存。傳送至線卡的數(shù)據(jù)包保存在一個尾高速緩存中,然后轉(zhuǎn)移到較慢但容量大的DRAM中。同樣,準(zhǔn)備確定發(fā)送時間的數(shù)據(jù)包,也成塊地從DRAM中轉(zhuǎn)移到SRAM頭高速緩存中。
通過QDR SRAM可對頭 — 尾高速緩存的調(diào)度器數(shù)據(jù)庫進行高效尋址。表1顯示了一個路由器中不同存儲子系統(tǒng)的隨機存取速率要求,單位為百萬次存取/秒(MT/s)。R是數(shù)據(jù)包速率,單位為百萬數(shù)據(jù)包/秒(Mpps)。
表1:路由器不同功能所需的存儲器RTR要求
QDR-IV SRAM概述
QDR-IV SRAM配備了一個同步接口,可在一個時鐘周期內(nèi)完成兩次寫操作或兩次讀操作,或一次讀寫結(jié)合的操作。QDR—IV有兩個雙向數(shù)據(jù)端口A和B,每個均可以用于讀或?qū)懖僮鳌_@一特點帶來了額外的靈活性,架構(gòu)師可將之用于讀/寫并不一定平衡的應(yīng)用中。每個端口在兩個時鐘沿均可進行數(shù)據(jù)傳輸(DDR(雙倍數(shù)據(jù)速率)操作),工作模式為突發(fā)式,每個時鐘周期的突發(fā)長度為兩個字(每個字為X18或X36)。地址總線為通用型,同樣支持雙倍數(shù)據(jù)速率,其上升沿和下降沿能分別為端口A和端口B提供地址。QDR—IV支持嵌入式ECC(錯誤檢查和糾正),可從根本上消除軟錯誤,提高存儲器陳列的穩(wěn)定性。
QDR-IV SRAM有兩種規(guī)格,即QDR-IV HP和 QDR-IV XP。HP的頻率最高可運行在667 MHz,而XP存儲器則可高達(dá)1066 MHz。下表列出了兩種QDR—IV的關(guān)鍵結(jié)構(gòu)特點。兩種存儲器均有72和144 Mbs兩種密度可選,并且支持密度或性能的寬度和深度擴展。
表2:QDR-IV SRAM的主要功能
QDR-IV HP 和XP的主要區(qū)別是內(nèi)存條(bank)的使用。QDR-IV XP可通過將存儲器空間分成8個內(nèi)存條來增加性能,用3個地址的最低有效位(LSB)表示。要求的存儲方案是在同一周期內(nèi)存取不同的內(nèi)存條。從一個周期到另一周期,所有的內(nèi)存條均可存取,系統(tǒng)設(shè)計師可通過規(guī)劃系統(tǒng)架構(gòu)來相應(yīng)地分配記憶庫地址,充分發(fā)揮極速存儲器的RTR性能。
以下例子展示了兩種應(yīng)用,一種使用QDR-IV HP來進行轉(zhuǎn)發(fā)表查找,而另一種將QDR-IV XP用于統(tǒng)計計數(shù)器,線路速率均為400Gbps。
400Gbps線速下的轉(zhuǎn)發(fā)表查找
如前所述,轉(zhuǎn)發(fā)表查找需要任何地方均為2R到8R的存取,此處R為包速率,單位為百萬數(shù)據(jù)包/秒(Mpps)。在400Gbps的線速下,R=600,要求RTR為1200到4800MT/s。以符合以下轉(zhuǎn)發(fā)表要求的400Gbps二層交換機為例:
1M x 144位條目
每個數(shù)據(jù)包查找1個目標(biāo)地址(DA)(讀取)
每個數(shù)據(jù)包查找1個源地址(SA)(讀取)
1次源地址登記(寫)或60 Mpps下的CPU訪問
基于以上:
密度要求:1M x 144位 => 144 Mb
讀訪問速度(目標(biāo)地址+源地址) = 600 +600 = 1200 Mpps
寫入更新速率 = 60Mpps
由于數(shù)據(jù)總線為讀寫共用,當(dāng)讀操作后續(xù)為寫操作時,總線需要調(diào)轉(zhuǎn)方向。因此,QDR—IV高性能SRAM每次從讀到寫的切換需要4個周期。因時延的緣故,從寫到讀不會出現(xiàn)這種情況,讀取有5個時延周期,而寫入僅有3個時延周期。因總線轉(zhuǎn)向而導(dǎo)致的帶寬損失可通過在寫入查找表前,最多4次刷新先進先出(FIFO)隊列來盡可能地減少。因此需要FIFO中帶有一個最新條目的4排高速緩存,如果地址匹配的話此緩存可提供源地址或目標(biāo)地址查找。每次寫入更新的內(nèi)部整理自檢為:
= 4個寫入周期 + 4個總線轉(zhuǎn)向周期/4個周期
= 2
用于寫入更新的RTR = 寫入的內(nèi)部整理自檢* 寫入的更新率
= 2 * 60 = 120Mpps速率。
整體RTR要求 = 600+600+120 = 1320MT/s
以下是使用兩個72Mb, X36 QDR-IV HP的存儲子系統(tǒng)(運行頻率為667Mhz)。這兩個QDR存儲組成帶寬擴展模式,以便每個時鐘周期在端口【A0、A1】和端口【B0、B1】支持144bits的數(shù)據(jù)。調(diào)度器在目標(biāo)地址、源地址讀取請求和表寫入請求(一次性4次寫入)之間做出判斷,并將它們發(fā)送到端口【A0、A1】或端口【B0、B1】。有足夠的帶寬來滿足所有的請求。通過附加QDR-IV HP存儲器進行深度和寬度擴展,還能支持更多的表條目,或支持每條目更多位數(shù)。
圖2:使用QDR-IV HP的轉(zhuǎn)發(fā)表查找
400Gbps的統(tǒng)計計數(shù)器
如前所述,統(tǒng)計計數(shù)器需要任何地方均為2R到16R的存取,此處R為包速率,單位為百萬數(shù)據(jù)包/秒(Mpps)。在400Gbps的線速下,R=600,要求RTR為1200到9600MT/s。以符合以下統(tǒng)計計數(shù)器要求的路由器為例:
上行為1百萬計數(shù)器對
下行為1百萬計數(shù)器對
每計數(shù)器對72bits
每秒8億次更新
密度要求:2 M x 72 = 144 Mb
要求的RTR = 1600 MT/s(由于讀取—修改—寫入操作的原因,為2x數(shù)據(jù)包更新速率)
一個工作在800Mhz的極速X36 QDR—IV存儲器即可滿足此要求。SRAM的每個存儲位置存儲兩個計數(shù)器,每個36 bits,總共200萬個計數(shù)器。一個典型的計數(shù)器對是“總收到的數(shù)據(jù)包數(shù)”和“總字節(jié)數(shù)”,能很容易地保存在SRAM的地址單元內(nèi)。端口A用于讀取操作,端口B用于寫入操作,因此無需總線轉(zhuǎn)向時間。
由于傳入包的隨機性,計數(shù)器更新訪問的地址也是隨機的。QDR-IV XP分為8個內(nèi)存條,在一個周期內(nèi)同一源地址不能有兩次訪問。因此,為避免出現(xiàn)訪問內(nèi)存條的沖突,存儲控制器會發(fā)送控制流到統(tǒng)計更新邏輯單元。圖3顯示的是基于FPGA的內(nèi)存控制器實例。在FPGA中,QDR—IV的每個800 Mhz端口都分成4個通道,每個通道都運行在200 MHz。
圖3:基于FPGA的QDR—IV存儲控制器
當(dāng)端口A和B之間出現(xiàn)訪問內(nèi)存條的沖突時,存儲控制器將發(fā)出“忙碌”(Busy)信號,并將違反的存取操作順延至下一個時鐘周期。如出現(xiàn)“忙碌”信號,系統(tǒng)將不再響應(yīng)更新率請求。這一問題可通過系統(tǒng)地將計數(shù)器分配到它們的存儲器陣列地址來解決。QDR—IV有8個內(nèi)存條,由3個存儲地址LSB(最低有效位)表示。對于當(dāng)前的例子而言,QDR—IV地址的LSB A【0】被映射到上行(入端口)(A【0】=1】)和下行(出端口)(A【0】=0】),以便形成用于調(diào)度的奇數(shù)和偶數(shù)地址。以下圖4是假定上行和下午計數(shù)器均不超過4億次更新/秒的情況下,如何實現(xiàn)用于統(tǒng)計更新功能的存儲子系統(tǒng)。
端口B I/F
端口A I/F
圖4:基于極速性能QDR—IV的統(tǒng)計計數(shù)器解決方案
傳入的數(shù)據(jù)包,以及對應(yīng)的計數(shù)器,自動分為幾類。這些計數(shù)器類別需要分配不同的內(nèi)存條,以便避免內(nèi)存條沖突,并充分發(fā)揮QDR-IV XP存儲器的性能。根據(jù)整體系統(tǒng)架構(gòu)的不同,分類如下:
1、 基于上行或下行的計數(shù)器分類
2、 如果多個NPU(網(wǎng)絡(luò)處理器)連入同一個統(tǒng)計計數(shù)器FPGA,則每個NPU需分配一個不同的內(nèi)存條
3、 基于以太網(wǎng)連接的計數(shù)器分類和內(nèi)存條分配
4、 基于虛擬通道(VL)或服務(wù)等級(CoS)的計數(shù)器分類和存儲器陣列庫分配
5、 基于流的計數(shù)器分類和適當(dāng)?shù)膬?nèi)存條分配
6、 用于定制方案的其它數(shù)據(jù)包/計數(shù)器分類法
結(jié)論
QDR-IV SRAM的高隨機存取速率使其非常適合高性能要求的網(wǎng)絡(luò)應(yīng)用。本文介紹了使用QDR-IV HP和QDR-IV XP用于轉(zhuǎn)發(fā)表查找和統(tǒng)計計數(shù)器應(yīng)用實例。系統(tǒng)架構(gòu)師和設(shè)計師可以參照這些例子開始自己的設(shè)計,并根據(jù)具體的應(yīng)用需要進行改動。QDR-IV HP和QDR-IV XP均得到了Altera公司和Xilinx公司的存儲控制器IP的支持,使存儲子系統(tǒng)支持100G到400G的線卡。
評論