近年來,在消費者寬帶、企業流量和基于 IP 的新型服務(如移動連接、遠程云服務、IP 視頻和 IPTV)的推動下,企業和運營商網絡的流量呈爆炸式增長。
此外,虛擬化的出現和對更高性能(高達 100G)安全通信的需求給包括 I/O 子系統在內的通信系統設計帶來了巨大壓力。這些需求,再加上多核 x86 CPU 在嵌入式應用程序和數據中心中取得的成功,催生了對協處理器的需求,該協處理器可以處理數千萬有狀態流的數據包處理,并具有無縫、高性能、虛擬化接口x86 CPU 子系統。
數據包處理壓力
如今,提供基于云的服務和企業數據中心的服務提供商能夠隨時隨地通過有線和無線網絡訪問寶貴的資源。由此產生的流量增加使匯聚交換機/路由器和中間網絡節點處于不斷的壓力之下,以滿足越來越高的帶寬需求。這些處理元素不只是簡單地切換或路由流量;他們還必須執行一些功能,例如構建具有深度數據包檢測 (DPI) 功能的防火墻,并為多租戶云環境提供虛擬化支持。
底層傳輸控制協議 (TCP)、用戶數據報協議 (UDP) 和實時傳輸協議 (RTP) 流量包括屬于網絡連接的許多數據包。網絡邊緣的交換機、路由器或網關等中間節點必須同時處理數百萬個網絡連接。
嘗試單獨處理連接中的每個數據包會阻止網絡元素跟上不斷增加的線路速率。由于需要對至少一部分流量執行 DPI,這進一步復雜化了。此外,位于網絡深處的中間節點必須處理數億個數據包。
每個數據包與任何其他數據包沒有關聯;也就是說,它們在空間或時間上不相關。通過將數據包分組為流,可以更好地服務于這種異步流量。流是屬于同一網絡會話的數據包的集合,通常在源-目標對之間。傳入的數據包必須分類為流。然后處理器根據流狀態表中的規則以相同的方式處理屬于同一流的所有數據包。
有狀態的流處理
所有網絡元素都需要數百萬個流的狀態,尤其是在實施防火墻、入侵預防或檢測系統以及應用程序級負載平衡器等安全處理時。由此產生的平臺架構必須通過監視流中的數據包、更新 TCP 連接、創建和超時 UDP 連接以及跟蹤虛擬專用網絡 (VPN) 連接來支持流狀態管理。還需要狀態處理來支持 TCP 代理和 TCP 拼接。
因此,系統軟件應維護支持數百萬流的流狀態表。硬件必須通過在流哈希表中執行復雜的哈希和查找來支持軟件。軟件負責分析流哈希結果并管理新流,更新哈希表并維護流狀態。
100G 時的系統性能要求
為了滿足 100G 的嚴格系統要求,處理和內存架構都必須滿足在 64 字節數據包的最壞情況下一個數據包時間提供的時間預算,即低至 5 ns。
處理指令和內存預算
鑒于大多數網絡繼續使用以太網幀或數據包作為底層傳輸,了解這些幀的組成以及它們如何影響網絡性能非常重要。
以太網幀
典型的以太網幀以 8 字節的前導碼開始,隨后是 12 字節的目標地址和源地址的尋址信息,2 字節的類型/長度字段指示使用的日期類型以及有效負載的長度。有效載荷數據可以低至 46 字節,高至 1,500 字節。計算 32 位(4 字節)循環冗余校驗并將其附加在幀的末尾(圖 1)。
圖 1:在以太網幀格式中,64 字節的最小數據包大小在加上所示開銷后實際上是 84 字節。
100 GbE 的性能計算
系統吞吐量計算通常以每秒數據包 (pps) 的形式表示。當所有以太網幀的長度為 64 字節或最小大小的幀時,計算最大數量。對于 10 GbE,這個數字是 148.81 億 pps,或通常稱為 15 Mpps。對于 100 GbE,這個數字大約為 150 Mpps。
較小的數據包在滿足短時間預算方面存在挑戰,而大數據包在滿足最高線路速率方面存在挑戰。處理 64 字節數據包所需的每個數據包時間預算僅為 6 ns。對于運行在 1 GHz 的處理器,指令周期時間為 1 ns。因此,一個 64 字節的數據包轉換為 150 Mpps 的 6 周期預算。解決此限制的一種方法是使用具有多個內核和線程的并行處理。例如,一個 100 個內核/線程的處理器將把這個時間預算增加到 600 個周期——一個更易于管理的窗口。
100G 時的內存注意事項
不建議在網絡設備中使用專用存儲器。目前,DDR3 存儲器是首選的外部存儲器。DDR 存儲器在較長的突發中運行良好;但是,高于 1,666 MHz 的時鐘的事務速率達到了 64 位寬接口的最大速率。將一個 64 位通道換成兩個 32 位內存通道可以在 2,133 MHz 或更高的時鐘頻率下提供更高的事務處理速率。
當前滿足 100G 要求的方法
多核處理器
在 2000 年代初期,許多新老芯片供應商開始提供基于標準通用處理器的多核 CPU 產品,創建對稱多處理 (SMP) Linux 結構。通過利用 SMP 操作系統 (OS) 相對簡單的編程模型,網絡供應商能夠在更短的時間內將產品推向市場。但是,這種方法僅限于低于 10G 的性能水平。
這些處理器的性能受到限制,主要是因為傳統的通用 CPU 依賴緩存來解決內存延遲問題。高速緩存未命中迫使 CPU 內核餓死內存訪問,與高速緩存相比,主內存延遲太慢了。這種所謂的“內存墻效應”意味著處理器的 SMP 多核模型無法擴展到靈活處理 100 Gbps 解決方案所需的數百個處理器內核。通過分支預測和推測執行技術來最小化緩存未命中的嘗試未能解決相對較低的緩存命中率問題。
為了繞過性能瓶頸,供應商開始將硬件加速器嵌入到多核處理器中,以處理常見的性能密集型功能,例如安全性和 DPI(參見圖 2)。由此產生的單芯片異構多核處理器已經讓位于對操作系統不友好的專有架構,并打破了擁有簡單、易于編程的多核處理器的初衷。
圖 2:多核通用處理器需要借助硬件加速功能來處理 100G 的數百萬流。
網絡處理器
網絡處理器是一類專注于優化 L2-L4 數據包性能的處理器。通常,它們包含較小的內核,可以很好地擴展并且可以提供 100 Gbps 的性能。內存性能通過流水線架構來解決,在某些情況下,超長指令字 (VLIW) 架構。
由于復雜的編程和專注于數據包轉發的固定內部結構,網絡處理器的靈活性和智能處理受到阻礙。此外,當流量包含多個隧道和/或需要更深的隧道時,流水線網絡處理器的性能會受到影響。
以太網交換機
這類芯片通常包括帶有內部查找引擎的小型流水線,并且不支持外部存儲器。在企業以太網配線間交換機中很常見。隨著架頂式交換機的使用模型變得越來越復雜,靈活性要求也變得更加明顯。以太網交換機現在需要更大的查找表和更高的性能水平,以及支持數據中心多層虛擬化所需的幾個深層隧道。
盡管一些以太網交換芯片可以訪問外部三元內容尋址存儲器以進行快速表查找,但典型的以太網交換機無法訪問外部 DDR 存儲器,因此難以滿足需要支持數百萬流的網絡應用。
以太網控制器
此類產品用于服務器和客戶端環境,通過 PCI Express 接口將多個以太網接口連接到主機 x86 CPU。這些設備無法通過編程來執行復雜的網絡任務,例如交換或在線安全。它們無法訪問外部存儲器,因此無法支持數百萬個流。
既然已經確定了處理 100G 網絡流量的挑戰,那么討論應對這些挑戰所需的內容就很重要。本系列的第 2 部分將在 2 月份的《嵌入式計算設計》雜志上發表,將重點介紹能夠應對 100G 網絡流量帶來的挑戰的協處理器的需求。此外,第二篇文章將討論新的協處理器如何管理諸如智能 L2/L3 交換、流分類、在線安全處理、虛擬化以及 x86 CPU 內核和虛擬機的負載平衡等功能。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19265瀏覽量
229688 -
控制器
+關注
關注
112文章
16340瀏覽量
177860 -
以太網
+關注
關注
40文章
5419瀏覽量
171634
發布評論請先 登錄
相關推薦
評論