專利名稱::用于1000Mbps以上DFA運算的CPU硬件架構(gòu)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及UTM硬件架構(gòu),尤其涉及一種用于1000Mbps以上DFA運算的CPU硬件架構(gòu)。
背景技術(shù):
:在UTM設(shè)備中,廣泛采用DFA技術(shù)。DFA技術(shù)是一種算法,可以將串行的模式匹配工作變成并行的運算。DFA運算的基本原理是,先將所有需要匹配的模板(如病毒庫、關(guān)鍵字庫等)統(tǒng)一變成一張很大的圖(Gmph),圖由若干個節(jié)點組成,每個節(jié)點包含256個指針,對應(yīng)一個字節(jié)的0FF共256種值。輸入流的字節(jié)順序,直接決定了CPU在當前節(jié)點中的偏移量,根據(jù)這個偏移量直接跳轉(zhuǎn)到下一個節(jié)點,如此不斷循環(huán)。但是,傳統(tǒng)的CPU架構(gòu)都會在CPU與Memory之間有一個Cache,為的是暫存部分Memory數(shù)據(jù),當CPU在訪問到Cache中己有的數(shù)據(jù)時就不必去訪問速度相對較慢的Memory了,這樣的過程叫數(shù)據(jù)命中。CPU的運算速度一般要比Memory的訪問速率快很多,如果Cache的命中率高,CPU等待從Memory中取數(shù)據(jù)的時間就少,CPU才能真正在有效地工作。為了實現(xiàn)這個機制,實際上每當CPU在從Memory中取數(shù)據(jù)時,Memory控制器會直接把該字節(jié)附近的128字節(jié)全部取回備用。因為大部分程序和數(shù)據(jù)都是前后相關(guān)聯(lián)的,這樣對于程序運行來說,能提高效率。但是對于DFA運算來說,Cache機制完全不適合。圖的結(jié)構(gòu)是很不確定的,網(wǎng)絡(luò)上往來的數(shù)據(jù)流字節(jié)的前后順序也完全隨機,因此CPU在進行DFA匹配運算時,發(fā)生Cache命中的可能性極小。CPU每次為了讀取下一個圖的節(jié)點都需要從Memory中讀取128字節(jié),即輸入數(shù)據(jù)流和MemoryBus上的流量比為1:128。目前主流的DDR2Memory速率是667MHz,最大帶寬是雙向667MX8=5336MB/s,假設(shè)輸入數(shù)據(jù)流量需要達到400Mbps,這時候需要的內(nèi)存帶寬是400M/8X128=6400MB/s。此數(shù)據(jù)已經(jīng)超過內(nèi)存的物理帶寬了。這還不算正常的程序運行需要的數(shù)據(jù)讀寫。因此,傳統(tǒng)的CPU架構(gòu)不適用于吞吐量大于1000MUTM設(shè)備,而只能用在一些較低端的UTM設(shè)備上。
發(fā)明內(nèi)容本發(fā)明的目的是克服現(xiàn)有技術(shù)存在的不足,提供一種用于1000Mbps以上DFA運算的CPU硬件架構(gòu)。本發(fā)明的目的通過以下技術(shù)方案來實現(xiàn)用于1000Mbps以上DFA運算的CPU硬件架構(gòu),由系統(tǒng)內(nèi)存通過系統(tǒng)內(nèi)存總線接入中央處理器,形成系統(tǒng)內(nèi)存通道,特點是還在中央處理器上設(shè)置DFA用內(nèi)存通道,DFA用內(nèi)存通道獨立于系統(tǒng)內(nèi)存通道,DFA用內(nèi)存通道包括DFA用低延遲內(nèi)存和DFA用內(nèi)存總線,DFA用低延遲內(nèi)存通過DFA用內(nèi)存總線接入中央處理器,所述系統(tǒng)內(nèi)存通道進行普通程序運行和數(shù)據(jù)存取,所述DFA用內(nèi)存通道進行DFA査找運算。進一步地,上述的用于1000Mbps以上DFA運算的CPU硬件架構(gòu),其中,所述DFA用低延遲內(nèi)存為DDR內(nèi)存或RDLRAM內(nèi)存。本發(fā)明技術(shù)方案突出的實質(zhì)性特點和顯著的進步主要體現(xiàn)在①通過改進CPU在不同運算時(如普通運算和DFA運算)所用到的內(nèi)存通道來優(yōu)化內(nèi)存訪問,在CPU中增加另外一條內(nèi)存通道,運行時將DFA圖數(shù)據(jù)存放在該內(nèi)存區(qū)域中,供DFA協(xié)處理單元進行讀取,避免在高速DFA運算時出現(xiàn)內(nèi)存帶寬耗盡的瓶頸;②為DFA運算配置單獨的內(nèi)存總線后,隨機數(shù)據(jù)存取的延時大大減少,且與程序、數(shù)據(jù)的讀寫互不影響,實時DFA運算的速率可以輕易地突破1000Mbps,該硬件架構(gòu)適用于各種需要用到DFA運算的高端UTM設(shè)備或其它高速網(wǎng)絡(luò)安全設(shè)備。下面結(jié)合附圖對本發(fā)明技術(shù)方案作進一步說明圖h本發(fā)明的架構(gòu)示意圖;圖2:本發(fā)明的工作數(shù)據(jù)流示意圖。圖中各附圖標記的含義見下表<table>tableseeoriginaldocumentpage5</column></row><table>為解決現(xiàn)有微處理器架構(gòu)中存在的IO瓶頸,在CPU內(nèi)部增加一個內(nèi)存控制器,這個內(nèi)存控制器考慮到DFA運算的高度隨機性,不配Cache,內(nèi)存帶寬的瓶頸就可消失。假設(shè)輸入數(shù)據(jù)流量需要達到400Mbps,需要的內(nèi)存帶寬是400/8Xl=50MB/s,遠遠小于現(xiàn)有內(nèi)存技術(shù)的物理帶寬,即使業(yè)務(wù)流量達到1000Mbps,DFA內(nèi)存總線上的數(shù)據(jù)流量也僅是125MB/s,只要CPU足夠快,比如采用多核設(shè)計,就可以構(gòu)成1000M以上的UTM;該架構(gòu)用在高性能的UTM設(shè)備中,性能可以突破1000M以上的實時匹配處理。如圖1、圖2所示,用于lOOOMbps以上DFA運算的CPU硬件架構(gòu),由系統(tǒng)內(nèi)存4通過系統(tǒng)內(nèi)存總線3接入中央處理器(CPU)1,形成系統(tǒng)內(nèi)存通道,另外,還在中央處理器1上設(shè)置DFA用內(nèi)存通道,DFA用內(nèi)存通道獨立于系統(tǒng)內(nèi)存通道,DFA用內(nèi)存通道包括DFA用低延遲內(nèi)存6和DFA用內(nèi)存總線5,DFA用低延遲內(nèi)存6通過DFA用內(nèi)存總線5接入中央處理器l,DFA用低延遲內(nèi)存6可以采用普通的廉價的DDR內(nèi)存,也可以根據(jù)需要采用高速但比較昂貴的RDLRAM內(nèi)存。系統(tǒng)內(nèi)存通道用于普通程序運行和數(shù)據(jù)存取,DFA用內(nèi)存通道用于DFA査找運算。為DFA運算增加專用內(nèi)存控制通道,即CPU上增加了獨立于系統(tǒng)內(nèi)存的DFA用內(nèi)存通道,DFA用內(nèi)存通道獨立于系統(tǒng)內(nèi)存控制總線,使得普通數(shù)據(jù)和DFA運算數(shù)據(jù)分開存取。不同于傳統(tǒng)的系統(tǒng)內(nèi)存控制通道,DFA用內(nèi)存通道上不采用Cache機制,只是按需要進行存取,雖然順序存取的速率相對傳統(tǒng)的設(shè)計來說要慢得多,但對于DFA這種基本上都是隨機存取的應(yīng)用來說卻非常適合;DFA專用存儲通道上不采用Cache機制,以適應(yīng)DFA運算需要大量隨機存取的特性,避免幾十乃至上百倍的多余的內(nèi)存訪問。在本發(fā)明硬件架構(gòu)下,如圖2所示,當網(wǎng)絡(luò)流量8通過網(wǎng)絡(luò)接口7到達CPU1時,攜帶有可疑特征,此時CPU1將可疑特征字加入DFA運算,在DFA用低延遲內(nèi)存6中查找其是否是已知特征碼,此過程形成了DFA用內(nèi)存總線5上的流量,這部分流量和進來的網(wǎng)絡(luò)流量基本是1:1,不會受到任何物理限制。當DFA運算匹配到疑似病毒或攻擊的特征碼時,CPU1對該數(shù)據(jù)包進行丟棄或過濾,最后再將沒有安全威脅的網(wǎng)絡(luò)數(shù)據(jù)9發(fā)送到局域網(wǎng)。對用于高速數(shù)據(jù)匹配的DFA算法來講,為達到減小數(shù)據(jù)吞吐量,實現(xiàn)高速隨機存取的目的,在DFA內(nèi)存通道上不能使用Cache模塊;但是對于程序運行來說,為了盡量多的重復(fù)利用程序代碼和己經(jīng)加載的數(shù)據(jù),在系統(tǒng)內(nèi)存通道上需要保留傳統(tǒng)的高速緩沖存儲器(Cache)2,以減少不必要的總線操作;為保留各自的優(yōu)點,避免其缺點,只能將用于査找的DFA內(nèi)存單獨獨立出來,這樣就形成兩套內(nèi)存總線,一套用于普通程序運行和數(shù)據(jù)存取,另外一套專用于DFA查找運算。綜上所述,本發(fā)明對傳統(tǒng)的CPU的內(nèi)存控制器進行重新設(shè)計,通過在CPU中增加另外一條內(nèi)存通道,運行時將DFA圖數(shù)據(jù)存放在該內(nèi)存區(qū)域中,供DFA協(xié)處理單元進行讀?。煌ㄟ^改進CPU在不同運算時(如普通運算和DFA運算)所用到的內(nèi)存通道來優(yōu)化內(nèi)存訪問,突破了傳統(tǒng)CPU架構(gòu)在進行DFA運算時產(chǎn)生的內(nèi)存帶寬瓶頸。為DFA運算配置單獨的內(nèi)存總線后,隨機數(shù)據(jù)存取的延時大大減少,且和程序、數(shù)據(jù)的讀寫互不影響,實時DFA運算的速率可以輕易地突破1000Mbps;該硬件架構(gòu)適用于1000Mbps以上的UTM設(shè)備硬件架構(gòu)。需要理解到的是上述說明并非是對本發(fā)明的限制,在本發(fā)明構(gòu)思范圍內(nèi),所進行的添加、變換、替換等,也應(yīng)屬于本發(fā)明的保護范圍。權(quán)利要求1.用于1000Mbps以上DFA運算的CPU硬件架構(gòu),由系統(tǒng)內(nèi)存通過系統(tǒng)內(nèi)存總線接入中央處理器,形成系統(tǒng)內(nèi)存通道,其特征在于還在中央處理器上設(shè)置DFA用內(nèi)存通道,DFA用內(nèi)存通道獨立于系統(tǒng)內(nèi)存通道,DFA用內(nèi)存通道包括DFA用低延遲內(nèi)存和DFA用內(nèi)存總線,DFA用低延遲內(nèi)存通過DFA用內(nèi)存總線接入中央處理器,所述系統(tǒng)內(nèi)存通道進行普通程序運行和數(shù)據(jù)存取,所述DFA用內(nèi)存通道進行DFA查找運算。2.根據(jù)權(quán)利要求1所述的用于1000Mbps以上DFA運算的CPU硬件架構(gòu),其特征在于所述DFA用低延遲內(nèi)存為DDR內(nèi)存或RDLRAM內(nèi)存。全文摘要本發(fā)明提供一種用于1000Mbps以上DFA運算的CPU硬件架構(gòu),由系統(tǒng)內(nèi)存通過系統(tǒng)內(nèi)存總線接入中央處理器,形成系統(tǒng)內(nèi)存通道,另外,還在中央處理器上設(shè)置DFA用內(nèi)存通道,DFA用內(nèi)存通道獨立于系統(tǒng)內(nèi)存通道,DFA用內(nèi)存通道包括DFA用低延遲內(nèi)存和DFA用內(nèi)存總線,DFA用低延遲內(nèi)存通過DFA用內(nèi)存總線接入中央處理器,系統(tǒng)內(nèi)存通道進行普通程序運行和數(shù)據(jù)存取,DFA用內(nèi)存通道進行DFA查找運算。本發(fā)明通過在CPU中增加另外一條內(nèi)存通道,運行時將DFA圖數(shù)據(jù)存放在該內(nèi)存區(qū)域中,供DFA協(xié)處理單元進行讀取,突破了傳統(tǒng)CPU架構(gòu)在進行DFA運算時產(chǎn)生的內(nèi)存帶寬瓶頸,適用于1000Mbps以上的UTM設(shè)備硬件架構(gòu)。文檔編號G06F15/78GK101604305SQ20091003151公開日2009年12月16日申請日期2009年4月22日優(yōu)先權(quán)日2009年4月22日發(fā)明者劉繼明,杰程申請人:網(wǎng)經(jīng)科技(蘇州)有限公司