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