當(dāng)前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀]隨著 10Gb 以太網(wǎng)發(fā)展趨于成熟,且業(yè)界甚至已開始期待 40GbE 和 100GbE 以太網(wǎng)的出現(xiàn),新一代網(wǎng)絡(luò)基礎(chǔ)架構(gòu)方興未艾。融合型網(wǎng)絡(luò)在流量處理方面向可擴(kuò)展開放式平臺提出了全新的挑戰(zhàn)。新一代融合型基礎(chǔ)設(shè)施底板通常由高

隨著 10Gb 以太網(wǎng)發(fā)展趨于成熟,且業(yè)界甚至已開始期待 40GbE 和 100GbE 以太網(wǎng)的出現(xiàn),新一代網(wǎng)絡(luò)基礎(chǔ)架構(gòu)方興未艾。融合型網(wǎng)絡(luò)在流量處理方面向可擴(kuò)展開放式平臺提出了全新的挑戰(zhàn)。新一代融合型基礎(chǔ)設(shè)施底板通常由高性能兆兆位 (TB) 交換結(jié)構(gòu)和可編程內(nèi)容處理器構(gòu)成,能夠在復(fù)雜性不斷增長且層出不窮的各類應(yīng)用中處理應(yīng)用層高達(dá)數(shù) 10 Gb 的流量。CloudShield 已創(chuàng)建了一系列全新的可編程包處理器,能夠?qū)ΠM(jìn)行檢測、分類、修改以及復(fù)制,融合與應(yīng)用層的動態(tài)交互。

我們的流程加速子系統(tǒng) (FAST) 采用 Xilinx? Virtex?-class FPGA 來完成為 CloudShield 深度包處理與修改 (CloudShield Deep Packet Processing and Modification) 刀片的包預(yù)處理。這些 FPGA 包含 10Gb 以太網(wǎng) MAC,并為每個端口配備了用于分類及密鑰提取的入口處理器 (ingress processor)、用于包修改的出口處理器 (egress processor)、使用四倍數(shù)據(jù)速率 (QDR) SRAM的包隊列、基于賽靈思 Aurora 的消息傳輸通道以及基于三態(tài)內(nèi)容可尋址存儲器 (TCAM) 的搜索引擎。我們的 FPGA 芯片組能夠以最少的 CPU 參與來完成包的高速緩存及處理,可實現(xiàn)每秒高達(dá) 40Gb 的高性能處理能力。其采用 2 至 7 層字段查詢法,能夠根據(jù)動態(tài)可重配置規(guī)則在線速條件下以靈活和可確定的方式進(jìn)行包修改。

FAST 包處理器的核心功能

我們當(dāng)前部署的深度包處理刀片采用兩個刀片存取控制器 FPGA 和一個包交換 FPGA,所有這些都通過 LX110T Virtex-5 FPGA 來實施。每個刀片存取控制器都具備使用兩個賽靈思10GbE MAC/PHY 內(nèi)核實現(xiàn)的數(shù)據(jù)層連接功能、基于賽靈思 ChipSyncTM 技術(shù)的芯片間接口以及使用賽靈思 IP 核的包處理功能。包交換 PFGA 使用標(biāo)準(zhǔn)的賽靈思 SPI-4.2 IP 核來實現(xiàn)與我們的網(wǎng)絡(luò)處理器 (NPU) 及我們的 IP 核搜索引擎接口相連。

為了將片上系統(tǒng)的設(shè)計重點集中在包處理功能上,我們盡可能使用標(biāo)準(zhǔn)的賽靈思 IP 核。我們選用賽靈思 10Gb 以太網(wǎng) MAC 內(nèi)核配合雙 GTP 收發(fā)器來實施 4 x 3.125-Gbps 的 XAUI 物理層接口。針對 NPU 接口,我們使用了帶動態(tài)相位對準(zhǔn)與 ChipSync 技術(shù)且支持每 LVDS 差分對高達(dá) 1Gbps 速率的賽靈思 SPI-4 Phase 2 內(nèi)核。我們主要的包處理 IP 核如下:

? FAST 包處理器:FPP 的入口包處理器 (FIPP) 負(fù)責(zé)第一層包解析、密鑰與數(shù)據(jù)流 ID 的散列生成以及按端口進(jìn)行的第 3 層至第 4 層校驗和驗證。FPP 的出口包處理器 (FEPP) 可執(zhí)行出口包修改并重新計算第 3 層至第 4 層的校驗和。

? FAST 搜索引擎:我們 FSE 在 TCAM 和 QDR SRAM 中維護(hù)著一個流數(shù)據(jù)庫,可用于決定需要在入口包上執(zhí)行的處理任務(wù)。該 FSE 可從每個端口的 FIPP 處接受密鑰消息,決定針對該包需要執(zhí)行的處理任務(wù),然后將結(jié)果消息返還給原始發(fā)出消息的隊列。

? FAST 數(shù)據(jù)隊列:我們的數(shù)據(jù)隊列 (FDQ) 可在“無序”保持緩沖器中存儲傳送進(jìn)來的包。當(dāng)入口包被寫入到 QDR SRAM 時,該隊列將密鑰消息從 FIPP 發(fā)送至 FAST 搜索引擎。該 FSE 將使用這一密鑰來決定如何處理此包,然后將結(jié)果消息返還給 FDQ。根據(jù)該結(jié)果消息,隊列可對每個緩沖的包進(jìn)行轉(zhuǎn)發(fā)、復(fù)制或丟棄處理。此外,該隊列還可對已轉(zhuǎn)發(fā)或已復(fù)制的包獨立進(jìn)行包修改。

數(shù)據(jù)流的輸入與輸出

圖 1 顯示了流經(jīng)我們流量加速子系統(tǒng)的數(shù)據(jù)流。核心 FPGA 功能以綠色表示,包數(shù)據(jù)流為黃色,控制消息為藍(lán)色,外部器件則為灰色。

首先,我們可從 10GbE 網(wǎng)絡(luò)端口所接收到的包來識別客戶數(shù)據(jù)流的開始。每個端口上的包都會進(jìn)入 FAST 入口包處理器進(jìn)行包解析與分析(圖中的 1 號)。在對協(xié)議和封包進(jìn)行分類之后,F(xiàn)IPP 可定位第 2、3 以及 4 層的報頭偏移量。接下來是數(shù)據(jù)流散列與密鑰抽?。〝?shù)據(jù)流選擇查找規(guī)則,如使用源 IP 地址、目的地 IP 地址、源和目的地端口和協(xié)議的五元組法 (5-tuple))。

此時,我們的隊列管理器緩沖器負(fù)責(zé)接收包,以釋放外部 QDR SRAM 的存儲器頁面。在此階段接收到的包都被認(rèn)為是無序的。在等待 FAST 調(diào)度的同時,我們將它們置于外部 QDR SRAM 中。FAST 數(shù)據(jù)隊列(圖中的 2 號)分配包 ID,并向 FAST 搜索引擎(圖中的 3 號)分派密鑰消息。FAST 搜索引擎使用該密鑰來識別數(shù)據(jù)流。外部 TCAM 中匹配的數(shù)據(jù)流條目可在關(guān)聯(lián)的 SRAM 中向數(shù)據(jù)流任務(wù)表 (Flow Action Table) 提供索引。匹配的數(shù)據(jù)流任務(wù)根據(jù)客戶配置的應(yīng)用訂閱進(jìn)行確定。

FAST 搜索引擎向 FDQ(圖中的 4 號)發(fā)送結(jié)果消息進(jìn)行回復(fù),然后由任務(wù)調(diào)度程序根據(jù)其指定的任務(wù)將包分配給某個輸出隊列。然后我們從包隊列中將包解至專用的目的地輸出端口(圖中的 5 號),其中我們的 FAST 出口包處理器(圖中的 6 號)可根據(jù)指定任務(wù)的要求按數(shù)據(jù)流修改表 (Flow Modification Table) 中的規(guī)則處理包修改。

如果我們的 FAST 搜索引擎能夠與客戶數(shù)據(jù)流的匹配,則會執(zhí)行指定的任務(wù),如果不能,就執(zhí)行默認(rèn)的規(guī)則(丟棄或發(fā)送至 NPU)。我們允許的基本任務(wù)包括:丟棄包、將包直接轉(zhuǎn)發(fā)至網(wǎng)絡(luò)端口、將包轉(zhuǎn)發(fā)給異常包處理 NPU 或復(fù)制包并依據(jù)獨立規(guī)則轉(zhuǎn)發(fā)包。我們的擴(kuò)展任務(wù)包括包塌縮 (Packet collapse)(刪除包的一部分)、包擴(kuò)展/寫入(在包中插入一系列字節(jié))、包覆蓋 (packet overwrite)(修改一系列字節(jié))及其組合。以包覆蓋規(guī)則為例,可以是修改MAC 源地址或目的地地址、修改 VLAN 的內(nèi)或外部標(biāo)記 (tag),或更改第 4 層報頭標(biāo)記。插入/刪除的例子可以是簡單到刪除現(xiàn)有的 EtherType、插入 MPLS 標(biāo)簽或者 VLAN Q-in-Q 標(biāo)記,也可以是復(fù)雜到需要先插入一個作為 GRE 交付報頭的 IP 報頭,接著緊隨一個 GRE 報頭(通用路由協(xié)議封裝 (GRE) 是一種隧道協(xié)議,具體參閱因特網(wǎng) RFC 1702 號文件)。


圖 1 – 流加速子系統(tǒng)中的數(shù)據(jù)流


圖 2 – 針對 Type II 以太網(wǎng) TCP/IP 包的 5 元組密鑰提取

FAST 包處理器

FAST 入口包處理器可對所有包進(jìn)行解碼,以確定第 2 層、3 層以及 4 層的內(nèi)容(若存在)。在完成以太網(wǎng)第 2 層的初步解碼之后,可對包進(jìn)行更進(jìn)一步的 2 層處理。隨后我們繼續(xù)進(jìn)行第 3 層,處理 IPv4 或 IPv6 包。假定我們發(fā)現(xiàn)這種第 3 層類型的其中之一存在,我們即繼續(xù)進(jìn)行第 4 層處理。

在對包進(jìn)行解碼的同時,我們的密鑰抽取單元也在定位并存儲密鑰字段,以生成可供我們 FAST 搜索引擎在日后用于數(shù)據(jù)流查找的搜索密鑰。圖 2 是 Type II 以太網(wǎng) (Ethernet Type II)的 TCP/IP 包格式和待抽取的標(biāo)準(zhǔn) 5 元組密鑰,此外還顯示了從本例中抽取的結(jié)果密鑰。

我們還可同時對入口處理器與出口處理器的各類包執(zhí)行 IP、TCP、UDP 以及 ICMP 校驗和計算。兩個 Virtex-5 FPGA DSP48E slice 可提供校驗和計算以及驗證所需的加法器。我們的第一個 DSP 可在 32 位的邊界內(nèi)對數(shù)據(jù)流進(jìn)行匯總,而第二個 DSP 則負(fù)責(zé)在相關(guān)層的計算結(jié)束時將所得總數(shù)折疊成 16 位的校驗和。然后我們進(jìn)行校驗和的計算;對于重計算,我們可將傳輸進(jìn)入的數(shù)據(jù)流的校驗和字節(jié)位置清空,使用存儲緩沖器將校驗和結(jié)果的倒數(shù)重新插回??蓪⒌?4 層校驗和要求的偽報頭字節(jié)多路復(fù)用到傳輸進(jìn)入的數(shù)據(jù)流中,以用于最終計算。

每個輸出端口的 FAST 出口包處理器都可根據(jù)規(guī)則表(規(guī)則存儲在內(nèi)部 BRAM 中)進(jìn)行包修改和第 3 層至 4 層校驗和的重新計算及插入。該 FEPP 超越了傳統(tǒng)的包修改“固定功能”方案,從而能夠按照指定的修改規(guī)則編號對包進(jìn)行覆蓋、插入、刪除或者截斷操作等修改。我們的數(shù)據(jù)流修改規(guī)則支持可代表操作類型的操作碼規(guī)范,以 OpLoc 代表啟始位置、OpOffset 代表偏移、Insert Size 代表插入的數(shù)據(jù)大小、Delete Size 代表刪除的數(shù)據(jù)大小,以及是否執(zhí)行第 3 層和第 4 層校驗和計算和插入以及是否進(jìn)行修改規(guī)則鏈化。

我們的新一代實施方案不僅能夠顯著提升性能、進(jìn)一步加強(qiáng)高速緩沖的能力,同時還能添加新功能。通過把我們的 FAST 芯片組升級到單個的賽靈思 Virtex-6 FPGA,我們不僅能夠?qū)⑿乱淮?FAST 的功能、接口和性能提升到一個前所未有的水平,同時還能縮小板級空間并降低功耗要求,從而實現(xiàn)單芯片深度包處理協(xié)處理器單元。

我們能夠使用包覆蓋特性來簡單地對諸如 MAC 目的地地址、MAC 源地址、VLAN 標(biāo)記甚或是單個 TCP 標(biāo)志等現(xiàn)有字段進(jìn)行修改。

如果只需要修改 MAC 目標(biāo)地址,F(xiàn)EPP 在接受到包時收到的“任務(wù)”將會被使用,例如,流修改表(圖 3)中的規(guī)則 2。對規(guī)則 2 預(yù)先配置的內(nèi)容包括:指定操作碼(覆蓋)、OpLoc(在包中所處的位置,比如第 2 層)、OpOffset(距離啟始位置的偏移)、掩碼類型(使用什么字節(jié))以及修改數(shù)據(jù)(實際覆蓋的數(shù)據(jù))等。執(zhí)行的結(jié)果是使用預(yù)先配置的修改數(shù)據(jù)覆蓋從第 2 層位置開始的 6 個字節(jié)。

圖 3 – 簡單 MAC 目的地地址覆蓋修改

另一種覆蓋實例是如規(guī)則 6 所示的方案,例如我們希望修改某個特定的 TCP 標(biāo)志,如 ACK、SYN 或者 FIN(參見圖 4)。該規(guī)則將使用操作碼(覆蓋)、OpLoc(第 4 層)、OpOffset(從第 4 層開始 0 偏移)、掩碼類型(使用字節(jié) 14)和位掩碼(字節(jié)中的那些位需要掩蔽)。我們可以使用掩碼類型來包含或是排除特定的字節(jié),從而指定多個字段實現(xiàn)覆蓋。


圖 4 – TCP 標(biāo)志的覆蓋修改

我們的覆蓋功能不僅限于數(shù)據(jù)流修改規(guī)則表中存儲的內(nèi)容,而且還能包括作為關(guān)聯(lián)數(shù)據(jù)存儲在數(shù)據(jù)流任務(wù)表 (Flow Action Table) 中的內(nèi)容??梢酝ㄟ^指定規(guī)則,讓傳輸?shù)?FEPP 的關(guān)聯(lián)數(shù)據(jù)成為任務(wù)的組成部分,從而顯著擴(kuò)展可用于修改的數(shù)據(jù)的范圍。其結(jié)果,舉例來說,是可以覆蓋整個 VLAN 標(biāo)記范圍。

我們的插入/刪除功能能夠?qū)崿F(xiàn)甚至更為復(fù)雜的包修改。以規(guī)則 5(參見圖 5)為例,使用我們的插入/刪除功能。包括操作碼(插入/刪除)、OpLoc(第 2 層)、OpOffset(從第 12 個字節(jié)開始)、ISize(插入數(shù)據(jù)大小= 22 個字節(jié))、DSize(刪除的字節(jié)大小 = 2個字節(jié))和Insert Data(0x8847,MPLS 標(biāo)簽)等與規(guī)則5相關(guān)的各種任務(wù),將刪除現(xiàn)有的 EtherType,并插入新的 EtherType=8847,這說明新的包將是一個 MPLS 單播包,接著是由插入數(shù)據(jù)所指定的 MPLS 標(biāo)簽組。


圖 5 – MPLS 標(biāo)簽插入修改

布局規(guī)劃與時序收斂

在設(shè)計我們獨特的包處理器過程中,我們面臨的最嚴(yán)峻挑戰(zhàn)是 FPGA 設(shè)計復(fù)雜程度不斷增大,路由和使用密度的增加,各種 IP 核的集成,多種硬邏輯對象的使用(如 BRAM、GTP、DSP 以及類似對象),以及在項目最早期階段的數(shù)據(jù)流規(guī)劃不足等。我們發(fā)布的 Phase 1 Virtex-5 FPGA 的bit文件建立在較低的使用密度之上,特別是較低的 BRAM 使用密度基礎(chǔ)之上,結(jié)果導(dǎo)致相對簡單的時序收斂。在稍后階段因為增加了新的重要功能,導(dǎo)致 BRAM 的利用密度接近 97%,我們開始強(qiáng)烈意識到優(yōu)化布局規(guī)劃的重要意義,以及產(chǎn)品生命周期初期的決策將對后期造成怎樣的影響。

布局規(guī)劃的主要目標(biāo)通過減少路由延遲來改進(jìn)時序。為此,在設(shè)計分析過程中非常重要的事情就是將數(shù)據(jù)流和管腳配置納入考慮范圍。現(xiàn)在已經(jīng)與 ISE? 結(jié)合一起的賽靈思 PlanAheadTM工具作為布局規(guī)劃和時序分析的單點工具 (point tool),為我們提供了如何在高利用率的使用設(shè)計中為了實現(xiàn)時序收斂而需要穿越重重復(fù)雜網(wǎng)絡(luò)的交互分析和可視化功能。PlanAhead 使我們能深入了解我們的設(shè)計,即我們需要提供最少數(shù)量的約束條件來引導(dǎo)映射、布置以及布線工具充分滿足我們的時序要求。我們發(fā)現(xiàn),要做到這一點,往往需要在基于模塊的設(shè)計區(qū)域約束之外優(yōu)化放置一部分關(guān)鍵的 BRAM。

回想起來,如果我們在項目最初階段即花更多的時間使用 PlanAhead 來進(jìn)行假定方案的驗證,幫助我們看到最佳的數(shù)據(jù)流和管腳,我們在設(shè)計后期的任務(wù)就會輕松許多。

動態(tài)自適應(yīng)包處理

我們的整數(shù)流加速子系統(tǒng)能夠在最高的靈活程度下以線速檢查并和修改包,同時能夠動態(tài)地與應(yīng)用層業(yè)務(wù)進(jìn)行交互,實現(xiàn)高度自適應(yīng)的包處理。Virtex-class FPGA 是重要的實現(xiàn)手段,提供了一個前一代 FPGA 無法實現(xiàn)的片上系統(tǒng)平臺,加速基于內(nèi)容的路由以及實施重要包處理功能。

我們的新一代實施方案不僅能夠顯著提升性能、進(jìn)一步加強(qiáng)高速緩沖的能力,同時還能添加新功能。通過在單個賽靈思 Virtex-6 FPGA 中升級我們的 FAST 芯片組,我們不僅能夠?qū)⑿乱淮?FAST 的功能、接口和性能提升到一個前所未有的水平,同時還能縮小電路板空間并降低功耗要求,從而實現(xiàn)單芯片深度包處理協(xié)處理器單元。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉