新聞中心

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

使用賽靈思 FPGA加速包處理

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

如果我們的 FAST 搜索引擎能夠與客戶數(shù)據(jù)流的匹配,則會執(zhí)行指定的任務(wù),如果不能,就執(zhí)行默認(rèn)的規(guī)則(丟棄或發(fā)送至 NPU)。我們允許的基本任務(wù)包括:丟棄包、將包直接轉(zhuǎn)發(fā)至網(wǎng)絡(luò)端口、將包轉(zhuǎn)發(fā)給異常包處理 NPU 或復(fù)制包并依據(jù)獨(dú)立規(guī)則轉(zhuǎn)發(fā)包。我們的擴(kuò)展任務(wù)包括包塌縮 (Packet collapse)(刪除包的一部分)、包擴(kuò)展/寫入(在包中插入一系列字節(jié))、包覆蓋 (packet overwrite)(修改一系列字節(jié))及其組合。以包覆蓋規(guī)則為例,可以是修改MAC 源地址或目的地地址、修改 VLAN 的內(nèi)或外部標(biāo)記 (tag),或更改第 4 層報(bào)頭標(biāo)記。插入/刪除的例子可以是簡單到刪除現(xiàn)有的 EtherType、插入 MPLS 標(biāo)簽或者 VLAN Q-in-Q 標(biāo)記,也可以是復(fù)雜到需要先插入一個(gè)作為 GRE 交付報(bào)頭的 IP 報(bào)頭,接著緊隨一個(gè) GRE 報(bào)頭(通用路由協(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)行解碼的同時(shí),我們的密鑰抽取單元也在定位并存儲密鑰字段,以生成可供我們 FAST 搜索引擎在日后用于數(shù)據(jù)流查找的搜索密鑰。圖 2 是 Type II 以太網(wǎng) (Ethernet Type II)的 TCP/IP 包格式和待抽取的標(biāo)準(zhǔn) 5 元組密鑰,此外還顯示了從本例中抽取的結(jié)果密鑰。

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

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

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

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



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

評論


相關(guān)推薦

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

關(guān)閉