網(wǎng)絡(luò)應(yīng)用中的SRAM
引言
同步SRAM的傳統(tǒng)應(yīng)用領(lǐng)域是搜索引擎,用于實現(xiàn)算法。在相當長的一段時間里,這都是SRAM在網(wǎng)絡(luò)中發(fā)揮的主要作用。然而,隨著新存儲技術(shù)的出現(xiàn),系統(tǒng)設(shè)計師為SRAM找到了新的用武之地,如:NetFlow(網(wǎng)流)、計數(shù)器、統(tǒng)計、包緩沖、隊列管理和存儲分配器。
如今,人們對所有路由器和交換機的要求都不僅限于FIB(轉(zhuǎn)發(fā)信息庫)搜索。計數(shù)器需要跟蹤接受服務(wù)的信息包數(shù)量,并獲取統(tǒng)計數(shù)據(jù)來解決帳單編制問題。通過統(tǒng)計來連續(xù)監(jiān)視網(wǎng)絡(luò)(被稱為NetFlow),從而完成問題檢測和判定。隨著每個信息包處理量的增加,需要采用包緩沖器來提升處理能力。除了以上提到的之外,由于系統(tǒng)中存儲器資源增多,因而動態(tài)存儲分配也是必需的。路由器或交換機的所有這些附加功能正在重新定義網(wǎng)絡(luò)系統(tǒng)設(shè)計(見圖1)。
此外,隨著IPv6和VRF(虛擬路由器轉(zhuǎn)發(fā))的迅速普及,對更寬、更深、更快和更高效系統(tǒng)的需求愈加迫切。系統(tǒng)設(shè)計師必須能夠以最低的成本來滿足網(wǎng)絡(luò)系統(tǒng)的所有度量標準。此時,簡單的同步SRAM就難以滿足要求了。所有這些功能均可借助DDR(雙倍數(shù)據(jù)速率)或QDR(4倍數(shù)據(jù)速率)SRAM等速度更快、帶寬更高的SRAM來實現(xiàn)。本文將分析上述的每一種應(yīng)用及其目前和未來的要求,還將提出旨在滿足這些要求的解決方案和建議。
QDR 與 DDR SRAM
由賽普拉斯、瑞薩、IDT、NEC和三星公司組成的QDR協(xié)會開發(fā)出了QDR SRAM,旨在通過把性能提升為原先的4倍來滿足那些不僅需要標準ZBT(零總線轉(zhuǎn)向時間)或NoBL(無總線延遲)SRAM的低延遲和滿周期利用率,而且還需要大幅度提高工作頻率的系統(tǒng)對帶寬的要求。QDR SRAM具有單獨的讀和寫端口,它們在每個數(shù)據(jù)引腳上以雙倍數(shù)據(jù)速率彼此獨立地工作,從而在一個時鐘周期中傳輸4個數(shù)據(jù)字,4倍數(shù)據(jù)速率因此而得名。采用分離的讀/寫端口完全消除了SRAM與存儲控制器之間發(fā)生總線爭用的可能性,而這卻是傳統(tǒng)的公用I/O器件需要解決的問題。QDRII SRAM具有被稱為回波時鐘的源同步時鐘,它們與數(shù)據(jù)輸出一道生成。QDR SRAM采用了HSTL(高速收發(fā)器邏輯)I/O標準,以便實現(xiàn)高速操作。
QDR SRAM面向那些需要在讀和寫操作之間進行轉(zhuǎn)換的應(yīng)用,而DDR SRAM則主要面向需要進行數(shù)據(jù)流式處理(例如,先進行16項讀操作,然后再執(zhí)行16項寫操作)的應(yīng)用,此時,讀和寫操作之間的近期平衡為100%的讀操作或100%的寫操作。在這種情況下,有一根QDR SRAM總線在50%的時間里未被使用。其它的總線可能具有不平衡的近期讀/寫比例。后面這兩種情況是促使人們進行DDR公用I/O SRAM開發(fā)的主要原因,在這種器件中,輸入和輸出數(shù)據(jù)共用同一根總線。在從讀操作向?qū)懖僮鬓D(zhuǎn)換的過程中,需要總線轉(zhuǎn)向周期,并減小了可用帶寬。然而,對某些系統(tǒng)而言,這將產(chǎn)生優(yōu)于QDR架構(gòu)的平均總線利用率??刂菩盘枠O少,而且與QDR器件控制信號稍有不同。
網(wǎng)絡(luò)應(yīng)用
如引言部分所述,網(wǎng)絡(luò)系統(tǒng)設(shè)計涉及諸多方面。即將采用網(wǎng)絡(luò)設(shè)計來實現(xiàn)的各類應(yīng)用的數(shù)量日趨龐大。這里討論的是部分最常見的應(yīng)用。
轉(zhuǎn)發(fā)/路由選擇
轉(zhuǎn)發(fā)信息庫(FIB)負責保存用于決定輸入信息包的路由選擇特性的路由選擇信息。代表路由的前綴可被存儲于三進制內(nèi)容可尋址存儲器(TCAM)中并進行即時搜索,或存儲于SRAM中并利用某種算法對地址的若干位進行增量搜索。不管在哪種應(yīng)用中,結(jié)果索引都具有一些用于指示所采取的措施的關(guān)聯(lián)信息 —— 下一個跳地址、更新統(tǒng)計和另一個端口上的復(fù)制等。傳統(tǒng)的做法是把該信息存儲于SRAM中。
與展開式可擴縮包分類解決方案(在該解決方案中,TCAM正逐漸成為事實標準)相比,人們在FIB算法方面進行了大量的研究工作。但是,有兩個發(fā)展趨勢對面向FIB解決方案的SRAM型算法提出了重大挑戰(zhàn):(1)隨著IPv6支持
NetFlow
Cisco systems公司的NetFlow技術(shù)是Cisco IOS軟件的主要組成部分,用于在數(shù)據(jù)進入特定的路由器或交換機接口時對其進行收集和測量。通過分析NetFlow數(shù)據(jù),網(wǎng)絡(luò)工程師能夠發(fā)現(xiàn)導(dǎo)致?lián)砣脑?;確定每個用戶和應(yīng)用的服務(wù)類型(CoS),并確認通信量的源網(wǎng)絡(luò)和目標網(wǎng)絡(luò)。NetFlow實現(xiàn)了極為細致和準確的通信量測量和高級聚合式通信量收集功能。
目前,IETF(因特網(wǎng)工程特別工作組)正在對NetFlow的現(xiàn)有版本(ver9)進行標準化,并將其命名為IPFIX。除了Cisco之外,Enterasys和Juniper等網(wǎng)絡(luò)供應(yīng)商都在該標準的制訂過程中發(fā)揮著作用,并且已經(jīng)表示出采納IPFIX的興趣。當然,在多機種網(wǎng)絡(luò)中,作為網(wǎng)絡(luò)應(yīng)用流相關(guān)信息的一致性來源,使得NetFlow/IPFIX的吸引力遠遠超過了其它方案。
概括起來,NetFlow提供了以下信息:
*信源 IP地址
*目的IP地址
* 源端口
* 目的端口
*第三層協(xié)議類型
*服務(wù)類型
NetFlow僅負責捕獲入站通信量,因此,通常需要在鏈路的兩端均安放儀表。目前,NetFlow是以采用特殊算法的軟件來實現(xiàn)的,并把數(shù)據(jù)存儲于QDR SRAM之中。由于NetFlow是一種需要滿足一定線路速率的新技術(shù),因此它是采用QDR來實現(xiàn)的。如今,可實現(xiàn)40Gbps~56Gbps數(shù)據(jù)速率的下一代路由器/交換機的大多數(shù)供應(yīng)商都把目光集中在了具有250MHz~300MHz操作速度的QDR SRAM上。隨著數(shù)據(jù)速率的增加,SRAM的速度指標變得愈發(fā)重要。
計數(shù)器
在每一種網(wǎng)絡(luò)應(yīng)用中,始終需要保持量度(metrics)。計數(shù)器是跟蹤網(wǎng)絡(luò)活動所必需的。對于每種網(wǎng)絡(luò)協(xié)議而言,都需要跟蹤一種特定的量度。例如:在IP層(第三層),通常設(shè)置了用于顯示以數(shù)據(jù)報形式發(fā)送的網(wǎng)絡(luò)通信量的數(shù)據(jù)報/秒計數(shù)器。這些數(shù)據(jù)報一般都是廣播信息包,因此,為了減少廣播通信量,了解哪些服務(wù)和處理采用了數(shù)據(jù)報是很有必要的。該信息可通過數(shù)據(jù)報計數(shù)器獲得。在TCP(即第4層)中,一個相似的計數(shù)器是TCP段/秒計數(shù)器,它能夠提供網(wǎng)絡(luò)接收和發(fā)送的TCP段的總數(shù)。此外,每個網(wǎng)絡(luò)都保留了誤差計數(shù)器,用于跟蹤檢測到的傳輸誤差和沖突的數(shù)量。大體而言,每個網(wǎng)絡(luò)所需的計數(shù)器數(shù)量的增加將被視作網(wǎng)絡(luò)緩沖空間不足的表現(xiàn)。
統(tǒng)計
除了NetFlow之外,有些供應(yīng)商還把帳單編制和診斷作為統(tǒng)計以單獨的系統(tǒng)來實現(xiàn)。例如,在服務(wù)提供商的網(wǎng)絡(luò)中,帳單編制形成了一個非常重要的量度。每一個客戶的網(wǎng)絡(luò)使用記錄都應(yīng)加以保存,以獲得該客戶的記帳信息。統(tǒng)計信息可以按照每個數(shù)據(jù)流或每個聚合組來存儲。在統(tǒng)計緩沖器中,對于存儲器的選擇來說,延遲和突發(fā)操作是重要的決定因素。在包處理過程中,需要對統(tǒng)計數(shù)據(jù)進行快速存取,因此,低延遲是至關(guān)重要的。而且,由于統(tǒng)計數(shù)據(jù)的位數(shù)往往不是很大,應(yīng)優(yōu)先選擇采用短突發(fā)操作或無突發(fā)操作的SRAM。
與計數(shù)器相似,在大多數(shù)客戶系統(tǒng)中,統(tǒng)計都是借助類似的數(shù)學(xué)算法和存儲于DDR SRAM中的數(shù)據(jù)來實現(xiàn)的。對計數(shù)器用SRAM的所有速度和存儲密度規(guī)格的要求也適用于統(tǒng)計SRAM。
包緩沖器
包緩沖存儲器通常被用于在包處理過程中對輸出端口和交換機結(jié)構(gòu)中的信息包進行緩沖。在標準線卡中,包處理器具有一個包緩沖器,在該緩沖器中,信息包的內(nèi)容將在執(zhí)行包信頭處理的同時被存儲。包緩沖存儲器中的決定因素是ASIC/NPU的速度以及線路速率。運行速度較慢的ASIC需要存儲密度較大的緩沖存儲器。緩沖存儲器還取決于線卡所提供的服務(wù)類型。如果執(zhí)行的是較為復(fù)雜的服務(wù),則ASIC通常需要更多的時間來處理信息包,因而必須進行更多的緩沖處理。ASIC設(shè)計或NPU的選擇還決定了包括突發(fā)操作和I/O寬度要求在內(nèi)的其它特性。對于其中的某些應(yīng)用而言,延遲是至關(guān)重要的指標。在這樣的場合中,應(yīng)選擇具有較低延遲的包緩沖器。所以,這樣的設(shè)計通常把QDR或DDR SRAM(而不是DRAM)用于包緩沖。然而,有些應(yīng)用需要一個較深的包緩沖器,ASIC需要執(zhí)行更多的操作。此時,最為經(jīng)濟的解決方案是采用DRAM來實現(xiàn)該功能。因此,在實現(xiàn)包緩沖器的過程中,始終需要進行權(quán)衡
隊列管理/通信量規(guī)整
隊列管理器負責確保接收到的信息包是否符合通信契約。隊列管理器的工作內(nèi)容包括在與契約進行比照之后對信息包進行標注。每個線卡接口都擁有一個輸入隊列(輸入信息包將被置于該隊列之上,以等待路由選擇處理器的處理)和一個輸出隊列(路由選擇處理器把即將在接口上發(fā)送的待發(fā)信息包置于該隊列上)。在某些場合,客戶可通過實現(xiàn)計數(shù)器來管理這些隊列(根據(jù)處理能力來管理輸入信息包的流動)。由于該應(yīng)用對速度的需求更甚于對密度的需求,且讀/寫比例幾乎為1,因此,QDR SRAM 將是其理想選擇。
動態(tài)存儲器分配
在線卡上,通常存在幾組面向不同應(yīng)用的存儲器。這往往會增加電路板上的存儲芯片數(shù)量以及同一個設(shè)計中所使用的存儲器類型。如今,設(shè)計師在著手實現(xiàn)存儲分配器時采用的是SRAM,以管理可用的存儲器組。該存儲分配器SRAM負責存儲所有存儲器組的地址規(guī)范,并根據(jù)請求向提出請求的應(yīng)用提供對一組特定存儲器的存取。這使得設(shè)計師能夠在不同的應(yīng)用之間共用同一組存儲芯片,而不會發(fā)生請求沖突。該應(yīng)用要求對SRAM進行快速存取,而且?guī)缀醵际亲x操作較多而寫操作較少。因此,對于該場合而言,最合適的選擇是DDR SRAM。
結(jié)語
新型網(wǎng)絡(luò)應(yīng)用為QDR和DDR SRAM贏得設(shè)計機會敞開了多扇大門。由于目前這一代具有300MHz(DDR)速度和72Mb數(shù)據(jù)存儲空間的QDRII/DDRII SRAM能夠滿足下一代40Gbps~56Gbps路由器/交換機的全部要求,因此,大部分網(wǎng)絡(luò)應(yīng)用都在緩慢地向采用QDR/DDR SRAM過渡。此外,由于這些路由器/交換機達到了下一個節(jié)點(80Gbps線路速率)水平,所以,QDRII+/DDRII+和 QDRIII/DDRIII SRAM可實現(xiàn)更高的速度和存儲密度。除了速度和存儲密度之外,QDRII+/DDRII+還具有諸多旨在實現(xiàn)簡易型PCB和系統(tǒng)設(shè)計的特點。
評論