專利名稱:基于硬件的分組過(guò)濾加速器的制作方法
此申請(qǐng)涉及與其同時(shí)提交的題為“EMBEDDED DATA SETPROCESSING”、美國(guó)專利申請(qǐng)序號(hào)為10/227,368(代理人案號(hào)為703128)的共同待決的專利申請(qǐng),在此將其全部?jī)?nèi)容引入,以供參考。
本發(fā)明總體上涉及數(shù)據(jù)處理,更具體來(lái)講,涉及用于過(guò)濾數(shù)據(jù)分組的硬件加速器。
因特網(wǎng)提供了對(duì)各種基于因特網(wǎng)的服務(wù)和信息源的訪問(wèn)。對(duì)于許多用戶來(lái)說(shuō),在工作時(shí)以及在家對(duì)因特網(wǎng)進(jìn)行訪問(wèn)是一種重要的工具。然而,將專有網(wǎng)絡(luò)或者工作站連接到因特網(wǎng)出現(xiàn)了若干障礙。例如,如果不充分地保護(hù),與因特網(wǎng)的連接可能將用戶的機(jī)密信息暴露給位于全世界的肆無(wú)忌憚的入侵者。因特網(wǎng)安全已經(jīng)通過(guò)使用防火墻使個(gè)體計(jì)算機(jī)和公司網(wǎng)絡(luò)避免通過(guò)因特網(wǎng)連接受到惡意攻擊而實(shí)現(xiàn)。具有代表性的防火墻通過(guò)在專有網(wǎng)絡(luò)接口處過(guò)濾輸入和輸出的數(shù)據(jù)分組以便拒絕可能有害的通信來(lái)操作。
通常在依照數(shù)據(jù)通信協(xié)議定義的一個(gè)或多個(gè)數(shù)據(jù)集或者數(shù)據(jù)分組中經(jīng)由因特網(wǎng)發(fā)選信息。傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)是用于互聯(lián)網(wǎng)應(yīng)用的一套通信協(xié)議的例子。TCP是用于在兩個(gè)聯(lián)網(wǎng)計(jì)算機(jī)之間建立連接以便可以交換數(shù)據(jù)流的協(xié)議。TCP還建立用于確保數(shù)據(jù)的遞送并且確保以正確順序遞送信息分組的方法。網(wǎng)際協(xié)議(IP)規(guī)定了在互聯(lián)網(wǎng)連接的計(jì)算機(jī)之間傳送的數(shù)據(jù)分組(也稱為數(shù)據(jù)報(bào))的格式。IP還規(guī)定了用于將數(shù)據(jù)分組從一個(gè)計(jì)算機(jī)傳送到另一個(gè)計(jì)算機(jī)的尋址方案。
一類有效的防火墻使用分組過(guò)濾來(lái)使專有網(wǎng)絡(luò)或者計(jì)算機(jī)安全。防火墻可以作為硬件設(shè)備來(lái)實(shí)現(xiàn),或者可以作為軟件應(yīng)用來(lái)實(shí)現(xiàn)。但不論是哪種情況,所述防火墻都位于連接的網(wǎng)絡(luò)之間。例如,所述防火墻可以在位于專有網(wǎng)絡(luò)和因特網(wǎng)之間的接口設(shè)備中實(shí)現(xiàn),以便使專有網(wǎng)絡(luò)避免通過(guò)因特網(wǎng)連接而受到入侵。
分組過(guò)濾防火墻使用分組過(guò)濾器來(lái)檢查進(jìn)入或者離開網(wǎng)絡(luò)的每一IP分組或者數(shù)據(jù)報(bào)。根據(jù)一個(gè)用戶定義的規(guī)則集來(lái)接收或拒絕分組。分組過(guò)濾器截取每一數(shù)據(jù)分組,并且在將分組轉(zhuǎn)發(fā)到其目的地之前、將每一分組與該規(guī)則集進(jìn)行比較。所述比較可以作為表格查找應(yīng)用來(lái)實(shí)現(xiàn),所述表格查找應(yīng)用將各種IP分組首部字段與查找表中的值進(jìn)行比較。將分組首部字段與查找表中的值相比較,直到在所述表中找到匹配條目、或者直到?jīng)]有找到匹配條目并且選擇缺省規(guī)則為止。通常,由分組過(guò)濾器執(zhí)行的比較包含源地址、源端口、目的地地址以及目的地端口還有傳輸協(xié)議。
對(duì)源和目的地地址的過(guò)濾準(zhǔn)許控制誰(shuí)可以與內(nèi)部網(wǎng)絡(luò)通信。來(lái)自于不希望的網(wǎng)絡(luò)的所有通信量可以通過(guò)所述分組過(guò)濾器篩選掉。另一方面,源和目的地端口用來(lái)區(qū)別網(wǎng)絡(luò)服務(wù)。通過(guò)濾除端口,能夠拒絕外部世界對(duì)專有網(wǎng)絡(luò)上提供的服務(wù)的訪問(wèn)。根據(jù)所述分組與標(biāo)準(zhǔn)的比較,可以將分組丟棄、轉(zhuǎn)發(fā)到目的地、或者在丟棄的同時(shí)給分組源發(fā)送一條消息。
雖然使用分組過(guò)濾技術(shù)的防火墻對(duì)專有的計(jì)算機(jī)網(wǎng)絡(luò)提供了一定級(jí)別的安全性,但是由于它們強(qiáng)迫所有數(shù)據(jù)通信量通過(guò)所述防火墻進(jìn)入或離開專有網(wǎng)絡(luò),故而還產(chǎn)生了通信量瓶頸。在該行業(yè)中需要更加快速并且更加有效的方法來(lái)實(shí)現(xiàn)分組過(guò)濾。
本發(fā)明致力于一種用于為聯(lián)網(wǎng)系統(tǒng)提供加速的數(shù)據(jù)通信的方法和系統(tǒng),并且已經(jīng)發(fā)現(xiàn)本發(fā)明尤其適用于提供高速數(shù)據(jù)分組過(guò)濾。
依照本發(fā)明的一個(gè)實(shí)施例,加速器處理器依照規(guī)則集將數(shù)據(jù)分組歸類,并且將歸類結(jié)果返回到主處理器。所述加速器處理器與主處理器并行操作,并且經(jīng)由并行總線與主處理器通信。所述主處理器和加速器處理器被安排成集成電路。所述加速器處理器包括總線接口,所述總線接口與所述并行總線耦合并且適用于傳送來(lái)自所述主處理器的數(shù)據(jù)分組部分,并且將數(shù)據(jù)分組的歸類結(jié)果返回到主處理器。所述加速器處理器還包括與所述總線接口耦合并且可以由所述主處理器訪問(wèn)的存儲(chǔ)器。所述存儲(chǔ)器適于存儲(chǔ)機(jī)器代碼指令的程序,其中所述機(jī)器代碼指令是從將被應(yīng)用于數(shù)據(jù)分組的規(guī)則集轉(zhuǎn)換的。所述存儲(chǔ)器還存儲(chǔ)由加速器處理器確定的歸類結(jié)果。所述加速器處理器還包括分組解析程序電路,所述分組解析程序電路與總線接口耦合并且適用于將從主處理器傳送的數(shù)據(jù)分組部分解析為相關(guān)數(shù)據(jù)單元,并且適用于在加速器處理器的存儲(chǔ)器中存儲(chǔ)相關(guān)數(shù)據(jù)單元。所述加速器處理器的分組分析電路與存儲(chǔ)器單元耦合,并且被安排為執(zhí)行表示將被應(yīng)用于所述數(shù)據(jù)分組的規(guī)則集的機(jī)器代碼指令的程序。所述機(jī)器代碼指令對(duì)從所述數(shù)據(jù)分組部分解析的相關(guān)數(shù)據(jù)單元進(jìn)行操作,以便歸類所述分組。
在本發(fā)明的另一個(gè)實(shí)施例中,依照規(guī)則集歸類數(shù)據(jù)分組的方法包括在加速器處理器的存儲(chǔ)器中存儲(chǔ)直接從所述規(guī)則集轉(zhuǎn)換的機(jī)器指令的程序。將數(shù)據(jù)分組的各部分從主處理器傳送到加速器處理器。將所述數(shù)據(jù)分組部分解析為相關(guān)數(shù)據(jù)單元,并且將相關(guān)數(shù)據(jù)單元存儲(chǔ)在加速器處理器的存儲(chǔ)器中。通過(guò)在加速器處理器中執(zhí)行機(jī)器代碼指令來(lái)歸類數(shù)據(jù)分組;所述機(jī)器代碼指令對(duì)相關(guān)數(shù)據(jù)單元進(jìn)行操作。將歸類的結(jié)果從加速器處理器返回到主處理器。
本發(fā)明的再一個(gè)的實(shí)施例包含這樣的系統(tǒng),所述系統(tǒng)包括用于在加速器處理器的存儲(chǔ)器單元中存儲(chǔ)機(jī)器代碼指令的程序的裝置,所述機(jī)器代碼指令是直接從規(guī)則集轉(zhuǎn)換而來(lái)的;用于將數(shù)據(jù)分組的一個(gè)或多個(gè)部分從主處理器傳送到加速器處理器的裝置;用于將數(shù)據(jù)分組部分解析為相關(guān)數(shù)據(jù)單元并且在加速器處理器的存儲(chǔ)器單元中存儲(chǔ)相關(guān)數(shù)據(jù)單元的裝置;用于在加速器處理器中使用相關(guān)數(shù)據(jù)單元通過(guò)執(zhí)行機(jī)器代碼指令的程序來(lái)歸類每一數(shù)據(jù)分組的裝置;以及將歸類結(jié)果從加速器處理器返回到主處理器的裝置。
本發(fā)明的上述概要不是意欲描述本發(fā)明的每一實(shí)施例或者每個(gè)實(shí)現(xiàn)方式。通過(guò)結(jié)合附圖參照以下詳細(xì)說(shuō)明以及權(quán)利要求書,將使本發(fā)明的優(yōu)勢(shì)以及成就變得明顯,并且可以更加徹底的理解本發(fā)明。
圖1是依照本發(fā)明一個(gè)實(shí)施例的具有實(shí)現(xiàn)加速器處理器的接口電路的網(wǎng)絡(luò)的示圖,所述加速器處理器用于過(guò)濾數(shù)據(jù)分組;圖2是依照本發(fā)明一個(gè)實(shí)施例的具有主處理器以及加速器處理器的接口電路的框圖;圖3是依照本發(fā)明一個(gè)實(shí)施例的鏈?zhǔn)骄€性規(guī)則集以及樹規(guī)則集的插圖;圖4是舉例說(shuō)明了依照本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)分組過(guò)濾的流程圖;圖5是依照本發(fā)明一個(gè)實(shí)施例的用于歸類數(shù)據(jù)集的加速器處理器的框圖;圖6是舉例說(shuō)明數(shù)據(jù)集結(jié)構(gòu)的例子;
圖7是依照本發(fā)明一個(gè)實(shí)施例的用于歸類數(shù)據(jù)集的嵌入式處理器的存儲(chǔ)器圖;圖8是依照本發(fā)明一個(gè)實(shí)施例的命令字結(jié)構(gòu)的圖示;圖9是依照本發(fā)明一個(gè)實(shí)施例的狀態(tài)字結(jié)構(gòu)的圖示;圖10是依照本發(fā)明一個(gè)實(shí)施例舉例說(shuō)明了加速器處理器代碼的具體例子的流程圖,所述加速器處理器代碼實(shí)現(xiàn)用于傳遞具有特定的目的地端口的UDP分組的規(guī)則。
雖然本發(fā)明可以具有各種修改以及代替形式,但是在所述附圖中已經(jīng)以舉例的方式示出了其特定細(xì)節(jié),并且將在下文詳細(xì)說(shuō)明。然而,應(yīng)該理解的是,其意圖不在于將本發(fā)明限制為所描述的特定實(shí)施例。相反地,本發(fā)明意在涵概所有落入本發(fā)明范圍的修改、等效方案以及替代方案,本發(fā)明的范圍如所附權(quán)利要求書限定。
在舉例說(shuō)明的實(shí)施例的隨后描述中,對(duì)形成本發(fā)明的一部分的附圖作出參考,并且其中通過(guò)圖示示出了可以實(shí)施本發(fā)明的各種實(shí)施例。應(yīng)該理解的是,還可以利用其他實(shí)施例,并且在不脫離本發(fā)明范圍的情況下可以作出結(jié)構(gòu)上和功能上的改變。
在一個(gè)實(shí)施例中,與主接口處理器并行操作的基于硬件的加速器適于依照一個(gè)規(guī)則集解析、檢查并且歸類數(shù)據(jù)分組。將所述歸類結(jié)果傳遞到主處理器,以供進(jìn)一步處理所述數(shù)據(jù)分組之用。例如,已經(jīng)發(fā)現(xiàn)并行連接的加速器對(duì)過(guò)濾IP分組數(shù)據(jù)報(bào)尤其有用。此處所述的分組過(guò)濾加速器可以有益地用于從主接口處理器卸載分組過(guò)濾功能。本發(fā)明在分組過(guò)濾應(yīng)用中為數(shù)據(jù)集歸類提供了靈活的硬件加速器,由此增強(qiáng)了網(wǎng)絡(luò)接口的高速數(shù)據(jù)處理操作。
本發(fā)明的一個(gè)方面包括數(shù)據(jù)分組解析電路,用于將由主處理器傳遞到加速器處理器的數(shù)據(jù)分組解析為組成單元。諸如IP數(shù)據(jù)報(bào)之類的數(shù)據(jù)分組的關(guān)鍵字段可以被解析為相關(guān)數(shù)據(jù)單元并且為進(jìn)一步的動(dòng)作而存儲(chǔ)在存儲(chǔ)器中。
本發(fā)明的另一方面包括規(guī)則引擎邏輯,用于執(zhí)行直接從規(guī)則集轉(zhuǎn)換的機(jī)器代碼指令序列以便歸類所述數(shù)據(jù)分組。所述規(guī)則引擎邏輯通過(guò)寄存器向主處理器提供歸類結(jié)果,其中所述寄存器可由所述主處理器訪問(wèn)。由此,本發(fā)明提供了增強(qiáng)高速數(shù)據(jù)分組過(guò)濾操作的靈活的硬件輔助。
圖1提供了依照本發(fā)明一個(gè)實(shí)施例的通用網(wǎng)絡(luò)體系結(jié)構(gòu)的例子,所述通用網(wǎng)絡(luò)體系結(jié)構(gòu)可用于容納一個(gè)或多個(gè)數(shù)據(jù)處理終端之間的數(shù)據(jù)傳送。源終端120可以經(jīng)由因特網(wǎng)140將例如IP分組的數(shù)據(jù)分組傳送到一個(gè)或多個(gè)目的地終端170、180、190。終端可以是膝上型終端122、臺(tái)式終端、無(wú)線設(shè)備126(諸如個(gè)人數(shù)字助理(PDA))或者任何其他類型的數(shù)據(jù)處理終端128。目的地終端170、180、190可以被安排在專有網(wǎng)絡(luò)150中,所述專有網(wǎng)絡(luò)150可以通過(guò)接口設(shè)備160來(lái)訪問(wèn)。所述接口設(shè)備160可以是用于實(shí)現(xiàn)IP分組過(guò)濾任務(wù)(例如阻斷不希望的或者可能不安全的數(shù)據(jù)分組)的防火墻。
在圖2中更詳細(xì)地舉例說(shuō)明了依照本發(fā)明一個(gè)示例性實(shí)施例的網(wǎng)絡(luò)接口200的框圖。所述接口200可用來(lái)將專有終端或者網(wǎng)絡(luò)通過(guò)適當(dāng)?shù)妮斎?輸出連接210、220與因特網(wǎng)連接。大部分接口電路230可以被并入一個(gè)或多個(gè)集成電路,所述集成電路被耦合在I/O連接210、220之間。依照本發(fā)明的一個(gè)實(shí)施例,所述接口電路230包括通過(guò)系統(tǒng)總線260耦合的主處理器240和加速器處理器250。例如,可以將所述主處理器240和嵌入式處理器安排在具有所述主處理器240的集成電路上,其中所述主處理器240使用諸如ARM或者M(jìn)IPS處理器核心的處理器核心來(lái)實(shí)現(xiàn),并且通過(guò)高速并行總線結(jié)構(gòu)與加速器處理器250耦合。
將所述主處理器240和加速器處理器250安排為并行操作。依照此配置,所述主處理器240執(zhí)行大部分?jǐn)?shù)據(jù)處理任務(wù)。所述加速器250從主處理器240中卸載IP分組解析和歸類的任務(wù),由此使主處理器240擺脫與分組過(guò)濾操作相關(guān)聯(lián)的一部分耗時(shí)的處理開銷。
所述主處理器240控制加速器處理器250的操作,并且管理加速器處理器250為分組過(guò)濾所應(yīng)用的規(guī)則集。例如,所述主處理器240可以啟動(dòng)并且終止使用加速器處理器250,將加速器處理器寄存器復(fù)制到主處理器240,或者利用替代的值改寫加速器處理器寄存器。
在此處討論的示例性配置中,所述主處理器240將要被應(yīng)用于數(shù)據(jù)分組的規(guī)則集轉(zhuǎn)換為可由加速器處理器250執(zhí)行的機(jī)器代碼。所述主處理器240將規(guī)則機(jī)器代碼下載到位于加速器處理器250中的指令高速緩沖存儲(chǔ)器中。所述規(guī)則可以根據(jù)需要來(lái)修改或者更新。所述規(guī)則機(jī)器代碼例如可以基于當(dāng)前數(shù)據(jù)集,或者基于對(duì)當(dāng)前數(shù)據(jù)集的所期望的回答,以便打開防火墻中的返回洞(return hole)。
線性規(guī)則集與樹規(guī)則集可以被轉(zhuǎn)換為機(jī)器代碼并且由所述加速器處理器250應(yīng)用。其他規(guī)則集類型也可以被應(yīng)用。規(guī)則集可以具有從0到很多規(guī)則的范圍。通常例如在大約5-10個(gè)機(jī)器代碼指令中實(shí)現(xiàn)一個(gè)規(guī)則。線性規(guī)則集適用于對(duì)照規(guī)則順序至關(guān)重要的所定義的規(guī)則集來(lái)分析數(shù)據(jù)集。當(dāng)所述加速器處理器250對(duì)照線性規(guī)則集分析數(shù)據(jù)分組時(shí),將所述數(shù)據(jù)分組通過(guò)規(guī)則列表與所述規(guī)則線性地相比較,從第一個(gè)規(guī)則開始并且貫穿各個(gè)規(guī)則繼續(xù),直到一個(gè)規(guī)則與數(shù)據(jù)集匹配或者完成數(shù)據(jù)集與規(guī)則集的比較。線性規(guī)則集的一個(gè)例子是對(duì)照靜態(tài)定義的分組過(guò)濾器規(guī)則集來(lái)測(cè)試IP數(shù)據(jù)報(bào)。
樹規(guī)則集不具有預(yù)定的順序流,但是例如根據(jù)先前操作結(jié)果提供多個(gè)分支選項(xiàng)。樹規(guī)則集適用于對(duì)照較大的規(guī)則表分析數(shù)據(jù)集,在所述規(guī)則表中規(guī)則檢查順序不重要。樹規(guī)則集的例子是網(wǎng)絡(luò)地址翻譯表,其中通過(guò)使用作為關(guān)鍵值的IP地址、IP端口以及協(xié)議搜索該樹來(lái)確定可應(yīng)用的規(guī)則。
規(guī)則集可以具有從特定的規(guī)則集鏈接的附加規(guī)則集。鏈接的規(guī)則集可以是線性規(guī)則集或者樹規(guī)則集。在一些應(yīng)用中,規(guī)則集可以包括若干線性規(guī)則的前文(preamble)、繼之以較大樹規(guī)則集。
圖3是舉例說(shuō)明了使用線性與樹規(guī)則集分析數(shù)據(jù)分組的例子。將數(shù)據(jù)分組最初相對(duì)于規(guī)則集A分析。如果將所述數(shù)據(jù)分組對(duì)照規(guī)則集A分析,并且在規(guī)則集A中沒(méi)有匹配任何規(guī)則,那么將數(shù)據(jù)分組對(duì)照規(guī)則集B分析。如果在規(guī)則集B中沒(méi)有找到匹配的規(guī)則,那么將數(shù)據(jù)分組相對(duì)于規(guī)則集C來(lái)分析。規(guī)則集C以匹配所有數(shù)據(jù)分組的一個(gè)絕對(duì)規(guī)則結(jié)束。所述加速器處理器將歸類的結(jié)果返回到主處理器。
圖4的流程圖舉例說(shuō)明了依照本發(fā)明一個(gè)實(shí)施例的IP分組過(guò)濾過(guò)程。將應(yīng)用于所述數(shù)據(jù)分組的規(guī)則集被轉(zhuǎn)換為可由加速器處理器執(zhí)行的機(jī)器代碼指令序列。將所述機(jī)器代碼指令序列下載到加速器處理器,并且存儲(chǔ)在加速器處理器的指令高速緩沖存儲(chǔ)器中。當(dāng)IP分組達(dá)到主處理器時(shí),主處理器將IP分組的首部傳遞到加速器設(shè)備,以供歸類所述IP分組之用。加速器處理器的解析電路將分組首部解析(430)為相關(guān)數(shù)據(jù)單元。將從分組首部解析的相關(guān)數(shù)據(jù)單元存儲(chǔ)(440)在加速器處理器的存儲(chǔ)器中。所述加速器處理器執(zhí)行對(duì)相關(guān)數(shù)據(jù)單元進(jìn)行<p>在4.2V的充電電壓、2.7V的放電電壓下,和在0.076mA/cm2的電流密度(相當(dāng)于0.1C)下,對(duì)以上所述生產(chǎn)的二次電池進(jìn)行充電/放電試驗(yàn)。放電電容為11.2mAh(基于LiCoO2的電容為132.6mAh/g),并證實(shí)作為鋰離子電池的良好操作。圖4示出了所得充電和放電曲線。
負(fù)載特征試驗(yàn)在下述條件下對(duì)以上所述獲得的二次電池進(jìn)行充電-放電試驗(yàn)充電電壓,4.2V;放電電壓,2.7V;在充電的同時(shí)0.076mA/cm2(相當(dāng)于0.1C)的電流密度;在放電的同時(shí)0.152mA/em2(0.2C)、0.228mA/cm2(0.3C)、0.380mA/cm2(0.5C)和0.760mA/cm2(1.0C)的電流密度。在0.1C放電過(guò)程中放電電容和體積之比((在特定的放電速度下的電容)/(在0.1C放電過(guò)程中的電容)×100)分別為11.1mAh和99.3%、11.1mAh和99.1%、10.8mAh和96.3%,和6.3mAh和56.4%。下表3示出了在各種電流密度下在放電過(guò)程中的電容,和相對(duì)于0.1C放電的電容比。圖5示出了所得放電曲線。
表3
循環(huán)試驗(yàn)在4.2V的充電電壓、2.7V的放電電壓和0.076mA/cm2(相當(dāng)于0.1C)的電流密度下對(duì)以上所述生產(chǎn)的二次電池進(jìn)行恒電流循環(huán)試驗(yàn)。在第100次循環(huán)中的放電電容的保留百分?jǐn)?shù)(定義為在第100次循環(huán)中的放電電容與第一次循環(huán)中的放電電容之比)為96.9%。當(dāng)對(duì)以相同的方式生產(chǎn)的二次電池進(jìn)行循環(huán)試驗(yàn),其中僅僅放電過(guò)程中的電流密度變?yōu)?.380mA/cm2(相當(dāng)于0.5C)的恒電流時(shí),在第100次循環(huán)中的放電電容<p>諸如TCP以及UDP的各種傳輸協(xié)議可以結(jié)合IP分組使用以便在兩個(gè)聯(lián)網(wǎng)計(jì)算機(jī)之間建立連接,從而可以交換數(shù)據(jù)流。TCP或者UDP首部通常在IP首部之后,用于分別提供專用于TCP或者UDP協(xié)議的信息。例如TCP以及UDP首部的傳輸協(xié)議首部包括附加信息,所述附加信息也可以由加速器處理器使用來(lái)歸類所述數(shù)據(jù)分組。
在圖6的框圖中舉例說(shuō)明了加速器處理器的結(jié)構(gòu)。所述加速器處理器600提供了分組分析規(guī)則引擎邏輯610,其作為超精簡(jiǎn)指令集計(jì)算機(jī)(vRISC)實(shí)現(xiàn),與基于硬件的數(shù)據(jù)集解析器邏輯620鏈接。將表示用于歸類數(shù)據(jù)集的規(guī)則集的機(jī)器代碼指令程序存儲(chǔ)在位于嵌入式處理器存儲(chǔ)器中的指令高速緩沖存儲(chǔ)器630中。數(shù)據(jù)集解析器邏輯620解析分組首部并且將分組首部的相關(guān)數(shù)據(jù)單元置于一個(gè)或多個(gè)寄存器640中。例如,存儲(chǔ)在寄存器中的相關(guān)數(shù)據(jù)單元可以是來(lái)自于數(shù)據(jù)報(bào)首部的源和目的地地址,以及來(lái)自于TCP首部的目的地端口和源端口值。所述vRISC規(guī)則引擎邏輯610執(zhí)行機(jī)器代碼指令程序,以便根據(jù)所解析的相關(guān)數(shù)據(jù)單元來(lái)歸類所述數(shù)據(jù)分組,其中所述相關(guān)數(shù)據(jù)單元從分組首部解析并且存儲(chǔ)在寄存器640中。
所述主處理器能通過(guò)總線接口650訪問(wèn)數(shù)據(jù)集解析器邏輯620、寄存器640、以及指令高速緩沖存儲(chǔ)器630。所述總線接口可以通過(guò)諸如分散/集中DMA之類的直接存儲(chǔ)器存取(DMA)660耦合,以便將數(shù)據(jù)集信息從主處理器(未示出)饋送到數(shù)據(jù)集解析器邏輯620。
在圖7中提供了加速器處理器存儲(chǔ)器的存儲(chǔ)器圖的圖示??梢詫⑶度胧教幚砥鞔鎯?chǔ)器寬泛地分為堆棧710、程序存儲(chǔ)器720、十六個(gè)程序寄存器730、兩個(gè)堆??刂萍拇嫫?50、四個(gè)程序控制寄存器760以及兩個(gè)存儲(chǔ)器控制寄存器770。
所述加速器處理器堆棧710可以作為位于存儲(chǔ)器頂端的下推堆棧來(lái)實(shí)現(xiàn)。堆棧控制是通過(guò)堆??刂萍拇嫫?50實(shí)現(xiàn)的。堆棧的大小由加速器處理器存儲(chǔ)器中的StackMax寄存器751確定。壓入堆棧的每一值被表示為32位無(wú)符號(hào)值。如果被壓棧的值是16位值,那么所壓棧的堆棧條目最重要的16位被表示為零。最初,堆棧指針寄存器752包含零值,并且當(dāng)將每個(gè)值壓入堆棧中時(shí),所述堆棧指針寄存器752遞增四個(gè)字節(jié)。如果所述堆棧指針寄存器752遞增到超過(guò)在StackMax寄存器751中的值,或者遞減到零以下,那么停止程序執(zhí)行,將錯(cuò)誤記錄在狀態(tài)寄存器756中,并且將中斷遞送到主接口處理器。
在位于加速器處理器存儲(chǔ)器的程序部分720的一個(gè)或多個(gè)指令序列721,722,723中,組織表示將由規(guī)則引擎vRISC應(yīng)用于數(shù)據(jù)分組的規(guī)則的機(jī)器代碼指令序列。規(guī)則可以包括一組比較操作以及使用相關(guān)數(shù)據(jù)單元執(zhí)行的其他相關(guān)操作,其中所述相關(guān)數(shù)據(jù)單元是從數(shù)據(jù)分組首部解析的并且存儲(chǔ)在加速器處理器的寄存器中。所述主處理器通過(guò)寫入指令寄存器767來(lái)向加速器處理器指示機(jī)器指令序列執(zhí)行應(yīng)該從哪兒開始。指令序列執(zhí)行的起點(diǎn)取決于被應(yīng)用于數(shù)據(jù)分組的特定規(guī)則集。例如,依照一個(gè)規(guī)則集來(lái)分析第一數(shù)據(jù)分組可能要求機(jī)器代碼指令序列的執(zhí)行從指令序列A 721的開始進(jìn)行。為了分析第二數(shù)據(jù)分組,或者為了進(jìn)一步分析第一數(shù)據(jù)分組,所述指令的執(zhí)行可以起始于存儲(chǔ)器中與指令序列B 722的開始相關(guān)聯(lián)的不同位置。
在一個(gè)示例性的實(shí)施例中,所述加速器處理器使用十六個(gè)32位寄存器730以用于與數(shù)據(jù)集分析有關(guān)的各種操作。七個(gè)寄存器是通用的,并且可以由加速器處理器或者主處理器訪問(wèn)。在表2中描述的九個(gè)專用寄存器由數(shù)據(jù)集解析邏輯使用以便存儲(chǔ)相關(guān)數(shù)據(jù)單元。
表2
存儲(chǔ)器控制寄存器770用來(lái)控制將諸如分組首部的數(shù)據(jù)分組部分傳送到加速器處理器存儲(chǔ)器。所述數(shù)據(jù)集長(zhǎng)度寄存器775規(guī)定將寫入加速器處理器存儲(chǔ)器的字節(jié)數(shù)目。所述分組存儲(chǔ)寄存器776提供主處理器或者DMA控制器可以寫入加速器處理器存儲(chǔ)器的位置。
程序控制寄存器760包括程序計(jì)數(shù)器763、比較寄存器764、退出寄存器765、狀態(tài)寄存器766以及命令寄存器767。所述程序計(jì)數(shù)器763用來(lái)控制指令執(zhí)行的序列。程序計(jì)數(shù)器中的值表示存儲(chǔ)器位置的地址,所述存儲(chǔ)器位置包含將由規(guī)則邏輯vRISC執(zhí)行的下一指令。
所述退出寄存器765以及比較寄存器764不可直接由加速器處理器程序訪問(wèn),但是可由主處理器訪問(wèn)。所述比較寄存器764包含由規(guī)則邏輯vRISC執(zhí)行的最后比較指令的結(jié)果并且在系統(tǒng)中是唯一有符號(hào)的寄存器。所述退出寄存器765由退出指令設(shè)置并且用于將返回值傳遞到主處理器,其中所述退出指令由規(guī)則邏輯vRISC執(zhí)行。
所述命令寄存器是可由主處理器寫入的32位寄存器,并且用于從主處理器導(dǎo)向加速器處理器的命令。所述狀態(tài)寄存器是32位寄存器,用于向主處理器表明在處理期間可能產(chǎn)生的各種錯(cuò)誤或者狀態(tài)條件。在圖8和9中分別示出了所述命令和狀態(tài)寄存器。
現(xiàn)在返回到圖8,當(dāng)主處理器寫命令寄存器時(shí),觸發(fā)規(guī)則邏輯vRISC執(zhí)行所述命令。保留命令寄存器的16-17位以及24-31位。18-23位是用于控制加速器處理器操作的命令位,如下文更加全面描述的那樣。
當(dāng)在所述指令寄存器中設(shè)置了單個(gè)位(Single bit)時(shí),所述加速器處理器以單步模式操作,以便調(diào)試嵌入式處理器程序。當(dāng)在所述命令寄存器中設(shè)置了單個(gè)位時(shí),所述加速器處理器將執(zhí)行單個(gè)指令并且停止。在該單個(gè)指令的執(zhí)行之后,所述加速器處理器在狀態(tài)寄存器中設(shè)置停止位,并且中斷用信號(hào)通知單步操作完成的主處理器。
命令寄存器中的解析位可以結(jié)合執(zhí)行位由主處理器使用。當(dāng)在所述命令寄存器中設(shè)置了解析位時(shí),停止加速器處理器的程序執(zhí)行,直到解析下一數(shù)據(jù)分組。除非設(shè)置執(zhí)行位,否則將忽略解析位。所述執(zhí)行位指示所述加速器處理器從StartPC位所指示的位置開始執(zhí)行程序。停止位命令加速器處理器停止執(zhí)行當(dāng)前執(zhí)行的程序。當(dāng)設(shè)置重置位時(shí),所述加速器處理器重置指令存儲(chǔ)器以及所有寄存器的內(nèi)容。設(shè)置IPonly位用于命令加速器處理器按照其不具有以太網(wǎng)首部來(lái)處理到達(dá)的分組。在此情況中,分組的第一個(gè)字節(jié)必須是IP首部的第一個(gè)字節(jié)。如果沒(méi)有設(shè)置所述IPonly位,那么所述解析邏輯預(yù)期數(shù)據(jù)集的最初14個(gè)字節(jié)為以太網(wǎng)首部。
如圖9中所示那樣,所述狀態(tài)寄存器可用來(lái)指示解析錯(cuò)誤已經(jīng)發(fā)生,指示程序計(jì)數(shù)器上溢或者下溢,指示嵌入式處理器遇到不良指令、堆棧上溢或者下溢、停止條件或者單步方式。如果將狀態(tài)位設(shè)置為1,那么用特定的狀態(tài)位編碼的錯(cuò)誤條件已經(jīng)發(fā)生。
如上所述的寄存器表示可以被實(shí)現(xiàn)以執(zhí)行依照本發(fā)明的數(shù)據(jù)分組過(guò)濾的示例性寄存器集合??梢允褂貌煌瑪?shù)目的寄存器或者不同的寄存器來(lái)完成數(shù)據(jù)分組過(guò)濾。此外,本發(fā)明不局限于此處所述的示例性命令集來(lái)執(zhí)行數(shù)據(jù)分組歸類。依照本發(fā)明的方法和系統(tǒng)可以實(shí)現(xiàn)不同的命令集來(lái)執(zhí)行與數(shù)據(jù)分組分析相關(guān)聯(lián)的各式各樣的任務(wù)。
在一個(gè)示例性的實(shí)施例中,所述規(guī)則引擎邏輯vRISC可以執(zhí)行一組九個(gè)操作來(lái)分析和歸類數(shù)據(jù)集。依照此例子,每一操作是由長(zhǎng)度為1字節(jié)的指令定義的。指令可以具有包括在所述指令之內(nèi)的操作數(shù)?;蛘撸鲋噶羁梢跃哂斜仨殢亩褩@龅牟僮鲾?shù),或者在程序存儲(chǔ)器中的指令之后的操作數(shù)。
表示將應(yīng)用于數(shù)據(jù)分組的規(guī)則集的指令序列駐留在加速器處理器存儲(chǔ)器中,所述加速器處理器存儲(chǔ)器可由主處理器自由地讀取和寫入。對(duì)于所處理的每個(gè)數(shù)據(jù)集,所述主處理器可以將新的程序?qū)懭氪鎯?chǔ)器。所述加速器處理器的存儲(chǔ)器可以包含用于分析不同類型的數(shù)據(jù)分組或者以不同的方法分析一個(gè)或多個(gè)數(shù)據(jù)分組的多個(gè)程序。
執(zhí)行一個(gè)指令序列,直到發(fā)生異?;蛘咧钡綀?zhí)行退出指令?;谥T如堆棧上溢、堆棧下溢或者無(wú)效指令之類的條件可以產(chǎn)生異常。當(dāng)退出或者異常發(fā)生時(shí),所述主處理器通過(guò)中斷被用信號(hào)通知完成了分組分析。然后所述主處理器可以詢問(wèn)退出寄存器以及加速器處理器存儲(chǔ)器中的其他寄存器,以便檢索分析結(jié)果。以下參照表3提供一個(gè)示例性規(guī)則邏輯vRISC指令集的描述。
表3
圖5表示根據(jù)本發(fā)明,重定向管理器如何處理OPC按數(shù)據(jù)變化請(qǐng)求。這種情況中涉及的組件為客戶機(jī)101、重定向組400(作為數(shù)據(jù)訪問(wèn)和預(yù)訂狀態(tài)數(shù)據(jù)114的一部分)、重定向管理器(RDM)主接收器502、重定向管理器(RDM)輔助接收器504、主組506(作為主OPC服務(wù)器118的一部分)以及輔助組508(作為輔助OPC服務(wù)器128的一部分)。這種情況描述重定向管理器102如何處理OPC按數(shù)據(jù)變化請(qǐng)求以及假定所有目標(biāo)OPC服務(wù)器是可用的。
圖5假定一些起始條件。OPC客戶機(jī)101已經(jīng)連接到重定向管理器,以及已經(jīng)添加組和項(xiàng)目。組和項(xiàng)目已經(jīng)被添加到所有目標(biāo)OPC服務(wù)器。
表3一般描述圖5所示的特定事件。表3中的各事件以圖5所示的實(shí)例方法來(lái)實(shí)現(xiàn)。
表3.OPC數(shù)據(jù)訪問(wèn)情況OnDataChange
<p>所述退出指令停止執(zhí)行程序并且用信號(hào)通知主接口處理器數(shù)據(jù)集分析已完成。由退出寄存器返回的值指向用于存儲(chǔ)數(shù)據(jù)集歸類結(jié)果的寄存器或者其他位置。例如,由所述退出命令返回的值可以是寄存器值、數(shù)據(jù)集中的值、或者棧頂上的值。
存儲(chǔ)指令使得所述程序在寄存器中存儲(chǔ)一個(gè)值。所述值可以是16位無(wú)符號(hào)值或者32位有符號(hào)值。但不論是哪種情況,寄存器的整個(gè)內(nèi)容都由所存儲(chǔ)的值重寫。如果存儲(chǔ)的是16位值,那么將寄存器的高階16位設(shè)置為零。例如,所存儲(chǔ)的值可以是堆棧的棧頂值,或者是指令存儲(chǔ)器中的下一值。
如果所述比較寄存器表明上次比較產(chǎn)生的值小于零,則所述分解指令使得程序計(jì)數(shù)器遞增由所述指令之后的第一個(gè)半字表示的量。如果所述比較寄存器表明上次比較產(chǎn)生的值大于零,則所述分解指令令程序計(jì)數(shù)器遞增由所述指令之后的第二個(gè)半字表示的量。如果上次比較產(chǎn)生的值等于零,則所述分解指令什么都不做。
上面的段落描述了可以用于分組分析的示例性指令集。在本發(fā)明的范圍內(nèi),根據(jù)需要或期望可以實(shí)現(xiàn)附加指令或者不同的指令來(lái)完成各式各樣的數(shù)據(jù)集分析任務(wù)。
以下提供了一個(gè)用于歸類數(shù)據(jù)分組的指令序列的具體例子。在此具體例子中,所應(yīng)用的規(guī)則是通過(guò)任何帶有目的地端口值53的UDP分組。以下匯編程序代碼提供了簡(jiǎn)短的程序序列,所述規(guī)則引擎邏輯可以使用所述程序序列來(lái)執(zhí)行所述規(guī)則push TCP.dstport ;把目的地端口壓棧compare 32 stack 0x35 ;與53比較jne next_jrule ;如果不相等,處理規(guī)則完成push IP.proto ;把協(xié)議寄存器壓棧compare 16 stack 0x8 ;與8比較,8表示UDP分組jne next-rule ;如果不相等,分組不是UDPexit 1 ;如果相等,那么利用退出寄存器值1退出圖10的流程圖進(jìn)一步舉例說(shuō)明了用于執(zhí)行示例性規(guī)則的機(jī)器代碼指令序列。在開始所述指令序列之前,由所述解析電路解析分組首部,并且將相關(guān)的值存儲(chǔ)在加速器處理器寄存器中。在此例子中,在加速器處理器目的地端口寄存器中存儲(chǔ)(1005)來(lái)自于傳輸?shù)?、例如TCP或者UDP首部的分組首部的目的地端口,這在匯編程序語(yǔ)言例子中以TCP.dstport表示。在加速器處理器的協(xié)議寄存器中存儲(chǔ)(1010)來(lái)自于IP分組首部的協(xié)議字節(jié)。在上面的匯編程序代碼中將協(xié)議寄存器表示為IP.proto。
由加速器處理器的規(guī)則邏輯引擎歸類數(shù)據(jù)分組是從塊1015開始的。將目的地端口寄存器中的值壓(1015)到處于棧頂?shù)乃膫€(gè)字節(jié)中。將處于棧頂?shù)乃膫€(gè)字節(jié)與值53(0x35十六進(jìn)制)比較(1020)。所述比較寄存器提供比較操作的結(jié)果。如果處于棧頂?shù)闹档扔?3,那么在比較操作之后,所述比較寄存器包含0。如果處于棧頂?shù)闹敌∮诨蛘叽笥?3,那么在比較操作之后,所述比較寄存器分別包含負(fù)值或者正值。如果所述比較寄存器不等于零(1025),那么目的地端口值不是53,并且不允許所述分組通過(guò)。完成(1030)規(guī)則的處理。如果所述比較寄存器等于零(1025),那么目的地端口值等于53,并且如果規(guī)則引擎邏輯的進(jìn)一步處理確定所述分組是UDP協(xié)議分組,那么將允許所述分組通過(guò)。
例如TCP、UDP等的分組協(xié)議在IP分組首部的字節(jié)9中表明(參見(jiàn)圖5)。IP分組首部的協(xié)議字節(jié)中的值8表明所述分組使用UDP協(xié)議。在塊1010,來(lái)自于所述IP分組首部的協(xié)議字節(jié)被存儲(chǔ)在協(xié)議寄存器中,并且由此可用于規(guī)則引擎邏輯處理。所述協(xié)議寄存器被壓(1035)到堆棧中。將堆棧值與值8比較(1040)。如先前所討論的那樣,所述比較寄存器提供比較操作的結(jié)果。如果處于棧頂?shù)闹档扔?,那么在所述比較操作之后,所述比較寄存器包含0。如果處于棧頂?shù)闹挡坏扔?,那么在所述比較操作之后,所述比較寄存器包含非零值。如果所述比較寄存器不等于零(1045),那么所述分組不是UDP分組,并且不允許所述分組通過(guò)。完成所述規(guī)則處理(1050)。如果所述比較寄存器包含零,那么所述分組滿足規(guī)則標(biāo)準(zhǔn)所述分組是帶有目的地端口53的UDP分組。將所述退出寄存器設(shè)置(1055)為1,由此表明將所述分組歸類為帶有目的地端口53的UDP分組。所述加速器處理器向主處理器發(fā)送中斷(1060),并且依照所述規(guī)則完成數(shù)據(jù)分組的歸類(1065)。
上述例子提供了可以使用本發(fā)明實(shí)現(xiàn)的、數(shù)據(jù)分組分析的具體應(yīng)用,以便依照單個(gè)規(guī)則歸類數(shù)據(jù)分組。本領(lǐng)域熟練技術(shù)人員將意識(shí)到的是,可以使用不同的指令組合來(lái)實(shí)現(xiàn)很多數(shù)據(jù)分組過(guò)濾應(yīng)用。對(duì)于更加特定的規(guī)范,可以參考與本發(fā)明同時(shí)提交的題為PAM SystemOverview、PAM Specification、PAM Microdriver Specification以及Source Code pam.c的附加文獻(xiàn),它們的全部?jī)?nèi)容被引用于此以供參考。
在不脫離本發(fā)明的范圍的情況下,可以對(duì)在上文討論的優(yōu)選實(shí)施例作出各種修改以及補(bǔ)充。因此,本發(fā)明的范圍不應(yīng)由如上所述的特定實(shí)施例來(lái)限制,而應(yīng)該僅僅由以下提出的權(quán)利要求書及其等效表述來(lái)規(guī)定。
權(quán)利要求
1.一種用于依照規(guī)則集歸類數(shù)據(jù)分組的加速器處理器(250),所述加速器處理器以及主處理器(240)被安排成集成電路,所述加速器處理器與主處理器并行操作并且通過(guò)并行總線(260)與所述主處理器通信,所述加速器處理器包括一個(gè)總線接口(650),它與所述并行總線耦合并且適用于傳送來(lái)自所述主處理器的數(shù)據(jù)分組的各部分、并且適用于將數(shù)據(jù)分組的歸類結(jié)果返回到主處理器;一個(gè)存儲(chǔ)器,它與所述總線接口耦合并且適用于存儲(chǔ)機(jī)器代碼指令程序并且適用于存儲(chǔ)所述數(shù)據(jù)分組的歸類結(jié)果,其中所述機(jī)器代碼指令是直接從將應(yīng)用于所述數(shù)據(jù)分組的規(guī)則集轉(zhuǎn)換而來(lái)的;一個(gè)分組解析器電路(620),它與所述總線接口耦合并且適用于將從主處理器傳送的每一數(shù)據(jù)分組部分解析為相關(guān)數(shù)據(jù)單元,并且適用于在存儲(chǔ)器中存儲(chǔ)所述相關(guān)數(shù)據(jù)單元;以及一個(gè)分組分析電路(610),它與所述存儲(chǔ)器耦合并且被安排為為通過(guò)使用存儲(chǔ)在所述存儲(chǔ)器中的相關(guān)數(shù)據(jù)單元執(zhí)行機(jī)器代碼指令程序來(lái)歸類每一數(shù)據(jù)分組。
2.如權(quán)利要求1所述的加速器處理器,其中所述主處理器是使用處理器核心來(lái)實(shí)現(xiàn)的。
3.如權(quán)利要求1所述的加速器處理器,其中所歸類的數(shù)據(jù)分組是IP數(shù)據(jù)報(bào)。
4.如權(quán)利要求1所述的加速器處理器,其中所述存儲(chǔ)器包括可由主處理器訪問(wèn)的指令高速緩沖存儲(chǔ)器(630)和用于存儲(chǔ)相關(guān)數(shù)據(jù)單元的寄存器。
5.如權(quán)利要求1所述的加速器處理器,其中存儲(chǔ)在所述存儲(chǔ)器中的相關(guān)數(shù)據(jù)單元包括數(shù)據(jù)報(bào)首部的各段。
6.如權(quán)利要求1所述的加速器處理器,其中由所述主處理器將用于歸類數(shù)據(jù)分組的機(jī)器代碼指令程序存儲(chǔ)在存儲(chǔ)器中。
7.如權(quán)利要求6所述的加速器處理器,其中由所述主處理器依照規(guī)則集中的變化來(lái)更新所述機(jī)器代碼指令程序。
8.如權(quán)利要求1所述的加速器處理器,其中所述存儲(chǔ)器包括用于接收來(lái)自于主處理器的命令的命令寄存器(767),其中所述命令被導(dǎo)向分組分析電路,以用于控制數(shù)據(jù)分組的歸類。
9.如權(quán)利要求8所述的加速器處理器,其中從所述主處理器接收的命令包括要開始執(zhí)行用于歸類每一數(shù)據(jù)分組的機(jī)器代碼指令的存儲(chǔ)器位置。
10.如權(quán)利要求1所述的加速器處理器,其中所述存儲(chǔ)器包括比較寄存器(764),用于向所述主處理器報(bào)告比較指令的結(jié)果。
11.如權(quán)利要求1所述的加速器處理器,其中所述存儲(chǔ)器包括退出寄存器(765),用于向所述主處理器傳遞數(shù)據(jù)分組的歸類結(jié)果。
12.如權(quán)利要求1所述的加速器處理器,其中所述分組分析電路包括超精簡(jiǎn)指令集計(jì)算機(jī)。
13.如權(quán)利要求1所述的加速器處理器,其中所述分組分析電路接收來(lái)自于主處理器的命令,所述命令控制每一數(shù)據(jù)分組的歸類。
14.如權(quán)利要求1所述的加速器處理器,其中所述分組分析電路接收來(lái)自于主處理器的命令,其中所述命令將所述分組分析電路導(dǎo)向要開始執(zhí)行存儲(chǔ)在存儲(chǔ)器中的機(jī)器代碼指令的存儲(chǔ)器位置以便歸類所述數(shù)據(jù)分組。
15.如權(quán)利要求14所述的加速器處理器,其中由分組分析電路執(zhí)行的機(jī)器代碼指令的起點(diǎn)由將應(yīng)用于所述數(shù)據(jù)分組的規(guī)則集加以確定。
16.如權(quán)利要求1所述的加速器處理器,其中所述機(jī)器代碼指令對(duì)一個(gè)或多個(gè)相關(guān)數(shù)據(jù)單元進(jìn)行操作以便歸類所述數(shù)據(jù)分組。
17.如權(quán)利要求1所述的加速器處理器,其中所述分組分析電路被配置為在所述存儲(chǔ)器的返回寄存器中存儲(chǔ)歸類指示,所述返回寄存器被安排為可由所述主處理器訪問(wèn)。
18.如權(quán)利要求1所述的加速器處理器,其中所述分組分析電路被配置為存儲(chǔ)由分組分析電路執(zhí)行的比較操作所得到的值。
19.如權(quán)利要求1所述的加速器處理器,其中由所述主處理器將數(shù)據(jù)分組的各部分傳遞到加速器處理器。
20.如權(quán)利要求1所述的加速器處理器,其中由直接存儲(chǔ)器訪問(wèn)電路將數(shù)據(jù)分組的各部分傳遞到加速器處理器。
21.一種用于依照規(guī)則集歸類數(shù)據(jù)分組的方法,包括在加速器處理器的存儲(chǔ)器單元中存儲(chǔ)機(jī)器代碼指令程序,所述機(jī)器代碼指令是直接從規(guī)則集轉(zhuǎn)換而來(lái)的;將數(shù)據(jù)分組的一個(gè)或多個(gè)部分從主處理器傳送到加速器處理器;將數(shù)據(jù)分組的各部分解析為相關(guān)數(shù)據(jù)單元并且將相關(guān)數(shù)據(jù)單元存儲(chǔ)在加速器處理器的存儲(chǔ)器單元中;通過(guò)使用相關(guān)數(shù)據(jù)單元執(zhí)行加速器處理器中的機(jī)器代碼指令程序來(lái)歸類每一數(shù)據(jù)分組;以及將歸類結(jié)果從加速器處理器返回到所述主處理器。
22.如權(quán)利要求21所述的方法,其中返回所述歸類結(jié)果包括在可由主處理器訪問(wèn)的寄存器中存儲(chǔ)所述結(jié)果。
23.如權(quán)利要求21所述的方法,其中歸類所述數(shù)據(jù)分組還包括歸類IP數(shù)據(jù)報(bào)。
24.如權(quán)利要求21所述的方法,其中將數(shù)據(jù)分組的各部分解析為相關(guān)數(shù)據(jù)單元還包括將IP數(shù)據(jù)報(bào)首部解析為相關(guān)數(shù)據(jù)單元。
25.如權(quán)利要求21所述的方法,其中存儲(chǔ)機(jī)器代碼指令程序還包括依照規(guī)則集中的變化來(lái)更新機(jī)器代碼指令程序。
26.如權(quán)利要求21所述的方法,其中通過(guò)執(zhí)行機(jī)器代碼指令程序來(lái)歸類每一數(shù)據(jù)分組還包括在由主處理器指示的位置處開始執(zhí)行機(jī)器代碼指令程序。
27.如權(quán)利要求21所述的方法,其中歸類每一數(shù)據(jù)分組還包括將命令從主處理器傳送到加速器處理器,所傳送的命令控制每一數(shù)據(jù)分組的歸類。
28.一種用于歸類數(shù)據(jù)分組的系統(tǒng),包括在加速器處理器的存儲(chǔ)器單元中存儲(chǔ)機(jī)器代碼指令程序的裝置,所述機(jī)器代碼指令是直接從規(guī)則集轉(zhuǎn)換而來(lái)的;將數(shù)據(jù)分組的一個(gè)或多個(gè)部分從主處理器傳送到加速器處理器的裝置;將數(shù)據(jù)分組的各部分解析為相關(guān)數(shù)據(jù)單元并且將相關(guān)數(shù)據(jù)單元存儲(chǔ)在加速器處理器的存儲(chǔ)器單元中的裝置;通過(guò)使用相關(guān)數(shù)據(jù)單元執(zhí)行加速器處理器中的機(jī)器代碼指令程序來(lái)歸類每一數(shù)據(jù)分組的裝置;以及將歸類結(jié)果從加速器處理器返回到所述主處理器的裝置。
全文摘要
一種數(shù)據(jù)分組過(guò)濾加速器處理器(250)與主處理器(240)并行操作,并且與所述主處理器(240)一起被安排在集成電路(200)上。所述加速器處理器(250,600)通過(guò)執(zhí)行從規(guī)則集直接轉(zhuǎn)換的機(jī)器代碼指令序列來(lái)歸類數(shù)據(jù)分組。將數(shù)據(jù)分組的各部分從所述主處理器(240)遞送到加速器處理器(250)。所述加速器處理器(250,600)包括分組解析器電路(620),用于將數(shù)據(jù)分組解析為相關(guān)數(shù)據(jù)單元并且在存儲(chǔ)器中存儲(chǔ)相關(guān)數(shù)據(jù)單元。分組分析電路(610)執(zhí)行直接從規(guī)則集轉(zhuǎn)換的機(jī)器(630)代碼指令序列。所述機(jī)器代碼指令序列對(duì)相關(guān)數(shù)據(jù)單元進(jìn)行操作以便歸類所述數(shù)據(jù)分組。所述分組分析電路通過(guò)在可由主處理器(240)訪問(wèn)的寄存器(640)中存儲(chǔ)歸類結(jié)果來(lái)將歸類結(jié)果返回到主處理器(240)。
文檔編號(hào)H04L29/06GK1679295SQ03819940
公開日2005年10月5日 申請(qǐng)日期2003年8月18日 優(yōu)先權(quán)日2002年8月23日
發(fā)明者G·科克斯, J·庫(kù)林頓 申請(qǐng)人:皇家飛利浦電子股份有限公司