TWI465945B - 用於型樣辨識處理器中降低電力消耗之方法及裝置 - Google Patents

用於型樣辨識處理器中降低電力消耗之方法及裝置 Download PDF

Info

Publication number
TWI465945B
TWI465945B TW099144035A TW99144035A TWI465945B TW I465945 B TWI465945 B TW I465945B TW 099144035 A TW099144035 A TW 099144035A TW 99144035 A TW99144035 A TW 99144035A TW I465945 B TWI465945 B TW I465945B
Authority
TW
Taiwan
Prior art keywords
block
search
power control
pattern
blocks
Prior art date
Application number
TW099144035A
Other languages
English (en)
Other versions
TW201135491A (en
Inventor
Harold B Noyes
David R Brown
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of TW201135491A publication Critical patent/TW201135491A/zh
Application granted granted Critical
Publication of TWI465945B publication Critical patent/TWI465945B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Power Sources (AREA)

Description

用於型樣辨識處理器中降低電力消耗之方法及裝置
本發明之實施例大體而言係關於型樣辨識處理器,且更具體而言,在某些實施例中,係關於降低此等型樣辨識處理器之電力消耗。
在計算領域中,型樣辨識任務越來越具有挑戰性。電腦之間發射之資料量不斷增大,且使用者希望識別之型樣數目日益增加。舉例而言,通常藉由搜尋一資料串流中之型樣(例如,特定片語或片段程式碼)來偵測垃圾郵件或惡意軟體。型樣數目隨著垃圾郵件及惡意軟體之變化而增加,此乃因可實施新型樣以搜尋新變體。針對此等型樣中之每一者對一資料串流進行搜尋可形成一計算瓶頸。通常,在接收資料串流時,針對每一型樣對其進行搜尋,一次一個。在系統準備對該資料串流之下一部分進行搜尋之前的延遲隨著型樣之數目增加。因此,型樣辨識可使資料之接收減慢。
此等型樣辨識裝置可使用可用於型樣辨識過程之記憶體核心之全部或幾乎全部。亦即,由於針對一個或多個型樣對每一資料串流進行搜尋之性質,因此在每一處理循環期間可存取該記憶體核心之全部或幾乎全部。此可導致型樣辨識處理器之高電力消耗。另外,與習用DRAM裝置或其他記憶體一起使用之位址解碼技術可係不適於一型樣辨識裝置使用。
圖1繪示對一資料串流12進行搜尋之一系統10之一實例。系統10可包含一型樣辨識處理器14,該型樣辨識處理器根據搜尋準則16來對資料串流12進行搜尋。
每一搜尋準則可規定一個或多個目標表達(亦即,型樣)。片語「目標表達」係指型樣辨識處理器14正搜尋之一資料序列。目標表達之實例包含拼寫某一字之一字元序列、規定一基因之一遺傳鹼基對序列、形成一影像之一部分之一圖片或視訊檔案中之一位元序列、形成一程式之一部分之一可執行檔案中之一位元序列或形成一歌曲或一口語片語之一部分之一音訊檔案中之一位元序列。
一搜尋準則可規定多於一個之目標表達。舉例而言,一搜尋準則可規定以字母序列「cl」開頭之所有五個字母之字、以字母序列「cl」開頭之任一字、包含字「cloud」多於三次之一段落等。目標表達之可能組之數目係任意大,例如,可存在與資料串流可呈現之資料排列一樣多之目標表達。搜尋準則可以多種格式來表達,包含規則表達、簡明地規定目標表達組而不必列舉每一目標表達之一程式化語言。
每一搜尋準則可由一個或多個搜尋項構成。因此,一搜尋準則之每一目標表達可包含一個或多個搜尋項且某些目標表達可使用共同搜尋項。如本文中所用,片語「搜尋項」係指在一單個搜尋循環期間所搜尋之一資料序列。該資料序列可包含呈二進制格式或其他格式(例如,十進位、ASCII等)之多個資料位元。該序列可用一單個數位或多個數位(例如,數個二進制數位)對資料進行編碼。舉例而言,型樣辨識處理器14可一次一個字元地對一文字資料串流12進行搜尋,且搜尋項可規定一組單個字元,例如,字母「a」,字母「a」或「e」,或規定一組所有單個字元之一通配符搜尋項。
搜尋項可小於或大於規定一字元(或其他字形-亦即,資料串流所表達之資訊之基礎單元,例如,一音符、一遺傳鹼基對、10進位數位或一子像素)之位元之數目。舉例而言,一搜尋項可係8個位元且一單個字元可係16個位元,在此情形下,兩個連續搜尋項可規定一單個字元。
搜尋準則16可由一編譯器18進行格式化以用於型樣辨識處理器14。格式化可包含自該等搜尋準則解構搜尋項。舉例而言,若資料串流12所表達之字形大於該等搜尋項,則該編譯器可將搜尋準則解構成多個搜尋項以搜尋一單個字形。類似地,若資料串流12所表達之字形小於該等搜尋項,則編譯器18可為每一單獨字形提供具有不使用之位元之一單個搜尋項。編譯器18亦可格式化搜尋準則16以支援未由型樣辨識處理器14本機支援之各種規則表達運算子。
型樣辨識處理器14可藉由評估來自資料串流12之每一新項來對資料串流12進行搜尋。此處,字「項」係指可匹配一搜尋項之資料量。在一搜尋循環期間,型樣辨識處理器14可判定當前所呈現之項是否匹配搜尋準則中之當前搜尋項。若該項匹配該搜尋項,則「推進」評估,亦即,將下一項與搜尋準則中之下一搜尋項相比較。若該項不匹配,則將下一項與搜尋準則中之第一項相比較,藉此重設該搜尋。
可將每一搜尋準則編譯至型樣辨識處理器14中之一不同有限狀態機(FSM)中。該等有限狀態機可並行運行,從而根據搜尋準則16對資料串流12進行搜尋。當資料串流12匹配在前搜尋項時,該等有限狀態機可步進穿過一搜尋準則中之每一接連搜尋項,或若不匹配該搜尋項,則該等有限狀態機可開始搜尋該搜尋準則之第一搜尋項。
型樣辨識處理器14可(例如)在一單個裝置循環期間在約相同時間根據數個搜尋準則及其各別搜尋項來評估每一新項。該等並行有限狀態機可各自在約相同時間接收來自資料串流12之項,且該等並行有限狀態機中之每一者可判定該項是否將該並行有限狀態機推進至其搜尋準則中之下一搜尋項。該等並行有限狀態機可根據一相對大數目個搜尋準則(例如,多於100、多於1000或多於10,000)來評估項。由於其等並行操作,因此其等可將該等搜尋準則應用至具有一相對高頻寬之一資料串流12(例如,大於或大體等於每秒64 MB或每秒128 MB之一資料串流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中之資料之類型,一設計者可挑選不同類型之搜尋準則。舉例而言,搜尋準則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及一彙總模組24。辨識模組22可經組態以將所接收之項與搜尋項相比較,且辨識模組22與彙總模組24兩者可協作以判定將一項與一搜尋項匹配是否滿足一搜尋準則。
辨識模組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)。在某些實施例中,一輸出多工器可對來自此等組件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亦可包含非揮發性記憶體,諸如,相變記憶體(例如,一雙向(ovonic)裝置)、快閃記憶體、矽-氧化物-氮化物-氧化物-矽(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(諸如,上文所述之記憶體胞之類型中之一者(例如,一正反器)),其指示特徵胞63、64或66是作用中的還是非作用中的。偵測胞68可經組態以將既指示該偵測胞是否係作用中的又指示是否已自其相關聯搜尋項胞54接收指示一匹配之一信號之一信號輸出至啟動路由矩陣36。非作用中特徵胞63、64及66可忽視匹配。偵測胞68中之每一者可包含一「及」閘,其具有來自記憶體胞70及輸出導體56之輸入。可將該「及」閘之輸出路由至偵測匯流排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寫入至其偵測胞68中之記憶體胞70來啟動下一特徵胞64。在下一項滿足第一搜尋項之情況下(例如,若接收項序列「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來撤銷啟動特徵胞64,或啟動路由矩陣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。在允許特徵胞66變為非作用中時,針對第一尾碼90之搜尋可停止。圖10至圖12所圖解說明之步驟可繼續經過字母「u」及「d」,或該搜尋可停止直至下一次匹配首碼88。
型樣辨識處理器14之實施例可包含特徵胞30(亦稱為狀態機元件(SME))之任一配置。在一項實施例中,如圖13中所繪示,特徵胞30可配置成列94,其中每一列94可包含一個或多個特徵胞30。列94可聚集成區塊96,其中每一區塊96包含一個或多個列94。一型樣辨識處理器14可包含用於實施上文所述型樣搜尋之任一數目個區塊96。
如上所述,特徵胞30之群組可形成規定一(或多個)搜尋準則之並行有限狀態機。因此,每一列94及區塊96可經程式化並用以根據一個或多個搜尋準則對一資料串流進行搜尋。當針對搜尋準則對資料串流12進行搜尋時,上文所述之型樣搜尋可隨後進展經過一個或多個區塊96。在一搜尋循環期間執行對每一主動區塊96中之資料串流之一項之評估。該搜尋循環可係型樣辨識處理器14之稱為一型樣搜尋循環(亦稱為一字元循環)之一較廣泛循環之一部分。每一型樣搜尋循環可包含型樣辨識處理器14之多個區塊內部循環。一型樣搜尋循環可包含(舉例而言)以下事件中之一者或多者:自資料串流12輸入一位元組、解碼該位元組且驅動一對應輸入導體37、讀取處理器14之記憶體(例如,記憶體胞58)、判定一特徵胞30是否係作用中的及所讀取之資料是否指示針對一各別特徵胞之匹配、驅動匹配特徵胞之啟動路由矩陣36之輸出及/或將來自啟動路由矩陣36之信號傳播至每一特徵胞30。該型樣搜尋循環亦可包含在型樣辨識處理器14之操作期間所執行之其他事件。
在型樣搜尋循環期間,可在包含型樣搜尋循環之某些事件中之一記憶體存取循環期間存取區塊96。舉例而言,該記憶體存取循環可包含讀取處理器14之記憶體(諸如,以向一特徵胞30提供「匹配」指示),出於測試程式化或驗證處理器14之記憶體之目的之一記憶體讀取或寫入及/或一記憶體再新循環。該記憶體再新循環可再新一區塊之特徵胞30。在一項實施例中,型樣辨識處理器14之記憶體存取循環可與型樣搜尋循環之其他事件交錯。
在此等實施例中,當執行型樣搜尋時,型樣辨識處理器14可在一給定型樣搜尋循環期間存取特徵胞之一「作用中」區塊。一「作用中」區塊係指當前或將根據在一給定型樣搜尋循環期間程式化至一區塊中之搜尋項對資料串流進行搜尋之該區塊。因此,一「非作用中」區塊係指當前不或將不在一給定型樣搜尋循環期間對資料串流進行搜尋之一區塊。
在操作期間,型樣辨識處理器14在每一記憶體存取循環期間存取一主動區塊之一特徵胞30或特徵胞30之一群組。在一項實施例中,為降低藉由在每一記憶體存取循環期間存取「非作用中」區塊所發生之電力消耗,可將每一區塊96皆耦合至一電力控制電路98。電力控制電路98可係每一區塊96之邏輯(或來自每一區塊之單獨邏輯)之一部分。電力控制電路98可在一型樣搜尋之前、之後或期間控制每一區塊96之啟動(將一區塊設定為「作用中」)及撤銷啟動(將一區塊設定為「非作用中」)。電力控制電路98亦可控制區塊96中之每一者之「永久性」撤銷啟動,其中永久性撤銷啟動係指完全停用一區塊96以使得該區塊係非作用中且在一再新循環期間不被再新。
在某些實施例中,一電力控制電路98可包含以下能力:能夠基於所搜尋之資料串流之一特性而啟動或撤銷啟動(永久性地或暫時地)一區塊;能夠在型樣搜尋進展至一區塊之前(例如,在型樣搜尋將在一後續型樣搜尋循環上存取彼區塊時)自動地啟動彼區塊;能夠在型樣搜尋在一區塊中不再係作用中時(例如,在將不在任一後續型樣搜尋循環上使用一區塊)自動地撤銷啟動彼區塊;及能夠在一區塊將不用於程式化至型樣辨識處理器14中之有限狀態機中之任一者時完全地停用該區塊。
圖14A及圖14B繪示根據本發明之一實施例之使用電力控制電路98A至98D之電力控制能力之型樣辨識處理器14之區塊96A至D之操作。另外,如圖14A及14B中所示,將每一區塊96A至D耦合至可選擇性地啟動或撤銷啟動(暫時地或永久性地)一區塊之一各別電力控制電路98A至D。如圖14A中所示,在一型樣搜尋期間,每一區塊96可具有一不同狀態。可停用第一區塊96A以使得此區塊在型樣辨識處理器14之操作期間不被使用或甚至再新。舉例而言,來自製造良率「不足」或來自當前搜尋準則不使用之區塊之任何「附加」區塊可不程式化為處理器14之狀態機。因此,此等區塊(例如,區塊96A)可由對應電力控制電路98A停用。在停用之後,區塊96A係停用的且在記憶體存取循環之再新期間不被再新。
如以上所提及,電力控制電路98亦可包含能夠基於所搜尋之資料串流之特性(例如,HTTP、FTP、SMTP、DNS等)而啟動或撤銷啟動一區塊。在圖14A中所繪示之型樣搜尋期間,可基於所搜尋之資料串流之特性而撤銷啟動一第二區塊96B。在此實例中,每一區塊之經程式化狀態機可經程式化而用於對一特定類型之協定、語言或其他資料識別符進行型樣搜尋。此所識別資料可包含,但不限於資料傳送協定(例如,HTTP、FTP、SMTP、DNS等)、自然語言、遺傳性識別符等。舉例而言,在關於網際網路安全性之一項實施例中,區塊96B之狀態機可經程式化而用於對FTP資料中之型樣進行搜尋。狀態機96C及96D可經程式化而用於對HTTP資料中之型樣進行搜尋。一旦識別一傳入封包之協定(諸如,基於封包標頭),即僅可使用經程式化而用於對HTTP資料進行搜尋之彼等狀態機。因此,在正處理HTTP封包之時間期間,區塊96B可由電力控制電路98B撤銷啟動。可撤銷啟動區塊96B以使得在型樣搜尋循環中不使用該區塊。然而,區塊96B不係永久性地停用且將仍被再新並可(諸如)在該資料串流被識別為FTP資料時用於在其他型樣搜尋中。若一資料串流之類型改變,則區塊96B可由對應電力控制電路98B啟動。如下文進一步闡述,可基於資料串流12之特性而將區塊聚集成不同「分區」。一分區係指經程式化而用於對一特定類型之資料進行搜尋之區塊之一群組。舉例而言,區塊96B可與其他區塊一起聚集至用於對FTP資料進行搜尋之一分區。類似地,區塊96C及96D可連同其他區塊一起聚集至用於對HTTP資料進行搜尋之一分區。分區聚集使得區塊之群組能夠基於資料串流12之特性而被啟動或撤銷啟動。
另外,上文所論述之電力控制電路亦可在型樣搜尋進展至一撤銷啟動之區塊之前啟動彼區塊且在型樣搜尋在一區塊中不再係作用中時撤銷啟動彼區塊。圖14A及14B之區塊96C及96D繪示基於自區塊96C進展至區塊96D之一型樣搜尋之啟動及撤銷啟動。圖14A顯示區塊96C中正在進行中之一型樣搜尋,諸如在一第一型樣搜尋循環期間。該型樣搜尋可根據程式化至區塊96C之狀態機(特徵胞30之群組)中之搜尋準則評估資料串流中之項。區塊96C係「作用中」的,此乃因其在型樣搜尋期間係當前正在使用中。如圖14A中所示,可撤銷啟動區塊96D以使得在一記憶體存取循環期間不存取區塊96D,從而降低處理器14中之電力消耗。若無「開始」項(例如,一型樣之開始)程式化於區塊96D中,則可撤銷啟動區塊96D直至該型樣搜尋序列進展至區塊96D。
隨著該型樣搜尋自區塊96C進展至區塊96D,圖14B繪示型樣辨識處理器14之一後續型樣搜尋循環。隨著針對一型樣對資料串流進行搜尋,該型樣搜尋可自區塊96C「跨接」至區塊96D。該「跨接」係指在一型樣搜尋之順序進展期間的自一第一區塊至一第二區塊之進展。該型樣搜尋在區塊96C中不再係作用中的且現在區塊96D中係作用中的。當區塊96C被偵測為非作用中時,電力控制電路96C可撤銷啟動區塊96C直至另一型樣搜尋進展至區塊96C。電力控制電路96D可在型樣搜尋進展至區塊96D之前啟動區塊96D。因此,基於預測、「按需要」啟動區塊96D。如下文進一步闡述,電力控制電路98D及/或區塊96D可偵測型樣搜尋何時將到達區塊96D且在下一型樣搜尋循環之前啟動區塊96D。因此,隨著型樣搜尋序列繼續經過特徵胞之每一區塊,可撤銷啟動非作用中之區塊且預期之區塊可在其等被需要時被啟動。
另外,其他實施例可包含在一型樣搜尋進展經過一區塊之前、期間或之後影響該區塊之啟動或撤銷啟動之特殊搜尋準則。此等特殊搜尋準則可包含規則表達(RegEx)運算子、諸如星號(*)、問號(?)及/或加號(+)。舉例而言,規定匹配每一事物及任何事物直至一資料串流之項之結束之星號(「*」)運算子可藉由規定一區塊(一旦啟動)係始終作用中直至該資料串流之項之結束之一啟動命令來實施。任何特殊搜尋準則可藉由規定適合於彼等特殊搜尋準則之一啟動或撤銷啟動方案來實施至上文所論述之電力控制技術中。
型樣辨識處理器14之每一區塊皆可包含用以提供上文所述之電力控制技術之信號及/或組態位元。舉例而言,除電力控制電路以外,每一區塊還可包含用以產生指示一列含有「作用中」特徵胞之一信號及/或指示該區塊含有接下來在型樣搜尋序列中之一特徵胞之一(或多個)信號之邏輯。另外,一區塊可包含經組態以發射或接收各種控制及組態信號之邏輯。此等控制及組態信號可包含:該區塊用於當前資料串流之一指示(區塊作用中/非作用中);一開始項之一指示;一旦啟動/始終啟動之一信號(諸如,針對上文所論述之特殊搜尋準則);一再新信號;及一區塊流動啟用信號。
上文所述之選擇性啟動及撤銷啟動方案可指示是否停用一特定區塊(例如,是否將永遠使用該區塊)、指示一區塊是否係當前欲使用之一群組之部分、指示一區塊是否含有一型樣之「開始」之特徵胞且在該型樣搜尋序列期間按需要啟動區塊。在某些實施例中,為實施區塊喚醒方案,區塊96可包含用以指示一區塊之狀態之組態位元或其他資料指示符。可藉由本文中所論述之各種控制信號來修改此等位元。舉例而言,一區塊96可包含用以指示是否停用該區塊之一個或多個組態位元。如上文所提及,在某些實施例中,區塊96可聚集成分區以使得每一分區包含欲用於一特定類型之資料串流之區塊。在此一實施例中,每一區塊可包含用以指示各別區塊所屬於之分區之一個或多個組態位元。另外,每一區塊96可包含指示該區塊是否包含包含一型樣之「開始」(例如,開頭)之特徵胞30之一個或多個組態位元。在使用彼分區之一給定型樣搜尋序列期間,此等區塊可始終係作用中的。另外,在此一實施例中,如上所述,可選擇性地啟動及撤銷啟動一分區中之所有其他區塊。
圖15繪示根據本發明之一實施例之一電力控制電路98之一邏輯示意圖。電力控制電路98可判定一區塊何時應係作用中的、一區塊(一旦作用中)何時應係暫時地撤銷啟動及一區塊何時應係永久性地撤銷啟動(亦即,停用,以使得其不回應於再新循環請求)。
電力控制電路98可包含一「區塊仍作用中感測」組件100、「及」閘102、「或」閘104、一可再觸發撤銷啟動計時器106及輸出一「Block_Active」信號之一「或」閘108。電力控制電路98可自一區塊喚醒方案110接收一「Block_Activate」信號。舉例而言,該區塊喚醒方案可指示是否停用一特定區塊(例如,是否將永遠使用該區塊)、指示一區塊是否係當前欲使用之一群組之部分、指示一區塊是否含有一型樣之「開始」之特徵胞且在該型樣搜尋序列期間按需要啟動區塊。區塊仍作用中感測組件100可自一區塊接收及/或偵測指示該區塊是否係仍作用中(根據此偵測所提供之解決方案)之信號。舉例而言,該區塊仍作用中感測組件可接收或偵測一作用中特徵胞30、列94或區塊96中之其他作用中且輸出(舉例而言)指示一區塊之一列係仍作用中之一Row_Active信號。
在一項實施例中,該電力控制電路可由五個信號控制及組態,如下文表1中所述:
Block_On/Off信號、Start_SME信號及Indefinite_SME信號之狀態可經由操作型樣辨識處理器14之一軟體編譯器來判定且經由型樣辨識處理器14之其他邏輯組件來產生。舉例而言,可自一程式化及控制邏輯112產生Block_On/Off、Start_SME信號及Indefinite_SME信號。該軟體編譯器可基於程式化至該型樣辨識處理器中之不同有限狀態機之放置及路由而規定電力組態。此等信號可設定為程式化至處理器14中之搜尋準則之部分且在操作期間可不改變。
Block_On/Off可用以在型樣搜尋期間啟動或撤銷啟動一區塊,如上所述。Flow_Enable信號亦可由該編譯器判定且可端視有限狀態機處理資料而在處理器14之操作期間改變。該軟體編譯器可判定需要哪些有限狀態機(且因此,需要什麼區塊)且設定該Flow_Enable信號以針對一資料串流啟動或撤銷啟動一區塊。可自一流動管理邏輯114產生Flow_Enable信號,該流動管理邏輯可解譯一資料串流之一識別符且提供適當之Flow_Enable信號。舉例而言,如上文所論述,有限狀態機之某些區塊可經程式化而與一特定協定或語言一起使用,以使得可撤銷啟動不出於彼目的而程式化之其他區塊。
可由一再新管理邏輯116產生Refresh_Cycle信號,該再新管理邏輯在型樣辨識處理器14之操作期間再新特徵胞30。該Refresh_Cycle信號之判斷可獨立於型樣辨識處理器14之型樣搜尋或其他操作地設定。若一區塊在型樣辨識處理器14之操作期間從不使用(諸如,上文在圖14A及14B中所論述之區塊96A),則可針對彼區塊停用該Refresh_Cycle信號,因此在記憶體存取循環期間停用彼區塊之任何再新循環且消除用於彼再新操作之電力消耗。
可透過「及」閘102或其他邏輯組件傳遞Refresh_Cycle、Block_On/Off信號、Start_SME信號及Flow_Enable信號。舉例而言,可將Refresh-Cycle信號及Block_On/Off信號提供至一第一「及」閘102A,其將一Refresh_Access信號輸出至「或」閘108,從而指示將再新一區塊。可將Block_On/Off信號及Start_SME信號提供至一第二「及」閘102B,其將一「Force_Block_Enable」信號輸出至「或」閘108,從而指示一區塊包含一開始搜尋項且應係作用中的。可將Block_Activate信號及Flow Enable信號提供至一第三「及」閘102B,其將一Conditional_Block Enable_Start信號輸出至可再觸發撤銷啟動計時器106。
另外,可將來自喚醒方案110之Block_Activate信號、來自程式化及控制邏輯114之Indefinite_SME信號及來自區塊仍作用中感測組件112之Row_Active信號提供至第二「或」閘104,其將一Activity_Re-Trigger信號輸出至可再觸發撤銷啟動計時器106。
可再觸發撤銷啟動計時器106使得電力控制電路98能夠在撤銷啟動一區塊之前計及型樣辨識處理器14之架構中之時間延遲。可再觸發撤銷啟動計時器106可接收conditional_block_enable_start信號及Activity_Re-Trigger信號且基於彼等信號提供一延遲。可再觸發撤銷啟動計時器106可將一Time_Block_Enable信號輸出至「或」閘108。
可再觸發撤銷啟動計時器106可防止一區塊之撤銷啟動達一規定持續時間。該持續時間可以時間或循環之單位判定。對於電力辨識處理器14之任一給定架構,一區塊之特徵胞之作用中/非作用中狀態之偵測可限於彼架構所提供之循環解決方案。舉例而言,在具有以四個型樣搜尋循環之一解決方案偵測一區塊之作用中特徵胞之能力之一實施例中,可再觸發撤銷啟動計時器106可允許僅在自偵測最後一「作用中」狀態已發生四個型樣搜尋循環之後撤銷啟動彼區塊。
在一型樣搜尋期間每當存取一區塊時,可再觸發撤銷啟動計時器106可重設以允許完成該區塊中之型樣搜尋。在上文所論述之實例中,在該區塊再次係作用中的之後,可再觸發撤銷啟動計時器106重設以使得在可撤銷啟動該區塊之前提供四個型樣搜尋循環之另一延遲。在某些實施例中,可再觸發撤銷啟動計時器106亦可經組態以計及用以判定一區塊是否應保持作用中之信號之產生中發生之延遲。舉例而言,Row_Active信號可係產生且傳播的相對滿以使得可再觸發撤銷啟動計時器106可經組態以添加用以補償之一延遲。以此方式,一區塊之狀態之偵測之任一解決方案可藉由引入所期望之時間延遲被計及且重設至可再觸發撤銷啟動計時器106中。
此外,應瞭解,可再觸發撤銷啟動計時器106可經組態以確保一區塊在一型樣搜尋期間需要時係作用中的,與達成可減少型樣辨識處理器14之操作之區塊之預先撤銷啟動相反。相比而言,一區塊之啟動時間可足以確保該區塊及時係作用中的以用於下一型樣搜尋循環。在一項實施例中,型樣辨識處理器14可包含使得一型樣搜尋能夠自一第一區塊跨接至特徵胞之另一區塊之信號,如上文在圖14B中所圖解說明。
基於所接收之信號,可再觸發撤銷啟動計時器106將一Timer_Block_Enable信號輸出至「或」閘108。因此,如圖15中所示,可再觸發撤銷啟動計時器106可基於自流動管理邏輯、喚醒邏輯、程式化及組態邏輯以及區塊仍作用中感測組件接收之信號而觸發或「再觸發」。
電力控制電路之輸出係基於Refresh_Access信號、Force_Block_Enable_BX信號或Timer_Block_Enable信號而啟動或撤銷啟動一區塊之一Block_Active信號。因此,基於各種控制信號,Block_Active信號可基於一區塊是否欲被再新、針對一資料串流是否被啟用、針對一資料串流是作用中的還是非作用中的、是否係一「一旦啟動,始終作用中」搜尋準則之部分等而啟動或撤銷啟動該區塊。
如上文所論述,當型樣搜尋序列進展(跨接)至由電力控制電路98控制之一區塊時,應及時啟動特徵胞之彼區塊以用於下一型樣搜尋。在具有一「非管道式架構」之某些實施例中,一區塊之啟動可依賴於指示一型樣搜尋何時跨接至下一區塊之相同跨接信號。然而,在其他實施例(諸如,型樣辨識處理器14之一「管道式」架構)中,一型樣搜尋循環之事件係與記憶體存取循環交錯。在此一實施例中,下一記憶體存取循環在完成一區塊中之當前型樣搜尋之前開頭。在此等實施例中,可使用一預測性啟動方案來確保及時啟動一型樣搜尋序列之下一區塊以用於下一型樣搜尋及跨接至彼區塊。
圖16係根據本發明之一實施例之用於一型樣辨識處理器14之一預測性啟動方案之一圖。無論何時當前區塊中之型樣搜尋進展至一具體狀態,該預測性啟動方案皆可產生發送至一型樣搜尋序列之下一區塊之一「提前啟動」信號。
圖16繪示一第一區塊118A與一第二區塊118B之間的一型樣搜尋。如圖18中所示,第一區塊118A可包含區塊118A之經程式化狀態機(特徵胞之群組),其經組態以根據搜尋準則對一資料串流進行搜尋。在一第二型樣搜尋循環期間,舉例而言,區塊118A可係作用中的且區塊118B可係非作用中的。當型樣搜尋進展經過區塊118A時,該區塊之狀態可自狀態A改變至狀態B及狀態C,此乃因搜尋項或準則(例如,字元)在區塊118A中得到匹配。在完成區塊118A中之處理時(如由狀態C所指示),一信號產生邏輯120可產生一「跨接」信號且該信號自區塊118A提供至區塊118B以指示型樣搜尋將正跨接至區塊118B以用於下一型樣搜尋循環。
在區塊118A中之處理期間,基於區塊118A之另一狀態,一第二信號產生邏輯122可產生一「啟動下一區塊」信號且該信號自區塊118A提供至區塊118A。舉例而言,如圖16中所示,在型樣搜尋期間當區塊118B進展至狀態B時,可產生activate_next_block信號。因此,activate_next_block信號係在早於跨接信號之一狀態處產生。區塊118B之一區塊啟動邏輯124可接收來自區塊118A之activate_next_block信號。區塊啟動邏輯122可回應於所接收之activate_next_block信號而啟動區塊118B。然後,區塊118B可準備將型樣搜尋何時跨接回應至區塊118B(例如,區塊118B何時接收自區塊118A提供之跨接信號)。用以產生兩個信號之信號產生邏輯120及信號產生邏輯122可係經程式化以回應區塊118A之不同狀態之相同邏輯。
可在區塊118A之任一狀態下產生activate_next_block信號以確保及時啟動區塊118B以用於型樣搜尋之跨接。舉例而言,端視型樣辨識處理器14之架構,可在區塊118A之狀態A或任一較早狀態下產生activate_next_block信號。應瞭解,早於所需地啟動區塊118B可稍微增加電力消耗,但不影響型樣搜尋序列。在接收activate_next_block信號之後,接收區塊118B可開始回應於所有記憶體循環。然而,即使在每一記憶體循環上執行記憶體存取,亦可在下一型樣搜尋循環上執行使用區塊118B之型樣搜尋直至接收跨接信號。
圖17繪示根據本發明之一實施例之用於處理一區塊處之activate_next_block信號之一邏輯圖。可將一區塊耦合至一匯流排124,其在區塊索引線(BX)及區塊連接索引線(BCX)上發射及接收信號。在一項實施例中,一個輸入可經指定而用於啟動該區塊,且另一輸入可專用於指示型樣序列(例如,在型樣搜尋序列之進展期間自一個區塊跨接至另一區塊)。可將BX信號提供至複數個「及」閘126。亦可將區塊啟用啟動信號信號提供至具有對應BX信號之每一「及」閘126。可將「及」閘126之輸出提供至一「或」閘128,其輸出「block_activate」信號以用於啟動一區塊。
以此方式,「及」閘126可「遮蔽」不用以啟動區塊之彼等輸入信號且僅使得適當啟動信號能夠啟動接收自「或」閘128輸出之block-activate信號之區塊。如圖17中所示,可存在可啟動一區塊之多個路徑(例如,多個信號)。
應瞭解,基於型樣辨識處理器14之特點(諸如,一區塊中之特徵胞之數目、一列中之特徵胞之數目、能夠偵測作用中區塊之粒度等),上文所述之邏輯可具有稍微不同之組態。
10...系統
12...資料串流
14...型樣辨識處理器
16...搜尋準則
18...編譯器
20...中央處理單元
22...辨識模組
24...彙總模組
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...列
96...區塊
96A...區塊
96B...區塊
96C...區塊
96D...區塊
98...電力控制電路
98A...電力控制電路
98B...電力控制電路
98C...電力控制電路
98D...電力控制電路
100...區塊仍作用中感測組件
102A...第一「及」閘
102C...第二「及」閘
104...「或」閘
106...可再觸發撤銷啟動計時器
108...「或」閘
110...區塊喚醒方案
112...程式化及控制邏輯
114...流動管理邏輯
116...再新管理邏輯
118A...第一區塊
118B...第二區塊
120...信號產生邏輯
122...第二信號產生邏輯
124...區塊啟動邏輯
126...「及」閘
128...「或」閘
圖1繪示對一資料串流進行搜尋之系統之一實例;
圖2繪示圖1之系統中之一型樣辨識處理器之一實例;
圖3繪示圖2之型樣辨識處理器中之一搜尋項胞之一實例;
圖4及圖5繪示針對一單個字元對資料串流進行搜尋之圖3之搜尋項胞;
圖6至圖8繪示針對一字對資料串流進行搜尋之包含數個搜尋項胞之一辨識模組;
圖9繪示經組態以針對兩個字對資料串流進行並行搜尋之辨識模組;
圖10至圖12繪示辨識模組根據規定具有相同首碼之多個字之一搜尋準則進行搜尋;
圖13繪示根據本發明之一實施例將特徵胞配置成列及區塊;
圖14A及14B繪示根據本發明之一實施例之特徵胞之區塊之操作;
圖15繪示根據本發明之一實施例之一電力控制電路之一邏輯示意圖;
圖16繪示根據本發明之一實施例之針對型樣辨識處理器之區塊之一預測性啟動方案;及
圖17繪示根據本發明之一實施例之用於處理一區塊處之信號之一邏輯圖。
30...特徵胞
94...列
96A...區塊
96B...區塊
96C...區塊
96D...區塊
98A...電力控制電路
98B...電力控制電路
98C...電力控制電路
98D...電力控制電路

Claims (36)

  1. 一種用於使用一型樣辨識處理器之複數個區塊之一資料串流之一型樣搜尋之方法,其中每一區塊包括複數個特徵胞,且每一特徵胞包括一搜尋項胞,且其中該搜尋項胞包括複數個輸入、一輸出、及複數個記憶體胞,每一記憶體胞耦合至該複數個輸入之一各別輸入且耦合至該輸出,該方法包括:當該型樣搜尋在一第一區塊中不再係作用中時,使用一第一電力控制電路撤銷啟動該複數個區塊之該第一區塊。
  2. 如請求項1之方法,其包括在該型樣搜尋進展至一第二區塊之前,使用一第二電力控制電路啟動該複數個區塊之該第二區塊以使得該第二區塊經啟動以用於該型樣搜尋。
  3. 如請求項1之方法,其中該複數個區塊中之一者或多者包括自該複數個特徵胞程式化之複數個狀態機。
  4. 如請求項3之方法,其包括在該複數個區塊之一第三區塊不包括任何經程式化狀態機之情形下,使用一第二電力控制電路停用該第三區塊。
  5. 如請求項1之方法,其包括將來自該第一區塊之一第一信號提供至該複數個區塊之一第二區塊以致使該第二區塊之啟動。
  6. 如請求項5之方法,其中該第一信號係基於該第一區塊之一狀態。
  7. 如請求項5之方法,其包括將來自該第一區塊之一第二信號提供至該第二區塊以指示該型樣搜尋之一跨接。
  8. 如請求項7之方法,其中該第二信號係基於該第一區塊之一狀態。
  9. 如請求項5之方法,其包括在該型樣搜尋在該第二區塊中不再係作用中時,使用一第二電力控制電路撤銷啟動該第二區塊。
  10. 如請求項5之方法,其包括使用一第二電力控制電路啟動該第二區塊以使得該區塊係始終作用中的以用於該型樣搜尋之剩餘部分。
  11. 一種用於型樣辨識之方法,其包括:一第一型樣搜尋循環中之一第一區塊中之一資料串流中之一型樣搜尋;將來自該第一區塊之一第一信號提供至一第二區塊,其中該第一信號啟動該第二區塊以用於一第二型樣搜尋循環,且其中該第一區塊及該第二區塊各自包括複數個特徵胞,且每一特徵胞包括一搜尋項胞,且其中該搜尋項胞包括複數個輸入、一輸出、及複數個記憶體胞,每一記憶體胞耦合至該複數個輸入之一各別輸入且耦合至該輸出;及將來自該第一區塊之一第二信號提供至該第二區塊以使得能夠在該第二型樣搜尋循環中在該第二區塊中之該資料串流中進行該型樣搜尋。
  12. 如請求項11之方法,其中提供該第一信號包括在該型樣 搜尋進展至該第一區塊中之一第一狀態時提供該第一信號。
  13. 如請求項11之方法,其中提供該第二信號包括在該型樣搜尋進展至該第一區塊中之一第二狀態時提供該第二信號。
  14. 一種用於型樣辨識之裝置,其包括:一型樣辨識處理器,其包括:複數個區塊,其中該複數個區塊之一個或多個區塊包括複數個狀態機中之一者或多者,且其中該複數個區塊之每一區塊各自包括複數個特徵胞,且每一特徵胞包括一搜尋項胞,且其中該搜尋項胞包括複數個輸入、一輸出、及複數個記憶體胞,每一記憶體胞耦合至該複數個輸入之一各別輸入且耦合至該輸出;及複數個電力控制電路,其中每一電力控制電路係耦合至該複數個區塊中之一各別區塊,且其中每一電力控制電路經組態以啟動及撤銷啟動該各別區塊。
  15. 如請求項14之裝置,其中該等電力控制電路中之每一者提供用於啟動該複數個區塊中之該各別區塊之一信號。
  16. 如請求項14之裝置,其中該等電力控制電路中之每一者經組態以基於對一資料串流之一識別而撤銷啟動該各別區塊。
  17. 如請求項14之裝置,其中該等電力控制電路中之每一者經組態以在該各別區塊不包括任何經程式化狀態元件之情形下停用該區塊。
  18. 如請求項14之裝置,其中該等電力控制電路中之每一者經組態以停用該各別區塊之一記憶體再新。
  19. 如請求項14之裝置,其中該等電力控制電路中之每一者經組態以基於一型樣搜尋之一進展而啟動該各別區塊。
  20. 如請求項14之裝置,其中該等電力控制電路中之每一者包括一計時器組件,其經組態以基於該各別區塊之一狀態之一判定而延遲該各別區塊之撤銷啟動。
  21. 如請求項20之裝置,其中該計時器組件經組態以在判定該各別區塊之一作用中狀態後重設。
  22. 一種用於型樣辨識之裝置,其包括:一型樣辨識處理器,其包括:具有第一複數個特徵胞之一第一區塊;及具有第二複數個特徵胞之一第二區塊,其中該第一複數個特徵胞及第二複數個特徵胞之每一特徵胞包括一搜尋項胞,且其中該搜尋項胞包括複數個輸入、一輸出、及複數個記憶體胞,每一記憶體胞耦合至該複數個輸入之一各別輸入且耦合至該輸出;其中該第一區塊包括:第一邏輯,其經組態以在一第一型樣搜尋循環期間啟動該第二區塊以使得該第二區塊經啟動以用於一第二型樣搜尋循環;及第二邏輯,其經組態以致使一型樣搜尋自該第一區塊跨接至該第二區塊。
  23. 如請求項22之裝置,其中該第一邏輯經組態以在該第一 型樣搜尋循環期間基於該第一區塊之一第一狀態而啟動該第二區塊。
  24. 如請求項22之裝置,其中該第二邏輯經組態以基於該第一區塊之一第二狀態而跨接該型樣搜尋。
  25. 如請求項22之裝置,其中該第一區塊包括第三邏輯,其經組態以指示該第一區塊係作用中的。
  26. 如請求項22之裝置,其中該第二區塊包括第四邏輯,其經組態以指示該第二區塊係接下來在型樣搜尋序列中。
  27. 一種型樣辨識處理器,其包括:複數個可程式化狀態機元件,其中該複數個可程式化狀態機元件之每一可程式化狀態機元件包括複數個輸入、一輸出、及複數個記憶體胞,每一記憶體胞耦合至該複數個輸入之一各別輸入且耦合至該輸出;及一電力控制電路,其中該電力控制電路經組態以基於型樣搜尋之一進展而在該型樣搜尋期間在實質相同之時間選擇性地啟動該複數個可程式化狀態機元件。
  28. 如請求項27之型樣辨識處理器,其包括狀態機元件之一區塊。
  29. 如請求項28之型樣辨識處理器,其中該電力控制電路係該區塊之邏輯之一部分。
  30. 如請求項28之型樣辨識處理器,其中該電力控制電路係與該區塊之邏輯分離的。
  31. 一種根據程式化為複數個狀態機之搜尋準則搜尋一資料串流之方法,該方法包括: 在型樣搜尋進展至第一複數個狀態機之前在實質相同之時間啟動一區塊之該第一複數個狀態機;及基於該型樣搜尋在該區塊中不再係作用中的之一判定,在實質相同之時間撤銷啟動該第一複數個狀態機,其中該第一複數個狀態機之每一狀態機包括複數個輸入、一輸出、及複數個記憶體胞,每一記憶體胞耦合至該複數個輸入之一各別輸入且耦合至該輸出。
  32. 如請求項31之方法,其進一步包括判定該資料串流之一識別符。
  33. 如請求項32之方法,其進一步包括基於該識別符而在實質相同之時間撤銷啟動一第二複數個狀態機。
  34. 如請求項32之方法,其中該識別符包括一網際網路傳送協定、一自然語言或一遺傳性識別符。
  35. 一種型樣辨識處理器,其包括:複數個可程式化狀態機元件,其中該複數個可程式化狀態機元件之每一可程式化狀態機元件包括複數個輸入、一輸出、及複數個記憶體胞,每一記憶體胞耦合至該複數個輸入之一各別輸入且耦合至該輸出;及一電力控制電路,其中該電力控制電路經組態以基於型樣搜尋之一進展而在該型樣搜尋期間在實質相同之時間選擇性地撤銷啟動該複數個可程式化狀態機元件。
  36. 一種型樣辨識處理器,其包括:複數個可程式化狀態機元件,其中該複數個可程式化狀態機元件之每一可程式化狀態機元件包括複數個輸 入、一輸出、及複數個記憶體胞,每一記憶體胞耦合至該複數個輸入之一各別輸入且耦合至該輸出;及一電力控制電路,其中該電力控制電路經組態以基於型樣搜尋之一資料串流之一識別而在該型樣搜尋期間在實質相同之時間選擇性地撤銷啟動該複數個可程式化狀態機元件。
TW099144035A 2009-12-15 2010-12-15 用於型樣辨識處理器中降低電力消耗之方法及裝置 TWI465945B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/638,751 US9501705B2 (en) 2009-12-15 2009-12-15 Methods and apparatuses for reducing power consumption in a pattern recognition processor

Publications (2)

Publication Number Publication Date
TW201135491A TW201135491A (en) 2011-10-16
TWI465945B true TWI465945B (zh) 2014-12-21

Family

ID=43877160

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099144035A TWI465945B (zh) 2009-12-15 2010-12-15 用於型樣辨識處理器中降低電力消耗之方法及裝置

Country Status (7)

Country Link
US (3) US9501705B2 (zh)
EP (1) EP2513840A1 (zh)
JP (1) JP5923449B2 (zh)
KR (1) KR102004290B1 (zh)
CN (1) CN102741859B (zh)
TW (1) TWI465945B (zh)
WO (1) WO2011081798A1 (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20100174887A1 (en) 2009-01-07 2010-07-08 Micron Technology Inc. Buses for Pattern-Recognition Processors
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 マイクロン テクノロジー, インク. 正規表現をコンパイルするための方法および装置
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
KR101607736B1 (ko) 2011-01-25 2016-03-30 마이크론 테크놀로지, 인크. 오토마톤의 진입 차수 및/또는 진출 차수를 제어하기 위한 양화 언롤링
US8799188B2 (en) * 2011-02-08 2014-08-05 International Business Machines Corporation Algorithm engine for use in a pattern matching accelerator
US8639875B1 (en) * 2011-09-06 2014-01-28 Netlogic Microsystems, Inc. Content search system having multiple pipelines
US8593175B2 (en) 2011-12-15 2013-11-26 Micron Technology, Inc. Boolean logic 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
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
US9443156B2 (en) 2011-12-15 2016-09-13 Micron Technology, Inc. Methods and systems for data analysis 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
US9304968B2 (en) 2012-07-18 2016-04-05 Micron Technology, Inc. Methods and devices for programming a state machine engine
US9389841B2 (en) 2012-07-18 2016-07-12 Micron Technology, Inc. Methods and systems for using state vector data in a state machine engine
US9235798B2 (en) 2012-07-18 2016-01-12 Micron Technology, Inc. Methods and systems for handling data received by a state machine engine
US9524248B2 (en) 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
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
WO2016109571A1 (en) 2014-12-30 2016-07-07 Micron Technology, Inc Devices for time division multiplexing of state machine engine signals
US11366675B2 (en) 2014-12-30 2022-06-21 Micron Technology, Inc. Systems and devices for accessing a state machine
US10430210B2 (en) 2014-12-30 2019-10-01 Micron Technology, Inc. Systems and devices for accessing a state machine
US10691964B2 (en) 2015-10-06 2020-06-23 Micron Technology, Inc. Methods and systems for event reporting
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
US9972375B2 (en) 2016-04-15 2018-05-15 Via Alliance Semiconductor Co., Ltd. Sanitize-aware DRAM controller
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
US11829689B1 (en) 2020-06-09 2023-11-28 The Mathworks, Inc. Systems and methods for creating variant regions in acausal simulation models
US20230205297A1 (en) * 2021-12-27 2023-06-29 Advanced Micro Devices, Inc. Method and apparatus for managing power states

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272616B1 (en) * 1998-06-17 2001-08-07 Agere Systems Guardian Corp. Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths
TWI280497B (en) * 2004-10-12 2007-05-01 Taiwan Semiconductor Mfg Non-uniformity pattern identification systems and methods
US20070127482A1 (en) * 2005-02-12 2007-06-07 Curtis L. Harris General Purpose Set Theoretic Processor

Family Cites Families (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4254476A (en) * 1979-06-25 1981-03-03 Sanders Associates, Inc. Associative processor
DE3538143A1 (de) 1985-10-26 1987-04-30 Hoechst Ag Verfahren zur herstellung von acyloxibenzolsulfonsaeuren und deren salzen
JPH05282362A (ja) 1992-03-31 1993-10-29 Sharp Corp データ検索回路
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
US5602764A (en) 1993-12-22 1997-02-11 Storage Technology Corporation Comparing prioritizing memory for string searching in a data compression system
US5615162A (en) 1995-01-04 1997-03-25 Texas Instruments Incorporated Selective power to memory
JPH08249241A (ja) 1995-03-15 1996-09-27 Nec Corp 記憶装置
JPH09167130A (ja) 1995-12-15 1997-06-24 Fujitsu Ltd Wwwサーバのための通信処理装置
DE19617733A1 (de) 1996-05-03 1997-11-06 Fichtel & Sachs Ag Schaltbarer Klinkenfreilauf für Mehrgangnaben für Fahrräder
US6094443A (en) 1997-10-30 2000-07-25 Advanced Micro Devices, Inc. Apparatus and method for detecting a prescribed pattern in a data stream by selectively skipping groups of nonrelevant data bytes
US6301671B1 (en) * 1998-03-23 2001-10-09 International Business Machines Corporation Apparatus and method for power reduction control in a video encoder device
JPH11298424A (ja) 1998-04-10 1999-10-29 Matsushita Electric Ind Co Ltd 情報受信装置
US6470418B1 (en) 1999-01-15 2002-10-22 Integrated Device Technology, Inc. Pipelining a content addressable memory cell array for low-power operation
US6324087B1 (en) 2000-06-08 2001-11-27 Netlogic Microsystems, Inc. Method and apparatus for partitioning a content addressable memory device
US6763425B1 (en) 2000-06-08 2004-07-13 Netlogic Microsystems, Inc. Method and apparatus for address translation in a partitioned content addressable memory device
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
US6553525B1 (en) 1999-11-08 2003-04-22 International Business Machines Corporation Method and apparatus for selectively enabling and disabling functions on a per array basis
US8095508B2 (en) * 2000-04-07 2012-01-10 Washington University Intelligent data storage and processing using FPGA devices
US6240003B1 (en) 2000-05-01 2001-05-29 Micron Technology, Inc. DRAM content addressable memory using part of the content as an address
US7089436B2 (en) * 2001-02-05 2006-08-08 Morpho Technologies Power saving method and arrangement for a configurable processor array
US7088604B2 (en) 2001-03-15 2006-08-08 Micron Technology, Inc. Multi-bank memory
US7088860B2 (en) 2001-03-28 2006-08-08 Canon Kabushiki Kaisha Dynamically reconfigurable signal processing circuit, pattern recognition apparatus, and image processing apparatus
JP2003060745A (ja) 2001-08-22 2003-02-28 Sony Corp 情報伝達装置、情報伝達方法及びモニタ装置
EP1436936A4 (en) 2001-09-12 2006-08-02 Safenet Inc RECOGNITION OF FORMS OF HIGH-SPEED DATA FLOW
US20030110208A1 (en) 2001-09-12 2003-06-12 Raqia Networks, Inc. Processing data across packet boundaries
ATE373846T1 (de) 2001-09-12 2007-10-15 Safenet Inc Verfahren zur generierung eines dfa-automaten, wobei übergänge zwecks speichereinsparung in klassen gruppiert werden
US7401180B1 (en) 2001-12-27 2008-07-15 Netlogic Microsystems, Inc. Content addressable memory (CAM) device having selectable access and method therefor
US7185141B1 (en) 2001-12-27 2007-02-27 Netlogic Microsystems, Inc. Apparatus and method for associating information values with portions of a content addressable memory (CAM) device
US6717876B2 (en) 2001-12-28 2004-04-06 Mosaid Technologies Incorporated Matchline sensing for content addressable memories
US6768659B2 (en) 2001-12-31 2004-07-27 Mosaid Technologies Incorporated Circuit and method for reducing power usage in a content addressable memory
US7421515B2 (en) 2002-01-17 2008-09-02 Hewlett-Packard Development Company, L.P. Method and system for communications network
EP1520228A2 (en) 2002-07-03 2005-04-06 Koninklijke Philips Electronics N.V. Multi-processor computer system
US7467129B1 (en) 2002-09-06 2008-12-16 Kawasaki Microelectronics, Inc. Method and apparatus for latency and power efficient database searches
US7146643B2 (en) 2002-10-29 2006-12-05 Lockheed Martin Corporation Intrusion detection accelerator
US6888731B2 (en) 2002-11-29 2005-05-03 Mosaid Technologies Incorporated Method and apparatus for replacing defective rows in a semiconductor memory array
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
JP2004328103A (ja) 2003-04-22 2004-11-18 Matsushita Electric Works Ltd 誤り検出回路
JP4196333B2 (ja) 2003-05-27 2008-12-17 日本電気株式会社 並列処理システム及び並列処理プログラム
US7685254B2 (en) * 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
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
US7174469B2 (en) 2003-09-30 2007-02-06 International Business Machines Corporation Processor power and energy management
US7487542B2 (en) 2004-01-14 2009-02-03 International Business Machines Corporation Intrusion detection using a network processor and a parallel pattern detection engine
US7251707B1 (en) 2004-02-06 2007-07-31 Netlogic Microsystems, Inc. Content based content addressable memory block enabling using search key
US7437402B1 (en) 2004-02-25 2008-10-14 Analog Devices, Inc. Low-power, high-speed word comparator
US7057913B2 (en) 2004-04-06 2006-06-06 Intel Corporation Low-power search line circuit encoding technique for content addressable memories
EP1600845A1 (en) 2004-05-28 2005-11-30 STMicroelectronics Limited Processor with power saving circuitry
US7398403B2 (en) 2004-07-01 2008-07-08 Matsushita Electric Industrial Co., Ltd. Multiprocessor control apparatus, control method thereof, and integrated circuit
US7437581B2 (en) 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US7050318B1 (en) 2004-10-01 2006-05-23 Netlogic Microsystems, Inc. Selective match line pre-charging in a CAM device using pre-compare operations
US20060143374A1 (en) 2004-12-29 2006-06-29 Sailesh Kottapalli Pipelined look-up in a content addressable memory
KR101114984B1 (ko) * 2005-03-14 2012-03-06 삼성전자주식회사 가변적인 웨이크업 레이턴시를 가진 프로세싱 장치에서전원 관리 방법 및 장치
US7836284B2 (en) * 2005-06-09 2010-11-16 Qualcomm Incorporated Microprocessor with automatic selection of processing parallelism mode based on width data of instructions
US7598630B2 (en) 2005-07-29 2009-10-06 Intel Corporation IC with on-die power-gating circuit
JP2007066075A (ja) 2005-08-31 2007-03-15 Nikon Corp 起動/停止ロジック回路
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
US7443759B1 (en) 2006-04-30 2008-10-28 Sun Microsystems, Inc. Reduced-power memory with per-sector ground control
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
US8001361B2 (en) 2006-12-13 2011-08-16 International Business Machines Corporation Structure for a single shared instruction predecoder for supporting multiple processors
JP2008276331A (ja) 2007-04-25 2008-11-13 Toshiba Corp マルチプロセッサの制御装置及び方法
WO2008142767A1 (ja) 2007-05-21 2008-11-27 Renesas Technology Corp. 半導体装置
US8631195B1 (en) 2007-10-25 2014-01-14 Netlogic Microsystems, Inc. Content addressable memory having selectively interconnected shift register circuits
US20090271646A1 (en) 2008-04-24 2009-10-29 Vanish Talwar Power Management Using Clustering In A Multicore System
US8112647B2 (en) 2008-08-27 2012-02-07 Globalfoundries Inc. Protocol for power state determination and demotion
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
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
US9639493B2 (en) 2008-11-05 2017-05-02 Micron Technology, Inc. Pattern-recognition processor with results buffer
US8402188B2 (en) 2008-11-10 2013-03-19 Micron Technology, Inc. Methods and systems for devices with a self-selecting bus decoder
US9348784B2 (en) 2008-12-01 2016-05-24 Micron Technology, Inc. Systems and methods for managing endian mode of a device
US10007486B2 (en) 2008-12-01 2018-06-26 Micron Technology, Inc. Systems and methods to enable identification of different data sets
US9164945B2 (en) 2008-12-01 2015-10-20 Micron Technology, Inc. Devices, systems, and methods to synchronize parallel processing of a single data stream
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
US8140780B2 (en) 2008-12-31 2012-03-20 Micron Technology, Inc. Systems, methods, and devices for configuring a device
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
US8281395B2 (en) 2009-01-07 2012-10-02 Micron Technology, Inc. Pattern-recognition processor with matching-data reporting module
US8843523B2 (en) 2009-01-12 2014-09-23 Micron Technology, Inc. Devices, systems, and methods for communicating pattern matching results of a parallel pattern search engine
US9014825B2 (en) * 2009-06-16 2015-04-21 Maxim Integrated Products, Inc. System and method for sequentially distributing power among one or more modules
US9836555B2 (en) 2009-06-26 2017-12-05 Micron Technology, Inc. Methods and devices for saving and/or restoring a state of a pattern-recognition processor
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
US7920399B1 (en) 2010-10-21 2011-04-05 Netlogic Microsystems, Inc. Low power content addressable memory device having selectable cascaded array segments
KR101607736B1 (ko) 2011-01-25 2016-03-30 마이크론 테크놀로지, 인크. 오토마톤의 진입 차수 및/또는 진출 차수를 제어하기 위한 양화 언롤링
US8788991B2 (en) 2011-01-25 2014-07-22 Micron Technology, Inc. State grouping for element utilization
JP5763783B2 (ja) 2011-01-25 2015-08-12 マイクロン テクノロジー, インク. 正規表現をコンパイルするための方法および装置
US8843911B2 (en) 2011-01-25 2014-09-23 Micron Technology, Inc. Utilizing special purpose elements to implement a FSM

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272616B1 (en) * 1998-06-17 2001-08-07 Agere Systems Guardian Corp. Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths
TWI280497B (en) * 2004-10-12 2007-05-01 Taiwan Semiconductor Mfg Non-uniformity pattern identification systems and methods
US20070127482A1 (en) * 2005-02-12 2007-06-07 Curtis L. Harris General Purpose Set Theoretic Processor

Also Published As

Publication number Publication date
US9501705B2 (en) 2016-11-22
WO2011081798A1 (en) 2011-07-07
KR102004290B1 (ko) 2019-07-26
KR20120106978A (ko) 2012-09-27
CN102741859B (zh) 2016-12-21
US20190095497A1 (en) 2019-03-28
US20110145271A1 (en) 2011-06-16
JP2013513893A (ja) 2013-04-22
JP5923449B2 (ja) 2016-05-24
US20170068707A1 (en) 2017-03-09
CN102741859A (zh) 2012-10-17
US11151140B2 (en) 2021-10-19
US10157208B2 (en) 2018-12-18
EP2513840A1 (en) 2012-10-24
TW201135491A (en) 2011-10-16

Similar Documents

Publication Publication Date Title
TWI465945B (zh) 用於型樣辨識處理器中降低電力消耗之方法及裝置
US10817569B2 (en) Methods and devices for saving and/or restoring a state of a pattern-recognition processor
TWI507977B (zh) 啟用不同資料集之識別之系統及方法
TWI414998B (zh) 型樣辨識處理器之電力消耗管理之方法及系統
TWI416332B (zh) 藉由多個裝置同步化單一資料串流之同時直接記憶體存取平行處理之裝置、系統及方法
TWI479342B (zh) 用於型樣辨識處理器之多階層式路由矩陣
TWI488108B (zh) 用以同步一單一資料串流之平行處理的裝置、系統及方法
TWI409695B (zh) 用於配置裝置之系統、方法及裝置
US9026485B2 (en) Pattern-recognition processor with matching-data reporting module
TWI489300B (zh) 用於傳達平行型樣搜尋引擎之型樣匹配結果之裝置、系統及方法
TWI436271B (zh) 具有結果緩衝器之型樣辨識處理器
TWI590059B (zh) 用於型樣辨識處理器之匯流排