基于多核處理器的DPI平臺的設(shè)計與應(yīng)用
前言
本文引用地址:http://2s4d.com/article/265050.htm在目前的安全、數(shù)通及電信等諸多領(lǐng)域都可以看到基于多核處理器的設(shè)計,它們超強(qiáng)的處理能力使得以往繁復(fù)的系統(tǒng)得以減小體積,實(shí)現(xiàn)單板平臺。然而,在享受處理性能提升的同時,結(jié)構(gòu)設(shè)計人員卻不得不忍受多核高功耗的折磨,動輒幾十瓦甚至上百瓦的功耗成為多核進(jìn)入更多領(lǐng)域的一個瓶頸。在目前綠色環(huán)保的政策下如何實(shí)現(xiàn)機(jī)房或設(shè)備的低功耗成為系統(tǒng)工程師必須考慮的一個重要設(shè)計因素。隨著多核集成CPU數(shù)量的不斷增加,單純靠芯片工藝和代碼優(yōu)化來降低功耗越來越難,此時必須要從電路系統(tǒng)設(shè)計的角度來全盤考慮問題。
多核處理器在數(shù)據(jù)處理過程中的密集運(yùn)算使得芯片的動態(tài)功耗不斷增加,因此可將處理器的一部分負(fù)荷卸載到專用加速器中,以此來降低核心芯片的功耗。一方面它可以容許處理器工作在較低的頻率上,大幅降低系統(tǒng)的總功耗,另一方面還可以通過釋放處理器來提升整個系統(tǒng)的性能,或者增加高附加值的應(yīng)用;最后還可以降低對處理器的要求,同時降低系統(tǒng)的BOM成本。
目前安全領(lǐng)域的DPI檢測就是一個計算密集型應(yīng)用,它要求掃描整個數(shù)據(jù)包,計算開銷非常大?,F(xiàn)有網(wǎng)絡(luò)設(shè)備在實(shí)現(xiàn)此功能時大多采用軟件方案,在獨(dú)占一個CPU核的情況下也只能達(dá)到Mbps的處理能力。實(shí)驗(yàn)表明,通過加入LSI公司的Tarari DPI專用芯片可以使系統(tǒng)功耗大幅降低,而處理能力可提升至Gbps。本文將以Tarari為例介紹DPI技術(shù)以及相關(guān)實(shí)現(xiàn)。
DPI技術(shù)及芯片介紹
DPI (Deep Packet Inspection),即“深度報文檢測”。所謂“深度”是和普通的報文分析層次相比較而言的,“普通報文檢測”僅分析IP包的4層以下的內(nèi)容,包括源地址、目的地址、源端口、目的端口以及協(xié)議類型,而DPI 除了對前面的層次分析外,還增加了應(yīng)用層分析,識別各種應(yīng)用及其內(nèi)容,基本概念如圖1所示。
圖1 DPI的基本概念
普通報文檢測是通過端口號來識別應(yīng)用類型的。如檢測到端口號為80時,則認(rèn)為該應(yīng)用代表著普通上網(wǎng)應(yīng)用。而當(dāng)前網(wǎng)絡(luò)上的一些非法應(yīng)用會采用隱藏或假冒端口號的方式躲避檢測和監(jiān)管,造成仿冒合法報文的數(shù)據(jù)流侵蝕網(wǎng)絡(luò)。此時采用L2~L4層的傳統(tǒng)檢測方法已無能為力了。DPI 技術(shù)就是通過對應(yīng)用流中的數(shù)據(jù)報文內(nèi)容進(jìn)行探測,從而確定數(shù)據(jù)報文的真正應(yīng)用。因?yàn)榉欠☉?yīng)用可以隱藏端口號,但目前較難隱藏應(yīng)用層的協(xié)議特征。
Tarari系列芯片是實(shí)現(xiàn)上述功能的一款硬件加速器,它支持行業(yè)內(nèi)標(biāo)準(zhǔn)的正則表達(dá)式,規(guī)則數(shù)可以達(dá)到上百萬條,支持POSIX和PCRE。針對安全應(yīng)用中所需的跨包檢測,Tarari可以對400多萬條數(shù)據(jù)的上下文進(jìn)行處理。處理跨包的過程中Tarari會用內(nèi)部緩存來自動記錄跨包的上下文,包括正則表達(dá)式搜索樹的狀態(tài)、前一包的部分內(nèi)容以及所選的指令。該系列芯片從第四代產(chǎn)品(T9000)開始采用ASIC設(shè)計,第五代產(chǎn)品則開始采用T10 架構(gòu),產(chǎn)品目前包括T1000和T2000兩個系列型號。各芯片間軟件兼容,提供從250Mbps到10Gbps不同的速度等級,以滿足不同應(yīng)用的需求。
以T2000系列芯片為例,它外圍存儲采用低成本的DDR2 SDRAM芯片,無需TCAM或者RLDRAM等昂貴存儲器。為了滿足某些高性能場合的需求,T2000也提供擴(kuò)展接口,方便實(shí)現(xiàn)性能升級。在系統(tǒng)接口方面T2000提供PCI、PCI Express等高速接口,每個PCIe通道都具有Gbps的有效吞吐能力,最高可以達(dá)到16Gbps。T2000最高可支持10G的單片峰值性能,通過級聯(lián)兩片T2000芯片可以提供16Gb/s的吞吐量。T2000 軟件可同時監(jiān)測多達(dá)四塊16Gb/s PCIe電路板并提供負(fù)載均衡,從而為最苛刻的網(wǎng)絡(luò)環(huán)境提供64Gb/s 的性能。T2000系列芯片的體積只有29mm*29mm,典型功耗為5W。
基于多核處理器的DPI平臺設(shè)計
硬件平臺設(shè)計
無論是Intel和AMD的x86架構(gòu),還是MIPs架構(gòu),無論是CISC還是RISC,Tarari都可以很好的支持這些主流的處理器技術(shù)。
以某公司基于MIPs的多核芯片為例,圖2所示為Tarari芯片與MIPs多核的設(shè)計框圖。由于 Tarari芯片具有PCI、PCI-X以及PCIe接口,因此Tarari可以通過這些接口與滿足條件的多核處理器直接對接。對于很多高速應(yīng)用,如果PCIe接口類型不匹配,也可以在PCIe與處理器間搭接PCIe與其它接口的轉(zhuǎn)換橋片。對于低速應(yīng)用,Tarari可以實(shí)現(xiàn)無RAM操作,即無需外圍的DDR2芯片,通過內(nèi)部存儲器就可以實(shí)現(xiàn)數(shù)據(jù)處理。
圖2所示電路的工作流程如下:當(dāng)有數(shù)據(jù)包從GE接口進(jìn)入MIPs多核處理器,處理器會通過PCIe接口或者HT橋片將其送入Tarari內(nèi)容處理器,此時Tarari會通過內(nèi)部的多個引擎對數(shù)據(jù)與規(guī)則集進(jìn)行比對匹配,因?yàn)槠ヅ湟?guī)則在處理期間已經(jīng)調(diào)入Tarari芯片的內(nèi)部緩存,并且數(shù)據(jù)在處理過程中并不會進(jìn)行任何形式的存儲,所以匹配過程延時很小。匹配結(jié)束后,評估結(jié)果同樣經(jīng)過PCIe或者HT總線送回處理器,上層軟件根據(jù)結(jié)果來決定對報文的處理。
圖2 基于MIPs多核的DPI平臺設(shè)計
規(guī)則集編寫及調(diào)用
Tarari支持豐富的正則表達(dá)式語言和各種常用結(jié)構(gòu),可以在確定速度的情況下并行處理超過100萬條規(guī)則,它通過專利技術(shù)綜合了DFA和NFA的優(yōu)點(diǎn),支持各種復(fù)雜的正則表達(dá)式。
如圖3所示,正則表達(dá)式內(nèi)容處理的第一步是編譯規(guī)則集,然后將其調(diào)入Tarari硬件系統(tǒng)。規(guī)則集可以一次全部編譯,也可以只編譯更新部分,即增量編譯。被編譯的規(guī)則文本文件在編寫時需要符合語法,編譯結(jié)果是一個可以被調(diào)入Tarari硬件系統(tǒng)的二進(jìn)制文件。
圖3 規(guī)則集的編譯過程
全部編譯的好處是可以進(jìn)行字符級的壓縮,對于許多應(yīng)用來講,這意味著可以大幅減小編譯輸出的二進(jìn)制文件大小,特別是對于諸如反垃圾郵件等基于文本的應(yīng)用,全部編譯同增量編譯相比可以減小編譯結(jié)果。字符集壓縮必須要檢索起始狀態(tài)條件下的所有規(guī)則。因此,某一個規(guī)則的更新就會改變二進(jìn)制指令在所有規(guī)則集上的生成方式。所以在這種模式下任一規(guī)則的更新都會要求所有的規(guī)則被重新編譯。
評論