新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 使用賽靈思 FPGA加速包處理

使用賽靈思 FPGA加速包處理

作者: 時間:2012-07-31 來源:網(wǎng)絡 收藏

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

本文引用地址:http://2s4d.com/article/190095.htm

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

FAST 包處理器的核心功能

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

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

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

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

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

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

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

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

此時,我們的隊列管理器緩沖器負責接收包,以釋放外部 QDR SRAM 的存儲器頁面。在此階段接收到的包都被認為是無序的。在等待 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ù)流任務表 (Flow Action Table) 提供索引。匹配的數(shù)據(jù)流任務根據(jù)客戶配置的應用訂閱進行確定。

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


上一頁 1 2 3 下一頁

關(guān)鍵詞: FPGA 賽靈思

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉