專利名稱:使用層次結(jié)構(gòu)分析數(shù)據(jù)的制作方法
技術(shù)領(lǐng)域:
背景技術(shù):
復(fù)雜型式辨識(shí)在常規(guī)的基于馮 諾依曼的計(jì)算機(jī)上執(zhí)行起來可能效率低下。然而, 生物大腦,特定來說人類大腦擅長(zhǎng)執(zhí)行型式辨識(shí)。當(dāng)前研究表明,人類大腦使用大腦新皮質(zhì)中的一系列以層次方式組織的神經(jīng)元層來執(zhí)行型式辨識(shí)。層次的較低層中的神經(jīng)元分析來自(例如)感覺器官的“原始信號(hào)”,而較高層中的神經(jīng)元分析來自較低層級(jí)中的神經(jīng)元的信號(hào)輸出。大腦新皮質(zhì)中的此層次系統(tǒng)可能與大腦的其它區(qū)域組合來實(shí)現(xiàn)復(fù)雜型式辨識(shí),此使得人類能夠執(zhí)行高級(jí)功能,例如空間推理、意識(shí)思考及復(fù)雜語言
發(fā)明內(nèi)容
圖1圖解說明根據(jù)本發(fā)明的各種實(shí)施例的并行機(jī)的實(shí)例。圖2圖解說明根據(jù)本發(fā)明的各種實(shí)施例的有限狀態(tài)機(jī)的實(shí)例。圖3圖解說明根據(jù)本發(fā)明的各種實(shí)施例的借助并行機(jī)所實(shí)施的兩層級(jí)層次的實(shí)例。圖4圖解說明根據(jù)本發(fā)明的各種實(shí)施例的借助并行機(jī)所實(shí)施的兩層級(jí)層次的另
一實(shí)例。圖5圖解說明根據(jù)本發(fā)明的各種實(shí)施例的借助并行機(jī)所實(shí)施的四層級(jí)層次的實(shí)例。圖6圖解說明根據(jù)本發(fā)明的各種實(shí)施例的借助并行機(jī)所實(shí)施的具有反饋的四層級(jí)層次的實(shí)例。圖7圖解說明根據(jù)本發(fā)明的各種實(shí)施例的借助并行機(jī)所實(shí)施的具有反饋的四層級(jí)層次的另一實(shí)例。圖8圖解說明根據(jù)本發(fā)明的各種實(shí)施例的實(shí)施為有限狀態(tài)機(jī)引擎的圖1的并行機(jī)的實(shí)例。圖9圖解說明根據(jù)本發(fā)明的各種實(shí)施例的圖8的有限狀態(tài)機(jī)引擎的塊的實(shí)例。圖10圖解說明根據(jù)本發(fā)明的各種實(shí)施例的圖9的塊的一行的實(shí)例。
圖11圖解說明根據(jù)本發(fā)明的各種實(shí)施例的含圖10的行中的兩個(gè)一群組的實(shí)例。圖12圖解說明根據(jù)本發(fā)明的各種實(shí)施例的用于編譯器將源代碼轉(zhuǎn)換成圖像以用于編程圖8的并行機(jī)的方法的實(shí)例。圖13圖解說明根據(jù)本發(fā)明的各種實(shí)施例的具有基于馮·諾伊曼的架構(gòu)的計(jì)算機(jī)的實(shí)例。
具體實(shí)施例方式以下描述及圖式充分圖解說明特定實(shí)施例以使所屬領(lǐng)域的技術(shù)人員能夠?qū)嵺`所述特定實(shí)施例。其它實(shí)施例可并入有結(jié)構(gòu)、邏輯、電、過程及其它改變。一些實(shí)施例的各部分及特征可包括于其它實(shí)施例的那些部分及特征中或替代其它實(shí)施例的那些部分及特征。本文件除其它之外還描述用于使用層次結(jié)構(gòu)分析數(shù)據(jù)的方法及設(shè)備。所述層次結(jié)構(gòu)可包含多個(gè)層,其中每一層對(duì)輸入數(shù)據(jù)執(zhí)行分析并基于所述分析而提供輸出??蓪碜运鰧哟谓Y(jié)構(gòu)中的較低層的輸出作為輸入提供到較高層。以此方式,較低層可執(zhí)行較低層級(jí)的分析(例如,較基本/基礎(chǔ)分析),而較高層可使用來自一個(gè)或一個(gè)以上較低層的輸出執(zhí)行較高層級(jí)的分析(例如,較復(fù)雜分析)。在一實(shí)例中,所述層次結(jié)構(gòu)執(zhí)行型式辨識(shí)。在一實(shí)例中,型式辨識(shí)包括識(shí)別符號(hào)序列。用于型式的識(shí)別的實(shí)例性符號(hào)可對(duì)應(yīng)于音素(音頻)、圖像中的像素、ASCII字符、機(jī)器數(shù)據(jù)(例如,O及I)。在一實(shí)例中,借助以級(jí)聯(lián)方式耦合在一起的多個(gè)并行機(jī)來實(shí)施所述層次結(jié)構(gòu)。舉例來說,第一并行機(jī)與第二并行機(jī)可串行耦合,以使得所述第二并行機(jī)接收來自所述第一并行機(jī)的輸出作為輸入。任一數(shù)目個(gè)并行機(jī)可一起耦合在此層次結(jié)構(gòu)中。除了使用層次結(jié)構(gòu)分析數(shù)據(jù)之外,本文件還描述用于使用來自在層次的一個(gè)層級(jí)處執(zhí)行的分析的信息來修改在所述層次的另一層級(jí)處執(zhí)行的分析的方法及設(shè)備。使用上文所述的并行機(jī)實(shí)例,實(shí)施較高層級(jí)的分析的第二并行機(jī)可將反饋信息提供到實(shí)施較低層級(jí)的分析的第一并行機(jī)。所述反饋信息可由第一并行機(jī)用來以類似于在生物大腦中學(xué)習(xí)的方式更新第一并行機(jī)所執(zhí)行的分析。圖1圖解說明可用以實(shí)施用于分析數(shù)據(jù)的層次結(jié)構(gòu)的實(shí)例性并行機(jī)100。并行機(jī)100可接收輸入數(shù)據(jù)并基于所述輸入數(shù)據(jù)而提供輸出。并行機(jī)100可包括用于接收輸入數(shù)據(jù)的數(shù)據(jù)輸入端口 110及用于將輸出提供到另一裝置的輸出端口 114。數(shù)據(jù)輸入端口 110提供用于將數(shù)據(jù)輸入到并行機(jī)100的接口。并行機(jī)100包括多個(gè)可編程元件102,每一可編程元件102具有一個(gè)或一個(gè)以上輸入104及一個(gè)或一個(gè)以上輸出106??删幊淘?02可被編程到多個(gè)狀態(tài)中的一者中??删幊淘?02的狀態(tài)確定可編程元件102將基于給定輸入而提供何種輸出。也就是說,可編程元件102的狀態(tài)確定可編程元件將基于給定輸入而如何做出反應(yīng)??蓪⑤斎氲綌?shù)據(jù)輸入端口 110的數(shù)據(jù)提供到多個(gè)可編程元件102以致使可編程元件102對(duì)其采取行動(dòng)??删幊淘?02的實(shí)例可包括下文詳細(xì)論述的狀態(tài)機(jī)元件(SME)及可配置邏輯塊。在一實(shí)例中,SME可被設(shè)定成給定狀態(tài)以當(dāng)在數(shù)據(jù)輸入端口 110處接收到給定輸入時(shí)提供某一輸出(例如,高信號(hào)或“I”信號(hào))。當(dāng)在數(shù)據(jù)輸入端口 110處接收到除所述給定輸入之外的輸入時(shí),所述SME可提供不同輸出(例如,低信號(hào)或“O”信號(hào))。在一實(shí)例中,可配置邏輯塊可經(jīng)設(shè)定以基于在數(shù)據(jù)輸入端口 110處所接收的輸入而執(zhí)行布爾邏輯函數(shù)(例如,“與”、“或”、“非或”等)。并行機(jī)100還可包括用于將程序(例如,圖像)加載到并行機(jī)100上的編程接口111。所述圖像可編程(例如,設(shè)定)可編程元件102的狀態(tài)。也就是說,所述圖像可配置可編程元件102以便以某一方式對(duì)給定輸入做出反應(yīng)。舉例來說,可編程元件102可經(jīng)設(shè)定以當(dāng)在數(shù)據(jù)輸入端口 110處接收到字符‘a(chǎn)’時(shí)輸出高信號(hào)。在一些實(shí)例中,并行機(jī)100可使用時(shí)鐘信號(hào)來控制可編程元件102的操作的計(jì)時(shí)。在某些實(shí)施例中,并行機(jī)100可包括專用元件112(例如,RAM、邏輯門、計(jì)數(shù)器、查找表等)以用于與可編程元件102交互且用于執(zhí)行專用功能。在一些實(shí)施例中,在數(shù)據(jù)輸入端口 110處所接收的數(shù)據(jù)可包括隨時(shí)間或同時(shí)一起接收的固定數(shù)據(jù)集或隨時(shí)間接收的數(shù)據(jù)流。所述數(shù)據(jù)可從耦合到并行機(jī)100的任一源(例如數(shù)據(jù)庫(kù)、傳感器、網(wǎng)絡(luò)等)接收或由所述源產(chǎn)生。并行機(jī)100還包括多個(gè)可編程開關(guān)108以用于選擇性地將并行機(jī)100的不同元件(例如,可編程元件102、數(shù)據(jù)輸入端口 110、輸出端口 114、編程接口 111及專用元件112)耦合在一起。因此,并行機(jī)100包含在所述元件當(dāng)中形成的可編程矩陣。在一實(shí)例中,可編程開關(guān)108可選擇性地將兩個(gè)或兩個(gè)以上元件彼此耦合在一起以使得可編程元件102的輸入104、數(shù)據(jù)輸入端口 110、編程接口 111或?qū)S迷?12可通過一個(gè)或一個(gè)以上可編程開關(guān)108耦合到可編程元件102的輸出106、輸出端口 114、編程接口 111或?qū)S迷?12。因此,可通過設(shè)定可編程開關(guān)108來控制信號(hào)在所述元件之間的路由。雖然圖1圖解說明給定元件與可編程開關(guān)108之間的某一數(shù)目個(gè)導(dǎo)體(例如,導(dǎo)線),但應(yīng)理解,在其它實(shí)例中可使用不同數(shù)目個(gè)導(dǎo)體。此外,雖然圖1圖解說明每一可編程元件102個(gè)別地耦合到可編程開關(guān)108,但在其它實(shí)例中,多個(gè)可編程元件102可作為一群組(例如,圖8中所圖解說明的塊802)耦合到可編程開關(guān)108。在一實(shí)例中,數(shù)據(jù)輸入端口 110、數(shù)據(jù)輸出端口 114及/或編程接口 111可實(shí)施為寄存器以使得向所述寄存器的寫入將數(shù)據(jù)提供到相應(yīng)元件或從所述相應(yīng)元件提供數(shù)據(jù)。在一實(shí)例中,在一物理裝置上實(shí)施單個(gè)并行機(jī)100,然而在其它實(shí)例中可在單個(gè)物理裝置(例如,物理芯片)上實(shí)施兩個(gè)或兩個(gè)以上并行機(jī)100。在一實(shí)例中,多個(gè)并行機(jī)100中的每一者可包括相異數(shù)據(jù)輸入端口 110、相異輸出端口 114、相異編程接口 111及一組相異可編程元件102。此外,每一組可編程元件102可對(duì)其對(duì)應(yīng)輸入數(shù)據(jù)端口 110處的數(shù)據(jù)做出反應(yīng)(例如,輸出高信號(hào)或低信號(hào))。舉例來說,對(duì)應(yīng)于第一并行機(jī)100的第一組可編程元件102可對(duì)對(duì)應(yīng)于第一并行機(jī)100的第一數(shù)據(jù)輸入端口 110處的數(shù)據(jù)做出反應(yīng)。對(duì)應(yīng)于第二并行機(jī)100的第二組可編程元件102可對(duì)對(duì)應(yīng)于第二并行機(jī)100的第二數(shù)據(jù)輸入端口 110做出反應(yīng)。因此,每一并行機(jī)100包括一組可編程元件102,其中不同組可編程元件102可對(duì)不同輸入數(shù)據(jù)做出反應(yīng)。類似地,每一并行機(jī)100及每一對(duì)應(yīng)組可編程元件102可提供相異輸出。在一些實(shí)例中,來自第一并行機(jī)100的輸出端口 114可f禹合到第二并行機(jī)100的輸入端口 110,以使得用于第二并行機(jī)100的輸入數(shù)據(jù)可包括來自第一并行機(jī)100的輸出數(shù)據(jù)。在一實(shí)例中,用于加載到并行機(jī)100上的圖像包含用于設(shè)定可編程元件102的狀態(tài)、編程可編程開關(guān)108及配置并行機(jī)100內(nèi)的專用元件112的多個(gè)信息位。在一實(shí)例中,可將所述圖像加載到并行機(jī)100上以編程并行機(jī)100以基于某些輸入而提供所要輸出。輸出端口 114可基于可編程元件102對(duì)數(shù)據(jù)輸入端口 110處的數(shù)據(jù)的反應(yīng)而提供來自并行機(jī)100的輸出。來自輸出端口 114的輸出可包括指示給定型式的匹配的單個(gè)位、包含指示與多個(gè)型式的匹配及不匹配的多個(gè)位的字及對(duì)應(yīng)于所有或某些可編程元件102在給定時(shí)刻的狀態(tài)的狀態(tài)向量。并行機(jī)100的實(shí)例性用途包括型式辨識(shí)(例如,語音辨識(shí)、圖像辨識(shí)等)、信號(hào)處理、成像、計(jì)算機(jī)視覺、密碼編譯及其它。在某些實(shí)例中,并行機(jī)100可包含有限狀態(tài)機(jī)(FSM)引擎、現(xiàn)場(chǎng)可編程門陣列(FPGA)及其變化形式。此外,并行機(jī)100可為較大裝置(例如,計(jì)算機(jī)、尋呼機(jī)、蜂窩式電話、個(gè)人記事本、便攜式音頻播放器、網(wǎng)絡(luò)裝置(例如,路由器、防火墻、交換機(jī)或其任一組合)、控制電路、相機(jī)等)中的組件。圖2圖解說明可由并行機(jī)100實(shí)施的有限狀態(tài)機(jī)(FSM)的實(shí)例性模型。并行機(jī)100可配置(例如,編程)為FSM的物理實(shí)施方案。FSM可表示為圖200 (例如,有向圖、無向圖、偽圖),其含有一個(gè)或一個(gè)以上根節(jié)點(diǎn)202。除了根節(jié)點(diǎn)202之外,所述FSM可由通過一個(gè)或一個(gè)以上邊緣206連接到根節(jié)點(diǎn)202及其它標(biāo)準(zhǔn)節(jié)點(diǎn)204的數(shù)個(gè)標(biāo)準(zhǔn)節(jié)點(diǎn)204及終端節(jié)點(diǎn)208構(gòu)成。節(jié)點(diǎn)202、204、208對(duì)應(yīng)于所述FSM中的狀態(tài)。邊緣206對(duì)應(yīng)于所述狀態(tài)之間的轉(zhuǎn)變。所述節(jié)點(diǎn)(202、204、208)中的每一者可處于活動(dòng)或不活動(dòng)狀態(tài)中。當(dāng)處于不活動(dòng)狀態(tài)中時(shí),節(jié)點(diǎn)(202、204、208)不對(duì)輸入數(shù)據(jù)做出反應(yīng)(例如,響應(yīng))。當(dāng)處于活動(dòng)狀態(tài)中時(shí),節(jié)點(diǎn)(202、204、208)可對(duì)輸入數(shù)據(jù)做出反應(yīng)。當(dāng)輸入數(shù)據(jù)匹配上游節(jié)點(diǎn)(202、204)與在所述節(jié)點(diǎn)下游的節(jié)點(diǎn)(204、208)之間的邊緣206所指定的準(zhǔn)則時(shí),所述上游節(jié)點(diǎn)(202、204)可通過激活所述下游節(jié)點(diǎn)(204、208)來對(duì)所述輸入數(shù)據(jù)做出反應(yīng)。舉例來說,當(dāng)指定字符‘b’的第一節(jié)點(diǎn)204為活動(dòng)的且接收到字符‘b’作為輸入數(shù)據(jù)時(shí),所述第一節(jié)點(diǎn)204將激活通過邊緣206連接到所述第一節(jié)點(diǎn)204的第二節(jié)點(diǎn)204。如本文所使用,“上游”是指一個(gè)或一個(gè)以上節(jié)點(diǎn)之間的關(guān)系,其中在一個(gè)或一個(gè)以上其它節(jié)點(diǎn)上游(或在循環(huán)的情況中,在其自身上游)的第一節(jié)點(diǎn)是指所述第一節(jié)點(diǎn)可激活所述一個(gè)或一個(gè)以上其它節(jié)點(diǎn)(或在循環(huán)的情況中,可激活其自身)的情形。類似地,“下游”是指如下關(guān)系,在所述關(guān)系中在一個(gè)或一個(gè)以上其它節(jié)點(diǎn)下游(在循環(huán)的情況中,在其自身下游)的第一節(jié)點(diǎn)可由所述一個(gè)或一個(gè)以上其它節(jié)點(diǎn)激活(或在循環(huán)的情況中,可由其自身激活)。因此,本文使用術(shù)語“上游”及“下游”來指一個(gè)或一個(gè)以上節(jié)點(diǎn)之間的關(guān)系,但此些術(shù)語不排除循環(huán)的使用或節(jié)點(diǎn)當(dāng)中的其它非線性路徑。在圖200中,根節(jié)點(diǎn)202可首先被激活且當(dāng)輸入數(shù)據(jù)匹配來自根節(jié)點(diǎn)202的邊緣206時(shí)根節(jié)點(diǎn)202可激活下游節(jié)點(diǎn)204、208。當(dāng)接收到輸入數(shù)據(jù)時(shí)可以此方式激活整個(gè)圖200中的節(jié)點(diǎn)204、208。終端節(jié)點(diǎn)208對(duì)應(yīng)于輸入數(shù)據(jù)與所關(guān)注序列的匹配。因此,激活終端節(jié)點(diǎn)208指示已接收到所關(guān)注序列作為輸入數(shù)據(jù)。在實(shí)施型式辨識(shí)功能的并行機(jī)100的背景中,到達(dá)終端節(jié)點(diǎn)208可指示已在輸入數(shù)據(jù)中檢測(cè)到特定所關(guān)注型式。在一實(shí)例中,每一根節(jié)點(diǎn)202、標(biāo)準(zhǔn)節(jié)點(diǎn)204及終端節(jié)點(diǎn)208可對(duì)應(yīng)于并行機(jī)100中的可編程元件102。每一邊緣206可對(duì)應(yīng)于可編程元件102之間的連接。因此,轉(zhuǎn)變到另一標(biāo)準(zhǔn)節(jié)點(diǎn)204或終端節(jié)點(diǎn)208 (例如,具有連接到另一標(biāo)準(zhǔn)節(jié)點(diǎn)204或終端節(jié)點(diǎn)208的邊緣206)的標(biāo)準(zhǔn)節(jié)點(diǎn)204對(duì)應(yīng)于轉(zhuǎn)變到另一可編程元件102 (例如,提供到另一可編程元件102的輸出)的可編程元件102。在一些實(shí)例中,根節(jié)點(diǎn)202不具有對(duì)應(yīng)可編程元件102。當(dāng)將并行機(jī)100編程為FSM時(shí),可編程元件102中的每一者還可處于活動(dòng)或不活動(dòng)狀態(tài)中。給定可編程元件102在不活動(dòng)時(shí)不對(duì)其對(duì)應(yīng)數(shù)據(jù)輸入端口 110處的輸入數(shù)據(jù)做出反應(yīng)?;顒?dòng)可編程元件102可對(duì)輸入數(shù)據(jù)及數(shù)據(jù)輸入端口 110做出反應(yīng),且可在輸入數(shù)據(jù)匹配下游可編程元件102的設(shè)定時(shí)激活所述可編程元件102。當(dāng)可編程元件102對(duì)應(yīng)于終端節(jié)點(diǎn)208時(shí),所述可編程元件102可耦合到輸出端口 114以將匹配的指示提供到外部
>j-U ρ α裝直。經(jīng)由編程接口 111加載到并行機(jī)100上的圖像可配置可編程元件102及其它元件112以及可編程元件102與其它元件112之間的連接,以使得基于對(duì)數(shù)據(jù)輸入端口 110處的數(shù)據(jù)的反應(yīng)而通過節(jié)點(diǎn)的順序激活來實(shí)施所要FSM。在一實(shí)例中,可編程元件102保持活動(dòng)達(dá)單個(gè)數(shù)據(jù)循環(huán)(例如,單個(gè)字符、一組字符、單個(gè)時(shí)鐘循環(huán))且除非被上游可編程元件102重新激活否則接著切換到不活動(dòng)。 可認(rèn)為終端節(jié)點(diǎn)208存儲(chǔ)經(jīng)壓縮的過去事件歷史。舉例來說,到達(dá)終端節(jié)點(diǎn)208所需要的一個(gè)或一個(gè)以上輸入數(shù)據(jù)型式可由所述終端節(jié)點(diǎn)208的激活表示。在一實(shí)例中,終端節(jié)點(diǎn)208所提供的輸出為二進(jìn)制的,也就是說,所述輸出指示是否已匹配所關(guān)注型式。圖200中終端節(jié)點(diǎn)208對(duì)標(biāo)準(zhǔn)節(jié)點(diǎn)204的比率可相當(dāng)小。換句話說,雖然在所述FSM中可存在高復(fù)雜度,但比較來說所述FSM的輸出可為小的。在一實(shí)例中,并行機(jī)100的輸出可包含并行機(jī)的狀態(tài)向量。所述狀態(tài)向量包含并行機(jī)100的可編程元件102的狀態(tài)(例如,被激活或未被激活)。在一實(shí)例中,所述狀態(tài)向量包括對(duì)應(yīng)于終端節(jié)點(diǎn)208的可編程元件102的狀態(tài)。因此,輸出可包括圖200的所有終端節(jié)點(diǎn)208所提供的指示的集合。所述狀態(tài)向量可表示為一字,其中每一終端節(jié)點(diǎn)208所提供的二進(jìn)制指示包含所述字的一個(gè)位。終端節(jié)點(diǎn)208的此編碼可提供并行機(jī)100的檢測(cè)狀態(tài)的有效指示(例如,是否已檢測(cè)到所關(guān)注序列及已檢測(cè)到何種所關(guān)注序列)。在另一實(shí)例中,狀態(tài)向量可包括可編程元件102的全部或一子組的狀態(tài)而不管所述可編程元件102是否對(duì)應(yīng)于終端節(jié)點(diǎn)208。如上文所提及,并行機(jī)100可經(jīng)編程以實(shí)施型式辨識(shí)功能。舉例來說,并行機(jī)100所實(shí)施的FSM可經(jīng)配置以辨識(shí)輸入數(shù)據(jù)中的一個(gè)或一個(gè)以上數(shù)據(jù)序列(例如,簽名、型式)。當(dāng)并行機(jī)100辨識(shí)出所關(guān)注數(shù)據(jù)序列時(shí),可在輸出端口 114處提供所述辨識(shí)的指示。在一實(shí)例中,型式辨識(shí)可辨識(shí)一串符號(hào)(例如,ASCII字符)以(例如)識(shí)別網(wǎng)絡(luò)數(shù)據(jù)中的惡意軟件或其它信息。圖3圖解說明經(jīng)配置以使用層次結(jié)構(gòu)300分析數(shù)據(jù)的第一并行機(jī)302及第二并行機(jī)304的實(shí)例。每一并行機(jī)302、304包括數(shù)據(jù)輸入端口 302A、304A、編程接口 302B、304B及輸出端口 302C、304C。第一并行機(jī)302經(jīng)配置以在數(shù)據(jù)輸入端口 302A處接收輸入數(shù)據(jù),例如原始數(shù)據(jù)。第一并行機(jī)302如上文所述對(duì)輸入數(shù)據(jù)做出響應(yīng)且在輸出端口 302C處提供輸出。來自第一并行機(jī)302的輸出發(fā)送到第二并行機(jī)304的數(shù)據(jù)輸入端口 304A。第二并行機(jī)304接著可基于第一并行機(jī)302所提供的輸出而做出反應(yīng)且在輸出端口 304C處提供對(duì)應(yīng)輸出。兩個(gè)并行機(jī)302、304的此串行層次耦合提供以經(jīng)壓縮字將關(guān)于過去事件的信息從第一并行機(jī)302傳送到第二并行機(jī)304的手段。所傳送的信息實(shí)際上可為已被第一并行機(jī)302記錄的復(fù)雜事件(例如,所關(guān)注序列)的概要。圖3中所展示的并行機(jī)302、304的兩層級(jí)層次300允許兩個(gè)獨(dú)立程序基于同一數(shù)據(jù)流而操作。兩級(jí)層次可類似于建模為不同區(qū)的生物大腦中的視覺辨識(shí)。在此模型下,所述區(qū)實(shí)際上為不同型式辨識(shí)引擎,每一型式辨識(shí)引擎執(zhí)行類似計(jì)算功能(型式匹配)但使用不同程序(簽名)。通過將多個(gè)并行機(jī)302、304連接在一起,可獲得關(guān)于數(shù)據(jù)流輸入的增加的知識(shí)。所述層次的第一層級(jí)(由第一并行機(jī)302實(shí)施)直接對(duì)原始數(shù)據(jù)流執(zhí)行處理。也就是說,在輸入接口 302A處接收所述原始數(shù)據(jù)流且第一并行機(jī)302的可編程元件可對(duì)所述原始數(shù)據(jù)流做出反應(yīng)。所述層次的第二層級(jí)(由第二并行機(jī)304實(shí)施)處理來自所述第一層級(jí)的輸出。也就是說,第二并行機(jī)304在輸入接口 304B處接收來自第一并行機(jī)302的輸出且第二并行機(jī)304的可編程元件可對(duì)第一并行機(jī)302的輸出做出反應(yīng)。因此,在此實(shí)例中,第二并行機(jī)304不接收所述原始數(shù)據(jù)流作為輸入,而是接收如第一并行機(jī)302所確定所述原始數(shù)據(jù)流所匹配的所關(guān)注型式的指示。可用辨識(shí)來自第一并行機(jī)302的輸出數(shù)據(jù)流中的型式的FSM來編程第二并行機(jī)304。圖4圖解說明兩層級(jí)層次400的另一實(shí)例,其中所述層次的一個(gè)層級(jí)借助多個(gè)并行機(jī)來實(shí)施。此處,層次400的第一層級(jí)借助三個(gè)并行機(jī)402來實(shí)施。將來自三個(gè)第一層級(jí)并行機(jī)402中的每一者的輸出提供到辨識(shí)(例如,識(shí)別)來自第一層級(jí)并行機(jī)402的輸出中的型式的單個(gè)第二層級(jí)并行機(jī)404。在其它實(shí)例中,可在不同層級(jí)處實(shí)施不同數(shù)目個(gè)并行機(jī)。每一并行機(jī)402、404包括數(shù)據(jù)輸入端口 402A、404A、編程接口 402B、404B及輸出端口402C、404C。圖5圖解說明借助四個(gè)并行機(jī)502、504、506及508實(shí)施的四層級(jí)層次500,且展示待由每一層級(jí)識(shí)別的型式的實(shí)例。如上文所論述,每一并行機(jī)502、504、506及508包括數(shù)據(jù)輸入端口 502A、504A、506A 及 508A、編程接口 502B、504B、506B 及 508B 以及輸出端口 502C、504C、506C及508C。四層級(jí)層次500對(duì)應(yīng)于基于圖像中的黑色或白色像素對(duì)書面語言的視覺識(shí)別。隨著層次進(jìn)展到較高層級(jí),對(duì)輸入流的積累的知識(shí)對(duì)應(yīng)地增長(zhǎng)。并行機(jī)502、504、506,508經(jīng)級(jí)聯(lián)以實(shí)現(xiàn)層次辨識(shí)能力。層次500的每一連續(xù)層級(jí)可實(shí)施應(yīng)用于先前層級(jí)的經(jīng)壓縮輸出的新規(guī)則(型式簽名)。以此方式,可基于對(duì)基本的基元信息的初始檢測(cè)而識(shí)別高度詳細(xì)的對(duì)象。舉例來說,到層級(jí)I (第一并行機(jī)502)的原始數(shù)據(jù)輸入流可包含視覺圖像的像素信息(例如,不管給定位為黑色/白色、接通/關(guān)斷)。第一并行機(jī)502可經(jīng)編程以識(shí)別像素信息所形成的基元型式。舉例來說,第一并行機(jī)502可經(jīng)配置以識(shí)別鄰近像素何時(shí)形成垂直線、水平線、弧等。此些型式(例如,垂直線、水平線、弧等)中的每一者可由來自第一并行機(jī)502的相應(yīng)輸出位(或信號(hào))指示。舉例來說,當(dāng)?shù)谝徊⑿袡C(jī)502識(shí)別出至少3個(gè)位的垂直線時(shí),可在輸出字的第一位上將高信號(hào)(例如,邏輯‘I’)輸出到第二并行機(jī)504。當(dāng)?shù)谝徊⑿袡C(jī)502識(shí)別出至少3個(gè)位的水平線時(shí),可在輸出字的第二位上將高信號(hào)輸出到第二并行機(jī)504。第二層級(jí)(第二并行機(jī)504)可經(jīng)編程以識(shí)別來自第一并行機(jī)502的輸出信號(hào)中的型式。舉例來說,第二并行機(jī)504可經(jīng)編程以識(shí)別第一并行機(jī)502所識(shí)別的基元型式(線、弧等)的組合所形成的型式。第二并行機(jī)504可經(jīng)編程以識(shí)別水平線與垂直線何時(shí)交叉從而形成字母“t”。如上文所提及,第二并行機(jī)504所實(shí)施的FSM中的節(jié)點(diǎn)對(duì)來自第一并行機(jī)502的輸出做出反應(yīng)。因此通過識(shí)別來自第一并行機(jī)502的輸出位中的型式來識(shí)別基元型式的組合。接著將來自第二并行機(jī)504的輸出輸入到第三層級(jí)(第三并行機(jī)506)中,所述第三層級(jí)可從第二并行機(jī)504所識(shí)別的字母的組合識(shí)別字。接著第四層級(jí)(第四并行機(jī)508)可識(shí)別第三并行機(jī)506所識(shí)別的字所形成的短語。因此,較高層級(jí)可經(jīng)編程以識(shí)別較低層級(jí)輸出中的型式。另外,較低層級(jí)可經(jīng)編程以識(shí)別構(gòu)成在較高層級(jí)中所識(shí)別的型式的分量。來自像素信息的字母、字及短語的視覺識(shí)別用作實(shí)例;然而,本文所述的層次方法及設(shè)備可應(yīng)用于其它數(shù)據(jù)及用于其它用途。舉例來說,可對(duì)對(duì)應(yīng)于聲音的數(shù)據(jù)使用層次分析以從第一層級(jí)處的音素的組合識(shí)別音節(jié)且從第二層級(jí)處的音節(jié)的組合識(shí)別字。在其它實(shí)例中,層次分析可應(yīng)用于以層次方式在自身上構(gòu)建的機(jī)器數(shù)據(jù)(例如,原始O及I)。雖然圖5圖解說明層之間的特定及個(gè)別連接,但應(yīng)理解,可實(shí)施一層次,在所述層次中將來自一個(gè)層級(jí)的輸出前饋或反饋到所述層次的其它層級(jí)。舉例來說,來自第二并行機(jī)504的輸出可發(fā)送到第四并行機(jī)508,而來自第四并行機(jī)508的輸出可反饋到第三并行機(jī)506。一般來說,層次可經(jīng)實(shí)施以使得來自并行機(jī)的檢測(cè)狀態(tài)信息饋送到其它并行機(jī)中的一者或一者以上或其全部。在一些實(shí)例中,在層次結(jié)構(gòu)中使用反饋來更新一個(gè)或一個(gè)以上層級(jí)所使用的程序。舉例來說,來自第一層級(jí)的輸出可提供到第二層級(jí)以重新編程所述第二層級(jí)。此可用以基于在第一層級(jí)中所識(shí)別(或未識(shí)別)的型式而更新第二層級(jí)所應(yīng)用的規(guī)則。在一實(shí)例中,第一層級(jí)為層次中高于第二層級(jí)的層級(jí)。舉例來說,較低層級(jí)可經(jīng)重新編程以基于較高層級(jí)所識(shí)別的型式而尋找非由程序最初指定的額外型式。在另一實(shí)例中,可通知較低層級(jí)較低層級(jí)所識(shí)別的特定型式為顯著的,因?yàn)樗鎏囟ㄐ褪脚c其它型式組合以形成顯著事件。在又一實(shí)例中,可通知較低層級(jí)所識(shí)別的特定型式不具有特定值且如此較低層級(jí)可停止識(shí)別所述型式。在一實(shí)例中,可隨時(shí)間執(zhí)行重新編程,以使得在一時(shí)間周期內(nèi)通過小的調(diào)整來遞增地修改給定層級(jí)的程序。圖6圖解說明四層級(jí)層次600的實(shí)例,其使用反饋來重新編程所述層次的若干部分。借助四個(gè)并行機(jī)602、604、606、608來實(shí)施四層級(jí)層次600,每一并行機(jī)具有數(shù)據(jù)輸入端口 602A、604A、606A、608A、編程接口 602B、604B、606B、608B及輸出端口 602C、604C、606C、608C。第一并行機(jī)602實(shí)施層次600的第一層級(jí)且將輸出提供到實(shí)施層次600的第二層級(jí)的第二并行機(jī)604。第三并行機(jī)606及第四并行機(jī)608同樣實(shí)施層次600的第三層級(jí)及第四層級(jí)。在一實(shí)例中,基于層次600對(duì)第一并行機(jī)602所接收的輸入數(shù)據(jù)的分析而將來自第四并行機(jī)608的輸出作為層次600的輸出發(fā)送到外部裝置。因此,來自第四并行機(jī)608的輸出對(duì)應(yīng)于層次600的集合輸出。在其它實(shí)例中,來自其它并行機(jī)608的輸出可對(duì)應(yīng)于層次600的集合輸出。將來自第二并行機(jī)604、第三并行機(jī)606及第四并行機(jī)608的輸出各自反饋到下面層級(jí)處的并行機(jī)602、604、606的編程接口 602B、604B、606B。舉例來說,將來自第四并行機(jī)608的輸出反饋到第三并行機(jī)606的編程接口 606B中。因此可基于來自第四并行機(jī)608的輸出而重新編程第三并行機(jī)606。因此,第三并行機(jī)608可在運(yùn)行時(shí)間期間修改其程序??煞謩e基于來自第二并行機(jī)604及第三并行機(jī)606的輸出而在運(yùn)行時(shí)間期間類似地重新編程第一并行機(jī)602及第二并行機(jī)604。在實(shí)例中,來自并行機(jī)604、606、608的反饋經(jīng)分析及編譯以形成用于重新編程并行機(jī)602、604、606的程序(例如,圖像)。舉例來說,來自并行機(jī)408的輸出在被發(fā)送到編程接口 606B之前由處理裝置614分析并編譯。處理裝置614可基于來自并行機(jī)608的輸出而產(chǎn)生用于并行機(jī)606的經(jīng)更新程序。處理裝置614可分析所述輸出并編譯用于第三并行機(jī)606的經(jīng)更新程序。接著可通過編程接口 606B將所述經(jīng)更新程序加載到第三并行機(jī)606上以重新編程第三并行機(jī)606。在一實(shí)例中,所述經(jīng)更新程序可僅含有從當(dāng)前程序的部分改變。因此,在一實(shí)例中,經(jīng)更新程序僅替換并行機(jī)602、604、606、608上的當(dāng)前程序的一部分。在另一實(shí)例中,經(jīng)更新程序替換當(dāng)前程序的全部或一大部分。同樣,處理裝置610、612可基于來自第二并行機(jī)604及第三并行機(jī)606的輸出而以類似方式分析反饋并編譯經(jīng)更新程序??山柚粋€(gè)或一個(gè)以上額外并行機(jī)來實(shí)施或可借助不同類型的機(jī)器(例如,具有馮·諾伊曼架構(gòu)的計(jì)算機(jī))來實(shí)施處理裝置610、612、614。在一些實(shí)例中,處理裝置610、612、614在編譯新的程序之前分析來自較高層級(jí)的輸出。在一實(shí)例中,處理裝置610、612、614分析所述輸出以確定如何更新較低層級(jí)程序且接著基于所述分析而編譯新的(例如,經(jīng)更新、原始)較低層級(jí)程序。雖然在層次600中給定并行機(jī)處的反饋是從直接在所述給定并行機(jī)上面的層級(jí)接收的,但反饋可從任一并行機(jī)到較高、較低或同一層級(jí)處的另一并行機(jī)。舉例來說,反饋可在并行機(jī)的編程輸入處從所述同一并行機(jī)的輸出或從相同、較高或較低層級(jí)處的另一并行機(jī)的輸出接收。另外,并行機(jī)可從多個(gè)不同并行機(jī)接收反饋?;诜答亴?duì)并行機(jī)的重新編程可與對(duì)輸入數(shù)據(jù)中的型式識(shí)別在時(shí)間上斷開(例如,并不隨著原始數(shù)據(jù)的處理實(shí)時(shí)地)。沿層次向下往回發(fā)送信息以影響較低層級(jí)的重新編程的目的是可使得較低層級(jí)在辨別所關(guān)注型式時(shí)可變得更高效。沿層次向下發(fā)送信息的另一目的是在較低層級(jí)中實(shí)現(xiàn)較高水平的敏銳度。在一些實(shí)例中,認(rèn)識(shí)到將信息傳送到層次的較高層級(jí)花費(fèi)時(shí)間,因此在可能時(shí)避免將信息發(fā)送到較高層級(jí)的過程。在一些實(shí)例中,較高層級(jí)可基本上用以解析對(duì)于系統(tǒng)來說為新的型式的識(shí)別。此可類似于在生物大腦的大腦新皮質(zhì)中發(fā)生的所使用過程。在一實(shí)例中,如果可在較低層級(jí)處完全解析一型式,那么應(yīng)這樣做。反饋機(jī)制為將“學(xué)習(xí)”傳送到層次的較低層級(jí)的一種方法。沿層次向下回推信息的此過程將幫助保留層次的上部層級(jí)以用于處理新的或不熟悉的型式。此外,可通過減小穿過層次的各個(gè)層級(jí)的數(shù)據(jù)傳送量來加速整個(gè)辨識(shí)過程。反饋可使層次的較低層級(jí)對(duì)輸入處的數(shù)據(jù)流更加敏銳地敏感。此“向下推”信息的結(jié)果是可在層次的較低層級(jí)處做出決策且所述決策可如此快地完成。因此,在一實(shí)例中,來自較低層級(jí)并行機(jī)(例如,第一并行機(jī)602)的輸出可對(duì)應(yīng)于從層次600到另一裝置的集合輸出連同來自第四并行機(jī)608的輸出。外部裝置可(例如)監(jiān)視來自這些并行機(jī)602、608中的每一者的輸出以確定層次600何時(shí)已識(shí)別出型式。在一實(shí)例中,反饋信息可包括對(duì)應(yīng)于所分析的數(shù)據(jù)流的識(shí)別信息。舉例來說,所述識(shí)別信息可包括數(shù)據(jù)的識(shí)別特性、數(shù)據(jù)的格式、數(shù)據(jù)的協(xié)議及/或任一其它類型的識(shí)別信息。所述識(shí)別信息可由(例如)處理裝置610收集、分析且用來修改(例如,調(diào)適)用于輸入數(shù)據(jù)的分析方法。接著可用經(jīng)調(diào)適的分析方法來編程并行機(jī)100。識(shí)別信息可包括(例如)輸入數(shù)據(jù)的語言。并行機(jī)100可首先經(jīng)編程以確定輸入數(shù)據(jù)的語言且一旦已識(shí)別對(duì)應(yīng)于輸入的語言便可在運(yùn)行時(shí)間期間對(duì)所述并行機(jī)進(jìn)行調(diào)適(例如,重新編程)。用于并行機(jī)100的經(jīng)調(diào)適分析方法可更特定地對(duì)應(yīng)于用于所識(shí)別語言的分析方法。最后,并行機(jī)100可使用經(jīng)調(diào)適分析方法來分析未來的輸入數(shù)據(jù)。反饋過程可反復(fù)以使得可在輸入數(shù)據(jù)中找到額外識(shí)別信息以允許進(jìn)一步調(diào)適分析方法。用于加載到并行機(jī)100上的程序(例如,圖像)可由下文關(guān)于圖12所論述的編譯器產(chǎn)生。一般來說,編譯可為計(jì)算密集的過程,且可能在第一次編譯型式簽名的大數(shù)據(jù)庫(kù)時(shí)最明顯。在運(yùn)行時(shí)間操作中,較高層級(jí)的并行機(jī)100可正在以用于較低層級(jí)并行機(jī)的增量程序更新的形式將反饋提供到較低層級(jí)。因此,到較低層級(jí)并行機(jī)的反饋信息可為對(duì)原始程序的編譯起來較不計(jì)算密集的小得多的增量更新。圖7圖解說明借助四個(gè)并行機(jī)702、704、706、708實(shí)施的四層級(jí)層次700的另一實(shí)例。四個(gè)并行機(jī)702、704、706、708各自具有數(shù)據(jù)輸入端口 702A、704A、706A、708A、編程接口 702B、704B、706B、708B 及輸出端口 702C、704C、706C、708C。另外,在一些實(shí)例中,四層級(jí)層次700可包括處理裝置710、712、714以編譯用于并行機(jī)702、704及706的程序。在四層級(jí)層次700中,第二并行機(jī)704、第三并行機(jī)706及第四層級(jí)并行機(jī)708從較低層級(jí)并行機(jī)702、704、706的輸出接收輸入數(shù)據(jù)且從原始數(shù)據(jù)流接收輸入數(shù)據(jù)。因此,層級(jí)2、3及4可從來自較低層級(jí)與原始數(shù)據(jù)的型式的組合識(shí)別型式。如從圖6及7可見,并行機(jī)100可以幾乎任一方式級(jí)聯(lián),其中可將到層次的原始數(shù)據(jù)輸入以及來自并行機(jī)100的輸出發(fā)送到任一其它并行機(jī)100,包括其自身。此外,可將來自給定并行機(jī)100的輸出作為到數(shù)據(jù)輸入端口 110中的輸入數(shù)據(jù)及/或作為用于更新并行機(jī)100的程序的反饋發(fā)送到另一并行機(jī)100。由于并行機(jī)100處理輸入數(shù)據(jù)的一個(gè)數(shù)據(jù)循環(huán)(例如,一位、一字)的時(shí)間,串行地級(jí)聯(lián)并行機(jī)100可增加通過所有并行機(jī)100完全處理輸入數(shù)據(jù)流以產(chǎn)生層次的集合輸出的時(shí)間。由于層次的較低層級(jí)可接收較低(最細(xì)微的)層級(jí)的輸入,因此應(yīng)預(yù)期較低層級(jí)比高層級(jí)的輸出更活躍。也就是說,層次中的每一連續(xù)層級(jí)可匯編較高層級(jí)對(duì)象。在一實(shí)例中,并行機(jī)100具有限制可多快地將輸入數(shù)據(jù)饋送到并行機(jī)100的最大輸入速率。可將此輸入速率視為單個(gè)數(shù)據(jù)循環(huán)。在每一連續(xù)數(shù)據(jù)循環(huán)上,并行機(jī)100具有激活許多終端節(jié)點(diǎn)的可能性。此可致使并行機(jī)100(尤其在層次的較低層級(jí)處)產(chǎn)生顯著量的輸出數(shù)據(jù)。舉例來說,如果將輸入作為字節(jié)流提供到最低層級(jí)并行機(jī)100,那么在任一給定數(shù)據(jù)循環(huán)上,并行機(jī)100可產(chǎn)生多個(gè)字節(jié)的結(jié)果信息。如果一個(gè)字節(jié)的信息可產(chǎn)生多個(gè)字節(jié)的信息,那么并行機(jī)100的整個(gè)層次應(yīng)同步以使得信息沿層次向上傳遞。在一些實(shí)例中,反饋無需同步。然而,在較低層級(jí)處越快地接收反饋,所述較低層級(jí)便可越快地調(diào)適且分析越高效。作為一實(shí)例,層次(借助單個(gè)并行機(jī)100實(shí)施)的每一層級(jí)的最大大小輸出可等于1024個(gè)字節(jié)且層次的深度可等于4個(gè)層級(jí)。用于并行機(jī)100的輸入數(shù)據(jù)流數(shù)據(jù)速率可等于128MB/秒。在這些條件下,可在7. 63微秒中橫越層次的每一層級(jí)。在四層級(jí)層次的情況下,并行機(jī)100的整個(gè)堆疊的總穩(wěn)定時(shí)間將為7. 63微秒的4倍或30. 5微秒。在30. 5微秒的穩(wěn)定時(shí)間的情況下,暗示輸入數(shù)據(jù)頻率應(yīng)限于32KB/S。值得注意地,此高度取決于并行機(jī)100的配置。并行機(jī)100可為可配置的以對(duì)輸入數(shù)據(jù)速率對(duì)狀態(tài)機(jī)大小進(jìn)行折衷。另外,如果對(duì)產(chǎn)生加載到并行機(jī)100上的個(gè)別圖像的編譯器做出對(duì)應(yīng)修改,那么可調(diào)整到所述并行機(jī)的輸入字大小。在一實(shí)例中,可在具有馮·諾伊曼架構(gòu)的機(jī)器上以軟件來實(shí)施上文所述的層次結(jié)構(gòu)。因此,軟件指令可致使處理器對(duì)原始數(shù)據(jù)實(shí)施第一層級(jí)分析FSM。來自第一層級(jí)FSM的輸出接著可由所述處理器使用第二層級(jí)分析來處理,等等。此外,上文所論述的反饋循環(huán)可經(jīng)實(shí)施以使得基于(例如)第二層級(jí)分析的輸出而修改第一層級(jí)分析。圖8到11圖解說明在本文中稱作“FSM引擎800”的并行機(jī)的實(shí)例。在一實(shí)例中,F(xiàn)SM引擎800包含有限狀態(tài)機(jī)的硬件實(shí)施方案。因此,F(xiàn)SM引擎800實(shí)施對(duì)應(yīng)于FSM中的多個(gè)狀態(tài)的多個(gè)可選擇性耦合的硬件元件(例如,可編程元件)。類似于FSM中的狀態(tài),硬件元件可分析輸入流并基于所述輸入流而激活下游硬件元件。FSM引擎800包括多個(gè)可編程元件,包括通用元件及專用元件。所述通用元件可經(jīng)編程以實(shí)施許多不同功能。這些通用元件包括以層次方式組織成行806(圖9及10中所展示)及塊802(圖8及9中所展示)的SME 804、805 (圖11中所展示)。為了在以層次方式組織的SME 804,805之間路由信號(hào),使用可編程開關(guān)的層次,其包括塊間開關(guān)803 (圖8及9中所展示)、塊內(nèi)開關(guān)808(圖9及10中所展示)及行內(nèi)開關(guān)812 (圖10中所展示)。SME 804、805可對(duì)應(yīng)于FSM引擎800所實(shí)施的FSM的狀態(tài)??赏ㄟ^使用下文所述的可編程開關(guān)將SME 804、805耦合在一起。因此,可通過將SME 804、805編程為對(duì)應(yīng)于狀態(tài)的功能且通過選擇性地將SME 804,805耦合在一起以對(duì)應(yīng)于FSM中的狀態(tài)之間的轉(zhuǎn)變而在FSM引擎800上實(shí)施FSM。圖8圖解說明實(shí)例性FSM引擎800的總體視圖。FSM引擎800包括可選擇性地與可編程塊間開關(guān)803耦合在一起的多個(gè)塊802。另外,塊802可選擇性地耦合到輸入塊809 (例如,數(shù)據(jù)輸入端口)以用于接收信號(hào)(例如,數(shù)據(jù))并將數(shù)據(jù)提供到塊802。塊802還可選擇性地耦合到輸出塊813 (例如,輸出端口)以用于將信號(hào)從塊802提供到外部裝置(例如,另一 FSM引擎800)。FSM引擎800還可包括編程接口 811以將程序(例如,圖像)加載到FSM引擎800上。所述圖像可編程(例如,設(shè)定)SME 804、805的狀態(tài)。也就是說,所述圖像可將SME 804,805配置為以某一方式對(duì)輸入塊809處的給定輸入做出反應(yīng)。舉例來說,SME 804可經(jīng)設(shè)定以當(dāng)在輸入塊809處接收到字符‘a(chǎn)’時(shí)輸出高信號(hào)。在一實(shí)例中,可將輸入塊809、輸出塊813及/或編程接口 811實(shí)施為寄存器以使得向所述寄存器的寫入將數(shù)據(jù)提供到相應(yīng)元件或從所述相應(yīng)元件提供數(shù)據(jù)。因此,可將來自存儲(chǔ)于對(duì)應(yīng)于編程接口 811的寄存器中的圖像的位加載于SME 804、805上。雖然圖8圖解說明塊802、輸入塊809、輸出塊813與塊間開關(guān)803之間的某一數(shù)目個(gè)導(dǎo)體(例如,導(dǎo)線、跡線),但應(yīng)理解在其它實(shí)例中可使用更少或更多導(dǎo)體。圖9圖解說明塊802的實(shí)例。塊802可包括可選擇性地與可編程塊內(nèi)開關(guān)808耦合在一起的多個(gè)行806。另外,行806可借助塊間開關(guān)803選擇性地耦合到另一塊802內(nèi)的另一行806。在一實(shí)例中,包括緩沖器801以控制去往/來自塊間開關(guān)803的信號(hào)的計(jì)時(shí)。行806包括組織成元件對(duì)(本文中稱作兩個(gè)一群組(GOT) 810)的多個(gè)SME 804、805。在一實(shí)例中,塊802包含十六(16)個(gè)行806。圖10圖解說明行806的實(shí)例。GOT 810可通過可編程行內(nèi)開關(guān)812選擇性地耦合到行806內(nèi)的其它GOT 810及任何其它元件824。GOT 810還可借助塊內(nèi)開關(guān)808耦合到其它行806中的其它GOT 810,或借助塊間開關(guān)803耦合到其它塊802中的其它G0T810。在一實(shí)例中,GOT 810具有第一輸入814及第二輸入816以及輸出818。第一輸入814耦合到GOT 810的第一 SME 804且第二輸入816耦合到GOT 810的第二 SME 804。在一實(shí)例中,行806包括第一多個(gè)行互連導(dǎo)體820及第二多個(gè)行互連導(dǎo)體822。在一實(shí)例中,GOT 810的輸入814、816可耦合到一個(gè)或一個(gè)以上行互連導(dǎo)體820、822,且輸出818可耦合到一個(gè)行互連導(dǎo)體820、822。在一實(shí)例中,第一多個(gè)行互連導(dǎo)體820可耦合到行806內(nèi)的每一 GOT 810的每一 SME 804。第二多個(gè)行互連導(dǎo)體822可耦合到行806內(nèi)的每一 GOT 810的一個(gè)SME 804,但不可耦合到GOT 810的另一 SME 804。在一實(shí)例中,第二多個(gè)行互連導(dǎo)體822的第一半可耦合到行806內(nèi)的SME 804的第一半(來自每一 GOT 810的一個(gè)SME 804)且第二多個(gè)行互連導(dǎo)體822的第二半可耦合到行806內(nèi)的SME 804的第二半(來自每一 GOT 810的另一 SME 804)。第二多個(gè)行互連導(dǎo)體822與SME 804、805之間的有限連接性在本文中稱作“奇偶”。在一實(shí)例中,行806還可包括專用元件824,例如計(jì)數(shù)器、可編程布爾邏輯元件、現(xiàn)場(chǎng)可編程門陣列(FPGA)、專用集成電路(ASIC)、可編程處理器(例如,微處理器)及其它元件。在一實(shí)例中,專用元件824包括計(jì)數(shù)器(在本文中也稱作計(jì)數(shù)器824)。在一實(shí)例中,計(jì)數(shù)器824包含12位可編程倒數(shù)計(jì)數(shù)器。12位可編程計(jì)數(shù)器824具有計(jì)數(shù)輸入、復(fù)位輸入及零計(jì)數(shù)輸出。計(jì)數(shù)輸入在被斷言時(shí)使計(jì)數(shù)器824的值遞減I。復(fù)位輸入在被斷言時(shí)致使計(jì)數(shù)器824從相關(guān)聯(lián)寄存器加載初始值。對(duì)于12位計(jì)數(shù)器824來說,可加載多達(dá)12位的數(shù)值作為所述初始值。當(dāng)計(jì)數(shù)器824的值遞減到零(O)時(shí),斷言零計(jì)數(shù)輸出。計(jì)數(shù)器824還具有至少兩種模式脈沖及保持。當(dāng)將計(jì)數(shù)器824設(shè)定為脈沖模式時(shí),在計(jì)數(shù)器824遞減到零時(shí)于時(shí)鐘循環(huán)期間斷言零計(jì)數(shù)輸出,且在下一時(shí)鐘循環(huán)處不再斷言零計(jì)數(shù)輸出。當(dāng)將計(jì)數(shù)器824設(shè)定為保持模式時(shí),在計(jì)數(shù)器824遞減到零時(shí)于時(shí)鐘循環(huán)期間斷言零計(jì)數(shù)輸出,且保持?jǐn)嘌运隽阌?jì)數(shù)輸出直到計(jì)數(shù)器824由正斷言的復(fù)位輸入復(fù)位為止。在一實(shí)例中,專用元件824包括布爾邏輯。在一些實(shí)例中,此布爾邏輯可用以從FSM引擎800中的終端狀態(tài)SME提取信息。所提取的信息可用以將狀態(tài)信息傳送到其它FSM引擎800及/或傳送用以重新編程FSM引擎800或重新編程另一 FSM引擎800的編程信息。圖11圖解說明GOT 810的實(shí)例。GOT 810包括具有輸入814、816且使其輸出826、828耦合到“或”門830及3對(duì)I多路復(fù)用器842的第一 SME 804及第二 SME 805。3對(duì)I多路復(fù)用器842可經(jīng)設(shè)定以將GOT 810的輸出818耦合到第一 SME 804、第二 SME805或“或”門830?!盎颉遍T830可用以將輸出826、828兩者耦合在一起以形成G0T810的共用輸出818。在一實(shí)例中,如上文所論述,第一 SME 804及第二 SME 805展現(xiàn)出奇偶,其中第一SME 804的輸入814可耦合到行互連導(dǎo)體822中的一些行互連導(dǎo)體且第二 SME 805的輸入816可耦合到其它行互連導(dǎo)體822。在一實(shí)例中,可通過設(shè)定開關(guān)840中的任一者或兩者而使GOT 810內(nèi)的兩個(gè)SME 804、805級(jí)聯(lián)及/或循環(huán)回到其自身??赏ㄟ^將SME 804、805的輸出826、828耦合到其它SME 804、805的輸入814、816而使SME 804、805級(jí)聯(lián)??赏ㄟ^將輸出826、828耦合到其自己的輸入814、816而使SME 804、805循環(huán)回到其自身。因此,第一 SME 804的輸出826可不耦合到第一 SME804的輸入814及第二 SME 805的輸入816中的任一者、耦合到其中的一者或耦合到其中的兩者。在一實(shí)例中,狀態(tài)機(jī)元件804、805包含并行耦合到檢測(cè)線834的多個(gè)存儲(chǔ)器單元832,例如通常用于動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)中的那些存儲(chǔ)器單元。一個(gè)此種存儲(chǔ)器單元832包含可設(shè)定為一數(shù)據(jù)狀態(tài)(例如對(duì)應(yīng)于高值或低值(例如,I或O)的數(shù)據(jù)狀態(tài))的存儲(chǔ)器單元。存儲(chǔ)器單元832的輸出耦合到檢測(cè)線834且到存儲(chǔ)器單元832的輸入基于數(shù)據(jù)流線836上的數(shù)據(jù)而接收信號(hào)。在一實(shí)例中,數(shù)據(jù)流線836上的輸入經(jīng)解碼以選擇存儲(chǔ)器單元832中的一者。選定存儲(chǔ)器單元832將其所存儲(chǔ)的數(shù)據(jù)狀態(tài)作為輸出提供到檢測(cè)線834上。舉例來說,可將在數(shù)據(jù)輸入端口 809處所接收的數(shù)據(jù)提供到解碼器(未展示)且所述解碼器可選擇數(shù)據(jù)流線836中的一者。在一實(shí)例中,所述解碼器可將ACSII字符轉(zhuǎn)換成256個(gè)位中的I。因此,當(dāng)存儲(chǔ)器單元832設(shè)定為高值且數(shù)據(jù)流線836上的數(shù)據(jù)對(duì)應(yīng)于存儲(chǔ)器單元832時(shí),存儲(chǔ)器單元832將高信號(hào)輸出到檢測(cè)線834。當(dāng)數(shù)據(jù)流線836上的數(shù)據(jù)對(duì)應(yīng)于存儲(chǔ)器單元832且存儲(chǔ)器單元832設(shè)定為低值時(shí),存儲(chǔ)器單元832將低信號(hào)輸出到檢測(cè)線834。檢測(cè)線834上來自存儲(chǔ)器單元832的輸出由檢測(cè)電路838感測(cè)。在一實(shí)例中,輸入線814、816上的信號(hào)將相應(yīng)檢測(cè)電路838設(shè)定為活動(dòng)或不活動(dòng)狀態(tài)。當(dāng)設(shè)定為不活動(dòng)狀態(tài)時(shí),不管相應(yīng)檢測(cè)線834上的信號(hào)如何,檢測(cè)電路838均在相應(yīng)輸出826、828上輸出低信號(hào)。當(dāng)設(shè)定為活動(dòng)狀態(tài)時(shí),檢測(cè)電路838在從相應(yīng)SME 804,805的存儲(chǔ)器單元834中的一者檢測(cè)到高信號(hào)時(shí)在相應(yīng)輸出線826、828上輸出高信號(hào)。當(dāng)處于活動(dòng)狀態(tài)中時(shí),檢測(cè)電路838在來自相應(yīng)SME 804,805的所有存儲(chǔ)器單元834的信號(hào)為低時(shí)在相應(yīng)輸出線826、828上輸出低信號(hào)。在一實(shí)例中,SME 804,805包括256個(gè)存儲(chǔ)器單元832且每一存儲(chǔ)器單元832耦合到不同數(shù)據(jù)流線836。因此,SME 804、805可經(jīng)編程以在數(shù)據(jù)流線836中的選定一者或一者以上在其上具有高信號(hào)時(shí)輸出高信號(hào)。舉例來說,SME 804可將第一存儲(chǔ)器單元832 (例如,位O)設(shè)定為高且將所有其它存儲(chǔ)器單元832 (例如,位I到255)設(shè)定為低。當(dāng)相應(yīng)檢測(cè)電路838處于活動(dòng)狀態(tài)中時(shí),SME 804在對(duì)應(yīng)于位O的數(shù)據(jù)流線836在其上具有高信號(hào)時(shí)在輸出826上輸出高信號(hào)。在其它實(shí)例中,SME 804可經(jīng)設(shè)定以通過將適當(dāng)存儲(chǔ)器單元832設(shè)定為高值而在多個(gè)數(shù)據(jù)流線836中的一者在其上具有高信號(hào)時(shí)輸出高信號(hào)。在一實(shí)例中,可通過從相關(guān)聯(lián)寄存器讀取位而將存儲(chǔ)器單元832設(shè)定為高值或低值。因此,可通過將編譯器所創(chuàng)建的圖像存儲(chǔ)到寄存器中并將所述寄存器中的位加載到相關(guān)聯(lián)存儲(chǔ)器單元832中來編程SME 804。在一實(shí)例中,所述編譯器所創(chuàng)建的圖像包括高與低(例如,I與O)位的二進(jìn)制圖像。所述圖像可編程FSM引擎800以通過級(jí)聯(lián)SME 804,805而作為FSM操作。舉例來說,可通過將檢測(cè)電路838設(shè)定為活動(dòng)狀態(tài)而將第一 SME804設(shè)定為活動(dòng)狀態(tài)。第一 SME 804可經(jīng)設(shè)定以在對(duì)應(yīng)于位O的數(shù)據(jù)流線836在其上具有高信號(hào)時(shí)輸出高信號(hào)。第二 SME 805最初可設(shè)定為不活動(dòng)狀態(tài),但可經(jīng)設(shè)定以在活動(dòng)時(shí)在對(duì)應(yīng)于位I的數(shù)據(jù)流線836在其上具有高信號(hào)時(shí)輸出高信號(hào)。可通過設(shè)定第一 SME804的輸出826以耦合到第二 SME 805的輸入816來級(jí)聯(lián)第一 SME 804與第二 SME 805。因此,當(dāng)在對(duì)應(yīng)于位O的數(shù)據(jù)流線836上感測(cè)到高信號(hào)時(shí),第一 SME 804在輸出826上輸出高信號(hào)且將第二 SME805的檢測(cè)電路838設(shè)定為活動(dòng)狀態(tài)。當(dāng)在對(duì)應(yīng)于位I的數(shù)據(jù)流線836上感測(cè)到高信號(hào)時(shí),第二 SME 805在輸出828上輸出高信號(hào)以激活另一 SME805或供從FSM引擎800輸出。圖10圖解說明用于編譯器將源代碼轉(zhuǎn)換成經(jīng)配置以編程并行機(jī)的圖像的方法1000的實(shí)例。方法1000包括將源代碼剖析成語法樹(框1002),將所述語法樹轉(zhuǎn)換成自動(dòng)機(jī)(框1004),優(yōu)化所述自動(dòng)機(jī)(框1006),將所述自動(dòng)機(jī)轉(zhuǎn)換成網(wǎng)表(框1008),將所述網(wǎng)表置于硬件上(框1010),路由所述網(wǎng)表(框1012)及公布所得圖像(框1014)。在一實(shí)例中,編譯器包括允許軟件開發(fā)者創(chuàng)建用于在FSM引擎800上實(shí)施FSM的圖像的應(yīng)用程序編程接口(API)。編譯器提供用以將源代碼中的輸入正則表達(dá)式集轉(zhuǎn)換成經(jīng)配置以編程FSM引擎800的圖像的方法??赏ㄟ^用于具有馮 諾伊曼架構(gòu)的計(jì)算機(jī)的指令來實(shí)施所述編譯器。這些指令可致使計(jì)算機(jī)上的處理器實(shí)施編譯器的功能。舉例來說,所述指令在由處理器執(zhí)行時(shí)可致使處理器對(duì)所述處理器可存取的源代碼執(zhí)行框1002、1004、1006、1008、1010、1012及1014中所述的動(dòng)作。圖13中展示具有馮·諾伊曼架構(gòu)的實(shí)例性計(jì)算機(jī)且下文對(duì)其進(jìn)行描述。在一實(shí)例中,源代碼描述用于識(shí)別符號(hào)群組內(nèi)的符號(hào)型式的搜索串。為了描述搜索串,源代碼可包括多個(gè)正則表達(dá)式(regex)。正則表達(dá)式可為用于描述符號(hào)搜索型式的串。正則表達(dá)式廣泛地用于各種計(jì)算機(jī)領(lǐng)域中,例如程序設(shè)計(jì)語言、文本編輯器、網(wǎng)絡(luò)安全及其它領(lǐng)域。在一實(shí)例中,編譯器所支持的正則表達(dá)式包括用于搜索未結(jié)構(gòu)化數(shù)據(jù)的搜索準(zhǔn)則。未結(jié)構(gòu)化數(shù)據(jù)可包括自由形式的數(shù)據(jù)且不具有應(yīng)用于所述數(shù)據(jù)內(nèi)的字的索引。字可包括所述數(shù)據(jù)內(nèi)的可打印及不可打印的字節(jié)的任一組合。在一實(shí)例中,編譯器可支持多種不同源代碼語言以用于實(shí)施包括Perl (例如,Perl兼容正則表達(dá)式(PCRE))、PHP、Java·及.NET語言的正則表達(dá)式。在框1002處,編譯器可剖析源代碼以形成關(guān)系連接的運(yùn)算符的布置,其中不同類型的運(yùn)算符對(duì)應(yīng)于源代碼所實(shí)施的不同函數(shù)(例如,源代碼中的正則表達(dá)式所實(shí)施的不同函數(shù))。剖析源代碼可創(chuàng)建所述源代碼的類屬表示。在一實(shí)例中,所述類屬表示包含源代碼中的正則表達(dá)式的經(jīng)編碼表示,其呈稱作語法樹的樹形圖的形式。本文所述的實(shí)例涉及作為語法樹(還稱作“抽象語法樹”)的布置,然而在其它實(shí)例中可使用具體語法樹或其它布置。如上文所提及,由于編譯器可支持源代碼的多種語言,因此不管語言如何剖析均將源代碼轉(zhuǎn)換成非語言特定表示(例如,語法樹)。因此,不管源代碼的語言如何,由編譯器進(jìn)行的進(jìn)一步處理(框1004、1006、1008、1010)均可從共用輸入結(jié)構(gòu)起作用。如上所述,語法樹包括關(guān)系連接的多個(gè)運(yùn)算符。語法樹可包括多種不同類型的運(yùn)算符。也就是說,不同運(yùn)算符可對(duì)應(yīng)于源代碼中的正則表達(dá)式所實(shí)施的不同函數(shù)。在框1004處,將語法樹轉(zhuǎn)換成自動(dòng)機(jī)。自動(dòng)機(jī)包含F(xiàn)SM的軟件模型且可因此分類為確定性或非確定性。確定性自動(dòng)機(jī)在給定時(shí)間具有單個(gè)執(zhí)行路徑,而非確定性自動(dòng)機(jī)具有多個(gè)同時(shí)執(zhí)行路徑。所述自動(dòng)機(jī)包含多個(gè)狀態(tài)。為了將語法樹轉(zhuǎn)換成自動(dòng)機(jī),將語法樹中的運(yùn)算符及運(yùn)算符之間的關(guān)系轉(zhuǎn)換成狀態(tài),其中所述狀態(tài)之間具有轉(zhuǎn)變。在一實(shí)例中,可部分地基于FSM引擎800的硬件而轉(zhuǎn)換所述自動(dòng)機(jī)。在一實(shí)例中,用于自動(dòng)機(jī)的輸入符號(hào)包括字母、數(shù)字O到9及其它可打印字符的符號(hào)。在一實(shí)例中,輸入符號(hào)由字節(jié)值O到255 (包括O及255)表不。在一實(shí)例中,自動(dòng)機(jī)可表示為有向圖,其中所述圖的節(jié)點(diǎn)對(duì)應(yīng)于狀態(tài)集。在一實(shí)例中,輸入符號(hào)α (即,δ (ρ,α)上從狀態(tài)P到狀態(tài)q的轉(zhuǎn)變由從節(jié)點(diǎn)P到節(jié)點(diǎn)q的有向連接展示。在一實(shí)例中,自動(dòng)機(jī)的反轉(zhuǎn)產(chǎn)生新的自動(dòng)機(jī),其中某一符號(hào)α上的每一轉(zhuǎn)變p —q在同一符號(hào)上反轉(zhuǎn)q —ρ。在反轉(zhuǎn)中,開始狀態(tài)變?yōu)樽罱K狀態(tài)且最終狀態(tài)變?yōu)殚_始狀態(tài)。在一實(shí)例中,自動(dòng)機(jī)所接受(例如,匹配)的語言是當(dāng)依序輸入到所述自動(dòng)機(jī)中時(shí)將到達(dá)最終狀態(tài)的所有可能字符串的集。所述自動(dòng)機(jī)所接受的語言中的每一串追蹤從開始狀態(tài)到一個(gè)或一個(gè)以上最終狀態(tài)的路徑。在框1006處,在構(gòu)造自動(dòng)機(jī)之后,優(yōu)化所述自動(dòng)機(jī)以除其它之外還減小其復(fù)雜度及大小??赏ㄟ^組合冗余狀態(tài)來優(yōu)化所述自動(dòng)機(jī)。
在框1008處,將經(jīng)優(yōu)化的自動(dòng)機(jī)轉(zhuǎn)換成網(wǎng)表。將所述自動(dòng)機(jī)轉(zhuǎn)換成網(wǎng)表將所述自動(dòng)機(jī)的每一狀態(tài)映射到FSM引擎800上的硬件元件(例如,SME 804、805、其它元件824)并確定所述硬件元件之間的連接。在框1010處,放置所述網(wǎng)表以選擇目標(biāo)裝置的對(duì)應(yīng)于所述網(wǎng)表的每一節(jié)點(diǎn)的特定硬件元件(例如,SME 804、805、專用元件824)。在一實(shí)例中,放置基于FSM引擎800的一般輸入及輸出約束而選擇每一特定硬件元件。在框1012處,對(duì)所放置的網(wǎng)表進(jìn)行路由以確定用于可編程開關(guān)(例如,塊間開關(guān)803、塊內(nèi)開關(guān)808及行內(nèi)開關(guān)812)的設(shè)定,以便將選定硬件元件耦合在一起以實(shí)現(xiàn)網(wǎng)表所描述的連接。在一實(shí)例中,通過確定FSM引擎800的將用以連接選定硬件元件及用于可編程開關(guān)的設(shè)定的特定導(dǎo)體來確定用于可編程開關(guān)的設(shè)定。相比于框1010處的放置,路由可能考慮硬件元件之間的連接的更特定限制。因此,假定有對(duì)FSM引擎800上的導(dǎo)體的實(shí)際限制,路由可調(diào)整通過全域放置所確定的所述硬件元件中的一些硬件元件的位置以便進(jìn)行適當(dāng)連接。一旦網(wǎng)表經(jīng)放置及路由,便可將所述經(jīng)放置及路由的網(wǎng)表轉(zhuǎn)換成用于編程FSM弓丨擎800的多個(gè)位。所述多個(gè)位在本文中稱作圖像。在框1014處,編譯器公布圖像。所述圖像包含用于編程FSM引擎800的特定硬件元件及/或可編程開關(guān)的多個(gè)位。在其中所述圖像包含多個(gè)位(例如,O及I)的實(shí)施例中,所述圖像可稱作二進(jìn)制圖像??蓪⑺鑫患虞d到FSM引擎800上以編程SME 804、805、專用元件824及可編程開關(guān)的狀態(tài),以使得經(jīng)編程FSM引擎800實(shí)施具有源代碼所描述的功能性的FSM。放置(框1010)及路由(框1012)可將FSM引擎800中的特定位置處的特定硬件元件映射到自動(dòng)機(jī)中的特定狀態(tài)。因此,所述圖像中的位可編程特定硬件元件及/或可編程開關(guān)以實(shí)施所要功能。在一實(shí)例中,可通過將機(jī)器代碼保存到計(jì)算機(jī)可讀媒體來公布所述圖像。在另一實(shí)例中,可通過將所述圖像顯示于顯示裝置上來公布所述圖像。在又一實(shí)例中,可通過將圖像發(fā)送到另一裝置(例如用于將圖像加載到FSM引擎800上的編程裝置)來公布所述圖像。在又一實(shí)例中,可通過將圖像加載到并行機(jī)(例如,F(xiàn)SM引擎800)上來公布所述圖像。在一實(shí)例中,可通過將來自圖像的位值直接加載到SME 804,805及其它硬件元件824或通過將所述圖像加載到一個(gè)或一個(gè)以上寄存器中且接著將來自所述寄存器的位值寫入到SME 804、805及其它硬件元件824而將所述圖像加載到FSM引擎800上。在一實(shí)例中,可編程開關(guān)(例如,塊間開關(guān)803、塊內(nèi)開關(guān)808及行內(nèi)開關(guān)812)的狀態(tài)。在一實(shí)例中,F(xiàn)SM引擎800的硬件元件(例如,SME 804、805、其它元件824、可編程開關(guān)803、808、812)經(jīng)存儲(chǔ)器映射以使得編程裝置及/或計(jì)算機(jī)可通過將所述圖像寫入到一個(gè)或一個(gè)以上存儲(chǔ)器地址而將所述圖像加載到FSM引擎800上。本文所述的方法實(shí)例可為至少部分地機(jī)器或計(jì)算機(jī)實(shí)施的。一些實(shí)例可包括用指令編碼的計(jì)算機(jī)可讀媒體或機(jī)器可讀媒體,所述指令可操作以配置電子裝置以執(zhí)行以上實(shí)例中所述的方法。此些方法的實(shí)施方案可包括代碼,例如微碼、匯編語言代碼、高級(jí)語言代碼等。此代碼可包括用于執(zhí)行各種方法的計(jì)算機(jī)可讀指令。所述代碼可形成計(jì)算機(jī)程序產(chǎn)品的部分。此外,所述代碼可在執(zhí)行期間或在其它時(shí)間有形地存儲(chǔ)于一個(gè)或一個(gè)以上易失性或非易失性計(jì)算機(jī)可讀媒體上。這些計(jì)算機(jī)可讀媒體可包括(但不限于)硬盤、可裝卸磁盤、可裝卸光盤(例如,壓縮光盤及數(shù)字視頻光盤)、盒式磁帶、存儲(chǔ)卡或存儲(chǔ)棒、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)等。圖13大體圖解說明具有馮 諾伊曼架構(gòu)的計(jì)算機(jī)1500的實(shí)例。在閱讀并理解本發(fā)明的內(nèi)容后,所屬領(lǐng)域的技術(shù)人員將即刻理解可從基于計(jì)算機(jī)的系統(tǒng)中的計(jì)算機(jī)可讀媒體啟動(dòng)軟件程序以執(zhí)行所述軟件程序中所界定的功能的方式。所屬領(lǐng)域的技術(shù)人員將進(jìn)一步理解可用來創(chuàng)建經(jīng)設(shè)計(jì)以實(shí)施及執(zhí)行本文所揭示的方法的一個(gè)或一個(gè)以上軟件程序的各種程序設(shè)計(jì)語言??墒褂妹嫦?qū)ο蟮恼Z言(例如Java、C++或一種或一種以上其它語言)以面向?qū)ο蟮母袷絹斫Y(jié)構(gòu)化程序?;蛘?,可使用程序語言(例如匯編、C等)以面向程序的格式來結(jié)構(gòu)化程序。軟件組件可使用所屬領(lǐng)域的技術(shù)人員眾所周知的若干種機(jī)制(例如應(yīng)用程序接口或進(jìn)程間通信技術(shù),包括遠(yuǎn)程程序呼叫或其它)中的任一者進(jìn)行通信。各種實(shí)施例的教示不限于任一特定程序設(shè)計(jì)語言或環(huán)境。因此,可實(shí)現(xiàn)其它實(shí)施例。舉例來說,制品(例如計(jì)算機(jī)、存儲(chǔ)器系統(tǒng)、磁盤或光盤、某一其它存儲(chǔ)裝置或任一類型的電子裝置或系統(tǒng))可包括耦合到其上存儲(chǔ)有指令1524 (例如,計(jì)算機(jī)程序指令)的計(jì)算機(jī)可讀媒體1522 (例如存儲(chǔ)器(例如,可裝卸存儲(chǔ)媒體以及包括電、光學(xué)或電磁導(dǎo)體的任一存儲(chǔ)器))的一個(gè)或一個(gè)以上處理器1502,所述指令在由一個(gè)或一個(gè)以上處理器1502執(zhí)行時(shí)導(dǎo)致執(zhí)行關(guān)于以上方法所述的動(dòng)作中的任一者。計(jì)算機(jī)1500可采取具有直接及/或使用總線1508耦合到若干個(gè)組件的處理器1502的計(jì)算機(jī)系統(tǒng)的形式。此些組件可包括主存儲(chǔ)器1504、靜態(tài)或非易失性存儲(chǔ)器1506及大容量存儲(chǔ)裝置1516。耦合到處理器1502的其它組件可包括輸出裝置1510(例如視頻顯示器)、輸入裝置1512 (例如鍵盤)及光標(biāo)控制裝置1514 (例如鼠標(biāo))。用以將處理器1502及其它組件耦合到網(wǎng)絡(luò)1526的網(wǎng)絡(luò)接口裝置1520還可耦合到總線1508??衫萌舾蓚€(gè)眾所周知的傳送協(xié)議(例如,HTTP)中的任一者經(jīng)由網(wǎng)絡(luò)接口裝置1520在網(wǎng)絡(luò)1526上進(jìn)一步傳輸或接收指令1524。耦合到總線1508的這些元件中的任一者可取決于待實(shí)現(xiàn)的特定實(shí)施例而不存在、單獨(dú)存在或以復(fù)數(shù)數(shù)目存在。在一實(shí)例中,處理器1502、存儲(chǔ)器1504、1506或存儲(chǔ)裝置1516中的一者或一者以 上可各自包括在執(zhí)行時(shí)可致使計(jì)算機(jī)1500執(zhí)行本文所述的方法中的任何一者或一者以上的指令1524。在替代實(shí)施例中,計(jì)算機(jī)1500作為獨(dú)立裝置操作或可連接(例如,連網(wǎng))到其它裝置。在連網(wǎng)環(huán)境中,計(jì)算機(jī)1500可在服務(wù)器-客戶端網(wǎng)絡(luò)環(huán)境中以服務(wù)器或客戶端裝置的資格或在對(duì)等(或分布式)網(wǎng)絡(luò)環(huán)境中作為對(duì)等裝置操作。計(jì)算機(jī)1500可包括個(gè)人計(jì)算機(jī)(PC)、平板PC、機(jī)頂盒(STB)、個(gè)人數(shù)字助理(PDA)、蜂窩式電話、網(wǎng)絡(luò)器具、網(wǎng)絡(luò)路由器、交換機(jī)或橋接器或能夠執(zhí)行指定待由所述裝置采取的動(dòng)作的指令集(順序或以其它方式)的任一裝置。此外,盡管僅圖解說明單個(gè)計(jì)算機(jī)1500,但術(shù)語“計(jì)算機(jī)”還應(yīng)視為包括個(gè)別或共同地執(zhí)行一指令集(或多個(gè)指令集)以執(zhí)行本文所論述的方法中的任何一者或一者以上的任一裝置集合。計(jì)算機(jī)1500還可包括輸出控制器1528以用于使用一個(gè)或一個(gè)以上通信協(xié)議(例如,通用串行總線(USB)、IEEE 1394等)與外圍裝置通信。輸出控制器1528可(例如)將圖像提供到以通信方式耦合到計(jì)算機(jī)1500的編程裝置1530。編程裝置1530可經(jīng)配置以編程并行機(jī)(例如,并行機(jī)100、FSM引擎800)。在其它實(shí)例中,編程裝置1530可與計(jì)算機(jī)1500集成在一起并耦合到總線1508或可經(jīng)由網(wǎng)絡(luò)接口裝置1520或另一裝置與計(jì)算機(jī)1500通信。盡管將計(jì)算機(jī)可讀媒體1524展示為單個(gè)媒體,但術(shù)語“計(jì)算機(jī)可讀媒體”應(yīng)視為包括存儲(chǔ)一個(gè)或一個(gè)以上指令集1524的單個(gè)媒體或多個(gè)媒體(例如,集中式或分布式數(shù)據(jù)庫(kù),或相關(guān)聯(lián)高速緩沖存儲(chǔ)器及服務(wù)器,及/或各種存儲(chǔ)媒體,例如處理器1502寄存器、存儲(chǔ)器1504、1506及存儲(chǔ)裝置1516)。術(shù)語“計(jì)算機(jī)可讀媒體”還應(yīng)視為包括能夠存儲(chǔ)、編碼或載運(yùn)指令集以供所述計(jì)算機(jī)執(zhí)行且致使所述計(jì)算機(jī)執(zhí)行本發(fā)明的方法中的任何一者或一者以上或能夠存儲(chǔ)、編碼或載運(yùn)此指令集所利用或與此指令集相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)的任一媒體。術(shù)語“計(jì)算機(jī)可讀媒體”因此應(yīng)視為包括(但不限于)有形媒體(例如固態(tài)存儲(chǔ)器)、光學(xué)媒體及磁性媒體。提供發(fā)明摘要以符合37C. F. R.第1. 72(b)款,其需要將允許讀者探知所述技術(shù)揭示內(nèi)容的本質(zhì)及主旨的摘要。提交本摘要基于以下理解其并非將用以限制或解釋權(quán)利要求書的范圍或含義。特此將所附權(quán)利要求書并入到詳細(xì)描述中,其中每一權(quán)利要求自身作為單獨(dú)實(shí)施例。
權(quán)利要求
1.一種用于分析數(shù)據(jù)的方法,其包含 使用第一并行機(jī)分析第一數(shù)據(jù); 從所述第一并行機(jī)輸出第二數(shù)據(jù),所述第二數(shù)據(jù)提供分析所述第一數(shù)據(jù)的結(jié)果的指示; 使用第二并行機(jī)分析所述第二數(shù)據(jù);及 從所述第二并行機(jī)輸出分析所述第二數(shù)據(jù)的結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其中分析第一數(shù)據(jù)包含確定所述第一數(shù)據(jù)是否匹配第一型式。
3.根據(jù)權(quán)利要求2所述的方法,其中所述第二數(shù)據(jù)提供所述第一數(shù)據(jù)是否匹配所述第一型式的指示。
4.根據(jù)權(quán)利要求3所述的方法,其中分析所述第二數(shù)據(jù)包含確定所述第二數(shù)據(jù)是否匹配第二型式。
5.根據(jù)權(quán)利要求4所述的方法,其中分析所述第二數(shù)據(jù)的所述結(jié)果包含所述第二數(shù)據(jù)是否匹配所述第二型式的指示。
6.根據(jù)權(quán)利要求1所述的方法,其中所述第二數(shù)據(jù)包含指示所述第一型式的匹配的單個(gè)位。
7.根據(jù)權(quán)利要求1所述的方法,其中所述第二數(shù)據(jù)包含字,所述字包含指示與多個(gè)型式的匹配及不匹配的多個(gè)位,其中所述多個(gè)型式包括所述第一型式。
8.根據(jù)權(quán)利要求1所述的方法,其中所述第二數(shù)據(jù)包含對(duì)應(yīng)于所述第一并行機(jī)的可編程元件的狀態(tài)的狀態(tài)向量。
9.根據(jù)權(quán)利要求1所述的方法,其中分析第一數(shù)據(jù)包含確定所述第一數(shù)據(jù)是否包括所關(guān)注序列。
10.根據(jù)權(quán)利要求1所述的方法,其中從所述第一并行機(jī)輸出第二數(shù)據(jù)包含基于所述第一并行機(jī)的可編程元件對(duì)所述第一數(shù)據(jù)的反應(yīng)而輸出第二數(shù)據(jù)。
11.根據(jù)權(quán)利要求1所述的方法,其中分析第一數(shù)據(jù)包含確定是否在所述第一數(shù)據(jù)中辨識(shí)出數(shù)據(jù)序列。
12.根據(jù)權(quán)利要求1所述的方法,其中所述第一數(shù)據(jù)包含原始數(shù)據(jù)。
13.根據(jù)權(quán)利要求1所述的方法,其中分析所述第二數(shù)據(jù)還包括使用所述第二并行機(jī)分析所述第一數(shù)據(jù)。
14.根據(jù)權(quán)利要求1所述的方法,其中所述第二數(shù)據(jù)提供所述第一并行機(jī)的檢測(cè)狀態(tài)的指示。
15.根據(jù)權(quán)利要求1所述的方法,其中所述第二數(shù)據(jù)提供所述第一并行機(jī)的檢測(cè)狀態(tài)的指示。
16.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含將分析所述第二數(shù)據(jù)的所述結(jié)果反饋到所述第二并行機(jī),其中使用所述第二并行機(jī)分析所述第二數(shù)據(jù)進(jìn)一步包含分析分析所述第二數(shù)據(jù)的所述結(jié)果。
17.根據(jù)權(quán)利要求5所述的方法,其中所述第二型式包含在所述第一數(shù)據(jù)中辨識(shí)出的型式中的一型式。
18.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含基于在所述第二數(shù)據(jù)中辨識(shí)出的型式而配置所述第一并行機(jī)。
19.根據(jù)權(quán)利要求3所述的方法,其中配置所述第一并行機(jī)包含 分析在所述第二數(shù)據(jù)中辨識(shí)出的所述型式,且基于在所述第二數(shù)據(jù)中辨識(shí)出的所述型式而編譯用于所述第一并行機(jī)的程序。
20.根據(jù)權(quán)利要求19所述的方法,其中所述程序包含經(jīng)更新程序。
21.根據(jù)權(quán)利要求4所述的方法,其中確定所述第二數(shù)據(jù)是否匹配第二型式包含 確定所述第二數(shù)據(jù)是否匹配第二多個(gè)型式中的一者或一者以上,其中輸出結(jié)果包含 輸出第三數(shù)據(jù),所述第三數(shù)據(jù)提供是否在所述第二數(shù)據(jù)中辨識(shí)出所述第二多個(gè)型式中的一者或一者以上的指示,且進(jìn)一步包含 使用第三并行機(jī)確定所述第三數(shù)據(jù)是否匹配第三多個(gè)型式中的一者或一者以上;及從所述第三并行機(jī)輸出是否在所述第三數(shù)據(jù)中辨識(shí)出所述第三多個(gè)型式中的一者或一者以上的指示。
22.根據(jù)權(quán)利要求21所述的方法,其進(jìn)一步包含 基于來自所述第三并行機(jī)的輸出而配置所述第一并行機(jī)及所述第二并行機(jī)中的至少一者O
23.一種用于處理數(shù)據(jù)的設(shè)備,其包含 第一并行機(jī),其具有第一數(shù)據(jù)輸入端口及第一輸出端口,所述第一并行機(jī)經(jīng)配置以 在所述第一數(shù)據(jù)輸入端口處接收第一數(shù)據(jù);及 基于是否在所述第一數(shù)據(jù)中辨識(shí)出第一型式而在所述第一輸出端口處輸出第二數(shù)據(jù);及 第二并行機(jī),其具有第二數(shù)據(jù)輸入端口及第二輸出端口,其中所述第二數(shù)據(jù)輸入端口耦合到所述第一并行機(jī)的所述第一輸出端口,所述第二并行機(jī)經(jīng)配置以 在所述第二數(shù)據(jù)輸入端口處接收所述第二數(shù)據(jù);及 在所述第二輸出端口處輸出是否在所述第二數(shù)據(jù)中辨識(shí)出第二型式的指示。
24.根據(jù)權(quán)利要求23所述的設(shè)備,其進(jìn)一步包含 第三并行機(jī),其具有第三數(shù)據(jù)輸入端口及第三輸出端口,其中所述第三輸出端口耦合到所述第二并行機(jī)的所述第二數(shù)據(jù)輸入端口。
25.根據(jù)權(quán)利要求23所述的設(shè)備,其中所述第二并行機(jī)進(jìn)一步經(jīng)配置以 在所述第二數(shù)據(jù)輸入端口處接收第一數(shù)據(jù)流,且進(jìn)一步經(jīng)配置以在所述第二數(shù)據(jù)與所述第一數(shù)據(jù)的組合中辨識(shí)所述第二型式。
26.根據(jù)權(quán)利要求23所述的設(shè)備,其中所述第一并行機(jī)包括經(jīng)配置以基于所述第二數(shù)據(jù)而接收程序的編程接口,所述程序經(jīng)配置以重新編程所述第一并行機(jī)。
27.根據(jù)權(quán)利要求26所述的設(shè)備,其中所述程序包含經(jīng)更新程序,其中所述經(jīng)更新程序經(jīng)配置以更新已加載到所述第一并行機(jī)上的程序。
28.根據(jù)權(quán)利要求26所述的設(shè)備,其中所述程序包含用于所述第一并行機(jī)的原始程序。
29.根據(jù)權(quán)利要求26所述的設(shè)備,其進(jìn)一步包含 處理裝置,其耦合到所述第二并行機(jī)的所述輸出端口且經(jīng)配置以分析所述第二并行機(jī)的所述輸出端口并依據(jù)從所述第二并行機(jī)輸出的第二數(shù)據(jù)流而編譯用于所述第一并行機(jī)的更新程序; 其中所述第一并行機(jī)經(jīng)配置以從所述處理裝置接收經(jīng)更新程序。
30.根據(jù)權(quán)利要求29所述的設(shè)備,其包含 第三并行機(jī),其具有第三數(shù)據(jù)輸入端口及第三輸出端口,所述第三并行機(jī)經(jīng)配置以 從所述第二并行機(jī)接收所述指示; 確定第三型式是否在所述指示中;及 產(chǎn)生輸出。
31.一種用于分析數(shù)據(jù)的方法,其包含 在第一并行機(jī)處接收第一數(shù)據(jù); 基于對(duì)所述第一數(shù)據(jù)的分析而從所述第一并行機(jī)輸出第二數(shù)據(jù); 在第二并行機(jī)處接收所述第二數(shù)據(jù); 基于對(duì)所述第二數(shù)據(jù)的分析而從所述第二并行機(jī)輸出第三數(shù)據(jù);及 基于所述第三數(shù)據(jù)而配置所述第一并行機(jī)。
32.根據(jù)權(quán)利要求31所述的方法,其中配置包含重新編程。
33.根據(jù)權(quán)利要求31所述的方法,其中配置所述第一并行機(jī)包含 基于所述第三數(shù)據(jù)而編譯用于所述第一并行機(jī)的經(jīng)更新程序;及 將所述更新程序加載到所述第一并行機(jī)上。
34.根據(jù)權(quán)利要求31所述的方法,其中所述第一并行機(jī)經(jīng)配置以在所述第一數(shù)據(jù)中識(shí)別第一型式,且其中所述第二并行機(jī)經(jīng)配置以在所述第二數(shù)據(jù)中識(shí)別第二型式。
35.根據(jù)權(quán)利要求31所述的方法,其進(jìn)一步包含 在所述第二并行機(jī)處接收所述第一數(shù)據(jù),其中從所述第二并行機(jī)輸出第三數(shù)據(jù)包含基于對(duì)所述第一及第二數(shù)據(jù)的分析而輸出第三數(shù)據(jù)。
36.一種方法,其包含 借助第一并行機(jī)分析第一數(shù)據(jù);及 基于第二并行機(jī)對(duì)與所述第一數(shù)據(jù)相關(guān)的第二數(shù)據(jù)的分析而配置所述第一并行機(jī)。
37.根據(jù)權(quán)利要求36所述的方法,其中所述第二并行機(jī)分析所述第一數(shù)據(jù)并基于所述分析而產(chǎn)生所述第二數(shù)據(jù)。
38.根據(jù)權(quán)利要求36所述的方法,其中所述第二并行機(jī)分析來自所述第一并行機(jī)的輸出并基于所述分析而產(chǎn)生所述第二數(shù)據(jù)。
39.根據(jù)權(quán)利要求36所述的方法,其中處理裝置接收所述第二數(shù)據(jù)、分析所述第二數(shù)據(jù)并基于所述第二數(shù)據(jù)而編譯用于所述第一并行機(jī)的經(jīng)更新程序,其中配置所述第一并行機(jī)包含將所述經(jīng)更新程序加載到所述第一并行機(jī)上。
40.根據(jù)權(quán)利要求36所述的方法,其中所述第一及第二并行機(jī)執(zhí)行型式辨識(shí)。
41.一種方法,其包含 在層次結(jié)構(gòu)的第一層中,對(duì)輸入數(shù)據(jù)執(zhí)行較低層級(jí)的分析并基于所述較低層級(jí)的分析而提供輸出 '及 在層次結(jié)構(gòu)的第二層中,對(duì)較低層所提供的輸出執(zhí)行較高層級(jí)的分析。
42.根據(jù)權(quán)利要求41所述的方法,其中所述分析包含型式辨識(shí)。
43.根據(jù)權(quán)利要求41所述的方法,其中通過第一并行機(jī)來實(shí)施所述結(jié)構(gòu)的所述第一層,且通過第二并行機(jī)來實(shí)施所述結(jié)構(gòu)的所述第二層。
44.根據(jù)權(quán)利要求43所述的方法,其中以級(jí)聯(lián)方式將所述第一與第二并行機(jī)耦合在一起。
45.根據(jù)權(quán)利要求43所述的方法,其中將所述第一與第二并行機(jī)串聯(lián)耦合。
46.根據(jù)權(quán)利要求41所述的方法,其中使用來自所述層級(jí)的分析中的一者的信息來修改在其它層級(jí)的分析中執(zhí)行的所述分析。
47.根據(jù)權(quán)利要求41所述的方法,其進(jìn)一步包含將反饋信息從所述結(jié)構(gòu)的所述第二層提供到所述結(jié)構(gòu)的所述第一層。
48.根據(jù)權(quán)利要求47所述的方法,其中使用所述反饋信息來更新所述較低層級(jí)的分析。
49.根據(jù)權(quán)利要求48所述的方法,其中使用所述反饋信息來更新用以執(zhí)行所述較低層級(jí)的分析的程序。
50.根據(jù)權(quán)利要求48所述的方法,其中所述反饋信息包含對(duì)應(yīng)于所述輸入數(shù)據(jù)的識(shí)別信息。
51.根據(jù)權(quán)利要求41所述的方法,其中通過并行機(jī)的第一部分來實(shí)施所述結(jié)構(gòu)的所述第一層,且通過所述并行機(jī)的第二部分來實(shí)施所述結(jié)構(gòu)的所述第二層。
52.根據(jù)權(quán)利要求41所述的方法,其進(jìn)一步包含基于所述較高層級(jí)的分析而配置所述較低層級(jí)的分析。
53.根據(jù)權(quán)利要求41所述的方法,其進(jìn)一步包含基于所述較低層級(jí)的分析而配置所述較高層級(jí)的分析。
54.根據(jù)權(quán)利要求41所述的方法,其中在具有馮·諾伊曼架構(gòu)的機(jī)器上以軟件來實(shí)施所述結(jié)構(gòu)的兩個(gè)層。
55.根據(jù)權(quán)利要求41所述的方法,其進(jìn)一步包含基于所述較高層級(jí)的分析而修改所述較低層級(jí)的分析。
56.根據(jù)權(quán)利要求41所述的方法,其中所述輸出包含檢測(cè)狀態(tài)信息。
全文摘要
本發(fā)明描述用于分析數(shù)據(jù)的設(shè)備、系統(tǒng)及方法。可使用層次結(jié)構(gòu)來分析所述數(shù)據(jù)。一個(gè)此種層次結(jié)構(gòu)可包含多個(gè)層,其中每一層對(duì)輸入數(shù)據(jù)執(zhí)行分析并基于所述分析而提供輸出??蓪碜运鰧哟谓Y(jié)構(gòu)中的較低層的輸出作為輸入提供到較高層。以此方式,較低層可執(zhí)行較低層級(jí)的分析(例如,較基本/基礎(chǔ)分析),而較高層可使用來自一個(gè)或一個(gè)以上較低層的所述輸出執(zhí)行較高層級(jí)的分析(例如,較復(fù)雜分析)。在一實(shí)例中,所述層次結(jié)構(gòu)執(zhí)行型式辨識(shí)。
文檔編號(hào)G06F9/38GK103003792SQ201180034987
公開日2013年3月27日 申請(qǐng)日期2011年6月9日 優(yōu)先權(quán)日2010年6月10日
發(fā)明者保羅·德盧戈施 申請(qǐng)人:美光科技公司