【導讀】網絡路由器帶有用于性能監(jiān)控、流量管理、網絡追蹤和網絡安全的統(tǒng)計計數(shù)器。計數(shù)器用來記錄數(shù)據包到達和離開的次數(shù)以及特定事件的次數(shù),比如當網絡出現(xiàn)壞包時。數(shù)據包的到達會使多個不同的統(tǒng)計計數(shù)器發(fā)生更新;但一臺網絡設備中的統(tǒng)計計數(shù)器的數(shù)量及其更新速度常常受到存儲技術的限制。
管理統(tǒng)計計數(shù)器需要高性能的存儲器才能滿足多重的讀—修改—寫操作。本文將描述一種使用IP方法的獨特統(tǒng)計計數(shù)器,這種計數(shù)器的一端可以連接網絡處理器(NPU),另一端可以連接Xilinx公司的QDR-IV存儲控制器。QDR-IV統(tǒng)計計數(shù)器IP是一種帶有QDR-IV SRAM、為網絡交流管理和其他計數(shù)器應用提供高效統(tǒng)計計數(shù)器的軟IP。QDR-IV SRAM概述
QDR-IV SRAM配備兩個雙向數(shù)據端口A和B,可以在一個時鐘周期內完成兩次數(shù)據寫入或兩次數(shù)據讀取操作,或一次讀寫結合的操作。因此,這一特點帶來了額外的靈活性,架構師可將之用于讀/寫并不一定平衡的應用中。每個端口在兩個時鐘沿均可進行數(shù)據傳輸(DDR(雙倍數(shù)據速率)操作),工作模式為突發(fā)式,每個時鐘周期的突發(fā)長度為兩個字(每個字為X18或X36)。地址總線為通用型,其上升沿和下降沿能分別為端口A和端口B提供地址。部分制造商的QDR-IV SRAM還可支持嵌入式ECC(錯誤檢查和糾正),可從根本上消除軟錯誤,提高存儲器陳列的可靠性。
QDR-IV SRAM分為兩種:高性能 (HP) QDR-IV和超高性能 (XP) QDR-IV。HP設備的最大運行頻率為667 MHz,而XP設備的最大運行頻率為1066 MHz。QDR-IV XP能夠通過將存儲空間分成分成8個內存條來增加性能,用地址的3個最低有效位(LSB)表示。要求的存儲方案是在同一周期內存取不同的內存條。從一個周期到另一周期,所有的內存條均可存取,系統(tǒng)設計師可通過規(guī)劃系統(tǒng)架構來相應地分配記憶庫地址,以充分發(fā)揮極速存儲器的RTR性能。這樣,開發(fā)人員可以在降低總系統(tǒng)成本的同時大幅提高性能。
統(tǒng)計計數(shù)器IP
QDR IV統(tǒng)計計數(shù)器是一種帶有QDR-IV SRAM,并且為網絡交流管理和其他計數(shù)器應用提供統(tǒng)計計數(shù)器的軟IP。該IP采用支持系統(tǒng)管理存取端口的讀—修改—寫邏輯。該IP的一端可以連接網絡處理單元(NPU),另一端可以連接 QDR-IV存儲控制器。由于該統(tǒng)計計數(shù)器支持400Gbps及更快速率的線卡,因此性能僅受限于所使用的FPGA和QDR-IV設備。
統(tǒng)計計數(shù)器IP的運行
圖1是使用QDR-IV和統(tǒng)計計數(shù)器IP的用例。典型的網絡處理單元(NPU)以800M的每秒配對物更新速率發(fā)送統(tǒng)計(STATS)更新請求。每一項STATS請求包含在一個72位字中帶有兩個計數(shù)器(數(shù)據包和字節(jié)計數(shù))的入口/出口包命令令牌。整個計數(shù)器緩存數(shù)據以1秒為間隔,更新到系統(tǒng)存儲器中的終身計數(shù)器(通常為DRAM)。這一來自NPU的回讀被稱為處理器(PROCS)更新請求。PCIe接口用于傳輸計數(shù)器緩存數(shù)據以更新終身計數(shù)器。下圖顯示了STATS IP的設置和與Xilinx存儲控制器、PCIe總線和NPU連接的QDR-IV存儲器。
圖1:帶統(tǒng)計IP、NPU和存儲器的完整基礎架構
統(tǒng)計IP適用于HP和XP QDR-IV存儲器。其運行模式通過位于IP設計頂層接口的單一參數(shù)控制。兩個計數(shù)器(數(shù)據包和字節(jié))的每個流地址為單72位字。一個144Mb QDR-IV SRAM支持四百萬計數(shù)器。該設計所要求的IP接口數(shù)量與所使用的QDR-IV SRAM的數(shù)量相當。正如模塊圖所示,NPU通過4x25Gbps鏈路將統(tǒng)計和處理請求推送到IP中。IP的運行頻率為存儲器存取頻率的四分之一,并且使用四條被稱為“通道”的平行數(shù)據路徑以匹配存儲器帶寬。在存儲接口HP和XP運行模式中,端口A作為讀取端口,端口B作為寫入端口。每項統(tǒng)計請求對保存在與該請求相關的獨特存儲位置中的計數(shù)器數(shù)據進行讀—修改—寫操作。
讀寫請求通過分階段來延遲與QDR-IV存儲器讀取延遲以及存儲控制器延遲的匹配。分階段設計也作為本地緩存累積延遲過程中的服務更新請求。在HP模式中,沒有統(tǒng)計/處理器更新地址限制通過四根通道中的任何一根。地址的發(fā)生可能是隨機的,并且無需給每根通道分配特定類型的地址。但由于在XP模式中存儲器的區(qū)塊結構和限制與其相關,因此通道0和1被分配到保存入口流數(shù)據的奇數(shù)地址位置,通道2和3被分配到保存出口流數(shù)據的偶數(shù)地址位置。這一獨特的安排可以預防可能在XP模式中發(fā)生的分塊限制位置。
處理器發(fā)出的一秒鐘回讀請求常見于這兩種運行模式。整個存儲位置需要以一秒鐘間隔回讀,因此處理器不發(fā)出連續(xù)請求,并且以一秒鐘間隔時間分布。該活動在每次通過處理器請求讀取后復位存儲器位置。
統(tǒng)計IP架構
圖2中的STATS_IP架構模塊圖標出了三個子部件:每條通道的同地址比較管道(SACOMP)區(qū)塊、請求-復用-解復用(REQ_MXDMX_CHn)區(qū)塊以及每條QDR IV應用通道1個的4個A-B通道配對計數(shù)器邏輯(ABCH_CTRL_CHn)區(qū)塊實例。
圖2:統(tǒng)計IP架構
SACOMP模塊圖包含兩個管道階段,其中一個用于通過比較將同一時鐘周期上的所有四條通道進行壓縮(SACOMP_ChN-to-All),另一個用于對單一通道上的同一地址進行雙向(突發(fā)2)比較(SACOMP_B2BChN)。當兩條或更多條通道在指定的時間實例中為同一地址時,優(yōu)先性最高的通道積累地址相同的通道上出現(xiàn)的數(shù)據,而所有其他優(yōu)先性較低、地址相同的通道都將失效。這確保了單一統(tǒng)計請求覆蓋所有地址相同的通道,從而預防出現(xiàn)任何數(shù)據一致性問題。比較和積累算法對所有可能的情況進行快速評估。此外,在單根通道上,如果有同一存儲位置的雙向統(tǒng)計更新請求,則最新請求失效,其數(shù)據通過之前發(fā)生的請求積累。這樣能夠確保任何同一地址位置的雙向存取不會在QDR-IV存儲設備定義的讀取延遲中發(fā)生。圖2所示的請求-復用– 解復用(RQMXDMXChn)區(qū)塊接收對應通道數(shù)的處理器更新請求和統(tǒng)計更新請求。由于處理器更新請求的間隔時間固定,因此RQMXDMXchN選擇對應下一個時鐘服務的處理器請求,并且通過“請求就緒”回壓信號停止統(tǒng)計請求。在開始處理每個一秒更新請求后,RQMXDMXchN停止配置時鐘數(shù)(默認為10)的處理器請求通道以確保不會提供連續(xù)的一秒更新請求服務。停止信號發(fā)送至NPU,確保在回壓信號失效前不會產生新的請求。該機制能夠在不堵塞這一設計的情況下處理統(tǒng)計和處理器請求。
在最終階段,A-B通道配對計數(shù)器邏輯(ABCH_CTRLn)對每項統(tǒng)計請求實施實際的讀—修改—寫機制,同時確保對每一項處理器請求進行最新讀取。該階段包含讀取-延時管道邏輯、控制復用、讀寫管道和QDR-IV控制器接口邏輯。讀寫延時管道考慮了內存和控制器延遲。來自鄰近通道和同一通道控制復用的反饋機制杜絕所有數(shù)據一致性問題發(fā)生的可能性。管道中的請求流發(fā)起統(tǒng)計和處理器更新??刂茝陀茫–TRL_MUX)區(qū)塊區(qū)分處理器和統(tǒng)計請求,從而使當前數(shù)據能夠作為處理器讀取數(shù)據轉發(fā)或者推送到控制器接口區(qū)塊以便進行進一步處理??刂破鹘涌趨^(qū)塊將實際的讀寫請求轉換為端口A和端口B上的控制器特定命令。
QDR-IV接口運行和應用通道映射
統(tǒng)計流四通道和一秒(處理器)更新四通道接口作為應用通道。QDR IV控制器采用帶有為QDR IV端口A和端口B定義的專用四通道端口界面的4:1/1:4通道復用/解復用功能。QDR-IV控制器以固定順序對通道進行復用和解復用,應用端和以4X時鐘頻率運行的QDR IV設備端之間的順序為ch0、ch1、ch2和ch3。圖3為所假設的QDR-IV控制器順序和建議的QDR IV HP統(tǒng)計計數(shù)器解決方案和QDR IV XP統(tǒng)計計數(shù)器解決方案應用通道映射。
圖3 QDR-IV接口4:1/1:4 復用/解復用和應用通道映射
在QDR-IV HP統(tǒng)計計數(shù)器中,端口A和端口B 的請求獨立于地址并按照Ch0-Ch1-Ch2-Ch3順序的排列。這是因為HP模式無區(qū)塊要求,并且端口A和端口B上的請求可能包含同一位置的地址。但在QDR-IV XP統(tǒng)計計數(shù)器中,端口A和端口B的請求是以奇數(shù)-偶數(shù)-奇數(shù)-偶數(shù)為順序的排列的,這樣端口A和端口B在同一時鐘周期中就不會出現(xiàn)兩個屬于同一區(qū)塊的地址。基于 QDR-IV SRAM的QDR IV 統(tǒng)計計數(shù)器IP為網絡流量管理和其他計數(shù)器的應用提供了高效的統(tǒng)計計數(shù)方案。