TWI489300B - 用於傳達平行型樣搜尋引擎之型樣匹配結果之裝置、系統及方法 - Google Patents
用於傳達平行型樣搜尋引擎之型樣匹配結果之裝置、系統及方法 Download PDFInfo
- Publication number
- TWI489300B TWI489300B TW098145593A TW98145593A TWI489300B TW I489300 B TWI489300 B TW I489300B TW 098145593 A TW098145593 A TW 098145593A TW 98145593 A TW98145593 A TW 98145593A TW I489300 B TWI489300 B TW I489300B
- Authority
- TW
- Taiwan
- Prior art keywords
- result
- output
- results
- matrix
- search
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/02—Indexing scheme relating to groups G06F7/02 - G06F7/026
- G06F2207/025—String search, i.e. pattern matching, e.g. find identical word or best match in a string
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Processing (AREA)
Description
本發明之實施例一般而言係關於型樣辨識處理器,且更具體而言在某些實施例中係關於傳達來自該等型樣辨識處理器之多個操作之所得資料。
在計算領域中,型樣辨識任務越來越具有挑戰性。電腦之間傳輸之資料量不斷增大,且使用者希望辨識之型樣數目日益增加。舉例而言,垃圾郵件及惡意軟體通常係藉由搜尋一資料串流中之型樣(例如,特定片語或程式碼片段)來偵測。型樣之數目隨著垃圾郵件及惡意軟體之變化而增加,此乃因可實施新型樣以搜尋新變體。針對此等型樣中之每一者搜尋一資料串流可形成一計算瓶頸。通常,在接收資料串流時,針對每一型樣一次一個地搜尋資料串流。在系統準備搜尋資料串流之下一部分之前的延遲隨著型樣數目而增加。因此,型樣辨識可使資料之接收減慢。
型樣辨識任務通常因欲執行之各種類型之匹配而係複雜的。某些資料串流可接二連三地匹配數個型樣,且可將此等各種匹配分類。對此等匹配之檢索可使系統之整體效能減慢,因此導致該系統不能在新匹配出現時快速回應。在其他實例中,在一匹配出現之前可接收一資料串流達一相對長時間週期,從而使用以處理匹配之其他組件之容量未使用。結果資料在型樣辨識期間之不規則流動使得難以設計與型樣辨識硬體介接之系統。
圖1繪示搜尋一資料串流12之一系統10之一實例。系統10可包含一型樣辨識處理器14,其根據搜尋準則16搜尋資料串流12。
每一搜尋準則可規定一個或多個目標表達(亦即,型樣)。片語「目標表達(target expression)」係指型樣辨識處理器14正在搜尋之一資料序列。目標表達之實例包含拼寫某一字之一字元序列、規定一基因之一遺傳鹼基對序列、一圖像或視訊檔案中形成一影像之一部分之一位元序列、一可執行檔案中形成一程式之一部分之一位元序列或一音訊檔案中形成一歌曲或一口語片語之一部分之一位元序列。
一搜尋準則可規定多於一個之目標表達。舉例而言,一搜尋準則可規定以字母序列「cl」開始之所有五個字母之字、以字母序列「cl」開始之任一字、包含字「cloud」多於三次之一段落等。目標表達之可能組之數目係任意大,例如,可存在與資料串流可呈現之資料排列同樣多之目標表達。搜尋準則可以各種格式來表達,包含規則表達、簡明地規定目標表達組而不必列舉每一目標表達之一程式化語言。
每一搜尋準則可由一個或多個搜尋項構成。因此,一搜尋準則之每一目標表達可包含一個或多個搜尋項且某些目標表達可使用共同搜尋項。如本文中所使用,片語「搜尋項(search term)」係指在一單個搜尋循環期間搜尋之一資料序列。該資料序列可包含二進位格式或其他格式(例如,十進位、ASCII等)之多個資料位元。該序列可對具有一單個數位或多個數位(例如,數個二進位數位)之資料進行編碼。舉例而言,型樣辨識處理器14可一次一個字元地搜尋一文字資料串流12,且搜尋項可規定一組單字元,例如,字母「a」,字母「a」或「e」,或規定一組所有單字元之一萬用字元搜尋項。
搜尋項可小於或大於規定一字元(或由資料串流表達之資訊之其他字形一亦即,基本單位,例如,一音符、一遺傳鹼基對、一10進位數位或一子像素)之位元之數目。舉例而言,一搜尋項可係8個位元且一單個字元可係16個位元,在此情況下,兩個連續搜尋項可規定一單個字元。
搜尋準則16可由一編譯器18格式化以用於型樣辨識處理器14。格式化可包含自該等搜尋準則拆析搜尋項。舉例而言,若由資料串流12表達之字形大於該等搜尋項,則該編譯器可將該搜尋準則拆析成多個搜尋項以搜尋一單個字形。類似地,若由資料串流12表達之字形小於該等搜尋項,則編譯器18可為每一單獨字形提供具有未使用位元之一單個搜尋項。編譯器18亦可格式化搜尋準則16以支援型樣辨識處理器14本機不支援之各種規則表達運算子。
型樣辨識處理器14可藉由評估來自資料串流12之每一新項來搜尋資料串流12。此處,措辭「項」係指可匹配一搜尋項之資料量。在一搜尋循環期間,型樣辨識處理器14可確定當前所呈現之項是否匹配搜尋準則中之當前搜尋項。若該項匹配該搜尋項,則評估被「推進」,亦即,比較下一項與搜尋準則中之下一搜尋項。若該項不匹配,則比較下一項與搜尋準則中之第一項,由此重設該搜尋。
可將每一搜尋準則編譯至型樣辨識處理器14中之一不同有限狀態機中。該等有限狀態機可並行運行,從而根據搜尋準則16搜尋資料串流12。當先前搜尋項由資料串流12匹配時,該等有限狀態機可步進經過一搜尋準則中之每一連續搜尋項,或若該搜尋項未得到匹配,則該等有限狀態機可開始搜尋該搜尋準則之第一搜尋項。
型樣辨識處理器14可(例如)在一單個裝置循環期間在約相同時間根據數個搜尋準則及其各別搜尋項評估每一新項。該等平行有限狀態機可在約相同時間各自接收來自資料串流12之項,且該等平行有限狀態機中之每一者可確定該項是否將該平行有限狀態機推進至其搜尋準則中之下一搜尋項。該等平行有限狀態機可根據一相對大數目之搜尋準則(例如,多於100、多於1000或多於10,000)來評估項。由於其並行操作,因此其可將該等搜尋準則應用至具有一相對高頻寬之一資料串流12(例如,大於或大體等於每秒64MB或每秒128MB之一資料串流12)而不使該資料串流減慢。在某些實施例中,搜尋-循環持續時間不隨搜尋準則之數目按比例調整,因此搜尋準則之數目對型樣辨識處理器14之效能可幾乎沒有影響。
當一搜尋準則得到滿足時(亦即,在推進至最後一個搜尋項且與其匹配後),型樣辨識處理器14可將該準則之滿足報告給一處理單元(例如,一中央處理單元(CPU)20)。中央處理單元20可控制型樣辨識處理器14及系統10之其他部分。
系統10可係搜尋一資料串流之各種系統或裝置中之任一者。舉例而言,系統10可係監視資料串流12之一桌上型電腦、膝上型電腦、手持式電腦或其他類型之電腦。系統10亦可係一網路節點,例如,一路由器、一伺服器或一用戶端(例如,先前所闡述類型之電腦中之一者)。系統10可係某一其他類別之電子裝置,例如,一影印機、一掃描器、一印表機、一遊戲控制臺、一電視機、一機上視訊散佈或記錄系統、一電纜盒、一個人數位媒體播放器、一工廠自動化系統、一汽車電腦系統或一醫療裝置。(用於闡述系統之此等各種實例之術語(像本文中所使用之諸多其他術語)可共用某些所指物,且因此不應僅根據所列舉之其他項來理解)
資料串流12可係一使用者或其他實體可希望搜尋之各種類型之資料串流中之一者或多者。舉例而言,資料串流12可係經由一網路接收之一資料串流,例如,經由網際網路接收之封包或經由一蜂巢式網路接收之語音或資料。資料串流12可係自與系統10通訊之一感測器(例如,一成像感測器、一溫度感測器、一加速度計或類似物或其組合)接收之資料。資料串流12可作為一串列資料串流由系統10接收,其中以具有意義之一次序(例如,以一時間、詞法或語義顯著的次序)接收資料。或者,可並行或無序地接收資料串流12,且然後(例如)藉由對經由網際網路接收之封包重新排序將其轉換成一串列資料串流。在某些實施例中,資料串流12可以串列方式呈現項,但可並行地接收表達該等項中之每一者之位元。可自系統10外部之一源接收資料串流12,或可藉由詢問一記憶體裝置且由所儲存之資料形成資料串流12來形成資料串流12。
端視資料串流12中之資料之類型,一設計者可挑選不同類型之搜尋準則。舉例而言,搜尋準則16可係一病毒定義檔案。可表徵病毒或其他惡意軟體,且可使用惡意軟體之態樣來形成指示資料串流12是否可能正在遞送惡意軟體之搜尋準則。可將所得搜尋準則儲存於一伺服器上,且一用戶端系統之一操作者可預訂將該等搜尋準則下載至系統10之一服務。當不同類型之惡意軟體出現時,搜尋準則16可自該伺服器週期性地更新。該等搜尋準則亦可用於規定可經由一網路接收之不期望之內容,舉例而言,不需要之電子郵件(通常稱為垃圾郵件)或令一使用者反感之其他內容。
資料串流12可由對系統10正在接收之資料感興趣之一第三方搜尋。舉例而言,可針對在一版權作品中出現之文字、一音訊序列或一視訊序列來監視資料串流12。可針對與一刑事調查或民事訴訟有關或一雇主感興趣之言論來監視資料串流12。
搜尋準則16亦可包含資料串流12中針對其一轉譯(例如)在可由CPU 20或型樣辨識處理器14定址之記憶體中可用之型樣。舉例而言,搜尋準則16可各自規定在記憶體中儲存其一對應西班牙語字之一英語字。在另一實例中,搜尋準則16可規定資料串流12之經編碼版本,例如,MP3、MPEG4、FLAC、Ogg Vorbis等,針對該等經編碼版本,可得到資料串流12之一經解碼版本,或反之亦然。
型樣辨識處理器14可係與CPU 20一起整合至一單個組件(例如,一單個裝置)中之硬體或可形成為一單獨組件。舉例而言,型樣辨識處理器14可係一單獨積體電路。型樣辨識處理器14可稱為一「協處理器」或一「型樣辨識協處理器」。
圖2繪示型樣辨識處理器14之一實例。型樣辨識處理器14可包含一辨識模組22及具有一輸出緩衝器51之一彙總模組24。輸出緩衝器51可包含一結果緩衝器25。辨識模組22可經組態以比較所接收項與搜尋項,且辨識模組22及彙總模組24兩者可協作以確定將一項與一搜尋項匹配是否滿足一搜尋準則。結果緩衝器25可緩衝來自型樣辨識處理器14之其他部分之結果資料,如下文將參照圖13進一步闡述。
辨識模組22可包含一列解碼器28及複數個特徵胞30。每一特徵胞30可規定一搜尋項,且特徵胞30之群組可形成形成一搜尋準則之一平行有限狀態機。特徵胞30之組件可形成一搜尋項陣列32、一偵測陣列34及一啟動路由矩陣36。搜尋項陣列32可包含複數個輸入導體37,該等輸入導體中的每一者可使特徵胞30中之每一者與列解碼器28通訊。
列解碼器28可基於資料串流12之內容在複數個輸入導體37中選擇特定導體。舉例而言,列解碼器28可係基於可表示一個項之一所接收位元組之值啟動256個列中之一者之一單位元組至256列解碼器。一0000 0000之單位元組項可對應於複數個輸入導體37中之頂列,且一1111 1111之單位元組項可對應於複數個輸入導體37中之底列。因此,端視自資料串流12接收到哪些項,可選擇不同輸入導體37。在接收不同項時,列解碼器28可去啟動對應於先前項之列且啟動對應於新項之列。
偵測陣列34可耦合至一偵測匯流排38,該偵測匯流排將指示搜尋準則之完全或部分滿足之信號輸出至彙總模組24。啟動路由矩陣36可基於一搜尋準則中已得到匹配之搜尋項之數目選擇性地啟動及去啟動特徵胞30。
彙總模組24可包含一鎖存器矩陣40、一彙總路由矩陣42、一臨限邏輯矩陣44、一邏輯乘積矩陣46、一邏輯總和矩陣48及一初始化路由矩陣50。
鎖存器矩陣40可實施某些搜尋準則之部分。某些搜尋準則(例如,某些規則表達)僅計數一匹配或匹配群組之第一次出現。鎖存器矩陣40可包含記錄一匹配是否已出現之鎖存器。可在搜尋準則經確定得到滿足或不可進一步滿足(亦即,在可滿足該搜尋準則之前,可需要再次匹配一較早搜尋項)時,在初始化期間清零鎖存器,且在操作期間週期性地重新初始化鎖存器。
彙總路由矩陣42可類似於啟動路由矩陣36發揮作用。彙總路由矩陣42可在偵測匯流排38上接收指示匹配之信號且可將該等信號路由至連接至臨限邏輯矩陣44之不同群組邏輯線53。彙總路由矩陣42亦可將初始化路由矩陣50之輸出路由至偵測陣列34,以在一搜尋準則經確定得到滿足或不可進一步滿足時重設偵測陣列34之部分。
臨限邏輯矩陣44可包含複數個計數器,例如,經組態以遞增計數或遞減計數之32位元計數器。臨限邏輯矩陣44可載入有一初始計數且其可基於由辨識模組發信之匹配而自該計數遞增計數或遞減計數。舉例而言,臨限邏輯矩陣44可計數一字在某一長度之文字中出現之數目。
臨限邏輯矩陣44之輸出可係至邏輯乘積矩陣46之輸入。邏輯乘積矩陣46可選擇性地產生「乘積」結果(例如,布林邏輯(Boolean logic)中之「AND」函數)。邏輯乘積矩陣46可實施為一方矩陣,其中輸出乘積之數目等於來自臨限邏輯矩陣44之輸入線之數目,或邏輯乘積矩陣46可具有不同於輸出之數目之輸入。可將所得乘積值輸出至邏輯總和矩陣48。
邏輯總和矩陣48可選擇性地產生總和(例如,布林邏輯中之「OR」函數)。邏輯總和矩陣48亦可係一方矩陣,或邏輯總和矩陣48可具有不同於輸出之數目之輸入。由於該等輸入係邏輯乘積,因此邏輯總和矩陣48之輸出可係邏輯乘積總和(例如,布林邏輯乘積總和(SOP)形式)。邏輯總和矩陣48之輸出可由初始化路由矩陣50接收。
初始化路由矩陣50可經由彙總路由矩陣42重設偵測陣列34及彙總模組24之部分。初始化路由矩陣50亦可實施為一方矩陣,或初始化路由矩陣50可具有不同於輸出之數目之輸入。例如,當一搜尋準則得到滿足或經確定不可進一步滿足時,初始化路由矩陣50可回應於來自邏輯總和矩陣48之信號且重新初始化型樣辨識處理器14之其他部分。
彙總模組24可包含一輸出緩衝器51,其接收臨限邏輯矩陣44、彙總路由矩陣42及邏輯總和矩陣48之輸出。彙總模組24之輸出可在輸出匯流排26上自輸出緩衝器51傳輸至CPU 20(圖1)。如下文進一步闡述,輸出緩衝器51可包含或自身可係一結果緩衝器25。在某些實施例中,一輸出多工器可多工來自此等組件42、44及48之信號且將指示準則之滿足或搜尋項之匹配之信號輸出至CPU 20(圖1)。在其他實施例中,可在不經由該輸出多工器傳輸該等信號之情況下報告來自型樣辨識處理器14之結果,此並非暗示亦不可省略本文中所闡述之任一其他特徵。舉例而言,可在輸出匯流排26上並行傳輸來自臨限邏輯矩陣44、邏輯乘積矩陣46、邏輯總和矩陣48或初始化路由矩陣50之信號至CPU。
圖3圖解說明搜尋項陣列32(圖2)中之一單個特徵胞30(本文中稱為一搜尋項胞54之一組件)之一部分。搜尋項胞54可包含一輸出導體56及複數個記憶體胞58。記憶體胞58中之每一者可既耦合至輸出導體56又耦合至複數個輸入導體37中之導體中之一者。回應於選擇其輸入導體37,記憶體胞58中之每一者可輸出指示其所儲存值之一值,從而經由輸出導體56輸出資料。在某些實施例中,複數個輸入導體37可稱為「字線」,且輸出導體56可稱為一「資料線」。
記憶體胞58可包含各種類型之記憶體胞中之任一者。舉例而言,記憶體胞58可係揮發性記憶體,例如,具有一電晶體及一電容器之動態隨機存取記憶體(DRAM)胞。該電晶體之源極及汲極可分別連接至該電容器之一板及輸出導體56,且該電晶體之閘極可連接至輸入導體37中之一者。在揮發性記憶體之另一實例中,記憶體胞58中之每一者可包含一靜態隨機存取記憶體(SRAM)胞。該SRAM胞可具有一輸出,其藉由受輸入導體37中之一者控制之一存取電晶體選擇性地耦合至輸出導體56。記憶體胞58亦可包含非揮發性記憶體,例如,相變記憶體(例如,一雙向裝置)、快閃記憶體、矽-氧化物-氮化物-氧化物-矽(SONOS)記憶體、磁阻式記憶體或其他類型之非揮發性記憶體。記憶體胞58亦可包含正反器,例如,由邏輯閘製成之記憶體胞。圖4及圖5繪示操作中之搜尋項胞54之一實例。圖4圖解說明搜尋項胞54接收不匹配該胞之搜尋項之一項,且圖5圖解說明一匹配。
如圖4所圖解說明,搜尋項胞54可經組態以藉由將資料儲存於記憶體胞58中來搜尋一個或多個項。記憶體胞58各自可表示資料串流12可呈現之一項,例如,在圖3中,每一記憶體胞58表示一單個字母或數字,以字母「a」開始且以數字「9」結束。表示滿足搜尋項之項之記憶體胞58可經程式化以儲存一第一值,且不表示滿足搜尋項之項之記憶體胞58可經程式化以儲存一不同值。在所圖解說明之實例中,搜尋項胞54經組態以搜尋字母「b」。表示「b」之記憶體胞58可儲存一1或邏輯高,且不表示「b」之記憶體胞58可經程式化以儲存一0或邏輯低。
為比較來自資料串流12之一項與搜尋項,列解碼器28可選擇耦合至表示所接收項之記憶體胞58之輸入導體37。在圖4中,資料串流12呈現一小寫字母「e」。此項可由資料串流12以八位元ASCII程式碼之形式呈現,且列解碼器28可將此位元組解譯為一列位址,從而藉由啟用導體60而在該導體上輸出一信號。
作為回應,受導體60控制之記憶體胞58可輸出指示記憶體胞58儲存之資料之一信號,且該信號可由輸出導體56傳送。在此情況下,由於字母「e」不係由搜尋項胞54規定之項中之一者,因此其不匹配搜尋項,且搜尋項胞54輸出一0值,從而指示未發現任何匹配。
在圖5中,資料串流12呈現一字元「b」。同樣,列解碼器28可將此項解譯為一位址,且列解碼器28可選擇導體62。作為回應,表示字母「b」之記憶體胞58輸出其所儲存值,在此情況下,該值係一1,從而指示一匹配。
搜尋項胞54可經組態以一次搜尋多於一個項。多個記憶體胞58可經程式化以儲存一1,從而規定與多於一個項匹配之一搜尋項。舉例而言,表示小寫字母「a」及大寫字母「A」之記憶體胞58可經程式化以儲存一1,且搜尋項胞54可搜尋任一項。在另一實例中,搜尋項胞54可經組態以在接收任一字元之情況下輸出一匹配。所有記憶體胞58可經程式化以儲存一1,以使得搜尋項胞54可充當一搜尋準則中之一萬用字元項。
圖6至圖8繪示辨識模組22根據一多項搜尋準則搜尋(例如)一字。具體而言,圖6圖解說明辨識模組22偵測一字之第一字母,圖7圖解說明對第二字母之偵測,且圖8圖解說明對最後一個字母之偵測。
如圖6所圖解說明,辨識模組22可經組態以搜尋字「big」。對三個毗鄰特徵胞63、64及66進行圖解說明。特徵胞63經組態以偵測字母「b」。特徵胞64經組態以偵測字母「i」。且特徵胞66經組態以既偵測字母「g」又指示搜尋準則得到滿足。
圖6亦繪示偵測陣列34之額外細節。偵測陣列34可包含特徵胞63、64及66中之每一者中之一偵測胞68。偵測胞68中之每一者可包含一記憶體胞70(例如,上文所闡述類型之記憶體胞中之一者(例如,一正反器)),記憶體胞70指示特徵胞63、64或66係作用中的還係非作用中的。偵測胞68可經組態以將指示該偵測胞是否係作用中的及是否已自其相關聯搜尋項胞54接收到指示一匹配之一信號兩者的一信號輸出至啟動路由矩陣36。非作用中特徵胞63、64及66可忽視匹配。偵測胞68中之每一者可包含具有來自記憶體胞70及輸出導體56之輸入之一AND閘。可將該AND閘之輸出路由至偵測匯流排38及啟動路由矩陣36兩者或一者或另一者。
啟動路由矩陣36又可藉由寫入至偵測陣列34中之記憶體胞70來選擇性地啟動特徵胞63、64及66。啟動路由矩陣36可根據搜尋準則及接下來在資料串流12中搜尋哪一搜尋項來啟動特徵胞63、64或66。
在圖6中,資料串流12呈現字母「b」。作為回應,特徵胞63、64及66中之每一者可在其輸出導體56上輸出指示儲存於連接至導體62之記憶體胞58(其表示字母「b」)中之值之一信號。然後,偵測胞56可各自確定其是否已接收到指示一匹配之一信號及其是否係作用中的。由於特徵胞63經組態以偵測字母「b」且係作用中的(如其記憶體胞70所指示),因此特徵胞63中之偵測胞68可將指示搜尋準則之第一搜尋項已得到匹配之一信號輸出至啟動路由矩陣36。
如圖7所圖解說明,在第一搜尋項得到匹配之後,啟動路由矩陣36可藉由將一1寫入至下一特徵胞64之偵測胞68中其記憶體胞70來啟動該特徵胞。在下一項滿足第一搜尋項之情況下(例如,若接收到項序列「bbig」),啟動路由矩陣36亦可維持特徵胞63之作用中狀態。在搜尋資料串流12期間之一部分時間或大致所有時間期間,搜尋準則之第一搜尋項可維持在一作用中狀態中。
在圖7中,資料串流12將字母「i」呈現給辨識模組22。作為回應,特徵胞63、64及66中之每一者可在其輸出導體56上輸出指示儲存於連接至導體72之記憶體胞58(其表示字母「i」)中之值之一信號。然後,偵測胞56可各自確定其是否已接收到指示一匹配之一信號及其是否係作用中的。由於特徵胞64經組態以偵測字母「i」且係作用中的(如其記憶體胞70所指示),因此特徵胞64中之偵測胞68可將指示其搜尋準則之下一搜尋項已得到匹配之一信號輸出至啟動路由矩陣36。
接下來,啟動路由矩陣36可啟動特徵胞66,如圖8所圖解說明。在評估下一項之前,可去啟動特徵胞64。舉例而言,特徵胞64可藉由其偵測胞68在偵測循環之間重設其記憶體胞70而去啟動或啟動路由矩陣36可去啟動特徵胞64。
在圖8中,資料串流12將項「g」呈現給列解碼器28,該列解碼器選擇表示項「g」之導體74。作為回應,特徵胞63、64及66中之每一者可在其輸出導體56上輸出指示儲存於連接至導體74之記憶體胞58(其表示字母「g」)中之值之一信號。然後,偵測胞56可各自確定其是否已接收到指示一匹配之一信號及其是否係作用中的。由於特徵胞66經組態以偵測字母「g」且係作用中的(如其記憶體胞70所指示),因此特徵胞66中之偵測胞68可將指示其搜尋準則之最後一個搜尋項已得到匹配之一信號輸出至啟動路由矩陣36。
一搜尋準則之末端或一搜尋準則之一部分可由啟動路由矩陣36或偵測胞68辨識。此等組件36或68可包含指示其特徵胞63、64或66規定一搜尋準則之最後一個搜尋項還係一搜尋準則之一分量之記憶體。舉例而言,一搜尋準則可規定其中字「cattle」出現兩次之所有句子,且辨識模組可將指示「cattle」在一句子內之每一出現之一信號輸出至彙總模組,該彙總模組可計數該等出現以確定該搜尋準則是否得到滿足。
可在數個條件下啟動特徵胞63、64或66。一特徵胞63、64或66可係「始終作用中」的,此意指其在整個或大致整個搜尋期間保持作用中。一始終作用中特徵胞63、64或66之一實例係搜尋準則之第一特徵胞,例如,特徵胞63。
一特徵胞63、64或66可係「在請求時作用中」,此意指特徵胞63、64或66在某一先前條件得到匹配時(例如,在一搜尋準則中之先前搜尋項得到匹配時)係作用中的。一實例係當由圖6至圖8中之特徵胞63請求時係作用中的之特徵胞64及當由特徵胞64請求時係作用中的之特徵胞66。
一特徵胞63、64或66可係「自啟動」,此意指一旦被啟動,只要其搜尋項得到匹配其即啟動自身。舉例而言,具有由任一數值數位匹配之一搜尋項之一自啟動特徵胞可在序列「123456xy」中保持作用中直至到達字母「x」為止。每當自啟動特徵胞之搜尋項得到匹配時,其可啟動搜尋準則中之下一特徵胞。因此,一始終作用中特徵胞可由一自啟動特徵胞及一當請求時作用中之特徵胞形成:該自啟動特徵胞可經程式化以使其記憶體胞58中之所有者儲存一1,且其可在每一項之後重複啟動該當請求時作用中之特徵胞。在某些實施例中,每一特徵胞63、64及66可在其偵測胞68中或在啟動路由矩陣36中包含規定該特徵胞是否始終係作用中的之一記憶體胞,由此由一單個特徵胞形成一始終作用中特徵胞。
圖9繪示經組態以根據一第一搜尋準則75及一第二搜尋準則76並行搜尋之一辨識模組22之一實例。在此實例中,第一搜尋準則75規定字「big」,且第二搜尋準則76規定字「cab」。指示來自資料串流12之當前項之一信號可在大體相同時間傳達至每一搜尋準則75及76中之特徵胞。輸入導體37中之每一者橫跨搜尋準則75及76兩者。因此,在某些實施例中,搜尋準則75及76兩者可大體同時評估當前項。據信,此加速對搜尋準則之評估。其他實施例可包含經組態以並行評估更多搜尋準則之更多特徵胞。舉例而言,某些實施例可包含並行操作之多於100、500、1000、5000或10,000個特徵胞。此等特徵胞可大體同時評估數百個或數千個搜尋準則。
具有不同數目之搜尋項之搜尋準則可藉由將更多或更少特徵胞分配至該等搜尋準則形成。簡單搜尋準則可比複雜搜尋準則消耗更少之特徵胞形式之資源。據信,相對於具有大量大體相同核心之處理器(全部經組態以評估複雜搜尋準則),此降低型樣辨識處理器14(圖2)之成本。
圖10至圖12繪示一更複雜搜尋準則之一實例及啟動路由矩陣36之特徵兩者。啟動路由矩陣36可包含複數個啟動路由胞78,啟動路由胞之群組可與特徵胞63、64、66、80、82、84及86中之每一者相關聯。舉例而言,該等特徵胞中之每一者可包含5個、10個、20個、50個或更多個啟動路由胞78。啟動路由胞78可經組態以在一先前搜尋項得到匹配時將啟動信號傳輸至一搜尋準則中之下一搜尋項。啟動路由胞78可經組態以將啟動信號路由至毗鄰特徵胞或同一特徵胞內之其他啟動路由胞78。啟動路由胞78可包含指示哪些特徵胞對應於一搜尋準則中之下一搜尋項之記憶體。
如圖10至圖12所圖解說明,辨識模組22可經組態以根據複雜搜尋準則而非規定單個字之準則搜尋。舉例而言,辨識模組22可經組態以搜尋以一字首88開始且以兩個字尾90或92中之一者結束之字。所圖解說明之搜尋準則規定依序以字母「c」及「l」開始且以字母序列「ap」或字母序列「oud」結束之字。此係規定多個目標表達(例如,字「clap」或字「cloud」)之一搜尋準則之一實例。
在圖10中,資料串流12將字母「c」呈現給辨識模組22,且特徵胞63既係作用中的又偵測到一匹配。作為回應,啟動路由矩陣36可啟動下一特徵胞64。啟動路由矩陣36亦可維持特徵胞63之作用中狀態,此乃因特徵胞63係搜尋準則中之第一搜尋項。
在圖11中,資料串流12呈現一字母「l」,且特徵胞64辨識一匹配且係作用中的。作為回應,啟動路由矩陣36可將一啟動信號傳輸至第一字尾90之第一特徵胞66及第二字尾92之第一特徵胞82兩者。在其他實例中,可啟動更多字尾,或多個字首可對一個或多個字尾有作用。
接下來,如圖12所圖解說明,資料串流12將字母「o」呈現給辨識模組22,且第二字尾92之特徵胞82偵測到一匹配且係作用中的。作為回應,啟動路由矩陣36可啟動第二字尾92之下一特徵胞84。對第一字尾90之搜尋可在允許特徵胞66變成非作用中時停止。圖10至圖12所圖解說明之步驟可繼續經過字母「u」及「d」,或搜尋可停止直至下一次字首88得到匹配為止。
圖13繪示另一型樣辨識處理器93之一實例。型樣辨識處理器93可以與上文參照圖2之型樣辨識處理器14所闡述大致類似之一方式操作。然而,型樣辨識處理器93除與圖2之型樣辨識處理器14共同之元件以外可進一步包含一臨限輸出遮罩94、一乘積輸出遮罩96、一總和輸出遮罩98及一初始化輸出遮罩100。
臨限輸出遮罩94、乘積輸出遮罩96、總和輸出遮罩98及初始化輸出遮罩100通常可操作以「遮罩」(亦即,過濾)作為一輸入接收之一個或多個結果。舉例而言,臨限邏輯矩陣44可經設定以搜尋(舉例而言)安全威脅在一資料串流12中之所有已知出現。然而,針對一個或多個特定安全威脅(例如,一特定高風險威脅)過濾此等結果可係有益的。因此,臨限輸出遮罩94可經設定以阻擋除一所規定之高風險安全威脅以外的由臨限邏輯44發現之所有安全威脅。若發現此高風險安全威脅,則可將威脅通知自臨限輸出遮罩94傳輸至輸出緩衝器51以供CPU檢索。因此,臨限輸出遮罩94、乘積輸出遮罩96、總和輸出遮罩98及初始化輸出遮罩100可形成遮罩模組,其每一者可過濾一各別矩陣44至50之輸出,旨在自型樣匹配矩陣44至50之整個結果輸出分割一個或多個所規定結果。在某些實施例中,輸出遮罩模組94至100可將相關聯遮罩暫存器應用至型樣匹配矩陣44至50之輸出以促進此過濾。
因此,臨限輸出遮罩94可操作以基於臨限邏輯矩陣44之結果產生一搜尋結果匹配。如上文所闡述,臨限邏輯矩陣44可包含複數個計數器,例如,32位元計數器,其經組態以基於辨識模組發信之匹配遞增計數或遞減計數。臨限邏輯矩陣44可計數一字在某一長度之文字中出現之數目,例如,在一資料串中發現三個「A」符號。可將來自臨限邏輯矩陣44之結果傳遞至臨限輸出遮罩94、輸出緩衝器51及邏輯乘積矩陣46。臨限輸出遮罩94可利用由臨限邏輯矩陣44確定之臨限結果來執行一額外匹配搜尋。此額外匹配搜尋可包含對由臨限邏輯矩陣44確定之臨限結果與(舉例而言)臨限輸出遮罩94中之一位元位置進行「AND」處理。
舉例而言,可沿(舉例而言)32條線將臨限結果傳遞至臨限輸出遮罩94,其中每條線可對應於一特定結果。此等線中之每一者亦可在臨限輸出矩陣94中具有一對應位元位置,可端視臨限輸出遮罩94是否欲選擇在對應於彼位元位置之線上接收之結果而將該對應位元位置設定為1或0。因此,對於臨限輸出遮罩94中被設定為1之任一位元位置,可將沿對應結果線自臨限邏輯矩陣44接收之任何資訊自臨限輸出遮罩94傳輸至輸出緩衝器51。類似地,對於臨限輸出矩陣94中被設定為0之任一位元位置,可遮罩(亦即,過濾)沿對應線自臨限邏輯矩陣44接收之任何資訊且因此防止其自臨限輸出矩陣94傳輸至輸出緩衝器51。以此方式,臨限輸出遮罩94可有效地選擇將哪些臨限邏輯矩陣44結果傳遞至輸出緩衝器51(例如,對應於臨限輸出遮罩94中之一啟用位元位置之彼等結果)及忽略臨限邏輯矩陣44之哪些結果(例如,對應於臨限輸出遮罩94中之一啟用位元位置之彼等結果)。應注意,雖然以上論述目的在於闡述經由臨限輸出遮罩94之一硬體匹配,但亦可利用一軟體匹配,該軟體匹配利用在功能上以與上文所闡述之方式類似之一方式執行之一臨限遮罩程式。
乘積輸出遮罩96可操作以基於邏輯乘積矩陣46之結果產生一搜尋結果匹配。邏輯乘積矩陣46可基於兩個或兩個以上臨限邏輯矩陣44結果選擇性地產生「乘積」結果(例如,布林邏輯中之「AND」函數)。舉例而言,邏輯乘積矩陣46可搜尋三個「A」及項「cat」兩者。可將來自邏輯乘積矩陣46之結果傳遞至乘積輸出遮罩96、輸出緩衝器51及邏輯總和矩陣48。乘積輸出遮罩96可利用由邏輯乘積矩陣46確定之乘積結果來執行一額外匹配搜尋。此額外匹配搜尋可包含對由邏輯乘積矩陣46確定之結果與(舉例而言)臨限輸出遮罩94中之一位元位置進行「AND」處理。
舉例而言,可沿(舉例而言)32條線將邏輯乘積矩陣46之乘積結果傳遞至乘積輸出遮罩96,其中每條線可對應於一特定結果。此等線中之每一者亦可在乘積輸出遮罩96中具有一對應位元位置,可端視乘積輸出遮罩96是否欲選擇在對應於彼位元位置之線上接收之結果而將該對應位元位置設定為1或0。因此,對於乘積輸出遮罩96中被設定為1之任一位元位置,可將沿對應結果線自邏輯乘積矩陣46接收之任何資訊自乘積輸出遮罩96傳輸至輸出緩衝器51。類似地,對於乘積輸出遮罩96中被設定為0之任一位元位置,可遮罩(亦即,過濾)沿對應線自邏輯乘積矩陣46接收之任何資訊,且因此防止其自乘積輸出遮罩96傳輸至輸出緩衝器51。以此方式,乘積輸出遮罩96可有效地選擇將哪些邏輯乘積矩陣46結果傳遞至輸出緩衝器51(例如,對應於乘積輸出遮罩96中之一啟用位元位置之彼等結果)及忽略邏輯乘積矩陣46之哪些結果(例如,對應於乘積輸出遮罩96中之一啟用位元位置之彼等結果)。應注意,雖然以上論述目的在於闡述經由乘積輸出遮罩96之一硬體匹配,但亦可利用一軟體匹配,該軟體匹配利用在功能上以與上文所闡述之方式類似之一方式執行之一臨限遮罩程式。
總和輸出遮罩98可以與上文就臨限輸出遮罩94及乘積輸出遮罩96所闡述之方式類似之一方式操作以基於邏輯總和矩陣48之結果產生一搜尋結果匹配。邏輯總和矩陣48可選擇性地產生「總和」結果(例如,布林邏輯中之「OR」函數)或可基於邏輯乘積輸入產生邏輯乘積總和(例如,布林邏輯乘積總和(SOP)形式)。舉例而言,邏輯總和矩陣48可搜尋三個「A」及項「cat」兩者或搜尋三個「N」及項「dog」。可將來自邏輯總和矩陣48之結果傳遞至總和輸出遮罩98、輸出緩衝器51及初始化路由矩陣50。
此等總和結果可由總和輸出遮罩98沿一組輸出結果線接收。此等線中之每一者亦可在總和輸出遮罩98中具有一對應位元位置,可端視總和輸出遮罩98是否欲選擇在對應於彼位元位置之線上接收之結果將該對應位元位置設定為1或0。因此,對於總和輸出遮罩98中被設定為1之任一位元位置,可將沿對應結果線自邏輯總和矩陣48接收之任何資訊自總和輸出遮罩98傳輸至輸出緩衝器51。類似地,對於總和輸出遮罩98中被設定為0之任一位元位置,可遮罩(亦即,過濾)沿對應線自邏輯總和矩陣48接收之任何資訊且因此防止其自總和輸出遮罩98傳輸至輸出緩衝器51。以此方式,總和輸出遮罩98可有效地選擇將哪些邏輯總和矩陣48結果傳遞至輸出緩衝器51(例如,對應於總和輸出遮罩98中之一啟用位元位置之彼等結果)及忽略邏輯總和矩陣48之哪些結果(例如,對應於總和輸出遮罩98中之一啟用位元位置之彼等結果)。應注意,雖然以上論述目的在於闡述經由總和輸出遮罩98之一硬體匹配,但亦可利用一軟體匹配,該軟體匹配利用在功能上以與上文所闡述之方式類似之一方式執行之一臨限遮罩程式。
初始化輸出遮罩100可操作以基於初始化路由矩陣50之初始化結果產生一結果。初始化路由矩陣50可基於來自邏輯總和矩陣48之結果經由彙總路由矩陣42選擇性地重設偵測陣列34及/或彙總模組24之部分。初始化路由矩陣50亦可(例如)在一搜尋準則得到滿足或經確定不可進一步滿足時重新初始化型樣辨識處理器14之其他部分。可將此等初始化結果傳遞至輸出緩衝器51及初始化輸出遮罩100。
初始化輸出遮罩100可利用由初始化路由矩陣50確定之初始化結果來執行一額外匹配搜尋,由此可產生一次級條件重設。可藉由對由初始化路由矩陣50確定之初始化結果與一次級條件進行「AND」處理產生此額外重設,以用於(舉例而言)初始化輸出遮罩100經由彙總路由遮罩42重設偵測陣列34及/或彙總模組24。此次級條件可係初始化輸出遮罩100中之一個或多個經啟動位元位置,由此該等位元位置可對應於來自初始化路由矩陣50之一條或多條結果線。可端視初始化輸出遮罩100是否欲選擇在對應於彼位元位置之線上接收之結果將初始化輸出遮罩100中之一給定位元位置設定為1或0,以有效地選擇將哪些初始化路由矩陣50結果傳遞至輸出緩衝器51及忽略初始化路由矩陣50之哪些結果。此外,可經由硬體或經由軟體實施初始化輸出遮罩100,該軟體利用(舉例而言)在功能上以與上文所闡述之硬體實施方案類似之一方式執行之一初始化遮罩程式。
因此,輸出緩衝器51可接收臨限邏輯矩陣44、邏輯乘積矩陣46、邏輯總和矩陣48及初始化路由矩陣50之輸出以及臨限輸出遮罩94、乘積輸出遮罩96、總和輸出遮罩98及初始化輸出遮罩100之輸出。輸出緩衝器51連同結果緩衝器25可在輸出跨越輸出匯流排26傳輸之前作為用於該等輸出之一緩衝器來操作。此外,可同時(亦即,並行)執行此等結果至輸出緩衝器51之寫入。
圖14圖解說明耦合至型樣辨識處理器14或型樣辨識處理器93之結果緩衝器25之一實例。如上文關於圖2及圖13所闡述,結果緩衝器25可包含於輸出緩衝器51中。結果緩衝器25可包含一先進先出(FIFO)緩衝器102、一緩衝器寫入控制模組104、一緩衝器讀取控制模組106及一緩衝器組態模組108。結果緩衝器25可整體地形成為型樣辨識處理器14之部分(例如,形成於同一矽本體上),或其可係一單獨組件或一單獨組件之部分。結果緩衝器25可經由一上游結果匯流排110自型樣辨識處理器14接收結果資料,且結果緩衝器25可經由一下游結果匯流排112將結果資料輸出至CPU 20(圖1)。一組態匯流排114可使CPU 20與結果緩衝器25中之緩衝器組態模組108及可用於組態型樣辨識處理器14之一型樣辨識處理器組態模組116通訊。
FIFO緩衝器102可經組態以儲存複數個記錄118。每一記錄118可儲存結果資料,例如,與一準則之滿足相關之資料。每一記錄118可與一個準則之滿足之一個實例對應,或與該準則之滿足相關之資料可儲存於數個記錄118中,例如,數個呈毗鄰順序或以其他順序方式的記錄118。
每一記錄118可包含用於儲存結果狀態資訊120、內務資訊122及結果資料124之欄位。其他實施例可包含額外欄位或更少欄位。結果狀態欄位120可儲存辨識資料串流12且將資料串流12與型樣辨識處理器14可正在接收之其他資料串流區分開之資料。
當一準則得到滿足時,內務欄位122可儲存指示型樣辨識處理器14之狀態之資料。舉例而言,內務欄位122可儲存指示一錯誤條件是否已出現之資料。錯誤條件之實例包含一輸入資料溢位或一FIFO緩衝器已滿條件。舉例而言,FIFO緩衝器102可包含多於約32個記錄、多於約64個記錄、多於約128個記錄、多於約256個記錄或多於約512個記錄。
結果資料124可包含例如哪一準則得到滿足、來自資料串流12之滿足該準則之項序列、針對資料串流12之滿足該準則之部分之一項計數(例如,一位元計數)或期間接收資料串流之滿足該準則之部分之一時間週期等資料。可將儲存於每一記錄118中之結果資料124歸類為一庫(bank)。此庫可包含用於儲存來自臨限邏輯矩陣44、邏輯乘積矩陣46、邏輯總和矩陣48、初始化路由矩陣50、臨限輸出遮罩94、乘積輸出遮罩96、總和輸出遮罩98及/或初始化輸出遮罩100中之每一者之匹配結果輸出中之每一者之一單獨暫存器。此外,可將匹配結果輸出並行地寫入至暫存器庫中。以此方式,可接收針對每一記錄118之結果資料124(亦即,匹配資料)並同時將其儲存於一暫存器庫中,由此每一單獨暫存器可個別儲存來自一特定矩陣或遮罩之一所規定結果。
緩衝器寫入控制模組108可經組態以控制將來自上游結果匯流排110之哪些資料寫入至FIFO緩衝器102中之哪一記錄118。緩衝器寫入控制模組102可包含每當一準則得到滿足時或每當將結果資料寫入至一新記錄118時遞增或遞減之一計數器。該緩衝器寫入控制模組亦可包含指示哪一記錄118係最近輸出至CPU 20之記憶體,且緩衝器寫入控制模組104可經組態以將來自上游結果匯流排110之資料寫入至含有已被傳送至CPU 20之資料之記錄118。
類似地,緩衝器讀取控制模組106可經組態以指示哪一記錄118係尚未自FIFO緩衝器102讀取之最舊記錄。舉例而言,緩衝器讀取控制模組106可包含每當自FIFO緩衝器102讀取一記錄時遞增或遞減之一計數器,且該計數器之計數可辨識最舊未讀記錄118。緩衝器讀取控制模組106可經組態以接收來自CPU 20之一讀取命令信號126且藉由致使FIFO緩衝器102輸出由最舊未讀記錄118儲存之資料而回應於該讀取命令。
結果匯流排112可包含與傳送資料串流12之匯流排不同之導體,以使得資料串流12可在下游結果匯流排112正在輸出資料之同時輸入資料。在其中結果緩衝器25與型樣辨識處理器14整體形成之實施例中,型樣辨識處理器14可包含用於將資料串流12傳入及將結果傳出之單獨接針。因此,可在輸入資料串流之同時輸出結果資料。
另一選擇係,結果匯流排112可利用相同導體或接針以接收資料串流12及輸出結果資料,實際上,利用一共用匯流排。舉例而言,可多工或時間截分(time-slice)該共用匯流排,以使得該共用匯流排可由相同導體利用以接收資料流12及輸出結果資料。然而,利用共用匯流排傳輸輸入資料之時間可超出利用該共用匯流排傳輸輸出資料之時間,因此產生比輸出循環多之輸入循環。因此,在多工共用匯流排期間,可給予輸入循環一最高優先等級。可在時間允許時隨後將輸出循環歸入未正被用作輸入循環之時槽中。
在操作中,型樣辨識處理器14可以上文參照圖2至圖13所闡述之方式搜尋資料串流12,且來自該搜尋之結果在傳送至CPU 20之前可在結果緩衝器25中緩衝。當一準則得到滿足時,可經由上游結果匯流排110將與該準則之滿足相關之資料(例如,指示哪一準則得到滿足之資料、指示資料串流12中哪些項滿足該準則之資料及指示正在搜尋哪一資料串流之資料)傳輸至結果緩衝器25。
在接收到此資料時,緩衝器寫入控制模組104可確定FIFO緩衝器102中是否存在任何閒置記錄,例如,儲存已經被傳送至CPU 20之資料之記錄118或未儲存任何資料之記錄118。若無閒置記錄可用,則緩衝器寫入控制模組104可用信號通知型樣辨識處理器14停止搜尋資料串流且用信號通知CPU 20暫停傳輸資料串流12,而CPU 20處理FIFO緩衝器102中之記錄且產生空間。緩衝器寫入控制模組104亦可將指示型樣辨識處理器14進入一結果緩衝器溢位狀態之資料儲存於當前或後續記錄條目之內務資訊欄位122中。
若緩衝器寫入控制模組104確定至少一個閒置記錄118可用,則緩衝器寫入控制模組104可將來自上游結果資料匯流排110之結果資料寫入至閒置記錄118。緩衝器寫入控制模組104可將記錄118指定為已被寫入但尚未自其讀取,且緩衝器寫入控制模組104可將記錄118指定為相對於其他經寫入記錄係最新記錄。
在大致相同時間或在其他時間,CPU 20可將讀取控制信號126傳輸至緩衝器讀取控制模組106,由此用信號通知緩衝器讀取控制模組106輸出尚未讀取之最舊記錄118中之資料。因此,CPU 20可「輪詢」臨界狀態暫存器以確定(舉例而言)新紀錄118是否可供傳輸至CPU 20。由CPU 20進行之輪詢可經由CPU 20確定是否已設定結果緩衝器25內部或外部之一個或多個狀態位元而發生。對該一個或多個狀態位元之設定可指示新型樣匹配結果資料可供CPU 20檢索。
緩衝器讀取控制模組106亦可確定是否存在任何未讀記錄118。若不存在未讀記錄,則緩衝器讀取控制模組106可用信號通知CPU 20當前不存在任何未讀記錄。若確實存在一未讀記錄118,則緩衝器讀取控制模組106可辨識最舊未讀記錄且將由最舊未讀記錄118儲存之資料傳送至CPU 20。此構成一「輪詢」方法,由此CPU 20「詢問」新結果是否可用。
另一方法「中斷」可構成一主動通知方法,由此通知CPU 20一給定匹配。以此方法,緩衝器讀取控制模組106可經由下游結果匯流排112主動地將一通知信號傳輸至CPU 20,從而通知及/或中斷CPU 20,因此使得CPU 20知道一個或多個可用記錄118之可用性。中斷線(未圖解說明,但視為下游結果匯流排112之部分)可用於將通知信號傳輸至CPU 20。
在其他實施例中,緩衝器讀取控制模組106可傳送由最舊未讀記錄118儲存之資料之一部分(例如,哪一準則得到滿足),且CPU 20可確定是否請求由記錄118儲存之更多資料(例如,來自資料串流12之哪些項滿足該準則)。當完成記錄118時,CPU 20通知緩衝器讀取控制模組106不再需要記錄。然後,緩衝器讀取控制模組106可將彼記錄指定為已被讀取且由緩衝器寫入控制模組104覆寫係安全的。
該結果緩衝器亦減少因搜尋結果處理所導致之延遲。當資料串流12比CPU 20可接收或處理搜尋結果更快地滿足搜尋準則時,結果緩衝器25可在CPU 20追趕時儲存未經處理之結果資料。結果緩衝器25甚至在數個搜尋準則在約相同時間得到滿足時可使結果資料平滑地流動至CPU 20,且因此,型樣辨識處理器14可繼續搜尋資料串流12,而CPU 20處理由結果緩衝器25儲存之乘積壓之搜尋結果。
另外,結果緩衝器25可在來自一資料串流搜尋之結果輸入至結果緩衝器25中之同時將結果資料輸出至CPU 20。亦即,結果緩衝器25可將資料串流搜尋之結果接收至「空」記錄118中,而將先前接收之結果自「最舊」未讀記錄118傳輸至CPU 20。此可藉由在緩衝器寫入控制模組104控制下將所接收之搜尋結果儲存於「空」記錄118中且在緩衝器讀取控制模組106控制下讀取「最舊」記錄118而達成。此可減少因搜尋結果處理所導致之延遲。
圖15圖解說明可對應於針對最舊記錄118之結果資料124(舉例而言,針對FIFO位置0之結果資料124)之一結果庫128。結果庫可係至FIFO記錄118中之一「窗口」,以使得最舊記錄118係CPU 20隨時可視、可經由結果庫128讀取之唯一記錄。一旦完成對結果庫128之存取,CPU 20(舉例而言)即可通知緩衝器讀取控制模組106 CPU 20完成結果庫128之記錄118(亦即,所儲存之最舊結果資料124)。作為回應,緩衝器讀取控制模組106可推進FIFO佇列,使下一記錄118(亦即,FIFO位置1)作為對應於結果庫128之新的最舊記錄118而係可視。因此,CPU 20可僅能夠定址對應於結果庫128之當前記錄118。剩餘記錄118可保持隱藏於FIFO佇列中不被CPU 20發現。
結果庫128可包含一暫存器群組130。此暫存器群組130可用於儲存結果資料124。舉例而言,暫存器群組130可包含用於儲存來自臨限邏輯矩陣44、邏輯乘積矩陣46、邏輯總和矩陣48、初始化路由矩陣50、臨限輸出遮罩94、乘積輸出遮罩96、總和輸出遮罩98及初始化輸出遮罩100中之每一者之匹配結果輸出中之每一者之一單獨暫存器132至146。此外,可並行向暫存器群組130中之每一暫存器132至146寫入。以此方式,可接收針對對應於一給定FIFO位置之一記錄118之結果資料124並同時將其儲存於暫存器群組130中,由此每一單獨暫存器132至146可個別儲存來自一特定矩陣44至50或遮罩94至100之一所規定結果。
雖然本發明可容許有各種修改及替代形式,但具體實施例已以實例方式顯示於圖式中並已詳細闡述於本文中。然而,應理解,本發明並非意欲限定於所揭示之特定形式。相反,本發明將涵蓋歸屬於如以下隨附申請專利範圍所界定之本發明之精神及範疇內之所有修改形式、等效形式及替代形式。
10...系統
12...資料串流
14...型樣辨識處理器
16...搜尋準則
18...編譯器
20...中央處理單元(CPU)
22...辨識模組
24...彙總模組
25...結果緩衝器
26...輸出匯流排
28...列解碼器
30...特徵胞
32...搜尋項陣列
34...偵測陣列
36...啟動路由矩陣
37...輸入導體
38...偵測匯流排
40...型樣匹配矩陣/鎖存器矩陣
42...型樣匹配矩陣/彙總路由矩陣
44...型樣匹配矩陣/臨限邏輯矩陣
46...型樣匹配矩陣/邏輯乘積矩陣
48...型樣匹配矩陣/邏輯總和矩陣
50...型樣匹配矩陣/初始化路由矩陣
51...輸出緩衝器
53...邏輯線
54...搜尋項胞
56...輸出導體/偵測胞
58...記憶體胞
60...導體
62...導體
63...特徵胞
64...特徵胞
66...特徵胞
68...偵測胞
70...記憶體胞
72...導體
74...導體
75...第一搜尋準則
76...第二搜尋準則
78...啟動路由胞
80...特徵胞
82...第一特徵胞
84...特徵胞
86...特徵胞
88...字首
90...第一字尾
92...第二字尾
93...型樣辨識處理器
94...遮罩模組/臨限輸出遮罩
96...遮罩模組/乘積輸出遮罩
98...遮罩模組/總和輸出遮罩
100...遮罩模組/初始化輸出遮罩
102...先進先出(FIFO)緩衝器
104...緩衝器寫入控制模組
106...緩衝器讀取控制模組
108...緩衝器組態模組
110...上游結果匯流排
112...下游結果匯流排
114...組態匯流排
116...型樣辨識處理器組態模組
118...記錄
120...結果狀態資訊/結果狀態欄位
122...內務資訊
124...結果資料
126...讀取命令信號/讀取控制信號
128...結果庫
130...暫存器群組
132...暫存器
134...暫存器
136...暫存器
138...暫存器
140...暫存器
142...暫存器
144...暫存器
146...暫存器
圖1繪示搜尋一資料串流之系統之一實例;
圖2繪示圖1之系統中之一型樣辨識處理器之一實例;
圖3繪示圖2之型樣辨識處理器中之一搜尋項胞之一實例;
圖4及圖5繪示針對一單個字元搜尋資料串流之圖3搜尋項胞;
圖6至圖8繪示包含針對一字搜尋資料串流之數個搜尋項胞之一辨識模組;
圖9繪示經組態以針對兩個字並行搜尋資料串流之辨識模組;
圖10至圖12繪示根據規定具有相同字首之多個字之一搜尋準則進行搜尋之辨識模組;
圖13繪示圖1之系統中之一型樣辨識處理器之一第二實例;
圖14繪示圖13之型樣辨識處理器中之一結果緩衝器之一實例;且
圖15圖解說明結合圖14之結果緩衝器利用之一系列暫存器庫。
12...資料串流
22...辨識模組
24...彙總模組
25...結果緩衝器
26...輸出匯流排
28...列解碼器
30...特徵胞
32...搜尋項陣列
34...偵測陣列
36...啟動路由矩陣
37...輸入導體
38...偵測匯流排
40...型樣匹配矩陣/鎖存器矩陣
42...型樣匹配矩陣/彙總路由矩陣
44...型樣匹配矩陣/臨限邏輯矩陣
46...型樣匹配矩陣/邏輯乘積矩陣
48...型樣匹配矩陣/邏輯總和矩陣
50...型樣匹配矩陣/初始化路由矩陣
51...輸出緩衝器
53...邏輯線
93...型樣辨識處理器
94...遮罩模組/臨限輸出遮罩
96...遮罩模組/乘積輸出遮罩
98...遮罩模組/總和輸出遮罩
100...遮罩模組/初始化輸出遮罩
Claims (23)
- 一種用於傳達一平行型樣搜尋引擎之型樣匹配結果之系統,該系統包括:一型樣辨識處理器,其包括:一個或多個型樣匹配矩陣,該等型樣匹配矩陣經調適以至少部分基於對一資料串流中之一個或多個值之搜尋而產生若干第一結果,其中該資料串流包含經由網際網路所接收的封包或經由一蜂巢式網路所接收的資料,及一個或多個遮罩模組,該等遮罩模組經調適以至少部分基於過濾該等第一結果產生若干第二結果;及一結果緩衝器,其中該結果緩衝器包含複數個先進先出(FIFO)位置,該複數個FIFO位置經調適以儲存由該型樣辨識處理器產生之該等第二結果。
- 如請求項1之系統,其中儲存於該複數個FIFO位置中之每一者中之該等第二結果儲存於對應於每一FIFO位置之一暫存器庫中。
- 如請求項2之系統,其中該複數個FIFO位置經調適以儲存該等第一結果及該等第二結果,且該暫存器庫包括複數個暫存器,每一者經調適以儲存對應於該等第一結果中之一者之匹配結果資料或對應於該等第二結果中之一者之經遮罩結果資料。
- 如請求項3之系統,其中該一個或多個型樣匹配矩陣包含一臨限邏輯矩陣,其經組態以暫存在該資料串流中一 值之一出現作為一臨限結果,且將該臨限結果作為該等第一結果之一子組輸出至該複數個暫存器中之一個暫存器。
- 如請求項4之系統,其中該一個或多個遮罩模組包含一臨限輸出遮罩,其經組態以:自該臨限邏輯矩陣接收該臨限結果;過濾該臨限結果;及將該經過濾臨限結果作為該等第二結果之一子組輸出至該複數個暫存器中之一額外暫存器。
- 如請求項4之系統,其中該一個或多個型樣匹配矩陣包含一邏輯乘積矩陣,其經組態以至少部分基於兩個或兩個以上臨限邏輯矩陣結果產生一乘積結果,且將該乘積結果作為該等第一結果之一子組輸出至該複數個暫存器中之一個暫存器。
- 如請求項6之系統,其中該一個或多個遮罩模組包含一乘積輸出遮罩,其經組態以:自該邏輯乘積矩陣接收該乘積結果;過濾該所接收之乘積結果;及將該經過濾乘積結果作為該等第二結果之一子組輸出至該複數個暫存器中之一額外暫存器。
- 如請求項6之系統,其中該一個或多個型樣匹配矩陣包含一邏輯總和矩陣,其經組態以至少部分基於兩個或兩個以上邏輯乘積矩陣結果產生一總和結果,且將該總和結果作為該等第一結果之一子組輸出至該複數個暫存器 中之一個暫存器。
- 如請求項8之系統,其中該一個或多個遮罩模組包含一總和輸出遮罩,其經組態以:自該邏輯總和矩陣接收該總和結果;過濾該所接收之總和結果;及將該經過濾匹配作為該等第二結果之一子組輸出至該複數個暫存器中之一額外暫存器。
- 如請求項3之系統,其中該一個或多個型樣匹配矩陣包含一初始化路由矩陣,其經組態以在該初始化路由矩陣確定一搜尋準則得到滿足時暫存一初始化結果,且將該初始化結果作為該等第一結果之一子組輸出至該複數個暫存器中之一個暫存器。
- 如請求項10之系統,其中該一個或多個遮罩模組包含一初始化輸出遮罩,其經組態以:自該初始化路由矩陣接收該初始化結果;過濾該所接收之初始化結果;及將該經過濾初始化結果作為該等第二結果之一子組輸出至該複數個暫存器中之一額外暫存器。
- 如請求項3之系統,其中可同時向該複數個暫存器中之每一者寫入。
- 一種用於傳達一平行型樣搜尋引擎之型樣匹配結果之方法,該方法包括:接收一資料串流,其中該資料串流包含經由網際網路所接收的封包或經由一蜂巢式網路所接收的資料; 經由一型樣辨識處理器之一個或多個型樣匹配矩陣搜尋該資料串流,該一個或多個型樣匹配矩陣經調適以至少部分基於對一資料串流中之一個或多個值之搜尋而產生若干第一結果;經由一個或多個遮罩模組過濾該等第一結果以產生若干第二結果;以及將該等第二結果儲存於包括一個或多個FIFO位置之一緩衝器中,該一個或多個FIFO位置包括一暫存器群組。
- 如請求項13之方法,其中經由該一個或多個遮罩模組過濾該等第一結果包括:對該等第一結果與儲存於該一個或多個遮罩模組之遮罩暫存器中之值進行AND處理以產生該等第二結果。
- 如請求項13之方法,其中經由該一個或多個型樣匹配矩陣搜尋該資料串流包含:經由一臨限邏輯矩陣、一邏輯乘積矩陣、一邏輯總和矩陣及一初始化路由矩陣中之一者或多者搜尋該資料串流。
- 如請求項13之方法,其中經由該一個或多個遮罩模組過濾該等第一結果包含:經由一臨限輸出遮罩、一乘積輸出遮罩、一總和輸出遮罩及一初始化輸出遮罩中之一者或多者過濾該等第一結果。
- 如請求項13之方法,其中可同時向該暫存器群組中之每一暫存器寫入。
- 如請求項13之方法,其包括在確定一狀態位元被啟動時存取該一個或多個FIFO位置中之至少一者,其中在將型 樣匹配資料儲存於該暫存器群組中時啟動該狀態位元。
- 如請求項13之方法,其包括在接收一中斷信號時存取該一個或多個FIFO位置中之至少一者,其中該中斷信號指示型樣匹配資料係儲存於該暫存器群組中。
- 一種用於傳達一平行型樣搜尋引擎之型樣匹配結果之系統,該系統包括:一型樣辨識處理器,其包括:複數個暫存器,其中該複數個暫存器經調適以儲存由該型樣辨識處理器之一個或多個匹配矩陣經由對一資料串流中之一個或多個值之搜尋而產生之結果資料,其中該資料串流包含經由網際網路所接收的封包或經由一蜂巢式網路所接收的資料,以及由一個或多個遮罩模組經由過濾該結果資料產生之經遮罩結果資料。
- 如請求項20之系統,其中該複數個暫存器可以一先進先出次序分組成暫存器庫。
- 如請求項21之系統,其包括一中央處理單元,該中央處理單元經調適以在確定一狀態位元是否已啟動時存取該等暫存器庫中之至少一者,其中該狀態位元對應於正被寫入至至少一個暫存器庫中之該複數個暫存器中之結果資料。
- 如請求項21之系統,其包括一中央處理單元,該中央處理單元經調適以接收一中斷信號且在接收該中斷信號時存取該等暫存器庫中之至少一者,其中該中斷信號對應 於正被寫入至至少一個暫存器庫中之該複數個暫存器中之結果資料。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/352,311 US8843523B2 (en) | 2009-01-12 | 2009-01-12 | Devices, systems, and methods for communicating pattern matching results of a parallel pattern search engine |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201032077A TW201032077A (en) | 2010-09-01 |
TWI489300B true TWI489300B (zh) | 2015-06-21 |
Family
ID=41796536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098145593A TWI489300B (zh) | 2009-01-12 | 2009-12-29 | 用於傳達平行型樣搜尋引擎之型樣匹配結果之裝置、系統及方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8843523B2 (zh) |
EP (1) | EP2386081B1 (zh) |
JP (1) | JP5387866B2 (zh) |
KR (1) | KR101320713B1 (zh) |
CN (1) | CN102272715B (zh) |
TW (1) | TWI489300B (zh) |
WO (1) | WO2010080445A2 (zh) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8209521B2 (en) | 2008-10-18 | 2012-06-26 | Micron Technology, Inc. | Methods of indirect register access including automatic modification of a directly accessible address register |
US8938590B2 (en) | 2008-10-18 | 2015-01-20 | Micron Technology, Inc. | Indirect register access method and system |
US7917684B2 (en) | 2008-11-05 | 2011-03-29 | Micron Technology, Inc. | Bus translator |
US8402188B2 (en) | 2008-11-10 | 2013-03-19 | Micron Technology, Inc. | Methods and systems for devices with a self-selecting bus decoder |
US20100138575A1 (en) | 2008-12-01 | 2010-06-03 | Micron Technology, Inc. | Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices |
US10007486B2 (en) | 2008-12-01 | 2018-06-26 | Micron Technology, Inc. | Systems and methods to enable identification of different data sets |
US8281395B2 (en) | 2009-01-07 | 2012-10-02 | Micron Technology, Inc. | Pattern-recognition processor with matching-data reporting module |
US8214672B2 (en) | 2009-01-07 | 2012-07-03 | Micron Technology, Inc. | Method and systems for power consumption management of a pattern-recognition processor |
US20100174887A1 (en) | 2009-01-07 | 2010-07-08 | Micron Technology Inc. | Buses for Pattern-Recognition Processors |
US9501705B2 (en) | 2009-12-15 | 2016-11-22 | Micron Technology, Inc. | Methods and apparatuses for reducing power consumption in a pattern recognition processor |
US8489534B2 (en) | 2009-12-15 | 2013-07-16 | Paul D. Dlugosch | Adaptive content inspection |
US9323994B2 (en) | 2009-12-15 | 2016-04-26 | Micron Technology, Inc. | Multi-level hierarchical routing matrices for pattern-recognition processors |
US8766666B2 (en) | 2010-06-10 | 2014-07-01 | Micron Technology, Inc. | Programmable device, hierarchical parallel machines, and methods for providing state information |
US8601013B2 (en) | 2010-06-10 | 2013-12-03 | Micron Technology, Inc. | Analyzing data using a hierarchical structure |
JP5763783B2 (ja) | 2011-01-25 | 2015-08-12 | マイクロン テクノロジー, インク. | 正規表現をコンパイルするための方法および装置 |
KR101607736B1 (ko) | 2011-01-25 | 2016-03-30 | 마이크론 테크놀로지, 인크. | 오토마톤의 진입 차수 및/또는 진출 차수를 제어하기 위한 양화 언롤링 |
US8843911B2 (en) | 2011-01-25 | 2014-09-23 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
US8788991B2 (en) | 2011-01-25 | 2014-07-22 | Micron Technology, Inc. | State grouping for element utilization |
US9246928B2 (en) * | 2011-05-02 | 2016-01-26 | International Business Machines Corporation | Compiling pattern contexts to scan lanes under instruction execution constraints |
US9443156B2 (en) | 2011-12-15 | 2016-09-13 | Micron Technology, Inc. | Methods and systems for data analysis in a state machine |
US8593175B2 (en) | 2011-12-15 | 2013-11-26 | Micron Technology, Inc. | Boolean logic in a state machine lattice |
US8680888B2 (en) | 2011-12-15 | 2014-03-25 | Micron Technologies, Inc. | Methods and systems for routing in a state machine |
US8648621B2 (en) | 2011-12-15 | 2014-02-11 | Micron Technology, Inc. | Counter operation in a state machine lattice |
US8782624B2 (en) | 2011-12-15 | 2014-07-15 | Micron Technology, Inc. | Methods and systems for detection in a state machine |
US20130275709A1 (en) | 2012-04-12 | 2013-10-17 | Micron Technology, Inc. | Methods for reading data from a storage buffer including delaying activation of a column select |
US9389841B2 (en) | 2012-07-18 | 2016-07-12 | Micron Technology, Inc. | Methods and systems for using state vector data in a state machine engine |
US9304968B2 (en) | 2012-07-18 | 2016-04-05 | Micron Technology, Inc. | Methods and devices for programming a state machine engine |
US9524248B2 (en) | 2012-07-18 | 2016-12-20 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
US9235798B2 (en) | 2012-07-18 | 2016-01-12 | Micron Technology, Inc. | Methods and systems for handling data received by a state machine engine |
US9063532B2 (en) * | 2012-08-31 | 2015-06-23 | Micron Technology, Inc. | Instruction insertion in state machine engines |
US9501131B2 (en) | 2012-08-31 | 2016-11-22 | Micron Technology, Inc. | Methods and systems for power management in a pattern recognition processing system |
US9075428B2 (en) * | 2012-08-31 | 2015-07-07 | Micron Technology, Inc. | Results generation for state machine engines |
US9703574B2 (en) | 2013-03-15 | 2017-07-11 | Micron Technology, Inc. | Overflow detection and correction in state machine engines |
US9448965B2 (en) | 2013-03-15 | 2016-09-20 | Micron Technology, Inc. | Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine |
US10430210B2 (en) | 2014-12-30 | 2019-10-01 | Micron Technology, Inc. | Systems and devices for accessing a state machine |
US11366675B2 (en) | 2014-12-30 | 2022-06-21 | Micron Technology, Inc. | Systems and devices for accessing a state machine |
WO2016109571A1 (en) | 2014-12-30 | 2016-07-07 | Micron Technology, Inc | Devices for time division multiplexing of state machine engine signals |
US10430472B2 (en) * | 2015-02-26 | 2019-10-01 | Cavium, Llc | Apparatus and method for collecting responses to a plurality of parallel lookup queries from a flow of packets at a network switch |
US10846103B2 (en) | 2015-10-06 | 2020-11-24 | Micron Technology, Inc. | Methods and systems for representing processing resources |
US10977309B2 (en) | 2015-10-06 | 2021-04-13 | Micron Technology, Inc. | Methods and systems for creating networks |
US10691964B2 (en) | 2015-10-06 | 2020-06-23 | Micron Technology, Inc. | Methods and systems for event reporting |
US10146555B2 (en) | 2016-07-21 | 2018-12-04 | Micron Technology, Inc. | Adaptive routing to avoid non-repairable memory and logic defects on automata processor |
US10268602B2 (en) | 2016-09-29 | 2019-04-23 | Micron Technology, Inc. | System and method for individual addressing |
US10019311B2 (en) | 2016-09-29 | 2018-07-10 | Micron Technology, Inc. | Validation of a symbol response memory |
US10592450B2 (en) | 2016-10-20 | 2020-03-17 | Micron Technology, Inc. | Custom compute cores in integrated circuit devices |
US10929764B2 (en) | 2016-10-20 | 2021-02-23 | Micron Technology, Inc. | Boolean satisfiability |
EP3483014B1 (en) * | 2017-11-10 | 2021-05-19 | Nxp B.V. | Pattern detection for automotive access |
US10782885B1 (en) * | 2019-04-03 | 2020-09-22 | Micron Technology, Inc. | Memory including search logic |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4446452A (en) * | 1981-06-23 | 1984-05-01 | Northern Telecom Limited | Magnitude comparator circuit and method |
US20030135653A1 (en) * | 2002-01-17 | 2003-07-17 | Marovich Scott B. | Method and system for communications network |
US6751038B1 (en) * | 1999-10-29 | 2004-06-15 | Kabushiki Kaisha Toshiba | Data write control system and method therefor |
US20080021677A1 (en) * | 2001-05-24 | 2008-01-24 | Buxton Paul M | Methods and apparatus for data analysis |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5300830A (en) * | 1992-05-15 | 1994-04-05 | Micron Semiconductor, Inc. | Programmable logic device macrocell with an exclusive feedback and exclusive external input lines for registered and combinatorial modes using a dedicated product term for control |
US5331227A (en) * | 1992-05-15 | 1994-07-19 | Micron Semiconductor, Inc. | Programmable logic device macrocell with an exclusive feedback line and an exclusive external input line |
JPH0749927A (ja) * | 1993-08-09 | 1995-02-21 | Nireco Corp | パターン認識方法 |
US5881217A (en) * | 1996-11-27 | 1999-03-09 | Hewlett-Packard Company | Input comparison circuitry and method for a programmable state machine |
US5925145A (en) * | 1997-04-28 | 1999-07-20 | Credence Systems Corporation | Integrated circuit tester with cached vector memories |
US6332152B1 (en) | 1997-12-02 | 2001-12-18 | Matsushita Electric Industrial Co., Ltd. | Arithmetic unit and data processing unit |
JP2971875B2 (ja) | 1997-12-02 | 1999-11-08 | 松下電器産業株式会社 | 演算装置およびデータ処理装置 |
US6880087B1 (en) * | 1999-10-08 | 2005-04-12 | Cisco Technology, Inc. | Binary state machine system and method for REGEX processing of a data stream in an intrusion detection system |
US6240003B1 (en) * | 2000-05-01 | 2001-05-29 | Micron Technology, Inc. | DRAM content addressable memory using part of the content as an address |
JP2002055830A (ja) * | 2000-05-29 | 2002-02-20 | Seiko Epson Corp | 割込信号生成装置及び割込信号の生成方法 |
US20070192863A1 (en) * | 2005-07-01 | 2007-08-16 | Harsh Kapoor | Systems and methods for processing data flows |
US7225107B2 (en) * | 2001-05-24 | 2007-05-29 | Test Advantage, Inc. | Methods and apparatus for data analysis |
US6829608B2 (en) * | 2001-07-30 | 2004-12-07 | International Business Machines Corporation | Systems and methods for discovering mutual dependence patterns |
US6959297B2 (en) * | 2002-04-25 | 2005-10-25 | Winnow Technology, Llc | System and process for searching within a data stream using a pointer matrix and a trap matrix |
US7451458B2 (en) * | 2002-08-02 | 2008-11-11 | Tuchow Jonathan A | Software methods of an optical networking apparatus with multiple multi-protocol optical networking modules having packet filtering resources |
US7146643B2 (en) * | 2002-10-29 | 2006-12-05 | Lockheed Martin Corporation | Intrusion detection accelerator |
US7089352B2 (en) * | 2002-12-23 | 2006-08-08 | Micron Technology, Inc. | CAM modified to be used for statistic calculation in network switches and routers |
US6944710B2 (en) * | 2002-12-30 | 2005-09-13 | Micron Technology, Inc. | Multiple category CAM |
US6906938B2 (en) * | 2003-08-15 | 2005-06-14 | Micron Technology, Inc. | CAM memory architecture and a method of forming and operating a device according to a CAM memory architecture |
US7860915B2 (en) * | 2003-12-29 | 2010-12-28 | Xilinx, Inc. | Digital signal processing circuit having a pattern circuit for determining termination conditions |
US20050289513A1 (en) * | 2004-06-17 | 2005-12-29 | International Business Machines Corporation | Matrix pattern match techniques for uninstalling multiple dependent components |
JP4154374B2 (ja) * | 2004-08-25 | 2008-09-24 | 株式会社日立ハイテクノロジーズ | パターンマッチング装置及びそれを用いた走査型電子顕微鏡 |
US7392229B2 (en) * | 2005-02-12 | 2008-06-24 | Curtis L. Harris | General purpose set theoretic processor |
JP2007047575A (ja) * | 2005-08-11 | 2007-02-22 | Canon Inc | パターンマッチング方法およびその装置、および音声情報検索システム |
FR2891075B1 (fr) * | 2005-09-21 | 2008-04-04 | St Microelectronics Sa | Circuit de memoire pour automate de reconnaissance de caracteres de type aho-corasick et procede de memorisation de donnees dans un tel circuit |
US7512634B2 (en) * | 2006-06-05 | 2009-03-31 | Tarari, Inc. | Systems and methods for processing regular expressions |
US8065249B1 (en) * | 2006-10-13 | 2011-11-22 | Harris Curtis L | GPSTP with enhanced aggregation functionality |
US7774286B1 (en) * | 2006-10-24 | 2010-08-10 | Harris Curtis L | GPSTP with multiple thread functionality |
US9021582B2 (en) * | 2007-04-24 | 2015-04-28 | Juniper Networks, Inc. | Parallelized pattern matching using non-deterministic finite automata |
US7995695B2 (en) * | 2008-01-04 | 2011-08-09 | Agere Systems Inc. | Data alignment method for arbitrary input with programmable content deskewing info |
-
2009
- 2009-01-12 US US12/352,311 patent/US8843523B2/en active Active
- 2009-12-16 KR KR1020117018778A patent/KR101320713B1/ko active IP Right Grant
- 2009-12-16 WO PCT/US2009/068280 patent/WO2010080445A2/en active Application Filing
- 2009-12-16 JP JP2011545360A patent/JP5387866B2/ja active Active
- 2009-12-16 CN CN200980154488.0A patent/CN102272715B/zh active Active
- 2009-12-16 EP EP09802068.8A patent/EP2386081B1/en active Active
- 2009-12-29 TW TW098145593A patent/TWI489300B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4446452A (en) * | 1981-06-23 | 1984-05-01 | Northern Telecom Limited | Magnitude comparator circuit and method |
US6751038B1 (en) * | 1999-10-29 | 2004-06-15 | Kabushiki Kaisha Toshiba | Data write control system and method therefor |
US20080021677A1 (en) * | 2001-05-24 | 2008-01-24 | Buxton Paul M | Methods and apparatus for data analysis |
US20030135653A1 (en) * | 2002-01-17 | 2003-07-17 | Marovich Scott B. | Method and system for communications network |
Also Published As
Publication number | Publication date |
---|---|
US8843523B2 (en) | 2014-09-23 |
JP2012515378A (ja) | 2012-07-05 |
WO2010080445A3 (en) | 2010-08-26 |
JP5387866B2 (ja) | 2014-01-15 |
CN102272715B (zh) | 2016-02-03 |
EP2386081A2 (en) | 2011-11-16 |
KR101320713B1 (ko) | 2013-10-21 |
TW201032077A (en) | 2010-09-01 |
WO2010080445A2 (en) | 2010-07-15 |
CN102272715A (zh) | 2011-12-07 |
US20100185647A1 (en) | 2010-07-22 |
KR20110110798A (ko) | 2011-10-07 |
EP2386081B1 (en) | 2019-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI489300B (zh) | 用於傳達平行型樣搜尋引擎之型樣匹配結果之裝置、系統及方法 | |
US10838966B2 (en) | Devices, systems, and methods to synchronize simultaneous DMA parallel processing of a single data stream by multiple devices | |
EP2350921B1 (en) | Pattern-recognition processor with results buffer | |
TWI519963B (zh) | 用以完成可變寬度資料輸入之方法及系統 | |
TWI419002B (zh) | 具有資料匹配報告模組之型樣辨識處理器 | |
TWI507977B (zh) | 啟用不同資料集之識別之系統及方法 | |
TWI524203B (zh) | 用於保存及/或復原圖型辨識處理器之狀態之方法及裝置 | |
TWI414998B (zh) | 型樣辨識處理器之電力消耗管理之方法及系統 | |
TWI409695B (zh) | 用於配置裝置之系統、方法及裝置 | |
TWI465945B (zh) | 用於型樣辨識處理器中降低電力消耗之方法及裝置 | |
TW201426534A (zh) | 用以同步一單一資料串流之平行處理的裝置、系統及方法 | |
WO2010045029A1 (en) | Indirect register access method and system | |
WO2010045028A1 (en) | System and method of indirect register access |