新聞中心

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

使用賽靈思 FPGA加速包處理

作者: 時間:2012-07-31 來源:網絡 收藏

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


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


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

FAST 包處理器

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

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

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

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

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

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



關鍵詞: FPGA 賽靈思

評論


相關推薦

技術專區(qū)

關閉