TW201209717A - Analyzing data using a hierarchical structure - Google Patents

Analyzing data using a hierarchical structure Download PDF

Info

Publication number
TW201209717A
TW201209717A TW100120418A TW100120418A TW201209717A TW 201209717 A TW201209717 A TW 201209717A TW 100120418 A TW100120418 A TW 100120418A TW 100120418 A TW100120418 A TW 100120418A TW 201209717 A TW201209717 A TW 201209717A
Authority
TW
Taiwan
Prior art keywords
data
parallel machine
output
machine
parallel
Prior art date
Application number
TW100120418A
Other languages
English (en)
Other versions
TWI584198B (zh
Inventor
Paul Dlugosch
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 TW201209717A publication Critical patent/TW201209717A/zh
Application granted granted Critical
Publication of TWI584198B publication Critical patent/TWI584198B/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
    • 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/242Query formulation
    • G06F16/243Natural language query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17312Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7885Runtime interface, e.g. data exchange, runtime control
    • 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/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3335Syntactic pre-processing, e.g. stopword elimination, stemming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/425Lexical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Description

201209717 六、發明說明: 本專利申請案根據35 U.S.C.第119(e)條主張Dlugosch等 人於2010年6月10日提出申請之題目為「HIERARCHICAL PATTERN RECOGNITION」之序列號為 61/353,546之美國 臨時專利申請案(代理人檔案號碼303.B42PRV)之優先權權 益,該申請案以全文引用方式併入本文中。 【先前技術】 複雜型樣辨識在一基於馮·諾伊曼(von Neumann)之習用 電腦上執行起來效率低下。然而,一生物大腦,特定而言 一人類大腦擅長執行型樣辨識。當前研究表明,一人類大 腦使用大腦新皮質中之一系列以階層方式組織之神經元層 來執行型樣辨識。階層之較低層中之神經元分析來自(例 如)感覺器官之「原始信號(raw signal)」,而較高層中之神 經元分析來自較低層級中之神經元之信號輸出。大腦新皮 質中之此階層式系統,可能與大腦之其他區域組合,實現 複雜型樣辨識’此使得人類能夠執行高階功能,諸如空間 推理、意識思考及複雜語言。 【發明内容】 此文件除其他之外亦闡述用於使用一階層式結構分析資 料之方法及設備。該階層式結構可包含複數個層,其中每 一層對輸入資料執行一分析並基於該分析提供一輪出。可 將來自該階層式結構中之較低層之輸出作為輸入提供至較 高層《以此方式,較低層可執行一較低層級之分析(例 如,更基本/基礎分析)’而一較高層可使用來自—或多個 156603.doc -4- 201209717 較低層之輸出執行—較高層級之分析(例如,更複雜分 析)在一實例中,該階層式結構執行型樣辨識。在一實 例中’型樣辨識包括識別_符號序列。用於型樣之識別之 實例性符號可對應於音素(音訊)、-影像中之像素、 ASCI1字元、機器資料(例如,⑷)。 在實例中,藉助以—級聯方式輕合在一起之複數個平 打機器來實施該階層式結構。舉例而言,-第-平行機器 與第二平行機器可串列轉合,以使得該第二平行機器接收 來自該第平行機器之—輸出作為-輸人。任-數目個平 行機器可在此階層式結構中耦合在一起。 除了使用㉟層式結構分析資料之外,此文件亦聞述用 ;使用來自在$層之—個層級處執行之分析之資訊來修 改在該階層之另-層級處執行之分析之方法及設備。使用 上文所述之平行機器實例,實施—較高層級之分析之第二 平:機器可提供回饋資訊至實施一較低層級之分析之第一 平行機器。該回饋資訊可由第一 在-生物大腦中學習之—方式更=機錢用來以類似於 方式更新第一平行機器所執行之 分析。 【實施方式】 以下說明及圖式充分圖解說明特定實施例以使孰習此項 槿邏短Φ / 其他實施例可併入有結 構月邏輯、電、處理程序及其他改變。某些實施例之各部 分及特徵可包括於其他實施例之彼等部分及特徵中= 其他實施例之彼等部分及特徵。 , 5替弋 156603.doc 201209717 圖1圓解說明可用以實施一階層式結構以用於分析資料 之一實例性平行機器100。平行機器100可接收輸入資料並 基於該輸入資料提供一輸出,平行機器1〇〇可包括一資料 輸入埠110以用於接收輸入資料及一輸出埠114以用於提供 一輸出至另一裝置。資料輸入埠110提供一介面以用於將 資料輸入至平行機器100。 平行機器100包括複數個可程式化元件1〇2,該複數個可 程式化元件102中之每一者具有一或多個輸入1〇4及一或多 個輸出106。—可程式化元件102可被㈣化至複數個狀態 中之一者中》可程式化元件1〇2之狀態判定可程式化元件 102將基於一(若干個)既定輸入提供何種輸出。亦即,可程 式化元件102之狀態判定可程式化元件將基於一既定輸入 如何做出反應。至資料輸入埠110之資料輸入可提供至複 數個可程式化元件102以致使可程式化元件1〇2對其採取行 動。一可程式化元件1〇2之實例可包括下文詳細論述之一 狀態機元件(SME)及一可組態邏輯區塊。在一實例中當 在資料輸入埠11〇處接收到一既定輸入時一SME可被設定 成一既定狀態以提供某一輸出(例如,—高信號或「丨」信 號)。當在資料輸入埠110處接收到除該既定輸入之外的二 輸入時,該SME可提供一不同輸出(例如,一低信號或 「〇」信號)。在-實例中,-可組態邏輯區塊可經設定以 基於在資料輸入崞110處所接欠之輸入來執行一布林邏輯 函式(例如,「及(AND)」、「或(0R)」、「非或(N0R)」等)。 平行機器1〇0亦可包括-程式化介面lu以用於將一程式 156603.doc -6· 201209717 (例如,-影像)載入至平行機器⑽上。該影像可程式化 (例如,設定)可程式化元件102之狀態。亦即,該影像可組 態可程式化元件102以便以某一方式對一既定輸入做出反 應。舉例而言,一可程式化元件1〇2可經設定以在資料輸 入埠110處接收到字元「aj時輸出一高信號。在某些實例 中,平行機器1〇〇可使用一時脈信號以用於控制可程式化 7G件102之操作之計時。在某些實施例令,平行機器⑽可 包括專用元件112(例如’ RAM、邏輯閘、計數器、查找表 等)以用於與可程式化元件1G2互動及用於執行專用功能。 在某些實施例中,在資料輸入埠11〇處所接收之資料可包 括隨時間或同時-起接收之—固定資料組或隨時間接收之 一資料串流。該資料可係自耦合至平行機器1〇〇之任一源 (諸如資料庫、感測器、網路等)接收或由其產生。 平行機器1〇〇亦包括複數個可程式化交換器1〇8以用於選 擇性地將平行機器100之不同元件(例如,可程式化元件 102、資料輸入埠110、輸出埠114、程式化介面1U及專用 二件112)叙合在-起。因此,平行機器剛包含形成於該 等元件虽中之一可程式化矩陣。在一實例中,一可程式化 父換器108可選擇性地將兩個或兩個以上元件彼此耦合在 -起以使得一可程式化元件1〇2之一輸入1〇4、資料輸入埠 110、一程式化介面11丨或專用元件112可透過一或多個可 程式化交換器108耦合至一可程式化元件1〇2之一輪出 106、輸出珲114 •、一程式化介面iu或專用元件112。因 此,可藉由設定可程式化交換器1〇8來控制信號在該等元 156603.doc 201209717 件之間的路由。雖然圖!圖解說明_既定元件與一可程式 化交換器⑽之間的某一數目個導體(例如,導線),但應理 解,在其他實例中可使用不同數目個導體。而且,雖然圖 1圖解說明個別地柄合至-可程式化交換器1〇8之每一可程 式化疋件102’但在其他實例中,多個可程式化元件102可 作為-群組(例如,圖8中所圖解說明之一區塊80_合至 可程式化父換器108。在一實例中資料輸入璋11〇、資 料輸出埠m及/或程式化介面⑴可實施為暫存器以使得至 該等暫存器之寫入提供資料至各別元件或自該等各別元件 提供資料》 在一實例中,在一實體裝置上實施一單個平行機器 1 曰〇〇’然而在其他實例中可在—單個實體裝置(例如,實體 晶片)上實施兩個或兩個以上平行機器100。在一實例中, 多個平行機器⑽中之每一者可包括一相異資料輸入槔 110、一相異輸出埠114、一相異程式化介面lu及一組相 異可程式化70件102 ^此外,每一組可程式化元件1〇2可在 其對應輸人資料埠11()處對資料做出反應(例如,輸出一高 信號或低信號)。舉例而言,對應於一第一平行機器ι〇〇之 一第一組可程式化元件1〇2可在對應於第一平行機器ι〇〇之 一第一資料輸入埠110處對資料做出反應,對應於一第二 平行機器100之一第二組可程式化元件1〇2可對對應於第二 平行機器100之一第二資料輸入埠11〇做出反應。因此,每 一平行機器100包括一組可程式化元件102,其中不同組可 程式化元件102可對不同輸入資料做出反應。類似地,每 156603.doc 201209717 一平行機器100及每一對應組可程式化元件1〇2可提供一相 異輸出。在某些實例中,來自第—平行機器100之一輪出 皡m可輕合至-第二平行機器⑽之—輸人琿11〇,以使 . 得詩第二平行機器刚之輸入資料可包括來自f 一平行 機器100之輸出資料。 ; 在—實例中1於載人至平行機器1〇〇上之-影像包含 複數個資訊位元以用於設定可程式化元件1〇2之狀態、程 式化可程式化交換器108及組態平行機器1〇〇内之專用元件 112。在一實例中,該影像可載入至平行機器1〇〇上以程式 化平行機器100以基於某些輸入提供一期望輸出。輸出埠 114可基於可程式化元件102對資料輸入埠11〇處之資料之 反應而提供來自平行機器100之輸出。來自輸出埠114之一 輸出可包括指示一既定型樣之一匹配之一單個位元、包含 指示匹配及不匹配複數個型樣之複數個位元之一字組 (word)及對應於所有或某些可程式化元件丨〇2在一既定時 刻之狀態之一狀態向量。 平行機器100之實例性用途包括型樣辨識(例如,語音辨 識、影像辨識等)、信號處理、成像、電腦視覺、密碼編 ' 5睪及其他。在某些實例中,平行機器100可包含一有限狀 • 態機(FSM)引擎、—場可程式化閘陣列(FPGA)及其變化形 式。此外,平行機器1〇〇可係一較大裝置(諸如一電腦、傳 呼機蜂巢式電話、個人記事本、可攜式音訊播放器、網 路裝置(例如’路由器、防火牆、交換器或其任一組合)、 控制電路、相機等)中之一組件。 156603.doc 201209717 圖2圖解說明可由平行機器100實施之一有限狀態機 (FSM)之一實例性模型。平行機器1〇〇可組態(例如,程式 化)為一 FSM之一實體實施方案。一 FSm可表示為一圖 200(例如,有向圖、無方向圖、偽圖),其含有一或多個根 節點202。除了根節點202之外’該FSM可由透過一或多個 邊緣2 0 6連接至根i卩點2 0 2及其他標準節點2 〇 4之若干個標 準節點204及終端節點208構成。一節點202、2〇4、2〇8對 應於該FSM中之一狀態。邊緣206對應於該等狀態之間的 轉變。, 該等節點(202、204、208)中之每一者可處於一作用中 或一非作用中狀態中。當處於非作用中狀態中時,一節點 (202、204、208)不對輸入資料做出反應(例如,回應)。當 處於一作用中狀態中時,一節點(2〇2、204、208)可對輸入 資料做出反應《當輸入資料匹配一上游節點(2〇2、2〇4)與 在該節點下游之一節點(204、208)之間的一邊緣2〇6所指定 之準則時,該上游節點(202、204)可藉由啟動該下游節點 (204、208)來對輸入資料做出反應。舉例而言當指定字 兀「b」之一第一節點204係作用中且接收到字元「b」作 為輸入資料時,該第一節點2〇4將啟動藉由一邊緣2〇6連接 至該第一節點204之一第二節點204。如本文所使用,一 「上游j係指一或多個節點之間的一關係,其中一第一節 占在或多個其他卽點上游(或在迴圈之情形中,在其自 身上游)係指該第一節點可啟動該一或多個其他節點(或在 一迴圈之情形中,可啟動其自身)之情形。類似地,「下 156603.doc 201209717 游」係指一關係,其中在一或多個其他節點下游(在一迴 圈之情形中,在其自身下游)之一第一節點可由該一或多 個其他節點啟動(或在一迴圈之情形中,可由其自身啟 動)。因此,本文使用術語「上游」及「下游」來指—或 多個節點之間的關係,但此等術語不排除迴圈之使用或節 點當中之其他非線性路徑。 在圖200中,根節點202可首先被啟動且當輸入資料匹配 來自根節點202之一邊緣2〇6時根節點202可啟動下游節點 204、208。當接收到輸入資料時可以此方式啟動貫穿圖 200之節點204、208。一終端節點208對應於輸入資料之一 所關注序列之一匹配。因此,啟動一終端節點2〇8指示已 接收到一所關注序列作為輸入資料。在實施一型樣辨識功 旎之一平行機器100之上下文中,到達一終端節點可指 示已在輸入資料令偵測到一所關注特定型樣。 在一實例中,每一根節點202、標準節點204及終端節點 208可對應於平行機器1〇〇中之一可程式化元件1〇2。每一 邊緣206可對應於可程式化元件1〇2之間的連接。因此,轉 變至另一標準節點2〇4或一終端節點2〇8(例如,具有連接 至另一標準節點204或一終端節點2〇8之一邊緣2〇6)之一標 準節點204對應於轉變至另一可程式化元件1〇2(例如,= 供-輸出至另一可程式化元件1〇2)之一可程式化元件 102。在一些實例令’根節點2〇2不具有一對應可程式化元 件 102。 當平订機器1〇〇程式化為一 FSM時,可程式化元件中 156603.doc -11 - 201209717 之每一者亦可處於一作用中或非作用中狀態中。一既定可 程式化元件102在非作用中時不對其對應資料輸入埠11()處 之輸入資料做出反應。一作用中可程式化元件1〇2可對輸 入資料及資料輸入埠11〇做出反應,且可在輸入資料匹配 一下游可程式化元件1〇2之設定時敖動該可程式化元件 102。當一可程式化元件1 〇2對應於一終端節點208時,該 可程式化元件102可耦合至輸出埠114以提供一匹配之一指 示至一外部裝置。 經由程式化介面111載入至平行機器i 〇〇上之一影像可組 態可程式化元件102及其他元件112以及可程式化元件ι〇2 與其他元件112之間的連接,以便基於對資料輸入蟑11〇處 之資料之回應而透過節點之順序啟動來實施一期望FSM。 在一實例中’一可程式化元件102保持作用中達一單個資 料循環(例如,一單個字元、一組字元 '一單個時脈循環) 且然後切換至非作用中,除非被一上游可程式化元件1〇2 重新啟動。 可遇為一終端fp點2 0 8儲存一經壓縮之過去事件歷史。 舉例而言,到達一終端節點208所需要之輸入資料之一或 多個型樣可由彼終端節點208之啟動表示。在一實例中, 一終端節點208所提供之輸出係二進制的,亦即該輸出指 示是否已匹配所關注型樣。一圖2〇〇中終端節點2〇8對標準 節點204之比率可相當小。換言之,雖然在該FSm中可存 在一高複雜度,但比較而言該FSM之輸出可小。 在一實例中,平行機器100之輸出可包含一平行機器之 •12- 156603.doc
201209717 一狀態向量。該狀態向量包含平行機器100之可程式化元 件102之狀態(例如’被啟動或未被啟動)^在一實例中,該 狀態向量包括對應於終端節點208之可程式化元件1〇2之狀 態。因此,輸出可包括一圖200之全部終端節點208所提供 之指示之一集合。該狀態向量可表示為一字組,其中每一 終端節點208所提供之二進制指示包含該字組之一個位 元。終端節點208之此編碼可提供平行機器ι00之偵測狀態 (例如,是否已偵測到所關注序列及已偵測到什麼所關注 序列)之一有效指示。在另一實例中,狀態向量可包括可 程式化元件102之全部或一子組之狀態,而不顧慮該等可 程式化元件102是否對應於一終端節點208。 如上文所提及’平行機器1 〇〇可經程式化以實施一型樣 辨識功能。舉例而言’平行機器1〇〇所實施之FSM可經組 態以辨識輸入資料中之一或多個資料序列(例如,簽章、 型樣)。當平行機器100辨識出一所關注資料序列時,可在 輸入埠114處提供彼辨識之一指示。在一實例中,型樣辨 識可辨識一串符號(例如,ASCII字元)以(例如)識別網路資 料中之惡意軟體或其他資訊。 圖3圖解說明經組態以使用一階層式結構3〇〇來分析資料 之一第一平行機器302及一第二平行機器304之一實例。每 一平行機器302、304包括資料輸入埠302A、304A、一程 式化介面302B、304B及一輸出埠302C、304C。 第一平行機器302經組態以在資料輸入埠302A處接收輸 入資料,例如原始資料(raw datap第一平行機器302如上 156603.doc -13- 201209717 文所述回應於輸入資料且在輸出琿3〇2C處提供一輸出。來 自第平行機器302之該輸出發送至第二平行機器3〇4之資 料輸入埠304A。第二平行機器3〇4然後可基於第一平行機 器302所提供之該輸出而做出反應且在輸出埠304C處提供 -對應輸出。兩個平行機器逝、3〇4之此串列階層式輕合 提供將關於一經壓縮字組中之過去事件之資訊自一第一平 打機器302傳送至一第二平行機器3〇4之一手段。所傳送之 資訊實際上可係已被第一平行機器3 〇 2記錄之複雜事件(例 如,所關注序列)之一概要。 圖3中所展示之平行機器3〇2、3〇4之兩層級階層3〇〇允許 兩個獨立程式基於同一資料串流而操作。該兩級階層可類 似於建模為不同區之一生物大腦中之視覺辨識。在此模型 下,該等區實際上係不同型樣辨識引擎,每一型樣辨識引 擎執行一類似計算功能(型樣匹配)但使用不同程式(簽 章)。藉由將多個平行機器3〇2、3〇4連接在一起,可獲得 關於資料串流輸入之增加之知悉。 該階層之第一層級(由第一平行機器3 〇2實施)直接對一 原始資料串流(raw data stream)執行處理。亦即,在輸入 介面302A處接收該原始資料串流且第一平行機器3〇2之可 程式化70件可對該原始資料串流做出反應。該階層之第二 層級(由第二平行機器3〇4實施)處理來自該第一層級之輸 出。亦即,第二平行機器3〇4在輸入介面304B處接收來自 第一平行機器302之輸出且第二平行機器3〇4之可程式化元 件可對第一平行機器3 02之輸出做出反應。因此,在此實 156603.doc 201209717 例中,第二平行機器304不接收該原始資料串流作為一輸 入,而是接收第一平行機器302所判定之該原始資料串流 所匹配之所關注型樣之指示。第二平行機器304可藉助辨 識來自第一平行機器302之輸出資料串流中之型樣之一 FSM而程式化。 圖4圖解說明兩層級階層400之另一實例,其中該階層之 一個層級係藉由多個平行機器而實施。此處,階層400之 第一層級係藉由三個平行機器402而實施。來自三個第一 層級平行機器402中之每一者之輸出係提供至辨識(例如, 識別)來自第一層級平行機器402之輸出中之型樣之一單個 第二層級平行機器404。每一平行機器402、404包括一資 料輸入埠402A、404A、一程式化介面402B、404B及一輸 出埠 402C、404C。 圖5圖解說明藉由四個平行機器502、504、506及508實 施之四層級階層500,且顯示欲由每一層級識別之型樣之 一實例。如上文所論述,每一平行機器5〇2、504、506及 508包括一資料輸入埠502A、504A、506A及508A、一程式 化介面502B、504B、506B及508B以及一輸出埠502C、 504C、506C及508C。四層級階層500對應於基於一影像中 之黑色或白色像素對經寫入語言之一視覺識別。隨著階層 進行至較高層級,對輸入串流之積累之知悉相應地增長。 平行機器502、504、506、508經級聯以實現階層辨識能 力。階層500之每一連續層級可實施應用於先前層級之經 壓縮輸出之新規則(型樣簽章)。以此方式,可基於對基本 136603.doc -15· 201209717 的基元資訊之初始偵測來識別高度詳細之物件。 舉例而言,至層級1(第一平行機器502)之原始資料輸入 串流(raw data input stream)可包含一視覺影像之像素資訊 (例如’而不顧慮一既定位元係黑色/白色、接通/關斷)。 第一平行機器502可經程式化以識別像素資訊所形成之基 儿型樣。舉例而言,第一平行機器5〇2可經組態以識別毗 鄰像素何時形成垂直線、水平線、弧等。此等型樣(例 如1垂直線、水平線弧等)中之每一者可由來自第一平行 機器502之一各別輸出位元(或信號)指示。舉例而言,當第 一平行機器502識別出含至少3個位元之一垂直線時,一高 信號(例如,邏輯「1」)可在一輸出字組之一第一位元上輸 出至第二平行機器5〇4。當第一平行機器5〇2識別出含至少 3個位元之一水平線時,一高信號可在一輸出字組之一第 二位元上輸出至第二平行機器5〇4。 第二層級(第二平行機器504)可經程式化以識別來自第 平行機器502之輸出信號中之型樣。舉例而言,第二平 行機器504可經程式化以識別第一平行機器5〇2所識別之基 元型樣(線、弧等)之組合所形成之型樣。第二平行機器5〇4 可經程式化以識別一水平線與一垂直線何時交叉從而形成 子母「t」。如上文所提及’第二平行機器5〇4所實施iFSM 中之節點對來自第一平行機器502之輸出做出反應。因此 藉由識別來自第一平行機器502之輸出位元中之型樣來識 別基元型樣之組合。 來自第二平行機器504之輸出然後輸入至第三層級(第三 156603.doc 201209717 平行機器506)中,第三層級可自第二平行機器504所識別 之字母之組合識別字。然後第四層級(第四平行機器508)可 識別第三平行機器506所識別之字所形成之片語。因此, 較高層級可經程式化以識別較低層級輸出中之型樣。另 外’較低層級可經程式化以識別構成在較高層級中所識別 之型樣之分量。 來自像素資訊之字母、字及片語之視覺識別用作一實 例;然而’本文所述之階層方法及設備可應用於其他資料 及用於其他用途。舉例而言,可對對應於聲音之資料使用 階層分析以自一第一層級處之音素之組合識別音節及自一 第二層級處之音節之組合識別字。在其他實例中,階層分 析可應用於自身係以一階層方式構建之機器資料(例如, 原始0及1) » 雖然圖5圖解說明層之間的特定及個別連接,但應理 解可實施@層,其中來自一個層級之輸出向前或向後 镄送至該階層之其他層級。舉例而言,來自第二平行機器 口之輸出可發送至第四平行機器5。8,而來自第四平行 機器5〇8之一輸出可回镇至第三平行機器506。薇統而言’ 層可、i實施以使得來自平行機器之偵測狀態資訊饋送 至其他平行機器中之—或多者或其全部。 個^ _實例中’在階層式結構巾使用喊來更新一或多 出可提供至1二λ Γ卜 第—層級之一輸 以MM i 新程式化該第:層級。此可用 第—層級中所識別(或未識別)之型樣而更新第二 156603.doc 201209717 詹級所應用之規則。在-實例中,第—層級係階層中高於 第一層級之-層級。舉例而言,較低層級可經重新程式化 以基於較高層級所識別之型樣而尋找非由程式原始指定之 額外型樣。在另-實例中’可通知較低層級:較低層級所 識別之-特定型樣係顯著的’乃因該特定型樣與其他型樣 組合以形成一顯著事件。在又一實例中,可通知較低層 級:所識別t-特定型樣不具有特定值且因此較低層級可 停止識別彼型樣。在一實例中,可隨時間執行重新程式 化,以便在一時間週期上藉由小調整來遞增地修改一既定 層級之程式》 圖6圖解說明四層級階層6〇〇之一實例,其使用回饋來重 新程式化該階層之部分。藉助四個平行機器6〇2、604、 606、608來實施四層級階層6〇〇,該四個平行機器中之每 一者具有一資料輸入埠602A、604A、606A、608A、一程 式化介面 602B、604B、606B、608B 及一輸出埠 602C、 604C、606C、608C。第一平行機器602實施階層600之第 一層級且提供一輸出至實施階層6〇〇之第二層級之第二平 行機器604。第二及第四平行機器606、608同樣實施階層 600之第三及第四層級。在一實例中,基於關於第一平行 機器602所接收之輸入資料對階層6〇〇之分析而將來自第四 平行機器608之輸出作為階層600之一輸出發送至一外部裝 置。因此’來自第四平行機器608之輸出對應於階層600之 集體輸出》在其他實例中,來自其他平行機器608之輸出 可對應於階層600之集體輸出。 156603.doc 】8 ⑧ 201209717 來自第一、第二及第四平行機器6〇4、6〇6、6〇8之輸出 中之每一者回饋至下面層級處之平行機器6〇2、6〇4、6〇6 之程式化介面602B、604B、606B »舉例而言,來自第四 平打機器608之輸出回饋至第三平行機器6〇6之程式化介面 606B中。因此可基於來自第四平行機器6〇8之輸出而重新 程式化第二平行機器606 ^因此,第三平行機器6〇8可在運 行時間期間修改其程式。可分別基於來自第二及第三平行 機器604、606之輸出在運行時間期間類似地重新程式化第 一平行機器602及第二平行機器6〇4。 在貫例中’來自一平行機器6〇4、606、608之回饋經分 析及編#以形成一程式(例如,一影像)以用於重新程式化 一平行機器602、004、006 »舉例而言,來自平行機器4〇8 之輸出在被發送至程式化介面6〇6B之前由一處理裝置614 分析並編譯。處理裝置614可基於來自平行機器6〇8之輸出 產生用於平行機器606之經更新程式。處理裝置614可分析 該輸出並編譯用於第三平行機器6〇6之經更新程式。然後 可將該經更新程式透過程式化介面6〇6B載入至第三平行機 器606上以重新程式化第三平行機器6〇6。在一實例中,該 經更新程式可僅含有自當前程式之一局部改變。因此,在 一實例中,一經更新程式僅替代一平行機器6〇2、6〇4、 606 608上之一當前程式之一部分。在另一實例中一經 更新程式替代一當前程式之全部或一大部分。同樣,處理 裝置61〇、612可基於來自第二及第三平行機器604、6〇6之 輸出以一類似方式分析回饋並編譯經更新程式。可藉助一 156603.doc •19- 201209717 可藉助一不同類型之機器 —電腦)來實施一處理裝置 或多個額外平行機器來實施或 (例如,具有一馮.諾伊曼架構之 610、612、614。 在某些實例中,處理裝置61〇、612 式之針八4也 6〗4在編譯新的程 式之前刀析來自一較高層級之輸 罟6 1 Λ m 任實例中,處理裝 置610、612、614分析該輸出以 式曰缺1 # Λ j ^如何更新較低層級程 大且然後基於該分析編譯新的(例如,經 層級程式。雖然在階層6〇〇中,— ”。氐 伤6— 既疋平行機器處之回饋 係自該既定平行機器正上方之 鏆 一平行^ 層級接收,但回饋可係自任 g 層級處之另一平行機 器舉例而言’回饋可係自一平扞棬哭+认, ^ ^ 十仃機器之輸出或自相同' 敕奇或較低層級處之另一平轩 力十订機盗之輸出在彼同一平行機 程式化輸入處接收。另外,一平行機器可自多個不 。+仃機器接收回鎖。基於回饋對平行機器之重新程式化 可與對輸人資料中之型樣識別在時間上斷開(例如,與原 始資料之處理不即時)。 一沿階層向下發送回資訊以影響較低層級之重新程式化之 一目的可係使得較制級在辨別所關注型樣時可變得更高 j。^階層向下發送資訊之另—目的係在較低層級中達成 •較问位準之敏銳度。在某些實例中,在可能_避免發送 資訊至較高層級之處理程序,因此認識到傳送資訊至階層 之較高層級花費時間。在某些實例中,較高層級可基本上 用以解析對於系統而言係新型樣之型樣之識別。此可類似 於在一生物大腦之大腦新皮質中發生之所使用處理程序。 156603.doc 201209717 在一實例中,若可在較低層級處完全解析一型樣,則應這 樣做。回饋機制係傳送「學習」至階層之較低層級之一種 方法。沿階層向下回推送資訊之此處理程序將幫助保留階 層之上部層級以用於處理新的或不熟悉的型樣。此外,可 藉由減小穿過階層之各個層級之資料傳送量來加速整個辨 識處理程序。 回饋可使階層之較低層級對輸人處之資料串流更劇烈地 敏感。此「向下推送」資訊之一結果係可在階層之較低層 級處做出決定且該做出決定可極快地完成。因此在一實例 中’來自較低層級平行機器(例如’第—平行機器6〇2)之輸 出可對應於自階層_至另-裝置之集體輸出連同來自第 四平行機器608之輸出。外部裝置可(例如)監測來自此等平 行機器602、608中之每一者之輸出以判定階層繼何時已 識別出型樣。 在-實例中,回饋資訊可包括識別對應於所分析之資料 串流之資訊。舉例而言’識別資訊可包括資料之一識別特 性、資料之格式、資料之一協定及/或任一其他類型之識 別資訊。該識別資訊可由(例如)處理裝置―收集、分析及 使用以修改(例如,調適)用於輸入資料之分析方法。缺後 可藉助經調適之分析方法來程式化平行機器⑽。識別 資訊可包括(例如)輸入資料之-語言。平行機器100可首先 經程式化以判定輸入眘粗# ^ 資枓之一 s且一旦已識別對應於該 輸入之-語言則就在運行__對該平行機器 (例如,重新程式化)。用於平行機器1〇。之經調適分析方法 156603.doc -21- 201209717 可更特定地對應於用於所識別語言之分析方法。最後,平 行機器100可使用經調適之分析方法來分析未來的輸入資 料。回饋處理程序可反覆以便可在輸入資料中找到額外識 別資訊以允許進一步調適分析方法。 用於載入至一平行機器100上之程式(例如,影像)可由 下文關於圖12所論述之一編譯器產生。一般而言,編譯可 係一計算密集的處理程序,且可在第一次編譯型樣簽章之 大資料庫時最明顯。在運行時間操作中,較高層級之平行 機器100可正在以用於較低層級平行機器之一增量程式更 新之形式提供回饋至較低層級。因此,至較低層級平行機 器之回饋資訊可係對一原始程式(original program)之小得 多之增量更新,該等增量更新編譯起來係較不計算密集 的0 圖7圖解說明藉助四個平行機器702、704、706、708實 施之四層級階層7〇〇之另一實例。該四個平行機器7〇2、 704、706、708中之每一者具有一資料輸入埠7〇2A、 704A、706A、708A、一程式化介面 702B、7〇4B、7〇6B、 7〇8B及一輸出埠 7〇2C、704C、706C、708C。另外,在某 些實例中,四層級階層700可包括處理裝置71〇、7i2、714 以編譯用於平行機器7〇2、704及706之程式。在四層級階 層700中,第二、第三及第四層級平行機器7〇4、7〇6、 自較低層級平行機器702、7〇4、706之輸出接收輸入資料 及自原始資料串流接收輸入資料。因此,廣級2、3及4 可自來自較低層級與原始資料之型樣之組合識別型樣。 156603.doc ⑧ •22- 201209717 自圖6及圖7可見,平行機器刚幾乎可以任—方式級 聯,其中至階層之眉私音祖心人 々始資枓輸入以及來自一平行機器1〇〇 之-輸出可發送至任一其他平行機器刚,包括其自身。 此外來自既疋平行機器100之輸出可發送至另一平行 機器100作為至資料輸入埠110中之輸入資料及,或作為回 饋以用於更新一平行機器100之程式。 由於一平打機器100處理輸入資料之一個資料循環(例 如’一位元、一字組)之時間’㈣列方式級聯平行機器 100可增加透過全部平行機器1⑼完全處理輸人資料串流之 時間以產生-階層之—集體輸出。由於—階層之較低層級 可接收-較低(最細微的)層級之輸人,因此應預期較低層 級比高層級之輸出更活躍β φ即,階層中之每—連續層級 可組譯較咼層級物件。在一實例中,一平行機器1〇〇具有 限制輸入資料可多快速饋送至平行機器1〇〇之一最大輸入 速率。可將此輸入速率視為一單個資料循環。在每一連續 資料循環上,平行機器100具有啟動諸多終端節點之潛 月b此了致使平行機器1 〇〇(尤其在一階層之較低層級處) 產生顯著量之輸出資料》舉例而言,若輸入作為位元組串 流提供至最低層級平行機器100,則在任一既定資料循環 上,平行機器100可產生多個位元組之結果資訊。若一個 位兀組之資訊可產生多個位元組之資訊,則平行機器100 之整個階層應同步以使得資訊沿階層向上傳遞。在某些實 例中,回饋無需同步。然而,在一較低層級處越快速地接 收回饋,則該較低層級可越快速地調適且分析越高效。 156603.doc -23- 201209717 作為-實例,用於階層之每_層級(藉助—單個平行機 器100實施)之-最大大小輸出可等於购個位元組且階層 之-深度可等於4個層級。用於一平行機器1〇〇之輸入資料 串流資料速率可等於128 MB/秒。在此等條件下,可在 7.63微秒中橫穿階層之每一層級。在四層級階層之情形 下,平行機器1〇〇之整個堆疊之總趙穩時間將係⑽微秒 之4倍或30·5微秒。在30.5微秒之趨穩日夺間之情形下,暗示 輸入資料頻率應限於32 KB/s。 值得注意的疋,此南度相依於平行機器剛之組態。平 行機器1GG可係可組態的以對輸人資料速率對狀態機大小 進行折衷。另夕卜,若對產生載入至平行機器1〇〇上之個別 影像之編譯器做出對應修改,則可調整至—平行機器之輸 入字組大小。 在一實例中,可藉助具有一馮.諾伊曼架構之機器上之 軟體來實施上文所述之階層式結構。因此,軟體指令可致 使處理器對原始資料實施一第一層級分析FSM。來自該 第一層級FSM之輸出然後可由該處理器使用一第二層級分 析來處理,等等。此外,上文所論述之回饋迴圈可經實施 以便基於(例如)第二層級分析之輸出而修改第一層級分 析。 圖8至圖11圖解說明在本文中稱作「FSM引擎8〇〇」之一 平行機器之一實例。在一實例中,FSM引擎8〇〇包含一有 限狀態機之一硬體實施方案。因此,FSM引擎8〇〇實施對 應於一 FSM中之複數個狀態之複數個選擇性地可耦合之硬 156603.doc ⑧ • 24· 201209717 體元件(例如,可程式化元件)。類似於一 FSM中之一狀 態,一硬體元件可分析一輸入串流並基於該輸入串流啟動 一下游硬體元件。 FSM引擎800包括複數個可程式化元件,包括可程式化 元件及專用元件。可程式化元件可經程式化以實施諸多不 同功能。此等可程式化元件包括以階層方式組織成列 806(圖9及圖10中所展示)及區塊802(圖8及圖9中所展示)之 SME 804、805(圖11中所展示)。為了在以階層方式組織之 SME 804、805之間路由信號,使用可程式化交換器之一階 層,其包括區塊間交換器803(圖8及圖9中所展示)、區塊内 交換器808(圖9及圖10中所展示)及列内交換器812(圖10中 所展示)。一 SME 804、805可對應於FSM引擎800所實施之 一 FSM之一狀態。可藉由使用下文所述之可程式化交換器 將SME 804、805耦合在一起。因此,可藉由程式化SME 804、805以對應於狀態之功能且藉由選擇性地將SME 804、805耦合在一起以對應於FSM中之狀態之間的轉變而 在FSM引擎800上實施一 FSM。 圖8圖解說明一實例性FSM引擎800之一總體視圖。FSM 引擎800包括可選擇性地與可程式化區塊間交換器803耦合 在一起之複數個區塊802。另外,區塊802可選擇性地耦合 至一輸入區塊809(例如,一資料輸入埠)以用於接收信號 (例如,資料)並提供該資料至區塊802。區塊802亦可選擇 性地耦合至一輸出區塊813(例如,一輸出埠)以用於自區塊 802提供信號至一外部裝置(例如,另一FSM引擎800)。 156603.doc •25· 201209717 FSM引擎800亦可包括一程式化介面811以將一程式(例如’ 一影像)載入至FSM引擎800上。該影像可程式化(例如,設 定)SME 804、805之狀態。亦即,該影像可組態SME 804、805以便以某一方式對輸入區塊8〇9處之一既定輸入 做出反應。舉例而言,一 SME 804可經設定以在輸入區塊 8 09處接收到字元「a」時輸出一高信號。 在一實例中,可將輸入區塊809、輸出區塊813及/或程 式化介面811實施為暫存器以使得至該等暫存器之寫入提 供資料至各別元件或自該等各別元件提供資料。因此,來 自儲存於對應於程式化介面811之暫存器中之影像之位元 可載入於SME 804、805上。雖然圖8圖解說明一區塊8〇2、 輸入區塊809、輸出區塊813與一區塊間交換器803之間的 某一數目個導體(例如,導線、跡線),但應理解在其他實 例中可使用更少或更多導體。 圖9圖解說明一區塊802之一實例。一區塊802可包括可 選擇性地與可程式化區塊内交換器808耦合在一起之複數 個列806 ^另外’一列806可選擇性地藉助區塊間交換器 8〇3耦合至另一區塊802内之另一列806。在一實例中,包 括緩衝器801以控制去往/來自區塊間交換器803之信號之 計時。一列806包括組織成元件對(本文中稱作含兩個元件 之群組(GOT)810)之複數個SME 804、805。在一實例中, 一區塊802包含十六(16)個列806 »
圖1 〇圖解說明一列806之一實例。一 GOT 810可選擇性 地藉由可程式化列内交換器812耦合至列806内之其他GOT 156603.doc •26· 201209717 810及任何其他元件824。一 GOT 810亦可藉助區塊内交換 器808耦合至其他列806中之其他GOT 810,或藉助一區塊 間交換器803耦合至其他區塊802中之其他GOT 810。在一 實例中,一 GOT 810具有一第一輸入及第二輸入814、816 及一輸出818。第一輸入814耦合至GOT 810之一第一 SME 804且第二輸入816耦合至GOT 810之一第二SME 804。 在一實例中,列806包括第一複數個列互連導體820及第 二複數個列互連導體822。在一實例中,一GOT 8 10之一輸 入814、8 16可耦合至一或多個列互連導體820、822,且一 輸出818可耦合至一個列互連導體820、822。在一實例 中,第一複數個列互連導體820可耦合至列806内之每一 GOT 810之每一 SME 804。第二複數個列互連導體822可耦 合至列806内之每一 GOT 810之一個SME 804,但不可耦合 至GOT 804之另一 SME 804。在一實例中,該第二複數個 列互連導體822之一前半部可耦合至一列806内之SME 804 之前半部(來自每一 GOT 810之一個SME 804)且該第二複數 個列互連導體822之一後半部可耦合至一列806内之SME 804之一後半部(來自每一 GOT 810之另一 SME 804)。該第 二複數個列互連導體822與SME 804、805之間的有限連接 性在本文中稱作「同位」。在一實例中,列806亦可包括一 專用元件824,諸如一計數器、一可程式化布林邏輯元 件、一場可程式化閘陣列(FPGA)、一專用積體電路 (ASIC)、一可程式化處理器(例如,一微處理器)及其他元 件0 156603.doc •27- 201209717 在一實例中,專用元件824包括一計數器(在本文中亦稱 作計數器824)。在一實例中,計數器824包含一 12位元可 程式化遞減計數器。12位元可程式化計數器824具有一計 數輸入、一重設輸入及零計數輸出。計數輸入在被斷定時 使計數器824之值減1。重設輸入在被斷定時致使計數器 824自一相關聯暫存器載入一初始值。對於12位元計數器 824而言,可載入多達12位元之一數目作為該初始值。當 計數器824之值減至零(〇)時,斷定零計數輸出。計數器824 亦具有至少兩種模式,脈衝及保持。當計數器824設定至 脈衝模式時,在計數器824減至零時於時脈循環期間斷定 零計數輸出,且在下一時脈循環處不再斷定零計數輸出。 當計數器824設定至保持模式時,在計數器824減至零時於 時脈循環期間斷定零計數輸出,且保持斷定直至計數器 824由被斷定之重設輸出重設為止。在一實例中,專用元 件824包括布林邏輯。在某些實例中,此布林邏輯可用以 自FSM引擎800中之終端狀態SME抽取資訊。所抽取之資 訊可用以傳送狀態資訊至其他FSM引擎8〇〇及/或傳送用以 重新程式化FSM引擎800或重新程式化另一 FSM引擎800之 程式化資訊。 圖11圖解說明一 GOT 810之一實例。GOT 810包括具有 輸入814、816且使其輸出826、828耦合至一「或」閘830 及一 3對1多工器842之一第一 SME 804及一第二SME 805。 3對1多工器842可經設定以將GOT 810之輸出818耦合至第 一 SME 804 '第二SME 805或「或」閘830。「或」閘830可 156603.doc ⑧ •28- 201209717 用以將輸出826、828兩者耦合在一起以形成GOT 810之共 同輸出818。在一實例中,如上文所論述,第一SME 804及 第二SME 805展現出同位,其中第一 SME 804之輸入814可 耦合至列互連導體822中之某些列互連導體且第二SME 805 之輸入816可耦合至其他列互連導體822。在一實例中,可 藉由設定交換器840中之任一者或兩者而使一 GOT 810内之 兩個SME 804、805級聯及/或廻圈回至其自身。可藉由將 SME 804、805 之輸出 826、828 耦合至其他 SME 804、805 之輸入814、816而使SME 804、805級聯。可藉由將輸出 826、828耦合至其自己的輸入814、816而使SME 804、805 廻圈回至其自身。因此,第一 SME 804之輸出826可不耦合 至第一 SME 804之輸入814及第二SME 805之輸入816中之 任一者、耗合至其中之一者或耗合至其中之兩者。 在一實例中,一狀態機元件804、805包含並行耦合至一 偵測線834之複數個記憶體單元832,諸如通常用於動態隨 機存取記憶體(DRAM)中之彼等記憶體單元。一種此種記 憶體單元832包含可設定至一資料狀態(諸如對應於一高值 或一低值(例如,1或0)之一個資料狀態)之一記憶體單元》 記憶體單元832之輸出耦合至偵測線834且至記憶體單元 832之輸入基於資料_流線836上之資料接收信號。在一實 例中,資料串流線836上之一輸入經解碼以選擇記憶體單 元832中之一者。選定記憶體單元832提供其所儲存之資料 狀態作為至偵測線834上之一輸出。舉例而言,在資料輸 入埠809處所接收之資料可提供至一解碼器(未展示)且該解 156603.doc •29· 201209717 碼器可選擇資料串流線836中之一者。在_實例中,該解 碼器可將一 ACSII字元轉換成256個位元中之j。 當一記憶體單元832設定至一高值且資料串流線836上之 資料對應於記憶體單元832時,記憶體單元832因此輸出一 高信號至偵測線8.34 ^當資料串流線836上之資料對應於記 憶體單元832且記憶體單元832設定至一低值時,記憶體單 元832輸出一低信號至偵測線834 ^偵測線834上來自記憶 體單元832之輸出由一偵測電路838感測。在一實例中,一 輸入線814、816上之信號將各別偵測電路838設定至一作 用中或非作用中狀態。當設定至非作用中狀態時,偵測電 路838在各別輸出826、828上輸出一低信號,而不顧慮各 別偵測線834上之信號。當設定至一作用中狀態時,偵測 電路838在自各別SME 804、805之記憶體單元834中之一者 债測到一高信號時在各別輸出線826、828上輸出一高信 號。當處於作用中狀態中時,偵測電路838在來自各別 SME 804、805之全部記憶體單元834之信號為低時在各別 輸出線826、828上輸出一低信號。 在一實例中’一 SME 8〇4、805包括256個記憶體單元 832且每一記憶體單元832耦合至一不同資料串流線836。 因此,一SME 804、805可經程式化以在資料串流線836中 之選定一或多者在其上具有一高信號時輸出一高信號。舉 例而言,SME 804可使一第一記憶體單元832(例如,位元 0)設定為高且使全部其他記憶體單元832(例如,位元1至 255)設定為低。當各別偵測電路838處於作用中狀態中 156603.doc 3〇 ⑧ 201209717 時,SME 804在對應於位元〇之資料串流線836在其上具有 一高信號時在輸出826上輸出一高信號。在其他實例中’ 可藉由將適當記憶體單元832設定至一高值來設定SME 804 以在多個資料串流線836中之一者在其上具有一高信號時 輸出一高信號。 在一實例中,可藉由自一相關聯暫存器讀取位元而將一 記憶體單元832設定至一高值或低值。因此,可藉由將編 譯器所創建之一影像儲存至暫存器中並將該等暫存器中之 位元載入至相關聯記憶體單元832中來程式化SME 804。在 一實例中,該編譯器所創建之影像包括高與低(例如’ 1與 0)位元之二進制影像。該影像可程式化FSM引擎800以藉 由級聯SME 804、805而操作為一 FSM。舉例而言,可藉由 將偵測電路838設定至作用中狀態而將一第一 SME 804設定 至一作用中狀態。第一 SME 804可經設定以在對應於位元0 之資料串流線836在其上具有一高信號時輸出一高信號。 第二SME 805可最初設定至一非作用中狀態,但可在作用 中時經設定以在對應於位元1之資料串流線836在其上具有 一高信號時輸出一高信號。可藉由設定第一 SME 804之輸 出826以耦合至第二SME 805之輸入816來級聯第一 SME 804與第二SME 805。因此,當在對應於位元0之資料串流 線836上感測到一高信號時,第一 SME 804在輸出826上輸 出一高信號且將第二SME 805之偵測電路838設定至一作用 中狀態。當在對應於位元1之資料串流線836上感測到一高 信號時,第二SME 805在輸出828上輸出一高信號以啟動另 156603.doc •31 · 201209717 一 SME 805或供自FSM引擎800輸出。 圖10圖解說明一編譯器將原始程式碼轉換成經組態以程 式化一平行機器之一影像之一方法1000之一實例。方法 1000包括將原始程式碼剖析成一語法樹(區塊1002),將該 語法樹轉換成一自動機(automation)(區塊1004),最佳化該 自動機(區塊1006),將該自動機轉換成一網路連線表(區塊 1008),將該網路連線表置於硬體上(區塊1〇1〇),路由該網 路連線表(區塊1012)及公佈所得影像(區塊1〇14)。 在一實例中’編譯器包括允許軟體開發者創建影像以用 於實施FSM引擎800上之FSM之一應用程式設計介面 (API)。編譯器提供用以將原始程式碼中之一輸入組規則 運算式轉換成經組態以程式化FSM引擎800之一影像之方 法。可藉由用於具有一馮.諾伊曼架構之一電腦之指令來 實施編譯器。此等指令可致使電腦上之一處理器實施編譯 器之功能。舉例而言’該等指令在由處理器執行時可致使 處理器對處理器可存取之原始程式碼執行區塊1〇〇2、 1004、1〇〇6、1〇〇8、1〇1〇、1〇12 及 1014 中所述之動作。圖 13中展示具有一馮·諾伊曼架構之一實例性電腦且下文對 其進行闡述。 在實例中’原始程式碼描述搜尋字串以用於識別一符 號群組内之符號之型樣。為了描述搜尋字串,原始程式碼 可包括複數個規則運算式(regex)。一規則運算式可係用於 描述一符號搜尋型樣之一字串。規則運算式廣泛地用於各 種電腦領域中,諸如程式設計語言、文書編輯器、網路安 156603.doc ⑧ -32- 201209717 全及其他領域。在—實例巾,編譯器所支援之規則運算式 包括用於搜尋未建立的資料之搜尋準則。未建立的資料可 包括自由形式之資料且不具有應用於該資料内之字之索 引。子可包括該資料内之位元組(其可列印及不可列印)之 任一組合。在一實例中,編譯器可支援多種不同原始程式 咢扣。以用於貫施包括perl(例如,perl相容規則運算式 (PCRE)、PHP、Java及NET語言)之規則運算式。 在區塊1002處,編譯器可刮析原始程式碼以形成關係連 接之運算子之一配置,其中不同類型之運算子對應於原始 程式碼所實施之不同函式(例如,原始程式碼中之規則運 算式所實施之不同函式)^剖析原始程式碼可創建原始程 式碼之一通用表示。在一實例中,通用表示包含呈稱作一 。。法树之一樹形圖之形式之原始程式碼中之規則運算式的 一經編碼表示。本文所述之實例涉及作為一語法樹(亦稱 作一「抽象語法樹」)之配置,然而在其他實例中可使用 一實體語法樹或其他配置。 如上文所提及’由於編譯器可支援原始程式碼之多種語 言’因此剖析將原始程式碼轉換成一非語言特定表示(例 如,一語法樹)而不顧慮語言。因此編譯器進行之進一步 處理(區塊1004、1006、1008、1010)可自一共同輸入結構 發揮作用,而不顧慮原始程式碼之語言。 如上所述’語法樹包括關係連接之複數個運算子。一語 法樹可包括多種不同類型之運算子。亦即,不同運算子可 對應於原始程式碼中之規則運算式所實施之不同函式。 156603.doc -33- 201209717 在區塊1004處,語法樹轉換成一自動機。一自動機包含 一 FSM之一軟體模型且可因此分類為確定性的及非確定性 的。一碟定性自動機在一既定時間具有一單個執行路徑, 而一非確定性自動機具有多個同時執行路徑。該自動機包 含複數個狀態。為了將語法樹轉換成一自動機,語法樹中 之運算子及運算子之間的關係轉換成狀態,其中該等狀態 # 之間具有轉變。在一實例中,可部分地基於FSM引擎8〇〇 之硬體而轉換該自動機。 在一實例中,用於自動機之輸入符號包括字母、數字〇 至9及其它可列印字元等符號。在一實例中,輸入符號係 由位元組值0至255(包括〇及255)表示。在一實例中,一自 動機可表示為-有向圖,其中該圖之節點對應於該組狀 態。在一實例中,一輸入符號α(亦即δ(ρ,α))上自狀態?至 狀態q之一轉變係由自節點ρ至節點q之一有向連接展示。 在-實例中,-自動機之-倒轉產生_新自動機,其中某 -符號α上之每-轉變卜q在同一符號上倒轉"。在一 倒轉中,開始狀態變成一最終狀態且最終狀態變成開始狀 〜、在:T例中 自動機所接受(例如,匹配)之語I*# 當順序地輸人至該自動機中時將到達—最終狀態之全部可 能字元字串組。該自動機所接受之語言中之每一字串追蹤 自開始狀態至一或多個最終狀態點之—路徑。 在區塊讓處’在建構自動機之後,該自動機經最佳化 以除其他之外亦減小其複雜舟乃士 t 雅度及大小。可藉由組合冗餘狀 態來最佳化該自動機。 156603.doc ⑧ • 34. 201209717 在區塊1008處,經最佳化之自動機轉換成一網路連線 表。將該自動機轉換成一網路連線表將該自動機之每一狀 態映射至FSM引擎800上之一硬體元件(例如,SMe 8〇4、 805,其他元件824)並判定該等硬體元件之間的連接。 在區塊1010處’該網路連線表經擺置以選擇目標裝置之 對應於該網路連線表之每一節點之一特定硬體元件(例 如,SME 804、805 ’專用元件824)。在一實例中,擺置美 於FSM引擎800之一般輸入及輸出約束條件來選擇每一特 定硬體元件。 在區塊1012處,所擺置之網路連線表經路由以判定用於 可程式化交換器(例如,區塊間交換器8〇3、區塊内交換器 808及列内交換器812)之設定,以便將選定硬體元件耦合 在一起以達成網路連線表所描述之連接。在一實例中,藉 由判定FSM引擎800之將用以連接選定硬體元件及用於 程式化交換器之設定之特料體來判定用⑨可程式化交換 器之設定。路由可比區塊1()1()處之擺置計及硬體元件之間 的連接之更多特定限制條件。㈣,路由可調整藉由全域 擺置所判定之該等硬體元件中之某些硬體元件之位置以便 在給出FSM引擎_上之導體之實際限制條件之情形下做 出適當連接。 -旦網路連線表經擺置及路由,則該經擺置及路由之網 路連線表可轉換成用於一 FSM引登如n $丨擎800之程式化之複數個 位元。該複數個位元在本文中稱作—影像。 在區塊1014處’編譯器公佈一 A怖%像。該影像包含用於程 156603.doc -35· 201209717 式化FSM引擎800之特定硬體元件及/或可程式化交換器之 複數個位元。在其中該影像包含複數個位元(例如,〇及1) 之實施例中,該影像可稱作二進制影像。該等位元可載入 至FSM引擎800上以程式化SME 804、805、專用元件824及 可程式化交換器之狀態,以使得經程式化FSM引擎800實 施具有原始程式碼所描述之功能性之一 FSM。擺置(區塊 1010)及路由(區塊1012)可將FSM引擎800中之特定位置處 之特定硬體元件映射至自動機中之特定狀態。因此,該影 像中之位元可程式化特定硬體元件及/或可程式化交換器 以實施期望功能。在一實例中,可藉由將機器碼保存至一 電腦可讀媒體來公佈該影像。在另一實例中,可藉由將該 影像顯示於一顯示裝置上來公佈該影像。在又另一實例 中,可藉由將該影像發送至另一裝置(諸如用於將該影像 載入至FSM引擎800上之一程式化裝置)來公佈該影像。在 又另一實例中,可藉由將該影像載入至一平行機器(例 如,FSM引擎800)上來公佈該影像。 在一實例中,可藉由將來自一影像之位元值直接載入至 SME 804、805及其他硬體元件824或藉由將該影像載入至 一或多個暫存器中且然後將來自該等暫存器之位元值寫入 至SME 804、805及其他硬體元件824而將該影像載入至 FSM引擎800上。在一實例中,可程式化交換器(例如,區 塊間交換器803、區塊内交換器808及列内交換器812)之狀 態。在一實例中,FSM引擎800之硬體元件(例如,SME 804、805、其他元件824 '可程式化交換器803、808、 156603.doc -36· ⑧ 201209717 812)經記憶體映射以使得一程式化裝置及/或電腦可藉由將 該影像寫入至一或多個記憶體位址而將該影像載入至FSM 引擎800上。 本文所述之方法實例可係至少部分地機器或電腦實施 的某些貫例可包括藉助指令編碼之一電腦可讀媒體或機 器可讀媒體,該等指令可操作以組態一電子裝置以執行以 上實例中所述之方法。此等方法之一實施方案可包括程式 碼,諸如微碼、組合語言碼、一較高層級語言碼或諸如此 類。此程式碼可包括電腦可讀指令以用於執行各種方法。 該程式碼可形成電腦程式產品之部分。此外,該程式碼可 在執行期間或在其他時間有形地儲存於一或多個揮發性或 非揮發性電腦可讀媒體上。此等電腦可讀媒體可包括(但 不限於)硬磁碟、可抽換式磁碟、可抽換式光碟(例如,壓 縮光碟及數位視訊碟)、磁盒、記憶卡或棒、隨機存取記 憶體(RAM)、唯讀記憶體(R0M)及諸如此類。 圖13大體圖解說明具有一馮.諾伊曼架構之一電腦15〇〇 之一實例。在閱讀並理解本發明之内容後,熟習此項技術 者將理解可自_基於電腦之系統中之—電腦可㈣體㈣ (launch)—軟體程式以執行該軟體程式中所定義之功能之 方式。熟習此項技術者將進_步理解可經採用以創建經設 計以實施及執行本文所揭示之方法之一或多個軟體程式之 各種程式設計語I可使用—物件導向語言(諸如 C++或-或多種其他語言)以—物件導向格式來結構化程 式。另-選擇為,可使用一程序語言(諸如組合、。等)以 156603.doc -37- 201209717 程序導向格式來結構化程式。軟體組件可使用熟習此項 技術者所熟知之右干種機制(諸如應用程式開發介面或進 程間通信技術,包括遠端程序呼叫或其他)中之任一者來 Μ °各種實施例之教示不限於任—特定程式設計語言或 環境。 因此可實現其他實施例。舉例而t,一製品(諸如一 電腦、-記憶體系、统、—磁碟或光碟、某—其他健存裝置 f =一類型之電子裝置或系統)可包括耦合至其上儲存有 各7 1524(例如,電腦程式指令)之一電腦可讀媒體ι522(諸 如《•己隐體(例如,可抽換式健存媒體以及包括一電、光 學或電磁導體之任一記憶體))之—或多個處理器,該 等才曰·?在由一或多個處理器15〇2執行時導致執行關於以上 方法所述之動作令之任一者。 電腦1500可採取具有直接及/或使用一匯流排15〇8耦合 至若干個組件之一處理器15〇2之一電腦系統之形式。此等 、-且件可包括主記憶體丨5〇4、靜態或非揮發性記憶體〖5〇6及 大容量儲存器1516。耦合至處理器15〇2之其他組件可包括 一輸出裝置1510(諸如一視訊顯示器)、一輸入裝置1512(諸 如一鍵盤)及一游標控制裝置1514(諸如一滑鼠)。用以將處 理器1502及其他組件耦合至一網路1526之一網路介面裝置 1520亦可耦合至匯流排1508。可進一步利用若干個熟知的 傳送協定(例如,HTTP)中之任一者經由網路介面裝置152〇 在網路1526上傳輸或接收指令1524。耦合至匯流排15〇8之 此等元件中之任一者可端視欲實現之特定實施例而不存 156603.doc ⑧ •38· 201209717 在、單獨存在或以複數數目存在。 在貫例中,處理器1502、記憶體15〇4、1506或儲存裝 或多者可各自包括當被執行時可致使電腦 執行本文所述之方法中之任何一或多者之指令i似。 在替代實施例中,電腦15〇〇作為一獨立裝置操作或可連接 (例如,網路)至其他裝置.在一網路環境中,電腦15〇〇可 在伺服器用戶端網路環境中以—飼服器或—用戶端裝置 資格或在.對專(或散佈式)網路環境中作為一對等裝置 操作。電腦1500可包括一個人電腦(pc)、一平板、一機 上盒(STB)、一個人數位助理(pDA)、一蜂巢式電話、一網 路器具、—網路路由器、交換器或橋接器或能夠執行指定 欲由彼裝置採取之動作之一組指令(順序或以其他方式)之 裝置此外,儘管僅圖解說明一單個電腦15〇〇,但術 °電胞*」亦應視為包括個別或共同地執行一組(或多組) 才"以執行本文所論述之方法中之任何一或多者之任一裝 置集合》 電腦1500亦可包括一輸出控制器1528以用於使用一或多 個通乜協疋(例如,通用串列匯流排(USB)、πΕΕ 1394等) 與周邊裝置通信。輸出控制器1528可(例如)提供一影像至 以通信方式耦合至電腦15〇〇之一程式化裝置153〇。程式化 裝置1530可經組態以程式化一平行機器(例如,平行機器 1〇0 FSM引擎800)。在其他實例中,程式化裝置1530可 與電腦1500整合在一起並輕合至匯流排15〇8或可經由網路 W面裝置1520或另一裝置與電腦15〇〇通信。 156603.doc -39· 201209717 儘管展示電腦可讀媒體1524為一單個媒體,但術語「電 腦可讀媒體J應視為包括儲存一或多組指令⑽之一單個 媒體或多個媒體(例如,一集中式或散佈式資料庫,或相 關聯快取記憶體及伺服器,及或各種儲存媒體’諸如處理 器漬暫存器、記憶體⑽' 1及健存裝置mo。術 語「電腦可讀媒體」亦應視為包括能夠儲存、編碼或攜載 組才曰令以供該電腦執行且致使該電腦執行本發明之方法 中之任何-或多者或能夠儲存、編碼或攜載此—組指令所 利用或與此-組指令相關聯之資料結構之任一媒體。術語 「電腦可讀媒體」因此應視為包括(但不限於)有形媒體(諸 如固態記憶體)、光學媒體及磁性媒體。 發明摘要經提供以遵循37 C.FR.第丨72(1))條,其要求將 允許讀者探知該技術揭示内容之本質及主旨之一摘要。提 交本摘要係基於以下理解:其並非將用以限制或解釋申請 專利範圍之範疇或含義。以下申請專利範圍藉此併入至該 詳細說明中,其中每一請求項自身作為一單獨實施例。 【圖式簡單說明】 圖1圖解說明根據本發明之各種實施例之一平行機器之 一實例。 圖2圖解說明根據本發明之各種實施例之一有限狀態機 之一實例》 圖3圖解說明根據本發明之各種實施例之藉助平行機器 所實施之兩層級階層之一實例。 圖4圖解說明根據本發明之各種實施例之藉助平行機器 156603.doc •40· ⑧ 201209717 所實施之兩層級階層之另一實例。 圖5圖解說明根據本發明之各種實施例之藉助平行機器 所實施之四層級階層之一實例。 圖6圖解說明根據本發明之各種實施例之藉助平行機器 所實施之具有回饋之四層級階層之一實例。 圖7圖解說明根據本發明之各種實施例之藉助平行機器 所實施之具有回饋之四層級階層之另一實例。 圖8圖解說明根據本發明之各種實施例之實施為一有限 狀態機引擎之圖1之平行機器的一實例。 圖9圖解說明根據本發明之各種實施例之圖8之有限狀態 機引擎之一區塊之一實例。 圖10圖解說明根據本發明之各種實施例之圖9之區塊之 一列之一實例。 圖11圖解說明根據本發明之各種實施例之含圖10之列中 之兩個元件之一群組的一實例。 圖12圖解說明根據本發明之各種實施例一編譯器將原始 程式碼轉換成一影像以用於程式化圖8之平行機器之一方 法之一實例。 圖13圖解說明根據本發明之各種實施例之具有一基於 馮·諾伊曼之架構之一電腦之一實例。 【主要元件符號說明】 100 平行機器 102 可程式化元件 104 輸入 156603.doc • 41- 201209717 106 輸出 108 可程式化交換器 110 資料輸入埠 111 程式化介面 112 專用元件 114 輸出琿 200 圖 202 根節點 204 標準節點 206 邊緣 208 終端節點 300 階層式結構 302 平行機器 302A 資料輸入埠 302B 程式化介面 302C 輸出埠 304 平行機器 304A 資料輸入埠 304B 程式化介面 304C 輸出埠 400 階層 402 第一層級平行機器 402A 資料輸入埠 402B 程式化介面 156603.doc -42- ⑧ 201209717 402C 輸出埠 404 第二層級平行機器 404A 資料輸入璋 404B 程式化介面 404C 輸出埠 500 階層 502 平行機器 502A 資料輸入埠 502B 程式化介面 502C 輸出埠 504 平行機器 504A 資料輸入埠 504B 程式化介面 504C 輸出埠 506 平行機器 506A 資料輸入埠 506B 程式化介面 506C 輸出埠 508 平行機器 508A 貧料輸入蜂 508B 程式化介面 508C 輸出埠 600 階層 602 平行機器 156603.doc -43- 201209717 602A 資料輸入埠 602B 程式化介面 602C 輸出埠 604 平行機器 604A 資料輸入埠 604B 程式化介面 604C 輸出埠 606 平行機器 606A •資料輸入埠 606B 程式化介面 606C 輸出埠 608 平行機器 608A 資料輸入埠 608B 程式化介面 608C 輸出埠 610 處理裝置 612 處理裝置 614 處理裝置 700 階層 702 平行機器 702A 資料輸入埠 702B 程式化介面 702C 輸出埠 704 平行機器 156603.doc 201209717 704A 資料輸入埠 704B 程式化介面 704C 輸出埠 706 平行機器 706A 資料輸入埠 706B 程式化介面 706C 輸出埠 708 平行機器 708A 資料輸入埠 708B 程式化介面 708C 輸出埠 710 處理裝置 712 處理裝置 714 處理裝置 800 有限狀態機引擎 801 緩衝器 802 區塊 803 區塊間交換器 804 狀態機元件 805 狀態機元件 806 列 808 區塊内交換器 809 輸入區塊 810 含兩個元件之群組 156603.doc •45- 201209717 811 812 813 814 816 818 820 822 824 826 828 830 832 834 836 838 840 842 1500 1502 1504 1506 1508 1510 程式化介面 可程式化列内交換器 輸出區塊 第一輸入 第二輸入 輸出 列互連導體 列互連導體 專用元件 輸出 輸出 「或」閘 記憶體單元 偵測線 資料串流線 偵測電路 交換器 3對1多工器 電腦 處理器 主記憶體 靜態或非揮發性記憶體 匯流排 輸出裝置 156603.doc •46- ⑧ 201209717 1512 1514 1516 1520 1522 1524 1526 1528 1530 輸入裝置 游標控制裝置 儲存裝置 網路介面裝置 電腦可讀媒體 指令 網路 輸出控制器 程式化裝置 156603.doc -47-

Claims (1)

  1. 201209717 七、申請專利範圍: 1. 一種用於分析資料之方法其包含 使用一第一平行機器分析第一資料; 自該第一平行機器輪ψ银_ m出第二資料,該第二資料提供分 析該第一資料之一結果之—指示. 使用一第二平行機器分析該第二資料;及 自。第一平行機器輸出分析該第二資料之一結果。 / &項κ # & ’其中分析第-資料包含:判定該第 一資料是否匹配一第一型樣。 其中該第二資料提供該第一資料是 3·如請求項2之方法 否匹配該第一型樣之—指示。 4. 如4求項3之方法,其中分析該第二資料包含:判定該 第二資料是否匹配一第二型樣。 5. 如”月求項4之方法,其中分析該第二資料之該結果包含 該第二資料是否匹配該第二型樣之一指示。 —資料包含指不該第一型 6.如請求項1之方法,其中該第 樣之一匹配之一單個位元。 7·如請:之方法,其中該第二資料包含一字組該字 ,’且U 3扣不匹配及不匹配複數個型樣之複數個位元,其 中該複數個型樣包括該第一型樣。 8. 如請求们之方法,其中該第二資料包含對應於該第一 平行機器之可程式化元件之一狀態之一狀態向量。 9. 如凊求項1之方法,其中分析第一資料岜含:判定該第 -資料是否包括-所關注序列。 156603.doc 201209717 1〇.如請求項1之方法’其中自該第-平行機器輸出第二資 料包含.基於該第—平行機器之可程式化元件對該第一 資料之一反應而輪出第二資料。 11·如請求項〗之方法, 具中刀析第一資枓包含:判定是否 在該第一資料中辨識出一資料序列。 12 ·如清求項1之方法 ^ 法其中該第一資料包含原始資料。 項1之方法’其中分析該第二資料亦包括:使用 該第二平行機器分析該第一資料。 括使用 14. 如凊求項1之方法,其中該第二資料提供該 器之―偵測狀態之—指示。 千灯機 15. 如清求項1之方、土 器之Γ 其令該第二資料提供該第-平行機 器之一偵測狀態之一指示。 16·如清求項1之方法,甘、社 該社果门雜 其進一步包含將分析該第二資料之 器::Γ該第二平行機器,其中使用該第二平行機 結二“—資料進一步包含分析分析該第二資料之該 :凊求項5之方法’其中該第二型樣包含在該第一資料 中辨識出之型樣中之一型樣。 18. 如請求項1之方法,其進一步包含: -Is在該第一資料中辨識出之一型樣而組態該第-平 订機器。 19. 如:求項3之方法’其中組態該第-平行機器包含: 二眘祖/第一資料中辨識出之該型樣,且基於在該第 ——斗中辨識出之該型樣而編譯用於該第一平行機器之 156603.doc 201209717 一程式。 20. 如請求項19之方法, 21. 如晴求項4之方法, 二型樣包含: 其中該程式包含一經更新程式。 其中判定該第二資料是否匹配一第 判疋5亥第二資料是否匹配第二複數個型樣中之一或多 者,其中輸出一結果包含; 輸出第二資料,該第三資料提供是否在該第二資料 中辨識出該第二複數個型樣中之一或多者之一指示, 且進一步包含: _ 弟二平行機器判定該第三資料是否匹配第 三複數個型樣中之一或多者;及 自該第二平行機器輸出是否在該第三資料中辨識 出該第三複數個型樣中之一或多者之一指示。 22·如請求項21之方法,其進一步包含: 基於來自该第三平行機器之輸出而組態該第一平行機 器及該第二平行機器中之至少一者。 23. 一種用於處理資料之設備,其包含: :第-平行機器’其具有一第一資料輸入琿及一第一 輸出埠’該第-平行機器經組態以: 在該第一資料輸入埠處接收第—資料;及 基:是否在該第一資料中辨識出一第一型樣而在該 第一輸出埠處輸出第二資料;及 一第二平行機器,其且 一 輪^ 、有第一資料輸入埠及一第二 输出埠,其令該第二 '埠耦Q至該第一平行機器 156603.doc 201209717 之該第—輸出埠,該第二平行機器經組態以: 在該第一資料輸入埠處接收該第二資料;及 在該第二輸出埠處輸出是否在該第二資料中辨識出 一第二型樣之一指示。 24·如請求項23之設備,其進一步包含: 第二平行機器,其具有一第三資料輸入埠及—第三 輸出埠,其中該第三輪 痴出埠耦合至該第二平行機器之 第一資料輸入痒。 25.如請求項23之設備,其中該第二平行機器進-步經組態以 在該第二資料輪入埠處接收該第一資料,且進一步經 組態以在該第二資料^ ^ ,. 負付興该第一資料之一組合中辨識該第 二型樣。 26. 如請求項23之設備,其中該筮一伞 ^ 平订機器包括經組態以 基於該第二資料而接收—程式之一彳 狂叭l 程式化介面,該程式 經組態以重新程式化該第一平行機器。 27. 如請求項26之設備’其中該程式包含—經更新程式,其 中該經更新帛式經組態卩更新已經載人i該第_平㈣ 器上之程式。 28·如請求項26之設備,其中該程式包含該第一平行機器之 一原始程式。 29.如請求項26之設備,其進—步包含: -處理裝置’其耗合至該第二平行機器之該輸出蜂且 經組態以分析該第二平行機器之該輸出埠並依據自該第 二平行機器輸出之該第二資料而編譯用於該第一平行 156603.doc -4. 201209717 機器之一更新程式; 其中該第一平行機器經組態以自該處理裝置接收— 更新程式。 30. 如清求項29之設備’其包含: 一第三平行機器,其具有一第三資料輸入埠及一第三 輸出埠,該第三平行機器經組態以: 自該第二平行機器接收該指示; 判定一第三型樣是否在該指示中;及 產生一輸出。 31. —種用於分析資料之方法,其包含: 在一第一平行機器處接收第一資料; 平行機器輸出第 基於對該第一資料之分析而自該第一 二資料; 在一第二平行機器處接收該第二資料;
    三資料;及 基於該第三資料而組態該第一平行機器。 32.如請求項31之方法,其中組態包含重新程式化。
    新程式;及 將該更新程式載入至該第一平行機器
    該第一資料中之第一型樣, 第一平行機器經組態以識別 且其中該第二平行機器經組 156603.doc 201209717 態以識別該第二資料中之第二型樣。 35.如請求項31之方法,其進一步包含: 二 在該第一平行機器處接收該第一資料,其中自該第 二 平行機器輸出第三資料包含基於對該第-資料及該第 資料之分析而輸出第三資料。 第 .3 6. —種方法,其包含: 藉助一第一平行機器分析第一資料·及 基於-第二平行機器對與該第一資料相關之第二資料 之分析而組態該第一平行機器。 37·如請求項36之方法,其中該第二平行機器分析該第—資 料並基於該分析而產生該第二資料。 38. 如請求項36之方法,其中該第二平行機器分析來自該第 -平行機器之-輸出並基於該分析而產生該第二資料。 39. 如請求項36之方法,其中一處理褒置接收該第二資料、 分析該第二資料並基於該第二資料編譯用於該第—平行 機器之-經更新程式,其中組態該第—平行機器包含將 該經更新程式載入至該第一平行機器上。 40. 如請求項36之方法,其中該第一平行機器及該第二平行 機器執行型樣辨識。 41. 一種方法,其包含: 在一階層式結構之一第—層中,對輸入資料執行一較 低層級之分析並基於該較低層級之分析而提供一輪出;及 在-階層式結構之-第二層中,對較低層所提供之輸 出執行一較高層級之分析。 156603.doc _6 ⑧ 201209717 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 如請求項41之方法,其中該分析包含型樣辨識。 如請求項41之方法,其中藉由—第—平行機器來實施該 結構之該第一層且藉由一第二平行機器來實施該結構之 該第二層。 如請求項43之方法,其中以一級聯方式將該第一平行機 器與該第二平行機器耦合在一起。 如請求項43之方法,其中將該第—平行機器與該第二平 行機器串列輕合。 如請求項41之方法,其中使用來自該等層級之分析中之 一者之資訊來修改在其他層級之分析中執行之分析。 如請求項41之方法’其進—步包含將來自該結構之該第 二層之回饋資訊提供至該結構之該第一層。 如請求項47之方法,其中使用該回饋資訊來更新該較低 層級之分析。 如請求項48之方法’其中使用該回饋資訊來更新用以執 行該較低層級之分析之一程式。 如請求項48之方法’其中該回饋資訊包含對應於該輸入 資料之識別資訊。 如請求項之方法’其中藉由—平行機器之__第一部分 來實施該結構之該第—層且藉由該平行機器之—第二部 分來貫施該結構之該第二層。 如凊求項41之方法,其進一步包含基於該較高層級之分 析而組態該較低層級之分析。 如°月求項41之方法’其進-步包含基於該較低層級之分 156603.doc 201209717 析而組態該較高層級之分析。 54. 55. 56. 如凊求項41之方法,其中以具有一馮諾伊曼架構之一機 器上之軟體來實施該結構之兩個層^ 如β求項41之方法,其進一步包含基於該較高層級之分 析而修改該較低層級之分析。 如請求項41之方法,其中該輸出包含偵 測狀態資訊。 156603.doc
TW100120418A 2010-06-10 2011-06-10 使用階層式結構分析資料 TWI584198B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US35354610P 2010-06-10 2010-06-10
US12/943,551 US8601013B2 (en) 2010-06-10 2010-11-10 Analyzing data using a hierarchical structure

Publications (2)

Publication Number Publication Date
TW201209717A true TW201209717A (en) 2012-03-01
TWI584198B TWI584198B (zh) 2017-05-21

Family

ID=45097097

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100120418A TWI584198B (zh) 2010-06-10 2011-06-10 使用階層式結構分析資料

Country Status (7)

Country Link
US (4) US8601013B2 (zh)
EP (1) EP2580659B1 (zh)
JP (1) JP5736042B2 (zh)
KR (1) KR101698237B1 (zh)
CN (2) CN103003792B (zh)
TW (1) TWI584198B (zh)
WO (1) WO2011156634A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104471552A (zh) * 2012-07-18 2015-03-25 美光科技公司 用于处置状态机引擎所接收的数据的方法及系统
TWI497418B (zh) * 2012-07-18 2015-08-21 Micron Technology Inc 狀態機引擎、用於處置一狀態機引擎中之狀態向量資料之方法及用於組態一狀態機引擎之一狀態機晶格之方法

Families Citing this family (74)

* Cited by examiner, † Cited by third party
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
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
US9348784B2 (en) 2008-12-01 2016-05-24 Micron Technology, Inc. Systems and methods for managing endian mode of a device
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
US9164945B2 (en) 2008-12-01 2015-10-20 Micron Technology, Inc. Devices, systems, and methods to synchronize parallel processing of a single data stream
US8140780B2 (en) 2008-12-31 2012-03-20 Micron Technology, Inc. Systems, methods, and devices for configuring a device
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
US8214672B2 (en) 2009-01-07 2012-07-03 Micron Technology, Inc. Method and systems for power consumption management of a pattern-recognition processor
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
US9323994B2 (en) 2009-12-15 2016-04-26 Micron Technology, Inc. Multi-level hierarchical routing matrices 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
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
CN103547999B (zh) 2011-01-25 2017-05-17 美光科技公司 利用专用元件实施有限状态机
US8726256B2 (en) 2011-01-25 2014-05-13 Micron Technology, Inc. Unrolling quantifications to control in-degree and/or out-degree of automaton
JP5763783B2 (ja) 2011-01-25 2015-08-12 マイクロン テクノロジー, インク. 正規表現をコンパイルするための方法および装置
JP5763784B2 (ja) 2011-01-25 2015-08-12 マイクロン テクノロジー, インク. 要素利用のための状態のグループ化
US9047559B2 (en) 2011-07-22 2015-06-02 Sas Institute Inc. Computer-implemented systems and methods for testing large scale automatic forecast combinations
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
US8782624B2 (en) * 2011-12-15 2014-07-15 Micron Technology, Inc. Methods and systems for detection in a state machine
US8648621B2 (en) * 2011-12-15 2014-02-11 Micron Technology, Inc. Counter operation in a state machine lattice
US8593175B2 (en) 2011-12-15 2013-11-26 Micron Technology, Inc. Boolean logic in a state machine lattice
US9430735B1 (en) 2012-02-23 2016-08-30 Micron Technology, Inc. Neural network in a memory device
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
US9336774B1 (en) * 2012-04-20 2016-05-10 Google Inc. Pattern recognizing engine
US9244887B2 (en) * 2012-07-13 2016-01-26 Sas Institute Inc. Computer-implemented systems and methods for efficient structuring of time series data
US9087306B2 (en) 2012-07-13 2015-07-21 Sas Institute Inc. Computer-implemented systems and methods for time series exploration
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
US9824121B2 (en) * 2012-08-10 2017-11-21 Arris Enterprises Llc Aggregate data streams in relational database systems
US9501131B2 (en) 2012-08-31 2016-11-22 Micron Technology, Inc. Methods and systems for power management in a pattern recognition processing system
US9063532B2 (en) 2012-08-31 2015-06-23 Micron Technology, Inc. Instruction insertion in state machine engines
US9075428B2 (en) * 2012-08-31 2015-07-07 Micron Technology, Inc. Results generation for state machine engines
US9190057B2 (en) 2012-12-12 2015-11-17 Amazon Technologies, Inc. Speech model retrieval in distributed speech recognition systems
US9147218B2 (en) 2013-03-06 2015-09-29 Sas Institute Inc. Devices for forecasting ratios in hierarchies
US10089043B2 (en) 2013-03-15 2018-10-02 Micron Technology, Inc. Apparatus and methods for a distributed memory system including memory nodes
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
US9934259B2 (en) 2013-08-15 2018-04-03 Sas Institute Inc. In-memory time series database and processing in a distributed environment
US10169720B2 (en) 2014-04-17 2019-01-01 Sas Institute Inc. Systems and methods for machine learning using classifying, clustering, and grouping time series data
US9892370B2 (en) 2014-06-12 2018-02-13 Sas Institute Inc. Systems and methods for resolving over multiple hierarchies
US9208209B1 (en) 2014-10-02 2015-12-08 Sas Institute Inc. Techniques for monitoring transformation techniques using control charts
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
US9418339B1 (en) 2015-01-26 2016-08-16 Sas Institute, Inc. Systems and methods for time series analysis techniques utilizing count data sets
CN104866831B (zh) * 2015-05-29 2018-06-05 福建省智慧物联网研究院有限责任公司 特征加权的人脸识别算法
US10983682B2 (en) 2015-08-27 2021-04-20 Sas Institute Inc. Interactive graphical user-interface for analyzing and manipulating time-series projections
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
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
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
US10481881B2 (en) * 2017-06-22 2019-11-19 Archeo Futurus, Inc. Mapping a computer code to wires and gates
US9996328B1 (en) * 2017-06-22 2018-06-12 Archeo Futurus, Inc. Compiling and optimizing a computer code by minimizing a number of states in a finite machine corresponding to the computer code
US10817344B2 (en) * 2017-09-13 2020-10-27 Next Silicon Ltd Directed and interconnected grid dataflow architecture
US10331490B2 (en) 2017-11-16 2019-06-25 Sas Institute Inc. Scalable cloud-based time series analysis
CN108234452B (zh) * 2017-12-12 2020-11-24 上海天旦网络科技发展有限公司 一种网络数据包多层协议识别的系统和方法
US10338994B1 (en) 2018-02-22 2019-07-02 Sas Institute Inc. Predicting and adjusting computer functionality to avoid failures
US10255085B1 (en) 2018-03-13 2019-04-09 Sas Institute Inc. Interactive graphical user interface with override guidance
US10678956B2 (en) * 2018-06-25 2020-06-09 Dell Products, L.P. Keyboard for provisioning security credentials
US10560313B2 (en) 2018-06-26 2020-02-11 Sas Institute Inc. Pipeline system for time-series data forecasting
US10685283B2 (en) 2018-06-26 2020-06-16 Sas Institute Inc. Demand classification based pipeline system for time-series data forecasting
US10861551B2 (en) 2018-12-28 2020-12-08 Micron Technology, Inc. Memory cells configured to generate weighted inputs for neural networks
EP3960569A4 (en) * 2019-04-23 2023-01-25 Hitachi Astemo, Ltd. VEHICLE CONTROL DEVICE AND COMPUTER PROGRAM
US11269526B2 (en) 2020-04-23 2022-03-08 Next Silicon Ltd Interconnected memory grid with bypassable units

Family Cites Families (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5081608A (en) * 1988-04-18 1992-01-14 Matsushita Electric Industrial Co., Ltd. Apparatus for processing record-structured data by inserting replacement data of arbitrary length into selected data fields
JP3130326B2 (ja) * 1991-03-20 2001-01-31 富士通株式会社 階層ネットワーク構成演算素子
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
US5537580A (en) 1994-12-21 1996-07-16 Vlsi Technology, Inc. Integrated circuit fabrication using state machine extraction from behavioral hardware description language
US5831853A (en) 1995-06-07 1998-11-03 Xerox Corporation Automatic construction of digital controllers/device drivers for electro-mechanical systems using component models
US5729678A (en) * 1996-03-04 1998-03-17 Ag Communication Systems Corporation Bus monitor system
AU5355098A (en) 1996-11-14 1998-06-03 Alcatel Usa Sourcing, L.P. Generic software state machine and method of constructing dynamic objects for an application program
US5966534A (en) 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
US6748588B1 (en) 1999-03-31 2004-06-08 Microsoft Corporation One-pass greedy-pattern-matching finite-state-machine code generation
US6262594B1 (en) 1999-11-05 2001-07-17 Ati International, Srl Apparatus and method for configurable use of groups of pads of a system on chip
US6564336B1 (en) * 1999-12-29 2003-05-13 General Electric Company Fault tolerant database for picture archiving and communication systems
US6832378B1 (en) 2000-06-20 2004-12-14 International Business Machines Corporation Parallel software processing system
US6507903B1 (en) 2000-06-20 2003-01-14 International Business Machines Corporation High performance non-blocking parallel storage manager for parallel software executing on coordinates
US7140018B1 (en) 2000-06-20 2006-11-21 International Business Machines Corporation Method of using a distinct flow of computational control as a reusable abstract data object
GB2367917A (en) * 2000-10-12 2002-04-17 Qas Systems Ltd Retrieving data representing a postal address from a database of postal addresses using a trie structure
US7020850B2 (en) 2001-05-02 2006-03-28 The Mathworks, Inc. Event-based temporal logic
JP4846924B2 (ja) * 2001-05-31 2011-12-28 キヤノン株式会社 パターン認識装置
US7546354B1 (en) * 2001-07-06 2009-06-09 Emc Corporation Dynamic network based storage with high availability
JP2003044184A (ja) * 2001-08-01 2003-02-14 Canon Inc データ処理装置及び電力制御方法
US7170891B2 (en) * 2001-08-30 2007-01-30 Messenger Terabit Networks, Inc. High speed data classification system
US20030066050A1 (en) 2001-09-26 2003-04-03 Wang Douglas W. Method and system for programming devices using finite state machine descriptions
US6957371B2 (en) 2001-12-04 2005-10-18 Intellitech Corporation Method and apparatus for embedded built-in self-test (BIST) of electronic circuits and systems
US6785872B2 (en) 2002-01-22 2004-08-31 Hewlett-Packard Development Company, L.P. Algorithm-to-hardware system and method for creating a digital circuit
US20040127207A1 (en) 2002-09-25 2004-07-01 Interdigital Technology Corporation Programmable radio interface
US7124392B2 (en) 2002-09-27 2006-10-17 Stmicroelectronics, Pvt. Ltd. Mapping of programmable logic devices
US7171561B2 (en) * 2002-10-17 2007-01-30 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for detecting and extracting fileprints
US7464254B2 (en) 2003-01-09 2008-12-09 Cisco Technology, Inc. Programmable processor apparatus integrating dedicated search registers and dedicated state machine registers with associated execution hardware to support rapid application of rulesets to data
CN1894559A (zh) 2003-03-17 2007-01-10 索尼电子有限公司 执行使命引擎的方法和装置
WO2005004030A2 (en) * 2003-06-25 2005-01-13 Yamaha Corporation Method for teaching music
ATE542176T1 (de) 2003-10-16 2012-02-15 Canon Kk Betriebsschaltung und betriebssteuerverfahren dafür
JP4620944B2 (ja) * 2003-10-16 2011-01-26 キヤノン株式会社 積和演算回路及びその方法
US7487542B2 (en) 2004-01-14 2009-02-03 International Business Machines Corporation Intrusion detection using a network processor and a parallel pattern detection engine
US20050268258A1 (en) 2004-06-01 2005-12-01 Tera Systems, Inc. Rule-based design consultant and method for integrated circuit design
US20050283743A1 (en) 2004-06-07 2005-12-22 Mulholland Philip J Method for generating hardware information
WO2006013428A1 (en) * 2004-07-26 2006-02-09 Nokia Corporation, System and method for searching for content stored by one or more media servers
US8135652B2 (en) 2004-10-29 2012-03-13 Nec Laboratories America, Inc. Parallel support vector method and apparatus
US7392229B2 (en) 2005-02-12 2008-06-24 Curtis L. Harris General purpose set theoretic processor
US7761851B2 (en) * 2005-05-31 2010-07-20 International Business Machines Corporation Computer method and system for integrating software development and deployment
US7805301B2 (en) 2005-07-01 2010-09-28 Microsoft Corporation Covariance estimation for pattern recognition
US20070112701A1 (en) * 2005-08-15 2007-05-17 Microsoft Corporation Optimization of cascaded classifiers
CN101099147B (zh) * 2005-11-11 2010-05-19 松下电器产业株式会社 对话支持装置
JP4528728B2 (ja) 2006-01-31 2010-08-18 株式会社東芝 デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム
US7427871B2 (en) 2006-06-21 2008-09-23 Element Cxi, Llc Fault tolerant integrated circuit architecture
US7809723B2 (en) * 2006-06-26 2010-10-05 Microsoft Corporation Distributed hierarchical text classification framework
CN1877531A (zh) 2006-06-30 2006-12-13 浙江大学 一种嵌入式编译体系扫描器的实现方法
WO2008010636A1 (en) 2006-07-20 2008-01-24 M.I.Tech Co., Ltd. Stent
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
US7962428B2 (en) * 2006-11-30 2011-06-14 Siemens Medical Solutions Usa, Inc. System and method for joint optimization of cascaded classifiers for computer aided detection
US20080168013A1 (en) 2006-12-05 2008-07-10 Paul Cadaret Scalable pattern recognition system
US8656381B2 (en) 2006-12-07 2014-02-18 International Business Machines Corporation Presenting machine instructions in a machine-independent tree form suitable for post-link optimizations
US7899977B2 (en) * 2006-12-08 2011-03-01 Pandya Ashish A Programmable intelligent search memory
CN101013452A (zh) 2007-02-05 2007-08-08 江苏大学 一种符号化的模型检测方法
US7693806B2 (en) * 2007-06-21 2010-04-06 Microsoft Corporation Classification using a cascade approach
CN101360088B (zh) 2007-07-30 2011-09-14 华为技术有限公司 正则表达式编译、匹配系统及编译、匹配方法
US8561037B2 (en) 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
CN101201836B (zh) 2007-09-04 2010-04-14 浙江大学 基于带记忆确定有限自动机的正则表达式匹配加速方法
JP4957500B2 (ja) 2007-10-12 2012-06-20 日本電気株式会社 文字列照合回路
CN101499065B (zh) 2008-02-01 2011-11-02 华为技术有限公司 基于fa的表项压缩方法及装置、表项匹配方法及装置
US8782613B2 (en) * 2008-08-12 2014-07-15 Hewlett-Packard Development Company, L.P. Optimizing applications using source code patterns and performance analysis
CN101339501B (zh) 2008-08-12 2012-07-18 北京航空航天大学 基于有向图的ws-bpel控制环路检测方法
JP5321589B2 (ja) 2008-08-13 2013-10-23 日本電気株式会社 有限オートマトン生成装置、パターンマッチング装置、有限オートマトン回路生成方法およびプログラム
US8095494B2 (en) 2008-10-16 2012-01-10 International Business Machines Corporation Rules-based cross-FSM transition triggering
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
US8805686B2 (en) * 2008-10-31 2014-08-12 Soundbound, Inc. Melodis crystal decoder method and device for searching an utterance by accessing a dictionary divided among multiple parallel processors
US9639493B2 (en) 2008-11-05 2017-05-02 Micron Technology, Inc. Pattern-recognition processor with results buffer
US7917684B2 (en) 2008-11-05 2011-03-29 Micron Technology, Inc. Bus translator
US7970964B2 (en) 2008-11-05 2011-06-28 Micron Technology, Inc. Methods and systems to accomplish variable width data input
US20100118425A1 (en) 2008-11-11 2010-05-13 Menachem Rafaelof Disturbance rejection in a servo control loop using pressure-based disc mode sensor
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
TWI395103B (zh) 2008-12-31 2013-05-01 C Media Electronics Inc 自動執行訊號處理方法與具有該自動執行功能之裝置
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
US8214672B2 (en) 2009-01-07 2012-07-03 Micron Technology, Inc. Method and systems for power consumption management of a pattern-recognition processor
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
JP4892022B2 (ja) * 2009-03-03 2012-03-07 株式会社東芝 コンパイル装置およびコンパイルプログラム
US20100325633A1 (en) 2009-06-19 2010-12-23 Microsoft Corporation Searching Regular Expressions With Virtualized Massively Parallel Programmable Hardware
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
KR101645035B1 (ko) * 2009-09-22 2016-08-16 삼성전자주식회사 병렬 프로그래밍 조절 장치 및 방법
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
US9501705B2 (en) 2009-12-15 2016-11-22 Micron Technology, Inc. Methods and apparatuses for reducing power consumption in a pattern recognition processor
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
US8726256B2 (en) 2011-01-25 2014-05-13 Micron Technology, Inc. Unrolling quantifications to control in-degree and/or out-degree of automaton
JP5763784B2 (ja) 2011-01-25 2015-08-12 マイクロン テクノロジー, インク. 要素利用のための状態のグループ化
JP5763783B2 (ja) 2011-01-25 2015-08-12 マイクロン テクノロジー, インク. 正規表現をコンパイルするための方法および装置
CN103547999B (zh) 2011-01-25 2017-05-17 美光科技公司 利用专用元件实施有限状态机

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104471552A (zh) * 2012-07-18 2015-03-25 美光科技公司 用于处置状态机引擎所接收的数据的方法及系统
TWI497418B (zh) * 2012-07-18 2015-08-21 Micron Technology Inc 狀態機引擎、用於處置一狀態機引擎中之狀態向量資料之方法及用於組態一狀態機引擎之一狀態機晶格之方法
TWI502502B (zh) * 2012-07-18 2015-10-01 Micron Technology Inc 用於處理狀態機引擎所接收之資料之方法及系統
CN104471552B (zh) * 2012-07-18 2017-11-21 美光科技公司 用于处置状态机引擎所接收的数据的方法及系统

Also Published As

Publication number Publication date
TWI584198B (zh) 2017-05-21
WO2011156634A3 (en) 2012-04-05
CN105912992B (zh) 2019-12-10
JP5736042B2 (ja) 2015-06-17
JP2013533542A (ja) 2013-08-22
WO2011156634A2 (en) 2011-12-15
US20110307503A1 (en) 2011-12-15
US8601013B2 (en) 2013-12-03
KR101698237B1 (ko) 2017-02-01
CN105912992A (zh) 2016-08-31
KR20130120441A (ko) 2013-11-04
EP2580659A2 (en) 2013-04-17
CN103003792B (zh) 2016-05-04
US9785847B2 (en) 2017-10-10
US20180096213A1 (en) 2018-04-05
EP2580659B1 (en) 2018-12-26
US20230154176A1 (en) 2023-05-18
US11488378B2 (en) 2022-11-01
US20140082009A1 (en) 2014-03-20
CN103003792A (zh) 2013-03-27
EP2580659A4 (en) 2015-08-05

Similar Documents

Publication Publication Date Title
TW201209717A (en) Analyzing data using a hierarchical structure
US11604687B2 (en) Programmable device, hierarchical parallel machines, and methods for providing state information
US20230196065A1 (en) Methods and devices for programming a state machine engine
TWI515668B (zh) 用於一狀態機中偵測之方法及系統
TWI515669B (zh) 用於狀態機中資料分析之系統與方法
TWI600295B (zh) 用於在狀態機中路由之方法及系統
TW201423581A (zh) 用於狀態機引擎之結果產生
TW201342110A (zh) 在狀態機晶格中之計數器操作
KR20140102274A (ko) 상태 기계 격자에서의 불리언 로직
TW201423586A (zh) 在圖案識別處理系統中用於電力管理之方法及系統
US10430210B2 (en) Systems and devices for accessing a state machine
US11947979B2 (en) Systems and devices for accessing a state machine