新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 使用賽靈思 FPGA加速包處理

使用賽靈思 FPGA加速包處理

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

隨著 10Gb 以太網(wǎng)發(fā)展趨于成熟,且業(yè)界甚至已開始期待 40GbE 和 100GbE 以太網(wǎng)的出現(xiàn),新一代網(wǎng)絡(luò)基礎(chǔ)架構(gòu)方興未艾。融合型網(wǎng)絡(luò)在流量處理方面向可擴(kuò)展開放式平臺(tái)提出了全新的挑戰(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)用層的動(dòng)態(tài)交互。

本文引用地址:http://m.butianyuan.cn/article/190095.htm

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

FAST 包處理器的核心功能

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

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

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

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

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

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

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

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

此時(shí),我們的隊(duì)列管理器緩沖器負(fù)責(zé)接收包,以釋放外部 QDR SRAM 的存儲(chǔ)器頁面。在此階段接收到的包都被認(rèn)為是無序的。在等待 FAST 調(diào)度的同時(shí),我們將它們置于外部 QDR SRAM 中。FAST 數(shù)據(jù)隊(duì)列(圖中的 2 號(hào))分配包 ID,并向 FAST 搜索引擎(圖中的 3 號(hào))分派密鑰消息。FAST 搜索引擎使用該密鑰來識(shí)別數(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 號(hào))發(fā)送結(jié)果消息進(jìn)行回復(fù),然后由任務(wù)調(diào)度程序根據(jù)其指定的任務(wù)將包分配給某個(gè)輸出隊(duì)列。然后我們從包隊(duì)列中將包解至專用的目的地輸出端口(圖中的 5 號(hào)),其中我們的 FAST 出口包處理器(圖中的 6 號(hào))可根據(jù)指定任務(wù)的要求按數(shù)據(jù)流修改表 (Flow Modification Table) 中的規(guī)則處理包修改。


上一頁 1 2 3 下一頁

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

評(píng)論


相關(guān)推薦

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

關(guān)閉