TWI436271B - 具有結果緩衝器之型樣辨識處理器 - Google Patents
具有結果緩衝器之型樣辨識處理器 Download PDFInfo
- Publication number
- TWI436271B TWI436271B TW098137284A TW98137284A TWI436271B TW I436271 B TWI436271 B TW I436271B TW 098137284 A TW098137284 A TW 098137284A TW 98137284 A TW98137284 A TW 98137284A TW I436271 B TWI436271 B TW I436271B
- Authority
- TW
- Taiwan
- Prior art keywords
- search
- buffer
- data stream
- data
- result
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0748—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明之實施例大體上係關於型樣辨識處理器,且更具體言之,在某些實施例中,係關於具有結果緩衝器之型樣辨識處理器。
在計算之領域中,型樣辨識任務日益具挑戰性。電腦之間傳輸愈來愈大量之資料,且使用者想要識別之型樣的數目正增加。舉例而言,常常藉由在資料流中搜尋型樣(例如,特定片語或多條程式碼)而偵測濫發信息(spam)或惡意軟體(malware)。因為可實施新型樣來搜尋新變體,所以型樣之數目隨著濫發信息及惡意軟體的變化而增加。搜尋資料流以發現此等型樣中之每一者可形成計算瓶頸。常常,當接收到資料流時,一次搜尋一個資料流以發現每一型樣。在系統準備好搜尋資料流之下一部分之前的延遲隨著型樣之數目而增加。因此,型樣辨識可能減緩資料之接收。
匹配之不規則出現常常使型樣辨識任務變得複雜。某些資料流可能在短暫連續中匹配若干型樣,且報告此等匹配或以其他方式作用於此等匹配可為困難的,因為系統之其他部分在出現新匹配時可能未儘快回應。在其他例項中,在出現匹配之前可能接收資料流歷經相對較長之時間段,使得其他組件處理匹配之能力未經使用。型樣辨識期間之結果資料的不規則流動使得難以設計與型樣辨識硬體介接之系統。
圖1描繪搜尋資料流12之系統10的實例。系統10可包括根據搜尋準則16搜尋資料流12之型樣辨識處理器14。
每一搜尋準則可指定一或多個目標表式(target expression),亦即,型樣。片語「目標表式」指代型樣辨識處理器14搜尋之資料序列。目標表式之實例包括:拼寫某一詞的字元序列、指定基因的遺傳鹼基對序列、形成影像之一部分的圖畫或視訊檔案中的位元序列、形成程式之一部分的可執行檔案中的位元序列,或形成歌曲或口語片語之一部分的音訊檔案中的位元序列。
搜尋準則可指定一個以上目標表式。舉例而言,搜尋準則可指定以字母序列「cl」開始的所有五個字母之詞、以字母序列「cl」開始的任何詞、包括詞「cloud」三次以上之段落等。可能的目標表式集合之數目為任意大的,例如,可存在與資料流可呈現之資料的排列一樣多的目標表式。可以多種格式表達搜尋準則,包括正規表式,正規表式為一種在不需要列舉每一目標表式之情況下簡潔地指定目標表式集合之程式化語言。
可自一或多個搜尋項建構每一搜尋準則。因此,搜尋準則之每一目標表式可包括一或多個搜尋項及可使用共同搜尋項之一些目標表式。如本文所使用,片語「搜尋項」指代單個搜尋循環期間所搜尋的資料序列。該資料序列可包括呈二進位格式或其他格式(例如,十進位(base ten)、ASCII等)的多個位元之資料。序列可以單個數位或多個數位(例如,若干二進位數位)對資料進行編碼。舉例而言,型樣辨識處理器14可一次一字元地搜尋文字資料流12,且搜尋項可指定單個字元之一集合(例如,字母「a」,字母「a」或「e」),或指定所有單個字元之一集合的通配搜尋項。
搜尋項可比指定字元(或由資料流表達之資訊的其他形素(grapheme)(亦即,基本單元),例如,音符、遺傳鹼基對、10進位數位或子像素)之位元的數目小或大。舉例而言,搜尋項可為8位元,且單個字元可為16位元,在此情況下,兩個連續搜尋項可能指定單個字元。
編譯器18可使搜尋準則16針對型樣辨識處理器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轉換為串列資料流。在一些實施例中,資料流12可連續地呈現項,但可並行接收表達項中之每一者的位元。可自系統10之外部的源接收資料流12,或可藉由詢問記憶體裝置或自所儲存之資料形成資料流12來形成資料流12。
設計者可視資料流12中之資料的類型而選擇不同類型之搜尋準則。舉例而言,搜尋準則16可為病毒定義檔案。可使病毒或其他惡意軟體特徵化,且可使用惡意軟體之諸態樣來形成指示資料流12是否可能遞送惡意軟體的搜尋準則。可將所得搜尋準則儲存於伺服器上,且用戶端系統之操作者可訂用將搜尋準則下載至系統10的服務。當不同類型之惡意軟體出現時,搜尋準則16可自伺服器週期性地更新。搜尋準則亦可用以指定可能經由網路接收之不合需要之內容,例如,非吾人所樂見之郵件(通常稱為濫發信息)或使用者認為不適宜之其他內容。
資料流12可能由對由系統10接收之資料感興趣的第三方搜尋。舉例而言,可監視資料流12以發現出現於具有版權之作品中的文字、音訊序列,或視訊序列。亦可監視資料流12以發現與刑事調查或民事訴訟有關或雇主感興趣之言論。
搜尋準則16亦可在資料流12中包括型樣,對於該等型樣而言,轉譯(例如)在可由CPU 20定址之記憶體或型樣辨識處理器14中為可用的。舉例而言,搜尋準則16可各自指定英文詞,該英文詞對應之西班牙語詞儲存於記憶體中。在另一實例中,搜尋準則16可指定資料流12的經編碼之版本(例如,MP3、MPEG 4、FLAC、Ogg Vorbis等),對於其而言,資料流12的經解碼之版本為可用的,或反之亦然。
型樣辨識處理器14可為與CPU 20一起整合為單個組件(諸如,單個裝置)或可形成為單獨組件之硬體。舉例而言,型樣辨識處理器14可為單獨積體電路。亦可將型樣辨識處理器14稱為「共處理器(co-processor)」或「型樣辨識共處理器」。
圖2描繪型樣辨識處理器14之實例。型樣辨識處理器14可包括辨識模組22及具有輸出緩衝器51之聚合模組24。輸出緩衝器51可包括結果緩衝器25。辨識模組22可經組態以比較所接收之項與搜尋項,且辨識模組22及聚合模組24兩者可合作判定使項與搜尋項匹配是否滿足搜尋準則。如下文將關於圖13進一步描述,結果緩衝器25可緩衝來自型樣辨識處理器14之其他部分的結果資料。
辨識模組22可包括列解碼器28及複數個特徵單元30。每一特徵單元30可指定搜尋項,且特徵單元30之群組可形成並行有限狀態機,並行有限狀態機形成搜尋準則。特徵單元30之組件可形成搜尋項陣列32、偵測陣列34及啟動路由矩陣36。搜尋項陣列32可包括複數個輸入導體37,輸入導體37中之每一者可使特徵單元30中之每一者與解碼器28通信。
列解碼器28可基於資料流12之內容在複數個輸入導體37中選擇特定導體。舉例而言,列解碼器28可為基於可表示一個項的所接收之位元組的值啟動256列中之一者的一位元組至256列解碼器。一位元組項0000 0000可對應於複數個輸入導體37中之頂部列,且一位元組項1111 1111可對應於複數個輸入導體37中之底部列。因此,可視自資料流12接收哪些項來選擇不同之輸入導體37。當接收到不同項時,列解碼器28可撤銷啟動對應於前一項之列,且啟動對應於新項之列。
偵測陣列34可耦接至將指示搜尋準則之完全或部分滿足的信號輸出至聚合模組24之偵測匯流排38。啟動路由矩陣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可包括接收臨限邏輯矩陣44之輸出的輸出緩衝器51、聚合路由矩陣42及邏輯和矩陣48。聚合模組24之輸出可在輸出匯流排26上自輸出緩衝器51傳輸至CPU 20(圖1)。如下文進一步描述,輸出緩衝器51可包括或可自身為結果緩衝器25。在一些實施例中,輸出多工器可多路傳輸來自此等組件42、44及48之信號,且將指示準則之滿足或搜尋項之匹配的信號輸出至CPU 20(圖1)。在其他實施例中,可在不經由輸出多工器傳輸信號之情況下報告來自型樣辨識處理器14之結果,此並不暗示亦不可省略本文所描述之任何其他特徵。舉例而言,來自臨限邏輯矩陣44、邏輯積矩陣46、邏輯和矩陣48或初始化路由矩陣50之信號可在輸出匯流排26上並行傳輸至CPU。
圖3說明搜尋項陣列32(圖2)中單個特徵單元30之部分,特徵單元30為在此處稱為搜尋項單元54之組件。搜尋項單元54可包括輸出導體56及複數個記憶體單元58。記憶體單元58中之每一者可耦接至輸出導體56及複數個輸入導體37中之導體中的一者。回應於記憶體單元58中之每一者的輸入導體37經選擇,記憶體單元58中之每一者可輸出指示其儲存值的值,經由輸出導體56輸出資料。在一些實施例中,複數個輸入導體37可稱為「字線」,且輸出導體56可稱為「資料線」。
記憶體單元58可包括多種類型之記憶體單元中的任一者。舉例而言,記憶體單元58可為揮發性記憶體,諸如具有電晶體及電容器之動態隨機存取記憶體(DRAM)單元。電晶體之源極與汲極可分別連接至電容器板及輸出導體56,且電晶體之閘極可連接至輸入導體37中之一者。在揮發性記憶體之另一實例中,記憶體單元58中之每一者可包括靜態隨機存取記憶體(SRAM)單元。SRAM單元可具有藉由由輸入導體37中之一者控制的存取電晶體選擇性地耦接至輸出導體56之輸出。記憶體單元58亦可包括非揮發性記憶體,諸如相變記憶體(例如,雙向裝置(ovonic device))、快閃記憶體、矽-氧化物-氮化物-氧化物-矽(silicon-oxide-nitride-oxide-silicon,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中之每一者可包括指示特徵單元63、64或66是作用中的還是非作用中之記憶體單元70,諸如上文所描述之類型的記憶體單元中之一者(例如,正反器)。偵測單元68可經組態以將指示偵測單元是否在作用中,及是否已自其相關聯之搜尋項單元54接收到指示匹配之信號的信號輸出至啟動路由矩陣36。非作用中的特徵單元63、64及66可能漠視匹配。偵測單元68中之每一者可包括與來自記憶體單元70及輸出導體56之輸入的及閘(AND gate)。AND閘之輸出可經路由至偵測匯流排38及啟動路由矩陣36兩者,或一者或另一者。
啟動路由矩陣36又可藉由寫入至偵測陣列34中之記憶體單元70而選擇性地啟動特徵單元63、64及66。啟動路由矩陣36可根據搜尋準則啟動特徵單元63、64或66,且其搜尋項經搜尋以發現資料流12中之下一者。
在圖6中,資料流12呈現字母「b」。作為回應,特徵單元63、64及66中之每一者可在其輸出導體56上輸出指示儲存於連接至導體62之記憶體單元58中的值之信號,導體62表示字母「b」。偵測單元56接著可各自判定其是否已接收到指示匹配之信號且其是否在作用中。因為特徵單元63經組態以偵測字母「b」且在作用中,如由其記憶體單元70所指示,所以特徵單元63中之偵測單元68可將指示已匹配搜尋準則之第一搜尋項的信號輸出至啟動路由矩陣36。
如由圖7所說明,在匹配第一搜尋項後,啟動路由矩陣36可藉由將1寫入至其偵測單元68中之其記憶體單元70而啟動下一特徵單元64。在下一項滿足第一搜尋項之情況下(例如,若接收到項序列「bbig」),啟動路由矩陣36亦可維持特徵單元63之作用中狀態。在搜尋資料流12之一部分或大體上所有時間期間,可將搜尋準則之第一搜尋項維持於作用中狀態。
在圖7中,資料流12向辨識模組22呈現字母「i」。作為回應,特徵單元63、64及66中之每一者可在其輸出導體56上輸出指示儲存於連接至導體72之記憶體單元58中的值之信號,導體72表示字母「i」。偵測單元56接著可各自判定其是否已接收到指示匹配之信號且其是否在作用中。因為特徵單元64經組態以偵測字母「i」且在作用中,如由其記憶體單元70所指示,所以特徵單元64中之偵測單元68可將指示已匹配其搜尋準則之下一搜尋項的信號輸出至啟動路由矩陣36。
接著,啟動路由矩陣36可啟動特徵單元66,如由圖8所說明。可在評估下一項之前撤銷啟動特徵單元64。舉例而言,可由特徵單元64之偵測單元68在偵測循環之間重新設定其記憶體單元70而撤銷啟動特徵單元64,或啟動路由矩陣36可撤銷啟動特徵單元64。
在圖8中,資料流12向列解碼器28呈現項「g」,列解碼器28選擇表示項「g」之導體74。作為回應,特徵單元63、64及66中之每一者可在其輸出導體56上輸出指示儲存於連接至導體74之記憶體單元58中的值之信號,導體74表示字母「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在作用中。一實例為特徵單元64,其在由圖6至圖8中之特徵單元63請求時在作用中,及特徵單元66,其在由特徵單元64請求時在作用中。
特徵單元63、64或66可為「自啟動」的,意謂一旦其經啟動,只要其搜尋項經匹配其即啟動自身。舉例而言,具有由任何數位(numerical digit)匹配之搜尋項的自啟動特徵單元可經由序列「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,啟動路由單元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向辨識模組22呈現字母「c」,且特徵單元63在作用中且偵測匹配。作為回應,啟動路由矩陣36可啟動下一特徵單元64。啟動路由矩陣36亦可維持特徵單元63之作用中狀態,因為特徵單元63為搜尋準則中之第一搜尋項。
在圖11中,資料流12呈現字母「l」,且特徵單元64辨識匹配且在作用中。作為回應,啟動路由矩陣36可將啟動信號傳輸至第一字尾90之第一特徵單元66及第二字尾92之第一特徵單元82兩者。在其他實例中,可啟動更多字尾,或多個字首可啟動一或多個字尾。
接著,如由圖12所說明,資料流12向辨識模組22呈現字母「o」,且第二字尾92之特徵單元82偵測匹配且在作用中。作為回應,啟動路由矩陣36可啟動第二字尾92之下一特徵單元84。因為允許特徵單元66變成非作用中的,所以可能終止第一字尾90之搜尋。由圖10至圖12所說明之步驟可經由字母「u」及「d」而繼續,或在下一次匹配字首88之前搜尋可終止。
圖13說明耦接至型樣辨識處理器14之結果緩衝器25的實例。如上文參看圖2所描述,結果緩衝器25可包括於輸出緩衝器51中。結果緩衝器25可包括先進先出(FIFO)緩衝器94、緩衝器寫入控制模組96、緩衝器讀取控制模組98及緩衝器組態模組100。結果緩衝器25可整合地形成為型樣辨識處理器14之部分(例如,在同一矽本體上),或其可為單獨組件或單獨組件之部分。結果緩衝器25可經由上游結果匯流排102自型樣辨識處理器14接收結果資料,且結果緩衝器25可經由下游結果匯流排104將結果資料輸出至CPU 20(圖1)。組態匯流排106可使CPU 20與結果緩衝器25中之緩衝器組態模組100及可用於組態型樣辨識處理器14之型樣辨識處理器組態模組108通信。
FIFO緩衝器94可經組態以儲存複數個記錄110。每一記錄110可儲存結果資料,例如,關於準則之滿足的資料。每一記錄110可對應於一準則之滿足的一例項,或關於準則之滿足的資料可儲存於若干記錄110(例如,若干相鄰或以其他方式連續的記錄110)中。
每一記錄110可包括用於儲存結果狀態資訊112、內務資訊114及結果資料116之欄位。其他實施例可包括額外欄位或更少之欄位。結果狀態欄位112可儲存識別資料流12,且將資料流12與型樣辨識處理器14可接收之其他資料流區分的資料。
內務欄位114可儲存指示型樣辨識處理器14在滿足準則時之狀態的資料。舉例而言,內務欄位114可儲存指示是否已發生錯誤條件之資料。錯誤條件之實例包括輸入資料溢位或FIFO緩衝器溢滿條件。舉例而言,FIFO緩衝器94可包括大於約32個記錄、大於約64個記錄、大於約128個記錄、大於約256個記錄,或大於約512個記錄。
結果資料116可包括諸如滿足哪一準則之資料、來自滿足準則之資料流12的項序列、指向滿足準則之資料流12之部分的項計數(例如,位元計數),或接收到滿足準則之資料流之部分的時間段。
緩衝器寫入控制模組96可經組態以控制將來自上游結果匯流排102之哪一資料寫入至FIFO緩衝器94中之哪一記錄110。緩衝器寫入控制模組96可包括每當滿足準則或每當將結果資料寫入至新記錄110時遞增或遞減之計數器。緩衝器寫入控制模組亦可包括指示哪一記錄110最近輸出至CPU 20之記憶體,且緩衝器寫入控制模組96可經組態以將來自上游結果匯流排102之資料寫入至含有已被傳遞至CPU 20之資料的記錄110。
類似地,緩衝器讀取控制模組98可經組態以指示哪一記錄110為未自FIFO緩衝器94讀取之最舊記錄。舉例而言,緩衝器讀取控制模組98可包括每當自FIFO緩衝器94讀取記錄時遞增或遞減之計數器,且計數器之計數可識別最舊之未經讀取記錄110。緩衝器讀取控制模組98可經組態以自CPU 20接收讀取命令信號118,且藉由使FIFO緩衝器94輸出由最舊之未經讀取記錄110儲存的資料而回應於該讀取命令。
結果匯流排104可包括與傳遞資料流12之匯流排不同的導體,使得資料流12可在下游結果匯流排104輸出資料之相同時間輸入資料。在其中結果緩衝器25與型樣辨識處理器14整合地形成之實施例中,型樣辨識處理器14可包括用於將資料流12傳遞入且將結果傳遞出之單獨接腳。因此,可在輸入資料流之相同時間輸出結果資料。
在操作中,型樣辨識處理器14可以上文參看圖2至圖12所描述之方式搜尋資料流12,且來自搜尋之結果在傳遞至CPU 20之前可在結果緩衝器25中緩衝。當滿足準則時,可將與準則之滿足有關的資料,諸如指示滿足哪一準則之資料、指示資料流12中之哪些項滿足準則的資料,及指示哪一資料流經搜尋之資料經由上游結果匯流排102傳輸至結果緩衝器25。
在接收到此資料時,緩衝器寫入控制模組96可判定FIFO緩衝器94中是否存在任何空閒記錄,例如,儲存已被傳遞至CPU 20之資料的記錄110,或不儲存任何資料的記錄110。若無空閒記錄可用,則緩衝器寫入控制模組96可以信號通知型樣辨識處理器14停止搜尋資料流,且當CPU 20經由FIFO緩衝器94中之記錄工作且建立空間時,以信號通知CPU 20暫停資料流12之傳輸。緩衝器寫入控制模組96亦可將指示型樣辨識處理器14進入結果緩衝器溢位狀態之資料儲存於當前或後續記錄條目的內務資訊欄位114中。
若緩衝器寫入控制模組96判定至少一空閒記錄110可用,則緩衝器寫入控制模組96可將來自上游結果資料匯流排102之結果資料寫入至空閒記錄110。緩衝器寫入控制模組96可將記錄110指定為已被寫入但尚未被讀取,且緩衝器寫入控制模組96可將記錄110指定為相對於其他經寫入之記錄的最新記錄。
在大體上相同之時間,或在其他時間,CPU 20可將讀取控制信號118傳輸至緩衝器讀取控制模組98,藉此以信號通知緩衝器讀取控制模組98輸出尚未被讀取之最舊之記錄110中的資料。緩衝器讀取控制模組98可判定是否存在任何未經讀取之記錄110。若無未經讀取之記錄存在,則緩衝器讀取控制模組98可以信號通知CPU 20當前不存在未經讀取之記錄。若確實存在未經讀取之記錄110,則緩衝器讀取控制模組98可識別最舊之未經讀取之記錄,且將由該最舊之未經讀取之記錄110儲存的資料傳遞至CPU 20。在其他實施例中,緩衝器讀取控制模組98可傳遞由最舊之未經讀取之記錄110儲存的資料之部分(例如,滿足哪一準則),且CPU 20可判定是否請求更多之由記錄110儲存的資料(例如,來自資料流12之哪些項滿足準則)。緩衝器讀取控制模組98接著可將彼記錄指定為已被讀取,且為安全的以由緩衝器寫入控制模組96覆寫。
結果緩衝器25可減少資料流12之搜尋中的中斷。當資料流12滿足搜尋準則比CPU 20可接收或處理搜尋結果快時,結果緩衝器25可在CPU 20趕上時儲存未經處理之結果資料。即使當在大約相同之時間滿足若干搜尋準則時,結果緩衝器25亦可平滑化結果資料至CPU 20之流動,結果,在CPU 20處理由結果緩衝器25儲存之搜尋結果的待辦事項(backlog)時,型樣辨識處理器14可繼續搜尋資料流12。
雖然本發明可容許各種修改及替代形式,但圖式中已藉由實例而展示且本文中已詳細地描述特定實施例。然而,應理解,本發明不意欲限於所揭示之特定形式。實情為,本發明將涵蓋屬於如由以下隨附申請專利範圍所界定之本發明之精神及範疇內的所有修改、等效物及替代物。
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...字尾
94...先進先出(FIFO)緩衝器
96...緩衝器寫入控制模組
98...緩衝器讀取控制模組
100...緩衝器組態模組
102...上游結果匯流排
104...下游資料匯流排
106...組態匯流排
108...型樣辨識處理器組態模組
110...記錄
112...結果狀態資訊
114...內務資訊
116...結果資料
118...讀取命令信號/讀取控制信號
圖1描繪搜尋資料流之系統的實例;
圖2描繪圖1之系統中之型樣辨識處理器的實例;
圖3描繪圖2之型樣辨識處理器中之搜尋項單元的實例;
圖4及圖5描繪圖3之搜尋項單元搜尋資料流以發現單個字元;
圖6至圖8描繪包括搜尋資料流以發現詞之若干搜尋項單元的辨識模組;
圖9描繪經組態以並行搜尋資料流以發現兩個詞之辨識模組;
圖10至圖12描繪根據指定具有相同字首之多個詞的搜尋準則搜尋的辨識模組;及
圖13描繪圖2之型樣辨識處理器中之結果緩衝器的實例。
10...系統
12...資料流
14...型樣辨識處理器
25...結果緩衝器
94...先進先出(FIFO)緩衝器
96...緩衝器寫入控制模組
98...緩衝器讀取控制模組
100...緩衝器組態模組
102...上游結果匯流排
104...下游資料匯流排
106...組態匯流排
108...型樣辨識處理器組態模組
110...記錄
112...結果狀態資訊
114...內務資訊
116...結果資料
118...讀取命令信號/讀取控制信號
Claims (38)
- 一種型樣辨識之裝置,其包含:一型樣辨識處理器;及一結果緩衝器,其中該結果緩衝器包含:複數個記錄;一寫入控制模組,其經組態以將與搜尋結果有關之資料寫入至該複數個記錄中;及一讀取控制模組,其經組態以自該複數個記錄讀取資料;其中該型樣辨識處理器包括該結果緩衝器。
- 如請求項1之裝置,其中該結果緩衝器包含一先進先出(FIFO)緩衝器。
- 如請求項1之裝置,其包含一處理單元(PU),該處理單元(PU)經由一結果匯流排及該結果緩衝器與該型樣辨識處理器通信。
- 如請求項3之裝置,其包含一耦接至該型樣辨識處理器之資料流匯流排,其中該型樣辨識處理器經組態以搜尋由該資料流匯流排傳遞之資料。
- 如請求項4之裝置,其中該資料流匯流排與該結果匯流排分離。
- 如請求項1之裝置,其中該型樣辨識處理器包含:一解碼器,其具有一耦接至一資料流之輸入;及複數個特徵單元,其耦接至該解碼器之一輸出,其中該複數個特徵單元中之每一者包含經組態以編碼一搜尋 項的複數個記憶體單元。
- 如請求項1之裝置,其中該寫入控制模組包含一計數器、一記憶體,或其一組合。
- 如請求項1之裝置,其中該寫入控制模組經組態以判定該結果緩衝器中是否存在該複數個記錄中之任何空閒記錄。
- 如請求項4之裝置,其中該寫入控制模組經組態而以信號通知該型樣辨識處理器停止搜尋資料。
- 如請求項1之裝置,其中該寫入控制模組經組態以儲存指示該結果緩衝器之狀態的資料。
- 如請求項1之裝置,其中該讀取控制模組經組態以指示尚未自該結果緩衝器讀取該複數個記錄中之哪些記錄。
- 如請求項1之裝置,其中該讀取控制模組包含一經組態以對該複數個記錄中之每一者之讀取之一數目進行計數的計數器。
- 如請求項3之裝置,其中該讀取控制模組經組態以自該PU接收一信號,且藉由使該結果緩衝器輸出由該複數個記錄中之最舊記錄儲存的資料而回應於該信號。
- 一種辨識型樣之方法,其包含:接收一資料流;根據搜尋準則搜尋該資料流;及在根據該等搜尋準則搜尋該資料流之同時將搜尋結果儲存於一緩衝器中,其中將搜尋結果儲存於該緩衝器中包含: 判定該緩衝器是否包括一空閒記錄,其中一空閒記錄包含未經寫入或已被讀取之一記錄;若該緩衝器包括一空閒紀錄,將搜尋結果儲存於該空閒紀錄中;及若該緩衝器不包括一空閒紀錄,將一緩衝器溢位之一指示儲存於該緩衝器中;及回應於一無空閒記錄可用之判定而輸出一指示一錯誤條件之信號。
- 如請求項14之方法,其中接收該資料流包含經由網際網路接收資料之封包。
- 如請求項14之方法,其中根據搜尋準則搜尋該資料流包含在大約相同之時間根據該等搜尋準則中之每一者進行搜尋。
- 如請求項14之方法,其中該等搜尋結果包含關於該等搜尋準則之滿足的資料。
- 如請求項17之方法,其中儲存搜尋結果包含儲存識別由該資料流滿足之該搜尋準則的資料。
- 如請求項17之方法,其中儲存搜尋結果包含儲存識別來自該資料流之哪一資料滿足該搜尋準則的資料。
- 如請求項19之方法,其中該資料包含該資料流中之項。
- 如請求項17之方法,其中儲存識別來自該資料流之哪一資料滿足該搜尋準則的資料包含儲存該資料流之一項計數及接收到來自該資料流之滿足該搜尋準則之該資料的一時間段中的至少一者。
- 如請求項17之方法,其中儲存搜尋結果包含儲存指示是否出現該錯誤條件之資料。
- 如請求項14之方法,其包含輸出儲存於該緩衝器之一記錄中的該等搜尋結果之一部分。
- 如請求項14之方法,其包含儲存識別該資料流之資料。
- 如請求項14之方法,其包含儲存指示一型樣辨識處理器在滿足該等搜尋準則時之一狀態的資料。
- 一種型樣辨識系統,其包含:一處理單元(PU);一型樣辨識處理器,其中該型樣辨識處理器包含:一解碼器,其具有一輸入耦接至一資料流;及複數個特徵單元,其耦接至該解碼器之一輸出,其中該複數個特徵單元中之每一者包含經組態以編碼一搜尋項的複數個記憶體單元;及一結果緩衝器,其經組態以將來自該型樣辨識處理器之搜尋結果傳遞至該PU。
- 如請求項26之系統,其中該結果緩衝器係整合地形成為該型樣辨識處理器之部分。
- 如請求項26之系統,其中該結果緩衝器為一獨立於該PU及該型樣辨識處理器之裝置。
- 如請求項26之系統,其中該結果緩衝器係與該PU整合地形成。
- 如請求項26之系統,其中該結果緩衝器包含一FIFO緩衝器。
- 如請求項26之系統,其中該型樣辨識處理器包含各自經組態以根據一搜尋準則搜尋一資料流之複數個並行有限狀態機。
- 一種辨識型樣之方法,其包含:在一型樣辨識處理器中處理一資料流以產生複數個結果;判定一緩衝器是否包括未經寫入之任何空閒紀錄;若該緩衝器包括未經寫入之空閒紀錄,在該緩衝器中儲存該複數個結果;處理該複數個結果,同時繼續處理該資料流;及在讀取一紀錄之後,寫入該紀錄已被讀取之一指示至該紀錄。
- 如請求項32之方法,其中處理該資料流,儲存該複數個結果及處理該複數個結果同時發生。
- 如請求項32之方法,其中處理該資料流包含針對搜尋準則搜尋該資料流以產生複數個搜尋結果。
- 如請求項32之方法,其中儲存該複數個結果中之每一者包含將該複數個搜尋結果中之每一者儲存於一FIFO緩衝器中。
- 如請求項31之方法,其中處理該複數個結果包含輸出該複數個結果中之至少一者。
- 如請求項36之方法,其中輸出該複數個結果中之至少一者包含識別該緩衝器中尚未輸出之最舊結果。
- 如請求項36之方法,其中輸出該等搜尋結果中之至少一者包含輸出識別一被滿足之搜尋準則的資料。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/265,465 US9639493B2 (en) | 2008-11-05 | 2008-11-05 | Pattern-recognition processor with results buffer |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201030604A TW201030604A (en) | 2010-08-16 |
TWI436271B true TWI436271B (zh) | 2014-05-01 |
Family
ID=41693205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098137284A TWI436271B (zh) | 2008-11-05 | 2009-11-03 | 具有結果緩衝器之型樣辨識處理器 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9639493B2 (zh) |
EP (1) | EP2350921B1 (zh) |
JP (1) | JP5753091B2 (zh) |
KR (1) | KR101474598B1 (zh) |
CN (1) | CN102203802B (zh) |
TW (1) | TWI436271B (zh) |
WO (1) | WO2010053715A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI789103B (zh) * | 2021-11-08 | 2023-01-01 | 旺宏電子股份有限公司 | 記憶體裝置及其操作方法 |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8938590B2 (en) | 2008-10-18 | 2015-01-20 | Micron Technology, Inc. | Indirect register access method and system |
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 |
US7970964B2 (en) | 2008-11-05 | 2011-06-28 | Micron Technology, Inc. | Methods and systems to accomplish variable width data input |
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 |
US10007486B2 (en) | 2008-12-01 | 2018-06-26 | Micron Technology, Inc. | Systems and methods to enable identification of different data sets |
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 |
US8214672B2 (en) | 2009-01-07 | 2012-07-03 | Micron Technology, Inc. | Method and systems for power consumption management of a pattern-recognition processor |
US8281395B2 (en) | 2009-01-07 | 2012-10-02 | Micron Technology, Inc. | Pattern-recognition processor with matching-data reporting module |
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 |
US8601013B2 (en) | 2010-06-10 | 2013-12-03 | Micron Technology, Inc. | Analyzing data using a hierarchical structure |
US8766666B2 (en) | 2010-06-10 | 2014-07-01 | Micron Technology, Inc. | Programmable device, hierarchical parallel machines, and methods for providing state information |
US9053562B1 (en) | 2010-06-24 | 2015-06-09 | Gregory S. Rabin | Two dimensional to three dimensional moving image converter |
KR101640295B1 (ko) | 2011-01-25 | 2016-07-15 | 마이크론 테크놀로지, 인크. | 정규 표현을 컴파일하기 위한 방법 및 장치 |
US8843911B2 (en) | 2011-01-25 | 2014-09-23 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
JP5857072B2 (ja) | 2011-01-25 | 2016-02-10 | マイクロン テクノロジー, インク. | オートマトンの入次数および/または出次数を制御するための量化子の展開 |
US8788991B2 (en) | 2011-01-25 | 2014-07-22 | Micron Technology, Inc. | State grouping for element utilization |
US9792117B2 (en) | 2011-12-08 | 2017-10-17 | Oracle International Corporation | Loading values from a value vector into subregisters of a single instruction multiple data register |
US9697174B2 (en) * | 2011-12-08 | 2017-07-04 | Oracle International Corporation | Efficient hardware instructions for processing bit vectors for single instruction multiple data processors |
US9342314B2 (en) | 2011-12-08 | 2016-05-17 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors |
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 |
US9443156B2 (en) | 2011-12-15 | 2016-09-13 | Micron Technology, Inc. | Methods and systems for data analysis 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 |
US9235798B2 (en) | 2012-07-18 | 2016-01-12 | Micron Technology, Inc. | Methods and systems for handling data received by 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 |
US9389841B2 (en) | 2012-07-18 | 2016-07-12 | Micron Technology, Inc. | Methods and systems for using state vector data in a state machine engine |
US9075428B2 (en) | 2012-08-31 | 2015-07-07 | Micron Technology, Inc. | Results generation for 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 |
US9992021B1 (en) | 2013-03-14 | 2018-06-05 | GoTenna, Inc. | System and method for private and point-to-point communication between computing devices |
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 |
US9703574B2 (en) | 2013-03-15 | 2017-07-11 | Micron Technology, Inc. | Overflow detection and correction in state machine engines |
US9430390B2 (en) | 2013-09-21 | 2016-08-30 | Oracle International Corporation | Core in-memory space and object management architecture in a traditional RDBMS supporting DW and OLTP applications |
WO2016109571A1 (en) | 2014-12-30 | 2016-07-07 | Micron Technology, Inc | Devices for time division multiplexing of state machine engine signals |
WO2016109570A1 (en) | 2014-12-30 | 2016-07-07 | 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 |
US10025822B2 (en) | 2015-05-29 | 2018-07-17 | Oracle International Corporation | Optimizing execution plans for in-memory-aware joins |
US10846103B2 (en) | 2015-10-06 | 2020-11-24 | Micron Technology, Inc. | Methods and systems for representing processing resources |
US10691964B2 (en) | 2015-10-06 | 2020-06-23 | Micron Technology, Inc. | Methods and systems for event reporting |
US10977309B2 (en) | 2015-10-06 | 2021-04-13 | Micron Technology, Inc. | Methods and systems for creating networks |
US10402425B2 (en) | 2016-03-18 | 2019-09-03 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors |
US10055358B2 (en) | 2016-03-18 | 2018-08-21 | Oracle International Corporation | Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors |
US10061714B2 (en) | 2016-03-18 | 2018-08-28 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors |
US10061832B2 (en) | 2016-11-28 | 2018-08-28 | Oracle International Corporation | Database tuple-encoding-aware data partitioning in a direct memory access engine |
US10599488B2 (en) | 2016-06-29 | 2020-03-24 | Oracle International Corporation | Multi-purpose events for notification and sequence control in multi-core processor systems |
US10146555B2 (en) | 2016-07-21 | 2018-12-04 | Micron Technology, Inc. | Adaptive routing to avoid non-repairable memory and logic defects on automata processor |
US10380058B2 (en) | 2016-09-06 | 2019-08-13 | Oracle International Corporation | Processor core to coprocessor interface with FIFO semantics |
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 |
US10783102B2 (en) | 2016-10-11 | 2020-09-22 | Oracle International Corporation | Dynamically configurable high performance database-aware hash engine |
US10929764B2 (en) | 2016-10-20 | 2021-02-23 | Micron Technology, Inc. | Boolean satisfiability |
US10592450B2 (en) | 2016-10-20 | 2020-03-17 | Micron Technology, Inc. | Custom compute cores in integrated circuit devices |
US10459859B2 (en) | 2016-11-28 | 2019-10-29 | Oracle International Corporation | Multicast copy ring for database direct memory access filtering engine |
US10176114B2 (en) | 2016-11-28 | 2019-01-08 | Oracle International Corporation | Row identification number generation in database direct memory access engine |
US10725947B2 (en) | 2016-11-29 | 2020-07-28 | Oracle International Corporation | Bit vector gather row count calculation and handling in direct memory access engine |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4152762A (en) * | 1976-03-03 | 1979-05-01 | Operating Systems, Inc. | Associative crosspoint processor system |
JPS61145798A (ja) | 1984-12-20 | 1986-07-03 | Nec Corp | 記号列連想メモリ装置とその動作制御方式 |
US4805093A (en) * | 1986-10-14 | 1989-02-14 | Ward Calvin B | Content addressable memory |
JPS6448130A (en) * | 1987-08-19 | 1989-02-22 | Matsushita Electric Ind Co Ltd | Data base processor |
JP2802064B2 (ja) * | 1987-08-19 | 1998-09-21 | 松下電器産業株式会社 | データベースプロセツサ |
JPH01148131A (ja) | 1987-12-04 | 1989-06-09 | Yarakuen:Kk | 家庭用水耕栽培装置 |
JPH0727543B2 (ja) | 1988-04-28 | 1995-03-29 | インターナシヨナル・ビジネス・マシーンズ・コーポレーション | 文字認識装置 |
JPH0276071A (ja) | 1988-09-13 | 1990-03-15 | Nec Corp | データ検索回路 |
US6757809B1 (en) * | 1989-12-16 | 2004-06-29 | Renesas Technology Corp. | Data processor having 2n bits width data bus for context switching functions |
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 |
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 |
US5586266A (en) * | 1993-10-15 | 1996-12-17 | International Business Machines Corporation | System and method for adaptive, active monitoring of a serial data stream having a characteristic pattern |
US5572208A (en) * | 1994-07-29 | 1996-11-05 | Industrial Technology Research Institute | Apparatus and method for multi-layered decoding of variable length codes |
US6292911B1 (en) * | 1998-12-17 | 2001-09-18 | Cirrus Logic, Inc. | Error detection scheme for a high-speed data channel |
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 |
US6721826B2 (en) * | 2001-09-25 | 2004-04-13 | Lsi Logic Corporation | Buffer partitioning for managing multiple data streams |
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 |
JP2005044387A (ja) | 2003-07-22 | 2005-02-17 | Renesas Technology Corp | Fifo型メモリ |
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 |
US7240041B2 (en) * | 2003-11-25 | 2007-07-03 | Freescale Semiconductor, Inc. | Network message processing using inverse pattern matching |
US7392229B2 (en) * | 2005-02-12 | 2008-06-24 | Curtis L. Harris | General purpose set theoretic processor |
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 |
JP2008217638A (ja) | 2007-03-07 | 2008-09-18 | Fujitsu Ltd | Fifoメモリ制御装置及びfifoメモリ制御方法 |
US7882202B2 (en) * | 2008-04-01 | 2011-02-01 | International Business Machines Corporation | System to delegate virtual storage access method related file operations to a storage server using an in-band RPC mechanism |
-
2008
- 2008-11-05 US US12/265,465 patent/US9639493B2/en active Active
-
2009
- 2009-10-22 EP EP09756078.3A patent/EP2350921B1/en active Active
- 2009-10-22 JP JP2011534632A patent/JP5753091B2/ja active Active
- 2009-10-22 WO PCT/US2009/061650 patent/WO2010053715A1/en active Application Filing
- 2009-10-22 CN CN2009801442872A patent/CN102203802B/zh active Active
- 2009-10-22 KR KR1020117012863A patent/KR101474598B1/ko active IP Right Grant
- 2009-11-03 TW TW098137284A patent/TWI436271B/zh active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI789103B (zh) * | 2021-11-08 | 2023-01-01 | 旺宏電子股份有限公司 | 記憶體裝置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2350921A1 (en) | 2011-08-03 |
KR20110088553A (ko) | 2011-08-03 |
KR101474598B1 (ko) | 2014-12-18 |
JP2012507792A (ja) | 2012-03-29 |
TW201030604A (en) | 2010-08-16 |
US20100115347A1 (en) | 2010-05-06 |
WO2010053715A1 (en) | 2010-05-14 |
JP5753091B2 (ja) | 2015-07-22 |
EP2350921B1 (en) | 2014-04-16 |
US9639493B2 (en) | 2017-05-02 |
CN102203802B (zh) | 2013-11-06 |
CN102203802A (zh) | 2011-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI436271B (zh) | 具有結果緩衝器之型樣辨識處理器 | |
US10466966B2 (en) | Systems and methods to enable identification of different data sets | |
US10817569B2 (en) | Methods and devices for saving and/or restoring a state of a pattern-recognition processor | |
TWI519963B (zh) | 用以完成可變寬度資料輸入之方法及系統 | |
TWI489300B (zh) | 用於傳達平行型樣搜尋引擎之型樣匹配結果之裝置、系統及方法 | |
US9026485B2 (en) | Pattern-recognition processor with matching-data reporting module | |
JP5489014B2 (ja) | パターン認識プロセッサの電力消費管理のための方法およびシステム | |
TWI416332B (zh) | 藉由多個裝置同步化單一資料串流之同時直接記憶體存取平行處理之裝置、系統及方法 |