專利名稱:可編程裝置、層次并行機(jī)、用于提供狀態(tài)信息的方法
可編程裝置、層次并行機(jī)、用于提供狀態(tài)信息的方法
相關(guān)串請案的交叉參考
本專利申請案主張2011年3月I日提出申請的標(biāo)題為“可編程裝置、層次并行機(jī)、 用于提供狀態(tài)信息的方法(Programm able Device, Hierarchical Parallel Machines, Methodsfor Providing State Information) ” 的第 13/037,706 號(hào)美國申請案的優(yōu)先權(quán)權(quán)益,所述美國申請案依據(jù)35U. S.C.第119(e)款主張2010年月6月10日提出申請的標(biāo)題為“用于在有限狀態(tài)機(jī)之間傳送狀態(tài)的系統(tǒng)及方法(System and Method for Transferring State BetweenFinite State Machine) ”的第61/353,551號(hào)美國臨時(shí)專利申請案的優(yōu)先權(quán)權(quán)益,所述申請案兩者均以全文引用的方式特此并入本文中。技術(shù)領(lǐng)域背景技術(shù)
可編程裝置的一個(gè)實(shí)例為并行機(jī)。并行機(jī)包括(例如)有限狀態(tài)機(jī)(FSM)引擎及現(xiàn)場可編程門陣列(FPGA)。FSM為狀態(tài)表示,在狀態(tài)與動(dòng)作之間轉(zhuǎn)變。有限狀態(tài)機(jī)可以有向流程圖的形式表達(dá)。其可用以解決(例如)工程學(xué)、型式辨識(shí)、生物學(xué)及人工智能中的問題。發(fā)明內(nèi)容
圖1圖解說明根據(jù)本發(fā)明的各種實(shí)施例的層次并行機(jī)的實(shí)例。
圖2圖解說明根據(jù)本發(fā)明的各種實(shí)施例的經(jīng)配置以用于型式辨識(shí)的層次并行機(jī)的實(shí)例。
圖3圖解說明根據(jù)本發(fā)明的各種實(shí)施例的并行機(jī)的實(shí)例。
圖4圖解說明根據(jù)本發(fā)明的各種實(shí)施例的有限狀態(tài)機(jī)圖的實(shí)例。
圖5圖解說明根據(jù)本發(fā)明的各種實(shí)施例的有限狀態(tài)機(jī)圖的另一實(shí)例。
圖6圖解說明根據(jù)本發(fā)明的各種實(shí)施例的借助并行機(jī)所實(shí)施的兩層級(jí)層次的另一實(shí)例。
圖7圖解說明根據(jù)本發(fā)明的各種實(shí)施例的借助并行機(jī)所實(shí)施的四層級(jí)層次的實(shí)例。
圖8圖解說明根據(jù)本發(fā)明的各種實(shí)施例的有限狀態(tài)機(jī)圖群組的實(shí)例。
圖9圖解說明根據(jù)本發(fā)明的各種實(shí)施例的有限狀態(tài)機(jī)圖的另一實(shí)例,其中聚合以圖解方式所圖解說明的狀態(tài)機(jī)的最終狀態(tài)。
圖10圖解說明根據(jù)本發(fā)明的各種實(shí)施例的有限狀態(tài)機(jī)圖群組的另一實(shí)例,其中聚合以圖解方式所圖解說明的有限狀態(tài)機(jī)中的每一者的最終狀態(tài)。
圖11圖解說明根據(jù)本發(fā)明的各種實(shí)施例的可編程元件陣列的實(shí)例。
圖12圖解說明根據(jù)本發(fā)明的各種實(shí)施例的型式辨識(shí)處理器堆疊的實(shí)例。
圖13圖解說明根據(jù)本發(fā)明的各種實(shí)施例的借助并行機(jī)所實(shí)施的具有反饋的四層 級(jí)層次的實(shí)例。
圖14圖解說明根據(jù)本發(fā)明的各種實(shí)施例的借助并行機(jī)所實(shí)施的具有反饋的四層 級(jí)層次的另一實(shí)例。
圖15圖解說明根據(jù)本發(fā)明的各種實(shí)施例的有限狀態(tài)機(jī)引擎。
圖16圖解說明根據(jù)本發(fā)明的各種實(shí)施例的圖15的有限狀態(tài)機(jī)引擎的塊的實(shí)例。
圖17圖解說明根據(jù)本發(fā)明的各種實(shí)施例的圖16的塊的行的實(shí)例。
圖18圖解說明根據(jù)本發(fā)明的各種實(shí)施例的圖10的行中的兩個(gè)一群組的實(shí)例。
圖19圖解說明根據(jù)本發(fā)明的各種實(shí)施例用于編譯器將源代碼轉(zhuǎn)換成圖像以用于 編程圖8的有限狀態(tài)機(jī)的方法的實(shí)例。
圖20圖解說明根據(jù)本發(fā)明的各種實(shí)施例的具有基于馮·諾伊曼的架構(gòu)的計(jì)算機(jī) 的實(shí)例。
具體實(shí)施方式
以下描述及圖式充分圖解說明特定實(shí)施例以使所屬領(lǐng)域的技術(shù)人員能夠?qū)嵺`所 述特定實(shí)施例。其它實(shí)施例可并入有結(jié)構(gòu)、邏輯、電、過程及其它改變。一些實(shí)施例的各部 分及特征可包括于其它實(shí)施例的那些部分及特征中或替代其它實(shí)施例的那些部分及特征。
除其它之外本文件還描述層次并行機(jī)(例如,層次有限狀態(tài)機(jī)(HFSM)引擎)及相 關(guān)方法。圖1中展示一個(gè)此種層次并行機(jī)10。每一層次并行機(jī)10包括兩個(gè)或兩個(gè)以上并 行機(jī),例如,兩個(gè)或兩個(gè)以上有限狀態(tài)機(jī)(FSM)引擎12。每一有限狀態(tài)機(jī)引擎12為在輸入 總線16上接收數(shù)據(jù)(例如,數(shù)據(jù)流)并對所述數(shù)據(jù)做出反應(yīng)且依據(jù)所接收的數(shù)據(jù)提供(例 如,產(chǎn)生)輸出的裝置。
每一有限狀態(tài)機(jī)引擎12可為任意復(fù)雜的。在例如圖1中所展示的一個(gè)實(shí)施例中, 有限狀態(tài)機(jī)引擎12經(jīng)級(jí)聯(lián),其中將有限狀態(tài)機(jī)引擎12中的至少一者的輸出(例如,狀態(tài)) 整體或部分地提供(例如,傳遞)到在級(jí)聯(lián)中的下游的有限狀態(tài)機(jī)引擎12中的一者或一者 以上。在一實(shí)例中,所述級(jí)聯(lián)中的最后有限狀態(tài)機(jī)引擎產(chǎn)生結(jié)果,可在輸出總線(例如,結(jié) 果總線20)上提供所述結(jié)果。在一個(gè)實(shí)施例中,有限狀態(tài)機(jī)引擎12中的每一者可例如經(jīng)由 相應(yīng)編程總線14來編程,例如,通過使用編程總線14將程序(例如,圖像)加載(例如,存 儲(chǔ))到有限狀態(tài)機(jī)引擎12上。
在一些實(shí)施例中,減少借助HPRPlO處理數(shù)據(jù)所需要的時(shí)間可為重要的。借助 HPRPlO處理數(shù)據(jù)的時(shí)間可至少部分地受在有限狀態(tài)機(jī)引擎12之間所傳遞的數(shù)據(jù)(例如,狀 態(tài)信息,例如狀態(tài)向量)量的限制。在一些此類實(shí)施例中,有限狀態(tài)機(jī)引擎12以層次配置 連接,且有限狀態(tài)機(jī)引擎12之間的接口可經(jīng)設(shè)計(jì)以近似實(shí)時(shí)操作。除其它之外,本文件還 描述此些考慮因素且建議一種用于層次并行機(jī)組(例如,層次FSM引擎12組)的物理實(shí)施 方案的一般方法。
在一個(gè)實(shí)例性實(shí)施例中,實(shí)施層次型式辨識(shí)處理器(HPRP) 30,如圖2中所展示。型 式辨識(shí)處理器為接收數(shù)據(jù)(例如,符號(hào)序列)并在辨識(shí)出(例如,檢測到)所關(guān)注序列時(shí)產(chǎn) 生提供某一類型的通知的輸出的裝置。在簡單情況中,在輸入總線36上將單個(gè)輸入符號(hào)流提供到HPRP30。HPRP30經(jīng)編程以經(jīng)由編程總線34檢測一特定輸入符號(hào)序列或若干特定輸入符號(hào)序列。產(chǎn)生且可在結(jié)果總線40上提供結(jié)果(所檢測到的序列)。圖2中展示HPRP30的邏輯接口(編程接口 34及數(shù)據(jù)輸入36)。在所展示的實(shí)施例中,HPRP30可包括編程為型式辨識(shí)處理器(PRP) 32的兩個(gè)或兩個(gè)以上有限狀態(tài)機(jī)引擎。每一 PRP32為能夠檢測相應(yīng)數(shù)據(jù)流(例如,輸入總線36或輸入總線42上的數(shù)據(jù)流)中的符號(hào)序列的裝置。舉例來說,每一 PRP32可能夠匹配相應(yīng)數(shù)據(jù)流中的相應(yīng)型式。在所圖解說明的實(shí)施例中,第二 PRP32接收第一 PRP32的輸出(在輸出總線38上提供)作為其輸入并在結(jié)果總線40上產(chǎn)生結(jié)果。在一個(gè)實(shí)施例中,可經(jīng)由相應(yīng)編程總線34來編程PRP32中的每一者。下文參考圖15到18來描述實(shí)例性PRP32 (還稱作“內(nèi)容檢查處理器”)。在某些實(shí)例中,使用有限狀態(tài)機(jī)(FSM)引擎或現(xiàn)場可編程門陣列(FPGA)或其變化形式或并行機(jī)的另一實(shí)施方案來實(shí)施HPRP30。層次并行機(jī)10及30的兩層級(jí)(例如,級(jí))層次允許兩個(gè)獨(dú)立程序基于相同數(shù)據(jù)流而操作。兩層級(jí)層次可類似于建模為不同區(qū)的人類大腦中的視覺辨識(shí)。在此模型下,所述區(qū)為實(shí)際上不同的型式辨識(shí)處理器,每一型式辨識(shí)處理器執(zhí)行類似計(jì)算功能(檢測數(shù)據(jù)流中的符號(hào)序列)但使用不同程序(例如,簽名)。通過將多個(gè)并行機(jī)連接在一起,可獲得關(guān)于數(shù)據(jù)流的更深知識(shí)。舉例來說,所述層次的第一層級(jí)(例如,由第一 FSM引擎12或第一 PRP32實(shí)施的層級(jí))可直接對原始數(shù)據(jù)流執(zhí)行處理。也就是說,第一 FSM12或PRP32可分別依據(jù)輸入總線16或輸入總線36上的原始數(shù)據(jù)流而產(chǎn)生輸出數(shù)據(jù)流(例如,原始數(shù)據(jù)流中的一匹配或若干匹配的指示)。如圖1中所展示,第二層級(jí)(例如,由第二 FSM引擎12或第二 PRP32實(shí)施的層級(jí))處理來自所述第一層級(jí)的輸出數(shù)據(jù)流。舉例來說,第二 FSM引擎12從第一 FSM引擎12接收輸出數(shù)據(jù)流(在輸出總線18上提供)且第二 FSM引擎12處理第一 FSM引擎12的輸出數(shù)據(jù)流。因此,第二FSM引擎12并不接收原始數(shù)據(jù)流作為輸入,而是接收第一FSM引擎12所產(chǎn)生的輸出數(shù)據(jù)流??捎玫谝粓D像編程第二 FSM引擎12以檢測第一 FSM引擎12所產(chǎn)生的輸出數(shù)據(jù)流中的序列。第二 FSM引擎12可耦合到單獨(dú)編程接口(例如,通過編程總線14)以用于接收第二圖像。在一實(shí)例中,HPRP30可經(jīng)編程以實(shí)施型式辨識(shí)功能。舉例來說,由HPRP30實(shí)施的FSM可經(jīng)配置以辨識(shí)輸入到HPRP30的數(shù)據(jù)流中的一個(gè)或一個(gè)以上數(shù)據(jù)序列(例如,簽名)。當(dāng)?shù)谝?PRP32辨識(shí)出(例如,匹配)所述數(shù)據(jù)流中的所關(guān)注序列時(shí),可在輸出總線38上提供指示所述辨識(shí)的輸出數(shù)據(jù)流。在一實(shí)例中,所述型式辨識(shí)可為辨識(shí)一串符號(hào)(例如,ASCII字符)以(例如)識(shí)別網(wǎng)絡(luò)數(shù)據(jù)中的惡意軟件或其它信息??蓪⒋溯敵鰯?shù)據(jù)流(例如,輸出字、檢測狀態(tài)等)從第一 PRP32的輸出總線38饋送到另一 PRP32的輸入總線42,如圖2中所展示。兩個(gè)PRP32的此串行連接提供將關(guān)于過去事件的信息以經(jīng)壓縮字從第一 PRP32提供到第二 PRP32的手段。此信息提供實(shí)際上可為已被第一 PRP32辨識(shí)出的復(fù)雜事件(例如,數(shù)據(jù)流序列)的概要。如上所述,在一些實(shí)施例中,減少在PRP的層級(jí)之間傳遞輸出所需要的時(shí)間可為重要的。在一些此種實(shí)施例中,PRP32之間的接口可經(jīng)設(shè)計(jì)以支持HPRP30的每一層級(jí)的實(shí)時(shí)操作。舉例來說,本文件描述此些考慮因素且建議一種用于HPRP30的物理實(shí)施方案的一般方法。
本文件除其它之外還描述用于使用層次結(jié)構(gòu)處理數(shù)據(jù)的方法及設(shè)備。所述層次結(jié)構(gòu)可包含多個(gè)層級(jí)(例如,層),其中每一層級(jí)處理數(shù)據(jù)(例如,對其執(zhí)行分析)并提供輸出(例如,基于所述分析)??蓪碜运鰧哟谓Y(jié)構(gòu)中的較低層級(jí)的輸出作為輸入提供到較高層級(jí)。以此方式,較低層級(jí)可執(zhí)行較基本/基礎(chǔ)分析,而較高層級(jí)可使用來自一個(gè)或一個(gè)以上較低層級(jí)的輸出來執(zhí)行較復(fù)雜分析。在一實(shí)例中,所述層次結(jié)構(gòu)執(zhí)行型式辨識(shí)。在一實(shí)例中,借助以級(jí)聯(lián)方式耦合在一起的多個(gè)有限狀態(tài)機(jī)引擎來實(shí)施所述層次結(jié)構(gòu)。舉例來說,第一有限狀態(tài)機(jī)引擎與第二有限狀態(tài)機(jī)引擎可串行耦合以使得所述第二有限狀態(tài)機(jī)引擎從所述第一有限狀態(tài)機(jī)引擎接收輸出作為輸入。任一數(shù)目個(gè)有限狀態(tài)機(jī)引擎可一起耦合在此層次結(jié)構(gòu)中。除使用層次結(jié)構(gòu)處理數(shù)據(jù)之外,本文件還描述用于使用來自一個(gè)有限狀態(tài)機(jī)引擎的輸出來修改另一有限狀態(tài)機(jī)引擎所執(zhí)行的處理的方法及設(shè)備。使用上文所述的有限狀態(tài)機(jī)引擎實(shí)例,實(shí)施較高層級(jí)的處理的第二有限狀態(tài)機(jī)引擎可將反饋信息提供到實(shí)施較低層級(jí)的處理的第一有限狀態(tài)機(jī)引擎。所述反饋信息可由所述第一有限狀態(tài)機(jī)引擎用來以類似于在生物大腦中學(xué)習(xí)的方式修改(例如,更新)處理。圖3圖解說明可用以實(shí)施有限狀態(tài)機(jī)引擎或型式辨識(shí)處理器的實(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及專用元件112。通用元件102可包括一個(gè)或一個(gè)以上輸入104及一個(gè)或一個(gè)以上輸出106。通用元件102可被編程到多個(gè)狀態(tài)中的一者中。通用元件102的狀態(tài)確定通用元件102將基于給定輸入而提供何種輸出。也就是說,通用元件102的狀態(tài)確定可編程元件將對給定輸入如何做出反應(yīng)(例如,響應(yīng))??蓪⑤斎氲綌?shù)據(jù)輸入端口 110的數(shù)據(jù)提供到多個(gè)通用元件102以致使通用元件102對其采取行動(dòng)。通用元件102的實(shí)例可包括(例如)如下文詳細(xì)論述的狀態(tài)機(jī)元件(SME)、計(jì)數(shù)器及/或可配置邏輯塊以及其它可編程元件。在一實(shí)例中,SME可經(jīng)編程(例如,設(shè)定)以當(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ì)數(shù)器的實(shí)例。專用元件112可包括存儲(chǔ)器(例如,RAM)、邏輯門、計(jì)數(shù)器、查找表、現(xiàn)場可編程門陣列(FPGA)及其它硬件元件。專用元件112可與通用元件102交互且執(zhí)行專用功能。并行機(jī)100還可包括用于將程序(例如,圖像)加載到并行機(jī)100上的編程接口111。所述圖像可編程(例如,設(shè)定)通用元件102的狀態(tài)。也就是說,所述圖像可配置通用元件102以便以某一方式對給定輸入做出反應(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í)施例中,在數(shù)據(jù)輸入端口 110處所接收的數(shù)據(jù)可包括隨時(shí)間或同時(shí)一起接收的固定數(shù)據(jù)集或隨時(shí)間接收的數(shù)據(jù)流。所述數(shù)據(jù)可從耦合到并行機(jī)100的任一源(例如數(shù)據(jù)庫、傳感器、網(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)在所述元件之間的路由。雖然圖3圖解說明給定元件與可編程開關(guān)108之間的某一數(shù)目個(gè)導(dǎo)體(例如,導(dǎo)線),但應(yīng)理解,在其它實(shí)例中可使用不同數(shù)目個(gè)導(dǎo)體。此外,雖然圖3圖解說明每一通用元件102個(gè)別地耦合到可編程開關(guān)108,但在其它實(shí)例中,多個(gè)通用元件102可作為一群組(例如,圖15中所圖解說明的塊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可對其對應(yīng)輸入數(shù)據(jù)端口 110處的數(shù)據(jù)做出反應(yīng)(例如,輸出高信號(hào)或低信號(hào))。舉例來說,對應(yīng)于第一并行機(jī)100的第一組通用元件102可對對應(yīng)于第一并行機(jī)100的第一數(shù)據(jù)輸入端口 110處的數(shù)據(jù)做出反應(yīng)。對應(yīng)于第二并行機(jī)100的第二組通用元件102可對對應(yīng)于第二并行機(jī)100的第二數(shù)據(jù)輸入端口 110做出反應(yīng)。因此,每一并行機(jī)100包括一組通用元件102,其中不同組通用元件102可對不同輸入數(shù)據(jù)做出反應(yīng)。類似地,每一并行機(jī)100及每一對應(yīng)組通用元件102可提供相異輸出。在一些實(shí)例中,來自第一并行機(jī)100的輸出端口 114可耦合到第二并行機(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對輸入端口 110處的數(shù)據(jù)的反應(yīng)而提供來自并行機(jī)100的輸出。來自輸出端口 114的輸出可包括指示給定型式的匹配的單個(gè)位、包含指示與多個(gè)型式的匹配及不匹配的多個(gè)位的字及對應(yīng)于所有或某些通用元件102及專用元件112的狀態(tài)的輸出向量。并行機(jī)100的實(shí)例性用途包括型式辨識(shí)(例如,語音辨識(shí)、圖像辨識(shí)等)、信號(hào)處理、成像、計(jì)算機(jī)視覺、密碼編譯及其它。在某些實(shí)例中,并行機(jī)100可包含有限狀態(tài)機(jī)(FSM)引擎、現(xiàn)場可編程門陣列(FPGA)及其變化形式。此外,并行機(jī)100可為較大裝置(例如,計(jì)算機(jī)、尋呼機(jī)、蜂窩式電話、個(gè)人記事本、便攜式音頻播放器、網(wǎng)絡(luò)裝置(例如,路由器、防火墻、交換機(jī)或其任一組合)、控制電路、相機(jī)等)中的組件。并行機(jī)(例如,F(xiàn)SM引擎、PRP等)可實(shí)施狀態(tài)機(jī)。狀態(tài)機(jī)可表示為有向圖。圖4展示簡單狀態(tài)機(jī)圖150,其表示在字‘D0G’中所找到的字符序列。狀態(tài)152為狀態(tài)機(jī)圖150的輸入狀態(tài)。狀態(tài)154為中間狀態(tài)。在圖4中,最終狀態(tài)156 (有時(shí)還稱作終端狀態(tài))由圍繞‘G’狀態(tài)的虛線邊界識(shí)別。在一般情況中,當(dāng)?shù)竭_(dá)最終狀態(tài)時(shí),通過某一機(jī)制指示匹配條件。此匹配條件可由來自并行機(jī)100 (例如,F(xiàn)SM引擎12、PRP32)的顯式信號(hào)表示,或其可編碼為二進(jìn)制字并存儲(chǔ)于存儲(chǔ)器寄存器中。不存在對狀態(tài)機(jī)的大小的理論限制。在一般情況中,PRP或FSM引擎可針對所述PRP或FSM引擎可檢測到的每一特定符號(hào)序列實(shí)施單獨(dú)狀態(tài)機(jī)。如果需要,那么可對狀態(tài)機(jī)執(zhí)行優(yōu)化以便消除冗余(共用路徑),以便將狀態(tài)機(jī)組合成較大實(shí)施方案或最小化特定狀態(tài)機(jī)實(shí)施方案的大小。此些優(yōu)化可減小狀態(tài)機(jī)實(shí)施方案及因此(例如)實(shí)施狀態(tài)機(jī)的狀態(tài)機(jī)引擎的聚合大小。一旦完成此優(yōu)化,便可實(shí)施單個(gè)大狀態(tài)機(jī)。圖5展示較大狀態(tài)機(jī)圖200。在一般情況中,狀態(tài)機(jī)實(shí)施方案可具有前向復(fù)雜連接及后向復(fù)雜連接兩者。在圖5中所展示的實(shí)例中,一個(gè)輸入狀態(tài)202饋送兩個(gè)中間狀態(tài)204。在此些狀態(tài)機(jī)中,可存在許多最終狀態(tài)208及許多其它中間狀態(tài)204。狀態(tài)機(jī)中的每一狀態(tài)具有指示所述狀態(tài)是否活動(dòng)的瞬時(shí)狀況。僅活動(dòng)狀態(tài)可對輸入符號(hào)做出反應(yīng)。在一個(gè)實(shí)施例中,當(dāng)在輸入總線36上接收到輸入符號(hào)時(shí),所述狀態(tài)機(jī)中的每一活動(dòng)狀態(tài)將分析所述符號(hào)以確定是否應(yīng)產(chǎn)生激活信號(hào)。此激活信號(hào)將用以激活序列中的下一狀態(tài)。舉例來說,指定字符‘b’的第一狀態(tài)204將在第一節(jié)點(diǎn)204為活動(dòng)的且接收到字符‘b’作為輸入數(shù)據(jù)時(shí)在輸入字符‘b’上激活通過轉(zhuǎn)變206連接到第一狀態(tài)204的第二狀態(tài)204。在圖200中,輸入狀態(tài)202可首先被激活且可在輸入數(shù)據(jù)匹配來自輸入節(jié)點(diǎn)202的轉(zhuǎn)變206時(shí)激活下游狀態(tài)204。在接收到輸入數(shù)據(jù)時(shí),可以此方式激活整個(gè)圖200中的狀態(tài)204、208。經(jīng)激活最終狀態(tài)208對應(yīng)于輸入數(shù)據(jù)與所關(guān)注序列的匹配。因此,激活最終狀態(tài)208指示已在輸入數(shù)據(jù)處接收到所關(guān)注序列。在實(shí)施型式辨識(shí)功能的有限狀態(tài)機(jī)引擎100的背景中,激活最終狀態(tài)208可指示已在輸入數(shù)據(jù)上檢測到特定所關(guān)注型式。在一實(shí)例中,每一中間狀態(tài)204及最終狀態(tài)208可對應(yīng)于有限狀態(tài)機(jī)引擎100中的通用元件102。每一轉(zhuǎn)變206可對應(yīng)于通用元件102之間的連接。因此,轉(zhuǎn)變到另一中間狀態(tài)204或最終狀態(tài)208 (例如,具有連接到另一中間狀態(tài)204或最終狀態(tài)208的轉(zhuǎn)變206)的中間狀態(tài)204對應(yīng)于可耦合到另一通用元件102的通用元件102。在一些特殊情況中,開始狀態(tài)202可未必具有對應(yīng)通用元件102。當(dāng)有限狀態(tài)機(jī)引擎100經(jīng)編程以實(shí)施FSM時(shí),通用元件102中的每一者可處于活動(dòng)或不活動(dòng)狀態(tài)中。不活動(dòng)通用元件102不對輸入接口 110處的數(shù)據(jù)流做出反應(yīng)。活動(dòng)通用元件102可對輸入接口 110處的數(shù)據(jù)流做出反應(yīng),且可在輸入數(shù)據(jù)流匹配通用元件102的設(shè)定時(shí)激活下游通用元件102。當(dāng)通用元件102對應(yīng)于最終狀態(tài)208時(shí),通用元件102可耦合到輸出端口 114以提供與外部裝置的匹配的指示,所述外部裝置在一些情況中可為另一有限狀態(tài)機(jī)引擎100。經(jīng)由編程接口 111加載到有限狀態(tài)機(jī)引擎100上的圖像可配置通用元件102及通用元件102之間的連接,以使得基于對輸入接口 110處的數(shù)據(jù)流的響應(yīng)而通過激活下游狀態(tài)來實(shí)施所要FSM。在一實(shí)例中,通用元件102保持活動(dòng)達(dá)單個(gè)數(shù)據(jù)循環(huán)(例如,單個(gè)字符、一組字符、單個(gè)時(shí)鐘循環(huán))且除非被上游通用元件102重新激活否則接著切換到不活動(dòng)??烧J(rèn)為最終狀態(tài)208存儲(chǔ)經(jīng)壓縮的過去事件歷史。舉例來說,激活最終狀態(tài)208所需要的一個(gè)或一個(gè)以上輸入數(shù)據(jù)序列可由所述最終狀態(tài)208的激活表示。在一實(shí)例中,最終狀態(tài)208所提供的輸出為二進(jìn)制的,也就是說,所述輸出指示是否已匹配對應(yīng)所關(guān)注序列。在FSM中最終狀態(tài)208對中間狀態(tài)204的比率可相當(dāng)小。換句話說,雖然在所述FSM中可存在高復(fù)雜度,但比較來說所述FSM的輸出可為小的。不管FSM引擎是實(shí)施單個(gè)經(jīng)組合(經(jīng)優(yōu)化)狀態(tài)機(jī)還是實(shí)施許多獨(dú)立狀態(tài)機(jī),均存在狀態(tài)向量的概念。狀態(tài)向量為在所實(shí)施的狀態(tài)機(jī)中的個(gè)別狀態(tài)與向量內(nèi)的個(gè)別數(shù)字(例如,位)位置之間具有一對一對應(yīng)性的一維向量。也就是說,狀態(tài)機(jī)中的每一狀態(tài)與狀態(tài)向量中的數(shù)字有關(guān)。在圖4的情況中,狀態(tài)向量為3個(gè)位寬(其中一個(gè)位指示狀態(tài)152、154及156中的每一者的狀態(tài))。在圖5的情況中,狀態(tài)向量為74個(gè)位寬。狀態(tài)機(jī)可為任意復(fù)雜的且因此理論上對機(jī)器的總大小不施加任何限制。因此,狀態(tài)向量可無限長。然而,為了在并行機(jī)中實(shí)施實(shí)際狀態(tài)機(jī),通常對狀態(tài)機(jī)的大小施加某一有限限制。不嚴(yán)格界定此限制且可基于用以實(shí)施狀態(tài)機(jī)的并行機(jī)的特性而確定此限制。圖6中展示另一 HFSM400。在圖6中所展示的HFSM400中,三個(gè)有限狀態(tài)機(jī)引擎402使用所有其相應(yīng)狀態(tài)向量數(shù)字的全部或一部分將關(guān)于其相應(yīng)狀態(tài)的信息提供到一個(gè)有限狀態(tài)機(jī)引擎404。在所展示的實(shí)例中,每一狀態(tài)機(jī)引擎(402、404)經(jīng)由其相應(yīng)編程接口(PROG)被編程。在其它實(shí)施例中,來自FSM引擎402中的每一者的數(shù)據(jù)用以編程FSM引擎404。在一些此種實(shí)施例中,F(xiàn)SM引擎404經(jīng)設(shè)計(jì)以根據(jù)從FSM引擎402接收的狀態(tài)信息進(jìn)行調(diào)適。圖7中展示較復(fù)雜的HFSM500。在圖7的HFSM500中,多個(gè)FSM引擎502、504、506、508連接在一起,其中FSM引擎502通過總線510將狀態(tài)信息提供(例如,饋送)到FSM引擎504,F(xiàn)SM引擎504通過總線512將狀態(tài)信息饋送到FSM引擎506,且FSM引擎506通過總線514將狀態(tài)信息饋送到FSM引擎508。多個(gè)FSM層級(jí)502到508的此連接允許層次的每一層級(jí)實(shí)施不同狀態(tài)機(jī)。在一些實(shí)例性HFSM中,層次的每一層級(jí)對不同類型的型式敏感。在這些實(shí)例性HFSM中,如在HFSM500中,層次層級(jí)的此分離允許HFSM實(shí)施低層級(jí)辨識(shí),使所述低層級(jí)辨識(shí)傳遞穿過層次的各個(gè)層級(jí)以實(shí)現(xiàn)較高層級(jí)辨識(shí)。在一個(gè)實(shí)例中,在HFSM500的結(jié)果總線516上提供結(jié)果,例如,特定型式(例如,短語)的識(shí)別。在其它實(shí)例中,所述結(jié)果為來自FSM引擎502、504、506及508中的一者或一者以上的狀態(tài)位的組合。如圖7中所展示,一種用于以層次方式連接個(gè)別FSM引擎的方法為將一個(gè)FSM引擎的輸出連接到層次中的下一較高層級(jí)FSM引擎的輸入。應(yīng)理解,可實(shí)施HFSM500,其中將來自一個(gè)層級(jí)的狀態(tài)信息提供(例如,前饋或反饋)到層次中的任一其它層級(jí)。舉例來說,可將來自FSM引擎502的狀態(tài)信息發(fā)送到FSM引擎506,而可將來自FSM引擎508的狀態(tài)信息反饋到FSM引擎502。一般來說,在無論何種被視為必需的配置中,均可將來自一個(gè)或一個(gè)以上FSM引擎的狀態(tài)信息提供到其它FSM引擎中的一者或一者以上(例如,全部)。圖7中所展示的實(shí)例對應(yīng)于書面語言的視覺識(shí)別。隨著處理進(jìn)展到層次的較高層級(jí),對數(shù)據(jù)流的積累的知識(shí)對應(yīng)地增長。在所展示的實(shí)施例中,每一層級(jí)處的FSM引擎(FSM引擎502、504、506及508)經(jīng)級(jí)聯(lián)以實(shí)現(xiàn)層次辨識(shí)能力。層次的每一連續(xù)層級(jí)可實(shí)施應(yīng)用于先前層級(jí)的輸出的新規(guī)則(型式簽名)。以此方式,可基于對非常基本的基元信息的檢測而識(shí)別高度詳細(xì)的對象。舉例來說,到層級(jí)I (例如,第一 FSM引擎502)的原始數(shù)據(jù)輸入流可包含圖像的像素信息(例如,不管給定位是黑色/白色或接通/關(guān)斷)。FSM引擎502可經(jīng)編程以辨識(shí)(例如,識(shí)別)所述位所形成的基元型式。在一個(gè)實(shí)例中,F(xiàn)SM引擎502經(jīng)配置以識(shí)別鄰近位的群組何時(shí)形成垂直線、水平線、弧等。這些型式中的每一者可由來自FSM引擎502的單獨(dú)輸出位(或信號(hào))識(shí)別。舉例來說,當(dāng)FSM引擎502辨識(shí)出至少3個(gè)位的垂直線時(shí),可在輸出字的第一位上將高信號(hào)(例如,邏輯I)發(fā)送到FSM引擎504。當(dāng)FSM引擎502識(shí)別出至少3個(gè)位的水平線時(shí),可在輸出字的第二位上將高信號(hào)發(fā)送到FSM引擎504。同時(shí)FSM引擎504可經(jīng)編程以識(shí)別由來自FSM引擎502的輸出510形成的型式。舉例來說,F(xiàn)SM引擎504可經(jīng)編程以識(shí)別FSM引擎502所識(shí)別的基元型式(線、弧等)的組合所形成的型式。舉例來說,F(xiàn)SM引擎504可經(jīng)編程以識(shí)別水平線與垂直線何時(shí)交叉從而形成字母“t”。如上文所提及,使用FSM引擎504所實(shí)施的HFSM500對來自FSM引擎502的輸出做出反應(yīng)。因此,通過識(shí)別來自FSM引擎502的輸出位中的型式來識(shí)別基元型式的組
入
口 ο接著將來自FSM引擎504的輸出512輸入到FSM引擎506中,F(xiàn)SM引擎506可從FSM引擎504所識(shí)別的字母的組合識(shí)別字。接著第四層級(jí)(FSM引擎508)可識(shí)別FSM引擎506所識(shí)別的字所形成的短語。因此,較高層級(jí)可經(jīng)編程以識(shí)別較低層級(jí)輸出中的型式。另外,較低層級(jí)可經(jīng)編程以識(shí)別構(gòu)成在較高層級(jí)中所識(shí)別的型式(反饋到較低層級(jí))的分量。對字母的視覺識(shí)別用作實(shí)例。然而,本文所述的層次方法及系統(tǒng)可應(yīng)用于其它數(shù)據(jù)。舉例來說,對對應(yīng)于聲音的數(shù)據(jù)的層次處理可從層級(jí)I處的音素的組合識(shí)別音節(jié)且從層級(jí)2處的音節(jié)的組合識(shí)別字。在其它實(shí)例中,層次處理可應(yīng)用于以層次方式在自身上構(gòu)建的機(jī)器數(shù)據(jù)。當(dāng)實(shí)施HPRP或HFSM(例如,HFSM500)時(shí),可能遇到的一個(gè)問題是輸入數(shù)據(jù)與輸出數(shù)據(jù)之間的不對稱關(guān)系。當(dāng)正實(shí)施的狀態(tài)機(jī)變得足夠大時(shí),此不對稱性加劇。對于所處理的每一輸入符號(hào)來說,F(xiàn)SM引擎的狀態(tài)向量可響應(yīng)于所述輸入符號(hào)而改變。在一個(gè)實(shí)施例中,每一 FSM包括(例如)多達(dá)2的16次冪(64K)個(gè)狀態(tài)。如果每一狀態(tài)在狀態(tài)向量中具有對應(yīng)數(shù)字,那么狀態(tài)向量將為64K個(gè)位長??赡茈y以在FSM引擎之間傳遞所述長度的向量。接下來將描述用以減小輸入數(shù)據(jù)的大小與輸出數(shù)據(jù)的大小之間的此不對稱的方法。在一個(gè)實(shí)施例中,在總線上于FSM引擎之間發(fā)送數(shù)據(jù)。N位寬的總線可在64Kb/N個(gè)循環(huán)中傳遞64Kb狀態(tài)向量。在其它實(shí)施例中,所述狀態(tài)向量經(jīng)壓縮以使得向量中僅響應(yīng)于輸入符號(hào)而改變的數(shù)字傳播到其它FSM引擎。舉例來說,每一總線循環(huán)可能包括狀態(tài)向量中的在先前符號(hào)循環(huán)中已改變的數(shù)字的位置。在此情況中,所述輸出可稱作差向量。在又一實(shí)施例中,每一 FSM引擎經(jīng)設(shè)計(jì)以僅將來自狀態(tài)向量的數(shù)字子集發(fā)送到其它FSM引擎。在一個(gè)此種實(shí)施例中,每一 FSM引擎經(jīng)編程以使得傳遞到其它FSM引擎的僅有狀態(tài)信息為最終狀態(tài)的狀態(tài)信息。在一般情況中,最終狀態(tài)的數(shù)目小于狀態(tài)的總數(shù)目。舉例來說,PRP32中最終狀態(tài)對總狀態(tài)的比率取決于在PRP中所實(shí)施的狀態(tài)機(jī)。舉例來說,比率可為高的(I 5)或相當(dāng)?shù)?I 10,000)。在其中最終狀態(tài)對總狀態(tài)的比率為1: 10且狀態(tài)向量為64Kb的實(shí)際實(shí)例中,此暗不輸出向量將為64Kb/10或6,554個(gè)位。在此實(shí)例中,PRP的每一輸入循環(huán)(8個(gè)位符號(hào))將產(chǎn)生6,554個(gè)位的對應(yīng)輸出向量。對于接下來的實(shí)例來說,將使用其中ASCII字符集為輸入(符號(hào))語言的實(shí)例。在此情況中,每一輸入符號(hào)由8位二進(jìn)制字表示。在替代實(shí)施例中,可使用其它符號(hào),例如,其中每一輸入符號(hào)為N位二進(jìn)制字。舉例來說,在一個(gè)實(shí)施例中,發(fā)送到HPRP30(例如,圖2中所描繪的HPRP30)中的第二層級(jí)PRP32的輸出向量可僅表示第一層級(jí)PRP32的最終狀態(tài)。在另一實(shí)例中,在HFSM500(例如,圖7中所描繪的HFSM500)中,F(xiàn)SM引擎504可產(chǎn)生表示其最終狀態(tài)的輸出向量并在輸出總線514上將所述輸出向量發(fā)送到FSM引擎506。在一個(gè)此種實(shí)例中,輸出總線514為8位寬總線。使用從先前實(shí)例所引用的8 6,554比率,提供(例如,傳送)輸出向量的6,554個(gè)位所需要的循環(huán)的數(shù)目將為6,554/8或820個(gè)循環(huán)。也就是說,層次的每一連續(xù)層級(jí)將需要820個(gè)輸入循環(huán)來處理來自先前層級(jí)的輸出字。此效應(yīng)線性地以紋波形式穿過所述層次,以使得每一連續(xù)狀態(tài)將需要820個(gè)輸入循環(huán)來解析其輸入字。在此情況中,在給定比率下,PRP的六層級(jí)層次將需要4,100(5X820)個(gè)輸入循環(huán)以允許輸入符號(hào)以紋波形式穿過直到在最高層級(jí)處產(chǎn)生結(jié)果為止。這些數(shù)目僅用作實(shí)例。如果最終狀態(tài)對總狀態(tài)的比率增加,那么紋波時(shí)間將增加。同樣,如果層次的層級(jí)的數(shù)目增加,那么紋波時(shí)間將隨著每一連續(xù)層級(jí)線性地增加?;谏衔乃褂玫膶?shí)例,對于HFSM或HPRP產(chǎn)生結(jié)果來說,數(shù)個(gè)數(shù)量級(jí)的延遲(相對于輸入循環(huán))是可能的。此類型的延遲在實(shí)時(shí)應(yīng)用中可為不可接受的。如上所述,可通過(例如)增加總線的大小來減少傳送狀態(tài)信息所需要的循環(huán)的數(shù)目。還可降低總線循環(huán)時(shí)間以減少傳送狀態(tài)信息所需要的時(shí)間。此外,如上所述,可發(fā)送僅識(shí)別狀態(tài)向量的由于最后的符號(hào)而改變的數(shù)字的差向量。也可使用其它無損壓縮機(jī)制。接下來論述用以減小此延遲的其它方法,例如,實(shí)施輸入與輸出之間的1:1關(guān)
系O一種用以在HFSM(例如,HFSM500)中獲得輸入與輸出之間的1:1關(guān)系的方式是使輸入總線518與輸出總線510在大小(寬度)上相等。輸出總線510的寬度可由HFSM500自身確定。舉例來說,輸出總線510的大小可由狀態(tài)機(jī)引擎502中的最終狀態(tài)的數(shù)目確定。一般來說,F(xiàn)SM引擎經(jīng)編程以同時(shí)辨識(shí)許多不同型式。這些型式中的每一者可實(shí)施為個(gè)別狀態(tài)機(jī)。以此方式,F(xiàn)SM引擎可實(shí)施一組狀態(tài)機(jī),其全部并行運(yùn)行。圖8以圖解方式展示單個(gè)FSM引擎內(nèi)全部并行運(yùn)行的狀態(tài)機(jī)532的群組530的實(shí)例。在圖8中,展示8個(gè)狀態(tài)機(jī)532。實(shí)際上,F(xiàn)SM引擎可實(shí)施成千上萬個(gè)個(gè)別狀態(tài)機(jī)。步驟1:狀態(tài)機(jī)輸出的聚合(最終狀態(tài))如圖9中所展示,每一個(gè)別狀態(tài)機(jī)532可具有一個(gè)或一個(gè)以上最終狀態(tài)208。雖然可存在數(shù)個(gè)最終狀態(tài)208,但特定狀態(tài)機(jī)532的最終狀態(tài)中的任一者具有相同或相關(guān)含義。換句話說,如果到達(dá)狀態(tài)機(jī)532的最終狀態(tài)208中的任一者,那么認(rèn)為所述狀態(tài)機(jī)具有匹配。實(shí)際上,此意指可(例如)通過使用“或”門540將對應(yīng)于單個(gè)狀態(tài)機(jī)532的最終狀態(tài)208的可編程元件的輸出耦合在一起而聚合(例如,“或”運(yùn)算在一起)所述最終狀態(tài)以提供如圖9中所展示的單個(gè)輸出542。在圖9中所展示的實(shí)例中,狀態(tài)機(jī)532將三個(gè)最終狀態(tài)208 “或”運(yùn)算在一起。如可理解,可使用其它邏輯來聚合最終狀態(tài)208。在一個(gè)實(shí)例中,一旦每一狀態(tài)機(jī)532的最終狀態(tài)208已經(jīng)聚合(例如,經(jīng)“或”運(yùn)算),便將結(jié)果分組(例如,收集)成N個(gè)狀態(tài)機(jī)532的邏輯群組,其中N等于相應(yīng)輸入符號(hào)語言中的數(shù)字的數(shù)目。在其中第一層級(jí)的輸入符號(hào)語言包含8位輸入字的實(shí)例中,8個(gè)個(gè)別狀態(tài)機(jī)輸出542可經(jīng)聚合以提供輸入符號(hào)546中的提供到層次的下一層級(jí)的一者。在圖7中,舉例來說,僅層次的第一層級(jí)接收與標(biāo)準(zhǔn)語言(ASCII或其它)相關(guān)的輸入符號(hào)。則在所述實(shí)例中,F(xiàn)SM引擎502可產(chǎn)生在輸出總線510上提供到FSM引擎504的8位輸出向量。層次的后續(xù)層級(jí)接收具有由先前層級(jí)確定的含義的輸入符號(hào)。一旦狀態(tài)機(jī)已經(jīng)分組(例如,8個(gè)一組的若干個(gè)組),正規(guī)化輸入及輸出向量的第一層級(jí)便已完成。使用來自本發(fā)明中所使用的實(shí)例的數(shù)目,可以103個(gè)8位字來表示820個(gè)最終狀態(tài)。這些8位字中的每一者編碼8個(gè)個(gè)別狀態(tài)機(jī)532的最終狀態(tài)的狀況。記住在此8位輸出向量中所編碼的最終狀態(tài)的總數(shù)目可遠(yuǎn)大于8。這是因?yàn)閷ν粻顟B(tài)機(jī)532中的最終狀態(tài)208所執(zhí)行的“或”運(yùn)算函數(shù)可將8個(gè)以上狀態(tài)“或”運(yùn)算在一起。在一個(gè)實(shí)施例中,每一 FSM引擎包括N位寬的輸入端口及N位寬的輸出端口。在一個(gè)實(shí)施例中,通過N位總線將來自每一層級(jí)的狀態(tài)信息(例如,以輸出向量的形式,例如,狀態(tài)向量的全部或一部分,或差向量)分布到下一 FSM引擎。舉例來說,F(xiàn)SM引擎502使用N位輸出總線510將狀態(tài)信息分布到FSM引擎504。在一個(gè)實(shí)施例中,將同一 N位輸出向量提供(例如,分布)到FSM引擎504中的每一狀態(tài)機(jī)。在另一實(shí)施例中,將FSM引擎504中的可編程元件分組成若干群組(例如,塊)且FSM引擎502的輸出端口將N位字序列寫入到FSM引擎504且以預(yù)定義方式(例如,依序地)將字序列分布到FSM引擎504中的狀態(tài)機(jī)元件塊。此方法允許將額外狀態(tài)信息分布到FSM引擎504,但需要額外總線循環(huán)來傳送完整的狀態(tài)信息。在一個(gè)實(shí)施例中,一個(gè)可編程元件群組的狀態(tài)信息是通過發(fā)送包括另一 FSM引擎的指示的地址信息及所述FSM引擎內(nèi)的可編程元件群組的地址而發(fā)送到所述FSM引擎中的所述群組??稍?例如)圖7中的總線510上分布所述信息。步驟2 PRP上的輸入總線的數(shù)目的擴(kuò)充FSMl2或PRP32的一個(gè)實(shí)施方案具有將輸入符號(hào)廣播到在PRP中所實(shí)施的所有狀態(tài)機(jī)532的單個(gè)流輸入。然而,可擴(kuò)展FSM12及PRP32的定義以實(shí)施一個(gè)以上流輸入(分別為16及36)。在先前所引用的實(shí)例中,獨(dú)立流輸入的總數(shù)目將等于103。舉例來說,為了完整地實(shí)施,HPRP則將需要103個(gè)8位輸入或用于每一 PRP32的820個(gè)位的輸入總線。在一個(gè)實(shí)施例中,在可編程元件(例如,狀態(tài)機(jī)元件(SME))陣列560上實(shí)施FSM12及PRP32。在一個(gè)實(shí)例中,每一 SME在同質(zhì)二維陣列560中??蓪⒋岁嚵?60細(xì)分成若干個(gè)別區(qū),其中每一區(qū)具有其自己的專用流輸入(分別為16及36)。圖11展示SME元件的此二維陣列560。舉例來說,將圖11細(xì)分成SME群組562的陣列560,其中每一 SME群組562可對應(yīng)于有限狀態(tài)機(jī)引擎800中的塊802。整個(gè)陣列560可包括(例如)16X 16個(gè)SME群組(總共256個(gè)群組),其中每一群組562包括128個(gè)含兩個(gè)SME的群組(GOT)(例如,其中每一群組562包括16個(gè)GOT行,例如,圖16中所圖解說明的行806)。在一些實(shí)施例中,每一 GOT行含有8個(gè)GOT、一(若干)額外可編程兀件(例如,布爾邏輯或計(jì)數(shù)器)且可將兩個(gè)輸出提供到輸出總線18、38。如果跨越FSM12及PRP32使用所有可用輸出,那么此陣列可具有(例如)多達(dá)8192個(gè)位以驅(qū)動(dòng)到下一層級(jí)PRP32。當(dāng)構(gòu)造例如圖7中所展示的HFSM500時(shí),可將兩個(gè)不同半導(dǎo)體裝置(例如,F(xiàn)SM引擎502及504)中的二維SME群組562陣列連接在一起。存在將兩個(gè)半導(dǎo)體裝置連接在一起的各種手段。舉例來說,當(dāng)I/O計(jì)數(shù)變得足夠高時(shí),可利用裸片間互連件。在一個(gè)實(shí)例性實(shí)施方案中,如圖12中所展示,HPRP570中的256個(gè)SME群組562中的每一者可具有裸片的底部上的8位接口(例如,輸入總線36、42)及所述裸片的頂部上的8位接口(例如,輸出總線38、40)。當(dāng)將這些接口置于預(yù)定義位置中時(shí),一個(gè)PRP層級(jí)(PRPl) 582可直接堆疊于較低層級(jí)PRP (PRPO) 580的頂部上,其中輸入及輸出接口自然地對準(zhǔn)且使用例如互連件574的互連件(例如,穿硅通孔)連接在一起。此對準(zhǔn)有效地形成SME列(由輸入路徑572、輸出路徑578以及互連件574及576界定)的概念,其中所述列的每一層級(jí)表示含在同一裸片上的SME群組。繼續(xù)使用先前所論述的實(shí)例性數(shù)目,在每一 PRP層級(jí)(580、582及584)上,SME群組562可由在先前層級(jí)上所實(shí)施的多達(dá)8個(gè)狀態(tài)機(jī)驅(qū)動(dòng)。來自先前層級(jí)的8個(gè)狀態(tài)機(jī)可為任意復(fù)雜的,直到SME群組562所施加的限制。圖12展示三層級(jí)HPRP的實(shí)例(邊緣視圖),其中突出顯示SME列中的一者。在每一層級(jí)中,SME的分組將來自所述層級(jí)的狀態(tài)信息(例如,經(jīng)編碼的8位字)提供到下一較高層級(jí)。總的來說,當(dāng)以此方式配置時(shí),HPRP可以PRP層次的每一層級(jí)僅一個(gè)輸入時(shí)鐘循環(huán)的延遲提供實(shí)質(zhì)上瞬時(shí)結(jié)果。因輸入與輸出字的不對稱性而引起的問題得以解決且整個(gè)層次可與流輸入572同步操作。在某些實(shí)施例中,將來自一個(gè)FSM引擎12的狀態(tài)信息發(fā)送到一個(gè)以上其它FSM弓丨擎12。圖6中展示此實(shí)施例。參考圖12中所圖解說明的HPRP570描述此實(shí)施例,舉例來說,可將來自PRP580的狀態(tài)信息發(fā)送到PRP584。在一個(gè)此種實(shí)施例中,互連件576及574形成將狀態(tài)信息傳輸?shù)搅兄械膲K中的任一者的總線。舉例來說,互連件574及576可包含一個(gè)或一個(gè)以上穿通孔互連件,且可提供于每一列中以用于將狀態(tài)信息傳遞到非鄰近PRP。在一個(gè)此種實(shí)施例中,堆疊中的每一 PRP連接到所述穿通孔并從所述穿通孔接收信息。在另一實(shí)施例中,在制造過程期間根據(jù)需要將PRP的輸入選擇性地連接到穿通孔。在其它實(shí)施例中,來自一個(gè)SME群組的狀態(tài)信息分布到同一 PRP32中的鄰近塊,且通過那些塊分布到其它PRP32(例如,在同一塊列中)。在一個(gè)實(shí)施例中,來自一個(gè)或一個(gè)以上PRP32的狀態(tài)信息或從所述狀態(tài)信息導(dǎo)出的信息用以重新編程層次中的其它PRP32。圖13圖解說明四層級(jí)層次的實(shí)例,其使用反饋來重新編程所述層次的部分。一般來說,可基于來自較高或較低層級(jí)有限狀態(tài)機(jī)引擎的輸出或基于其自己的輸出而重新編程給定PRP32 (例如,第一有限狀態(tài)機(jī)引擎602)。因此,第一有限狀態(tài)機(jī)引擎602可改變以根據(jù)在運(yùn)行時(shí)間期間改變的條件進(jìn)行調(diào)適。在一實(shí)例中,反饋可供較低層級(jí)基于較高層級(jí)進(jìn)行學(xué)習(xí)(被重新編程)。使用有限狀態(tài)機(jī)引擎602作為實(shí)例,反饋可在編程接口 602B處接收且可呈用于有限狀態(tài)機(jī)引擎602的新的或經(jīng)更新程序的形式。在一實(shí)例中,所述經(jīng)更新程序可重新編程一些或所有有限狀態(tài)機(jī)引擎602。借助四個(gè)有限狀態(tài)機(jī)引擎602、604、606、608來實(shí)施圖13中的四層級(jí)層次600,每一并行機(jī)具有數(shù)據(jù)輸入端口 602A、604A、606A、608A、編程接口 602B、604B、606B、608B及輸出端口 602C、604C、606C、608C。第一有限狀態(tài)機(jī)引擎602實(shí)施層次600的第一層級(jí)且將輸出提供到實(shí)施層次600的第二層級(jí)的第二有限狀態(tài)機(jī)引擎604。第三有限狀態(tài)機(jī)引擎606及第四有限狀態(tài)機(jī)引擎608同樣實(shí)施層次600的第三層級(jí)及第四層級(jí)。在一實(shí)例中,基于層次600對第一有限狀態(tài)機(jī)引擎602所接收的輸入數(shù)據(jù)的分析而將來自第四有限狀態(tài)機(jī)引擎608的輸出作為層次600的輸出發(fā)送到外部裝置。因此,來自第四有限狀態(tài)機(jī)引擎608的輸出對應(yīng)于層次600的集合輸出。在其它實(shí)例中,來自有限狀態(tài)機(jī)引擎中的其它者602、604或606的輸出可對應(yīng)于層次600的集合輸出。可將來自第二有限狀態(tài)機(jī)引擎604、第三有限狀態(tài)機(jī)引擎606及第四有限狀態(tài)機(jī)引擎608的輸出各自反饋到下面層級(jí)處的有限狀態(tài)機(jī)引擎602、604、606的編程接口 602B、604B、606B。舉例來說,將來自第四有限狀態(tài)機(jī)引擎608的輸出反饋到第三有限狀態(tài)機(jī)引擎606的編程接口 606B中。因此可基于來自第四有限狀態(tài)機(jī)弓I擎608的輸出而重新編程第三有限狀態(tài)機(jī)引擎606。因此,第三有限狀態(tài)機(jī)引擎608可在運(yùn)行時(shí)間期間修改其程序。可分別基于來自第二有限狀態(tài)機(jī)引擎604及第三有限狀態(tài)機(jī)引擎606的輸出而在運(yùn)行時(shí)間期間類似地重新編程第一有限狀態(tài)機(jī)引擎602及第二有限狀態(tài)機(jī)引擎604。在一實(shí)例中,來自來自有限狀態(tài)機(jī)引擎604、606、608的輸出的反饋經(jīng)處理(例如,分析及編譯)以形成用于重新編程有限狀態(tài)機(jī)引擎602、604、606的程序。舉例來說,來自有限狀態(tài)機(jī)引擎608的輸出可在被發(fā)送到編程接口 606B之前由處理裝置614分析并編譯。處理裝置614可基于來自有限狀態(tài)機(jī)引擎608的輸出而產(chǎn)生用于有限狀態(tài)機(jī)引擎606的經(jīng)更新程序。處理裝置614可分析所述輸出并編譯用于第三有限狀態(tài)機(jī)引擎606的經(jīng)更新程序。接著可通過編程接口 606B將所述經(jīng)更新程序加載到第三有限狀態(tài)機(jī)引擎606上以重新編程第三有限狀態(tài)機(jī)引擎606。在一實(shí)例中,所述經(jīng)更新程序可僅含有從當(dāng)前程序的部分改變。因此,在一實(shí)例中,經(jīng)更新程序僅替換有限狀態(tài)機(jī)引擎602、604、606、608上的當(dāng)前程序的一部分。在另一實(shí)例中,經(jīng)更新程序替換當(dāng)前程序的全部或一大部分。同樣,處理裝置610,612可基于來自第二有限狀態(tài)機(jī)引擎604及第三有限狀態(tài)機(jī)引擎606的輸出而以類似方式分析并編譯反饋。可借助一個(gè)或一個(gè)以上額外有限狀態(tài)機(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中給定有限狀態(tài)機(jī)引擎處的反饋是從直接在所述給定有限狀態(tài)機(jī)引擎上面的層級(jí)接收的,但反饋可從任一層級(jí)有限狀態(tài)機(jī)引擎到較高、較低或同一層級(jí)處的另一有限狀態(tài)機(jī)引擎。舉例來說,反饋可在有限狀態(tài)機(jī)引擎的編程輸入處從所述同一有限狀態(tài)機(jī)引擎的輸出或從相同、較高或較低層級(jí)處的另一有限狀態(tài)機(jī)引擎的輸出接收。另外,有限狀態(tài)機(jī)引擎可從多個(gè)不同有限狀態(tài)機(jī)引擎接收反饋?;诜答亴τ邢逘顟B(tài)機(jī)引擎的重新編程可與對輸入數(shù)據(jù)中的型式識(shí)別在時(shí)間上斷開(例如,并不隨著原始數(shù)據(jù)的處理實(shí)時(shí)地)。沿層次向下往回發(fā)送信息以影響較低層級(jí)的重新編程的目的是可使得較低層級(jí)在辨別所關(guān)注型式時(shí)可變得更高效。在一些實(shí)例中,認(rèn)識(shí)到將信息傳送到層次的較高層級(jí)花費(fèi)時(shí)間,因此在可能時(shí)避免將信息發(fā)送到較高層級(jí)的過程。在一些實(shí)例中,較高層級(jí)可基本上用以解析對于系統(tǒng)來說為新的型式的識(shí)別。此可類似于在生物大腦的大腦新皮質(zhì)中發(fā)生的所使用過程。在一實(shí)例中,如果可在較低層級(jí)處完全解析一型式,那么應(yīng)這樣做。反饋機(jī)制為將“學(xué)習(xí)”傳送到層次的較低層級(jí)的一種方法。沿層次向下回推信息的此過程將幫助保留層次的上部層級(jí)以用于處理新的或不熟悉的型式。此外,可通過減小穿過層次的各個(gè)層級(jí)的數(shù)據(jù)傳送量來加速整個(gè)辨識(shí)過程。反饋可使層次的較低層級(jí)對輸入處的數(shù)據(jù)流更加敏銳地敏感。此“向下推”信息的結(jié)果是可在層次的較低層級(jí)處做出決策且所述決策可如此快地完成。因此,在一實(shí)例中,來自較低層級(jí)有限狀態(tài)機(jī)引擎(例如,第一有限狀態(tài)機(jī)引擎602)的輸出可對應(yīng)于從層次600到另一裝置的集合輸出連同來自第四有限狀態(tài)機(jī)引擎608的輸出。外部裝置可(例如)監(jiān)視來自這些有限狀態(tài)機(jī)引擎602、608中的每一者的輸出以確定層次600何時(shí)已識(shí)別出型式。在一實(shí)例中,反饋信息可包括對應(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)適的分析方法來編程有限狀態(tài)機(jī)引擎。識(shí)別信息可包括(例如)輸入數(shù)據(jù)的語言。有限狀態(tài)機(jī)引擎可首先經(jīng)編程以確定輸入數(shù)據(jù)的語言且一旦已識(shí)別對應(yīng)于輸入的語言便可在運(yùn)行時(shí)間期間對所述有限狀態(tài)機(jī)引擎進(jìn)行調(diào)適(例如,重新編程)。用于有限狀態(tài)機(jī)引擎的經(jīng)調(diào)適分析方法可更特定地對應(yīng)于用于所識(shí)別語言的分析方法。最后,有限狀態(tài)機(jī)引擎可使用經(jīng)調(diào)適分析方法來分析未來的輸入數(shù)據(jù)。反饋過程可反復(fù)以使得可在輸入數(shù)據(jù)中找到額外識(shí)別信息以允許進(jìn)一步調(diào)適分析方法。用于加載到有限狀態(tài)機(jī)引擎上的程序(本文中還稱作“圖像”)可由下文關(guān)于圖19所論述的編譯器產(chǎn)生。一般來說,編譯可為計(jì)算密集的過程,且可能在第一次編譯型式簽名的大數(shù)據(jù)庫時(shí)最明顯。在運(yùn)行時(shí)間操作中,較高層級(jí)的有限狀態(tài)機(jī)引擎可正在以用于較低層級(jí)有限狀態(tài)機(jī)引擎的增量程序更新的形式將反饋提供到較低層級(jí)。因此,到較低層級(jí)有限狀態(tài)機(jī)引擎的反饋信息可為對原始程序的編譯起來較不計(jì)算密集的小得多的增量更新。圖14圖解說明借助四個(gè)有限狀態(tài)機(jī)引擎702、704、706、708所實(shí)施的四層級(jí)層次700的另一實(shí)例。此處,第二有限狀態(tài)機(jī)引擎704、第三有限狀態(tài)機(jī)引擎706及第四層級(jí)有限狀態(tài)機(jī)引擎708從較低層級(jí)的輸出以及原始數(shù)據(jù)流接收輸入數(shù)據(jù)。因此,層級(jí)2、3及4可從來自較低層級(jí)與原始數(shù)據(jù)的型式的組合識(shí)別型式。如從圖13及14可見,有限狀態(tài)機(jī)引擎可以幾乎任一方式級(jí)聯(lián),其中可將到層次的原始數(shù)據(jù)輸入以及來自有限狀態(tài)機(jī)引擎的輸出發(fā)送到任一其它有限狀態(tài)機(jī)引擎,包括其自身。此外,可將來自給定有限狀態(tài)機(jī)引擎的輸出作為輸入數(shù)據(jù)及/或作為反饋發(fā)送到另一有限狀態(tài)機(jī)引擎以用于更新用于有限狀態(tài)機(jī)引擎的程序。如上所述,由于有限狀態(tài)機(jī)引擎處理輸入數(shù)據(jù)流的一個(gè)位(或字)的時(shí)間,串行地級(jí)聯(lián)有限狀態(tài)機(jī)引擎可增加通過所有有限狀態(tài)機(jī)引擎完全處理所述輸入數(shù)據(jù)流的時(shí)間。層次的最低層級(jí)通常將接收最低(最細(xì)微的)層級(jí)的輸入。因此,應(yīng)預(yù)期較低層級(jí)比高層級(jí)的輸出更活躍。也就是說,層次中的每一連續(xù)層級(jí)可匯編較高層級(jí)對象。在一實(shí)例中,有限狀態(tài)機(jī)引擎具有限制可多快地將輸入數(shù)據(jù)饋送到有限狀態(tài)機(jī)引擎的最大輸入速率。可將此輸入速率視為單個(gè)數(shù)據(jù)循環(huán)。在每一連續(xù)數(shù)據(jù)循環(huán)上,有限狀態(tài)機(jī)引擎具有激活許多最終狀態(tài)的可能性。此可致使有限狀態(tài)機(jī)引擎(尤其在層次的最低層級(jí)處)產(chǎn)生顯著量的輸出(匹配)數(shù)據(jù)。舉例來說,如果將輸入作為字節(jié)流提供到最低層級(jí)有限狀態(tài)機(jī)引擎,那么在任一給定數(shù)據(jù)循環(huán)上,有限狀態(tài)機(jī)弓I擎可產(chǎn)生多個(gè)字節(jié)的狀態(tài)信息。如果一個(gè)字節(jié)的信息可產(chǎn)生多個(gè)字節(jié)的狀態(tài)信息,那么有限狀態(tài)機(jī)引擎的整個(gè)層次應(yīng)同步以使得信息沿層次向上傳遞。然而,反饋無需同步,在較低層級(jí)處越快地接收反饋,所述較低層級(jí)便可越快地調(diào)適且分析越高效。作為一實(shí)例,層次(借助單個(gè)有限狀態(tài)機(jī)引擎實(shí)施)的每一層級(jí)的最大大小輸出可等于1024個(gè)字節(jié)且層次的深度可等于4個(gè)層級(jí)。用于有限狀態(tài)機(jī)引擎的輸入數(shù)據(jù)流數(shù)據(jù)速率可等于128MB/秒。在這些條件下,可在7. 63微秒中橫越層次的每一層級(jí)。在四層級(jí)層次的情況下,有限狀態(tài)機(jī)引擎的整個(gè)堆疊的總穩(wěn)定時(shí)間將為7. 63微秒的4倍或30. 5微秒。在30. 5微秒的穩(wěn)定時(shí)間的情況下,暗示輸入數(shù)據(jù)頻率應(yīng)限于32KB/S。值得注意地,此高度取決于有限狀態(tài)機(jī)引擎的配置。有限狀態(tài)機(jī)引擎可為可配置的以對輸入數(shù)據(jù)速率對狀態(tài)機(jī)大小進(jìn)行折衷。另外,如果對產(chǎn)生加載于有限狀態(tài)機(jī)引擎上的個(gè)別圖像的編譯器做出對應(yīng)修改,那么可調(diào)整到所述有限狀態(tài)機(jī)引擎的輸入字大小。在一實(shí)例中,可在具有馮·諾伊曼架構(gòu)的機(jī)器上以軟件來實(shí)施用以實(shí)施參考圖1到14所述的一個(gè)或一個(gè)以上FSM的方法。因此,軟件指令可致使處理器對原始數(shù)據(jù)流實(shí)施第一層級(jí)分析FSM。來自所述第一層級(jí)FSM的輸出接著可由所述處理器根據(jù)第二層級(jí)FSM來處理,等等。此外,上文所論述的反饋循環(huán)可由分析來自所述FSM的層級(jí)的輸出并使用所述輸出來產(chǎn)生用于所述層級(jí)中的一者或一者以上的新FSM的處理器實(shí)施。圖15到18圖解說明在本文中稱作“FSM引擎800”的并行機(jī)的實(shí)例。在一實(shí)例中,F(xiàn)SM引擎800包含有限狀態(tài)機(jī)的硬件實(shí)施方案。因此,F(xiàn)SM引擎800實(shí)施對應(yīng)于FSM中的多個(gè)狀態(tài)的多個(gè)可選擇性耦合的硬件元件(例如,可編程元件)。類似于FSM中的狀態(tài),硬件元件可分析輸入流并基于所述輸入流而激活下游硬件元件。FSM引擎800包括多個(gè)可編程元件,包括通用元件及專用元件。所述通用元件可經(jīng)編程以實(shí)施許多不同功能。這些通用元件包括以層次方式組織成行806 (圖16及17中所展示)及塊802 (圖15及16中所展示)的SME804、805(圖18中所展示)。為了在以層次方式組織的SME804、805之間路由信號(hào),使用可編程開關(guān)的層次,其包括塊間開關(guān)803 (圖15及16中所展示)、塊內(nèi)開關(guān)808(圖9及10中所展示)及行內(nèi)開關(guān)812(圖17中所展示)。SME804、805可對應(yīng)于FSM引擎800所實(shí)施的FSM的狀態(tài)。可通過使用下文所述的可編程開關(guān)將SME804、805耦合在一起。因此,可通過將SME804、805編程為對應(yīng)于狀態(tài)的功能且通過選擇性地將SME804、805耦合在一起以對應(yīng)于FSM中的狀態(tài)之間的轉(zhuǎn)變而在FSM引擎800上實(shí)施FSM。圖15圖解說明實(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è)定)SME804、805的狀態(tài)。也就是說,所述圖像可將SME804、805配置為以某一方式對輸入塊809處的給定輸入做出反應(yīng)。舉例來說,SME804可經(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ǔ)于對應(yīng)于編程接口 811的寄存器中的圖像的位加載于SME804、805上。雖然圖15圖解說明塊802、輸入塊809、輸出塊813與塊間開關(guān)803之間的某一數(shù)目個(gè)導(dǎo)體(例如,導(dǎo)線、跡線),但應(yīng)理解在其它實(shí)例中可使用更少或更多導(dǎo)體。圖16圖解說明塊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包括組織成元件對(本文中稱作兩個(gè)一群組(GOT) 810)的多個(gè)SME804、805。在一實(shí)例中,塊802包含十六(16)個(gè)行806。圖17圖解說明行806的實(shí)例。G0T810可通過可編程行內(nèi)開關(guān)812選擇性地耦合到行806內(nèi)的其它G0T810及任何其它元件824。G0T810還可借助塊內(nèi)開關(guān)808耦合到其它行806中的其它G0T810,或借助塊間開關(guān)803耦合到其它塊802中的其它G0T810。在一實(shí)例中,G0T810具有第一輸入814及第二輸入816以及輸出818。第一輸入814耦合到G0T810的第一 SME804且第二輸入816耦合到G0T810的第二 SME805。在一實(shí)例中,行806包括第一多個(gè)行互連導(dǎo)體820及第二多個(gè)行互連導(dǎo)體822。在一實(shí)例中,G0T810的輸入814、816可耦合到一個(gè)或一個(gè)以上行互連導(dǎo)體820、822,且輸出818可耦合到一個(gè)行互連導(dǎo)體820、822。在一實(shí)例中,第一多個(gè)行互連導(dǎo)體820可耦合到行806內(nèi)的每一 G0T810的每一 SME804。第二多個(gè)行互連導(dǎo)體822可耦合到行806內(nèi)的每一 G0T810的一個(gè)SME804,但不可耦合到G0T804的另一 SME805。在一實(shí)例中,第二多個(gè)行互連導(dǎo)體822的第一半可耦合到行806內(nèi)的SME804的第一半(來自每一 G0T810的一個(gè)SME804)且第二多個(gè)行互連導(dǎo)體822的第二半可耦合到行806內(nèi)的SME805的第二半(來自每一 G0T810的另一 SME804)。第二多個(gè)行互連導(dǎo)體822與SME804、805之間的有限連接性在本文中稱作“奇偶”。在一實(shí)例中,行806還可包括專用元件824,例如計(jì)數(shù)器、可編程布爾邏輯元件、現(xiàn)場可編程門陣列(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)寄存器加載初始值。對于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的編程信息。圖18圖解說明G0T810的實(shí)例。G0T810包括具有輸入814、816且使其輸出826、828耦合到“或”門830及3對I多路復(fù)用器842的第一 SME804及第二 SME805。3對I多路復(fù)用器842可經(jīng)設(shè)定以將G0T810的輸出818耦合到第一 SME804、第二 SME805或“或”門830。“或”門830可用以將輸出826、828兩者耦合在一起以形成G0T810的共用輸出818。在一實(shí)例中,如上文所論述,第一 SME804及第二 SME805展現(xiàn)出奇偶,其中第一 SME804的輸入814可耦合到行互連導(dǎo)體822中的一些行互連導(dǎo)體且第二 SME805的輸入816可耦合到其它行互連導(dǎo)體822。在一實(shí)例中,可通過設(shè)定開關(guān)840中的任一者或兩者而使G0T810內(nèi)的兩個(gè)SME804、805級(jí)聯(lián)及/或循環(huán)回到其自身??赏ㄟ^將SME804、805的輸出826、828耦合到其它SME804、805的輸入814、816而使SME804、805級(jí)聯(lián)??赏ㄟ^將輸出826、828耦合到其自己的輸入814、816而使SME804、805循環(huán)回到其自身。因此,第一 SME804的輸出826可不耦合到第一 SME804的輸入814及第二 SME805的輸入816中的任一者、耦合到其中的一者或耦合到其中的兩者。在一實(shí)例中,狀態(tài)機(jī)元件804、805包含并行耦合到檢測線834的多個(gè)存儲(chǔ)器單元832,例如通常用于動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)中的那些存儲(chǔ)器單元。一個(gè)此種存儲(chǔ)器單元832包含可設(shè)定為一數(shù)據(jù)狀態(tài)(例如對應(yīng)于高值或低值(例如,I或O)的數(shù)據(jù)狀態(tài))的存儲(chǔ)器單元。存儲(chǔ)器單元832的輸出耦合到檢測線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)作為輸出提供到檢測線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ù)對應(yīng)于存儲(chǔ)器單元832時(shí),存儲(chǔ)器單元832將高信號(hào)輸出到檢測線834。當(dāng)數(shù)據(jù)流線836上的數(shù)據(jù)對應(yīng)于存儲(chǔ)器單元832且存儲(chǔ)器單元832設(shè)定為低值時(shí),存儲(chǔ)器單元832將低信號(hào)輸出到檢測線834。檢測線834上來自存儲(chǔ)器單元832的輸出由檢測電路838感測。在一實(shí)例中,輸入線814、816上的信號(hào)將相應(yīng)檢測電路838設(shè)定為活動(dòng)或不活動(dòng)狀態(tài)。當(dāng)設(shè)定為不活動(dòng)狀態(tài)時(shí),不管相應(yīng)檢測線834上的信號(hào)如何,檢測電路838均在相應(yīng)輸出826、828上輸出低信號(hào)。當(dāng)設(shè)定為活動(dòng)狀態(tài)時(shí),檢測電路838在從相應(yīng)SME804、805的存儲(chǔ)器單元834中的一者檢測到高信號(hào)時(shí)在相應(yīng)輸出線826、828上輸出高信號(hào)。當(dāng)處于活動(dòng)狀態(tài)中時(shí),檢測電路838在來自相應(yīng)SME804、805的所有存儲(chǔ)器單元834的信號(hào)為低時(shí)在相應(yīng)輸出線826、828上輸出低信號(hào)。在一實(shí)例中,SME804、805包括256個(gè)存儲(chǔ)器單元832且每一存儲(chǔ)器單元832耦合到不同數(shù)據(jù)流線836。因此,SME804、805可經(jīng)編程以在數(shù)據(jù)流線836中的選定一者或一者以上在其上具有高信號(hào)時(shí)輸出高信號(hào)。舉例來說,SME804可將第一存儲(chǔ)器單元832(例如,位O)設(shè)定為高且將所有其它存儲(chǔ)器單元832 (例如,位I到255)設(shè)定為低。當(dāng)相應(yīng)檢測電路838處于活動(dòng)狀態(tài)中時(shí),SME804在對應(yīng)于位O的數(shù)據(jù)流線836在其上具有高信號(hào)時(shí)在輸出826上輸出高信號(hào)。在其它實(shí)例中,SME804可經(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中來編程SME804。在一實(shí)例中,所述編譯器所創(chuàng)建的圖像包括高與低(例如,I與O)位的二進(jìn)制圖像。所述圖像可編程FSM引擎800以通過級(jí)聯(lián)SME804、805而作為FSM操作。舉例來說,可通過將檢測電路838設(shè)定為活動(dòng)狀態(tài)而將第一 SME804設(shè)定為活動(dòng)狀態(tài)。第一 SME804可經(jīng)設(shè)定以在對應(yīng)于位O的數(shù)據(jù)流線836在其上具有高信號(hào)時(shí)輸出高信號(hào)。第二 SME805最初可設(shè)定為不活動(dòng)狀態(tài),但可經(jīng)設(shè)定以在活動(dòng)時(shí)在對應(yīng)于位I的數(shù)據(jù)流線836在其上具有高信號(hào)時(shí)輸出高信號(hào)。可通過設(shè)定第一 SME804的輸出826以耦合到第二 SME805的輸入816來級(jí)聯(lián)第一 SME804與第二 SME805。因此,當(dāng)在對應(yīng)于位O的數(shù)據(jù)流線836上感測到高信號(hào)時(shí),第一 SME804在輸出826上輸出高信號(hào)且將第二 SME805的檢測電路838設(shè)定為活動(dòng)狀態(tài)。當(dāng)在對應(yīng)于位I的數(shù)據(jù)流線836上感測到高信號(hào)時(shí),第
二SME805在輸出828上輸出高信號(hào)以激活另一 SME504、SME805或供從FSM引擎800輸出。圖19圖解說明用于編譯器將源代碼轉(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í)可致使處理器對所述處理器可存取的源代碼執(zhí)行框1002、1004、1006、1008、1010、1012及1014中所述的動(dòng)作。圖20中展示具有馮·諾伊曼架構(gòu)的實(shí)例性計(jì)算機(jī)且下文對其進(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)算符對應(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)算符可對應(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)對應(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 —P。在反轉(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上的硬件元件(例如,SME804、805、其它元件824)并確定所述硬件元件之間的連接。在框1010處,放置所述網(wǎng)表以選擇目標(biāo)裝置的對應(yīng)于所述網(wǎng)表的每一節(jié)點(diǎn)的特定硬件元件(例如,SME804、805、專用元件824)。在一實(shí)例中,放置基于FSM引擎800的一般輸入及輸出約束而選擇每一特定硬件元件。在框1012處,對所放置的網(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處的放置,路由可能考慮硬件元件之間的連接的更特定限制。因此,假定有對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上以編程SME804、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í)例中,可通過將來自圖像的位值直接加載到SME804、805及其它硬件元件824或通過將所述圖像加載到一個(gè)或一個(gè)以上寄存器中且接著將來自所述寄存器的位值寫入到SME804、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的硬件元件(例如,SME804、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)等。圖20大體圖解說明具有馮 諾伊曼架構(gòu)的計(jì)算機(jī)1500的實(shí)例。在閱讀并理解本 發(fā)明的內(nèi)容后,所屬領(lǐng)域的技術(shù)人員將即刻理解可從基于計(jì)算機(jī)的系統(tǒng)中的計(jì)算機(jī)可讀媒體激活軟件程序以執(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ù)器或客戶端裝置的資格或在對等(或分布式)網(wǎng)絡(luò)環(huán)境中作為對等裝置操作。計(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)、IEEE1394等)與外圍裝置通信。輸出控制器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ù)庫,或相關(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í)施例。實(shí)例件實(shí)施例實(shí)例I包括一種可編程裝置,其具有多個(gè)可編程元件,其中所述可編程元件經(jīng)配置以實(shí)施一個(gè)或一個(gè)以上有限狀態(tài)機(jī),其中所述多個(gè)可編程元件經(jīng)配置以接收N數(shù)字輸入且依據(jù)所述N數(shù)字輸入提供M數(shù)字輸出,其中所述M數(shù)字輸出包括來自少于所有所述可編程元件的狀態(tài)信息。實(shí)例2包括一種層次并行機(jī),其具有第一并行機(jī),其包含多個(gè)可編程元件,其中所述可編程元件經(jīng)配置以實(shí)施一個(gè)或一個(gè)以上有限狀態(tài)機(jī),其中所述多個(gè)可編程元件經(jīng)配置以接收N數(shù)字輸入且依據(jù)所述N數(shù)字輸入提供M數(shù)字輸出,其中所述M數(shù)字輸出包括來自少于所有所述可編程元件的狀態(tài)信息;及第二并行機(jī),其經(jīng)配置以接收并處理所述M數(shù)字輸出的至少一部分。實(shí)例3包括一種可編程裝置,其具有多個(gè)可編程元件,其中所述可編程元件經(jīng)配置以實(shí)施一個(gè)或一個(gè)以上有限狀態(tài)機(jī),其中所述多個(gè)可編程元件經(jīng)配置以接收N數(shù)字輸入且依據(jù)所述N數(shù)字輸入提供M數(shù)字輸出,其中所述M數(shù)字輸出是通過壓縮來自所述可編程元件中的每一者的狀態(tài)信息而形成。實(shí)例4包括一種層次并行機(jī),其具有第一并行機(jī),其包含多個(gè)可編程元件,其中所述可編程元件經(jīng)配置以實(shí)施一個(gè)或一個(gè)以上有限狀態(tài)機(jī),其中所述多個(gè)可編程元件經(jīng)配置以接收N數(shù)字輸入且依據(jù)所述N數(shù)字輸入提供M數(shù)字輸出,其中所述M數(shù)字輸出是通過壓縮來自所述可編程元件中的每一者的狀態(tài)信息而形成。實(shí)例5包括一種將狀態(tài)信息從并行機(jī)提供到另一裝置的方法,其中所述并行機(jī)包括多個(gè)可編程元件,其中所述可編程元件中的每一者經(jīng)配置以具有對應(yīng)狀態(tài)。所述方法包括確定狀態(tài)信息,其中所述狀態(tài)信息包含所述并行機(jī)中的所述可編程元件中的每一者的狀態(tài);壓縮所述狀態(tài)信息;及將所述經(jīng)壓縮狀態(tài)信息提供到所述另一裝置。實(shí)例6包括一種層次并行機(jī),其具有具有至少一個(gè)N數(shù)字輸入及多個(gè)N數(shù)字輸出的第一層級(jí)并行機(jī),其中所述N數(shù)字輸出中的每一者對應(yīng)于在所述第一層級(jí)并行機(jī)上所實(shí)施的N個(gè)狀態(tài)機(jī)的相應(yīng)群組。實(shí)例7包括一種包含經(jīng)配置以實(shí)施至少一個(gè)有限狀態(tài)機(jī)的多個(gè)可編程元件的并行機(jī)。所述并行機(jī)經(jīng)配置以確定狀態(tài)信息,其中所述狀態(tài)信息包含所述可編程元件中的每 一者的狀態(tài);壓縮所述狀態(tài)信息;及將所述經(jīng)壓縮狀態(tài)信息提供到另一裝置。在實(shí)例8中,實(shí)例I到7中的任一者的標(biāo)的物可任選地包括其中所述多個(gè)可編程元件包含兩個(gè)或兩個(gè)以上可編程元件群組中的一者。在實(shí)例9中,實(shí)例I到8的任一者的標(biāo)的物可任選地包括N數(shù)字輸入接口,其耦合到所述一個(gè)可編程元件群組且經(jīng)配置以接收所述N數(shù)字輸入;&M數(shù)字輸出接口,其耦合到所述一個(gè)可編程元件群組且經(jīng)配置以提供所述M數(shù)字輸出。在實(shí)例10中,實(shí)例I到9中的任一者的標(biāo)的物可任選地包括其中所述一個(gè)可編程元件群組包含可編程元件塊。在實(shí)例11中,實(shí)例I到10中的任一者的標(biāo)的物可任選地包括其中所述可編程元件塊包含多個(gè)可編程元件行,其中所述行中的每一者耦合到多個(gè)塊內(nèi)開關(guān)中的相應(yīng)一者。在實(shí)例12中,實(shí)例I到11中的任一者的標(biāo)的物可任選地包括其中所述行中的每一者中的可編程元件包含兩個(gè)狀態(tài)機(jī)元件的多個(gè)群組;及另一可編程元件。在實(shí)例13中,實(shí)例I到12中的任一者的標(biāo)的物可任選地包括可編程開關(guān),其經(jīng)配置以選擇性地將所述一個(gè)可編程元件群組耦合到所述可編程元件群組中的另一者;輸入端口 ;及/或輸出端口。在實(shí)例14中,實(shí)例I到13中的任一者的標(biāo)的物可任選地包括寄存器,所述寄存器經(jīng)配置以存儲(chǔ)經(jīng)配置以編程所述多個(gè)可編程元件及所述多個(gè)可編程開關(guān)的程序。在實(shí)例15中,實(shí)例I到14中的任一者的標(biāo)的物可任選地包括其中N等于M。在實(shí)例16中,實(shí)例I到15中的任一者的標(biāo)的物可任選地包括其中M為N的整數(shù)倍數(shù)。在實(shí)例17中,實(shí)例I到16中的任一者的標(biāo)的物可任選地包括“或”邏輯,所述“或”邏輯經(jīng)配置以聚合來自所述可編程元件中的用以實(shí)施所述有限狀態(tài)機(jī)中的同一者的兩者或兩者以上的輸出。在實(shí)例18中,實(shí)例I到17中的任一者的標(biāo)的物可任選地包括其中所述可編程元件經(jīng)配置以實(shí)施N個(gè)狀態(tài)機(jī)的邏輯群組,其中所述N個(gè)狀態(tài)機(jī)的所述輸出經(jīng)聚合以提供所述M數(shù)字輸出。在實(shí)例19中,實(shí)例I到▲中的任一者的標(biāo)的物可任選地包括其中所述邏輯包含“或”門。在實(shí)例20中,實(shí)例I到19中的任一者的標(biāo)的物可任選地包括其中所述M數(shù)字輸出中所包括的所述狀態(tài)信息包含經(jīng)壓縮狀態(tài)信息。在實(shí)例21中,實(shí)例I到20中的任一者的標(biāo)的物可任選地包括其中所述多個(gè)可編程元件包含狀態(tài)機(jī)元件。在實(shí)例22中,實(shí)例I到21中的任一者的標(biāo)的物可任選地包括其中所述M數(shù)字輸
出包含差向量。在實(shí)例23中,實(shí)例I到22中的任一者的標(biāo)的物可任選地包括其中所述所實(shí)施的一個(gè)或一個(gè)以上有限狀態(tài)機(jī)中的每一狀態(tài)對應(yīng)于狀態(tài)向量中的相應(yīng)數(shù)字,且其中所述差向量僅包括所述狀態(tài)向量中的響應(yīng)于提供到所述可編程裝置的輸入符號(hào)而改變的那些數(shù)字。在實(shí)例24中,實(shí)例I到23中的任一者的標(biāo)的物可任選地包括其中所述所實(shí)施的一個(gè)或一個(gè)以上有限狀態(tài)機(jī)中的每一狀態(tài)對應(yīng)于狀態(tài)向量中的相應(yīng)數(shù)字,且其中所述M數(shù)字輸出僅包含所述狀態(tài)向量中的所述數(shù)字的子集。在實(shí)例25中,實(shí)例I到24中的任一者的標(biāo)的物可任選地包括其中所述數(shù)字的所述子集包含對應(yīng)于所述一個(gè)或一個(gè)以上有限狀態(tài)機(jī)中的最終狀態(tài)的那些數(shù)字。在實(shí)例26中,實(shí)例I到25中的任一者的標(biāo)的物可任選地包括其中在所述裝置中所實(shí)施的所有狀態(tài)機(jī)接收所述N數(shù)字輸入。在實(shí)例27中,實(shí)例I到26中的任一者的標(biāo)的物可任選地包括其中所述多個(gè)可編程元件包含兩個(gè)或兩個(gè)以上可編程元件群組中的一者,其中所述群組中的每一者具有其自己的專用輸入。在實(shí)例28中,實(shí)例I到27中的任一者的標(biāo)的物可任選地包括其中所述N數(shù)字輸入在半導(dǎo)體裸片的底部上,且其中所述M數(shù)字輸出在所述半導(dǎo)體裸片的頂部上。在實(shí)例29中,實(shí)例I到28中的任一者的標(biāo)的物可任選地包括其中所述多個(gè)可編程元件包含兩個(gè)或兩個(gè)以上可編程元件群組中的一者,且其中所述可編程裝置經(jīng)配置以將狀態(tài)信息從所述群組中的一者提供到所述可編程裝置中的所述群組中的另一者。在實(shí)例30中,實(shí)例I到29中的任一者的標(biāo)的物可任選地包括其中所述第二并行機(jī)經(jīng)配置以接收并處理所述整個(gè)M數(shù)字輸出。在實(shí)例31中,實(shí)例I到30中的任一者的標(biāo)的物可任選地包括輸入總線,其耦合到所述第一并行機(jī)且經(jīng)配置以提供所述N數(shù)字輸入;及輸出總線,其耦合于所述第一并行機(jī)與所述第二并行機(jī)之間,所述輸出總線經(jīng)配置以將所述M數(shù)字輸出的至少一部分提供到所述第二并行機(jī)。在實(shí)例32中,實(shí)例I到31中的任一者的標(biāo)的物可任選地包括其中所述輸入總線與輸出總線在大小上相等。在實(shí)例33中,實(shí)例I到32中的任一者的標(biāo)的物可任選地包括其中所述第一及第二并行機(jī)中的所述對應(yīng)群組由相應(yīng)互連件群組耦合。在實(shí)例34中,實(shí)例I到33中的任一者的標(biāo)的物可任選地包括所述M數(shù)字輸出被提供到在所述第二并行機(jī)中所實(shí)施的每一狀態(tài)機(jī)。在實(shí)例35中,實(shí)例I到34中的任一者的標(biāo)的物可任選地包括其中所述第二并行機(jī)包含分組成多個(gè)群組的多個(gè)可編程元件,其中所述M數(shù)字輸出是根據(jù)預(yù)定義方式提供到所述群組中的相應(yīng)一者。在實(shí)例36中,實(shí)例I到35中的任一者的標(biāo)的物可任選地包括其中所述第二并行機(jī)包含經(jīng)配置以將地址信息發(fā)送到所述第二并行機(jī)的多個(gè)可編程元件,其中所述地址信息指示正將所述M數(shù)字輸出提供到所述第二并行機(jī)中的所述群組中的哪一者。在實(shí)例37中,實(shí)例I到36中的任一者的標(biāo)的物可任選地包括其中所述并行機(jī)為堆疊的。在實(shí)例38中,實(shí)例I到37中的任一者的標(biāo)的物可任選地包括其中所述多個(gè)可編程元件包含兩個(gè)或兩個(gè)以上可編程元件群組中的一者,其進(jìn)一步包含對應(yīng)于每一群組的邏輯,其中對應(yīng)于所述群組中的相應(yīng)一者的所述邏輯聚合來自所述群組中的兩個(gè)或兩個(gè)以上可編程元件的狀態(tài)信息,且其中來自所述群組的所述M數(shù)字輸出的一個(gè)或一個(gè)以上數(shù)字為此邏輯的函數(shù)。在實(shí)例39中,實(shí)例I到38中的任一者的標(biāo)的物可任選地包括其中所述M數(shù)字輸出是通過壓縮來自所述可編程元件的狀態(tài)信息而形成。在實(shí)例40中,實(shí)例I到39中的任一者的標(biāo)的物可任選地包括邏輯,所述邏輯經(jīng)配置以聚合來自所述可編程元件中的用以實(shí)施所述有限狀態(tài)機(jī)中的同一者的兩者或兩者以上的輸出。在實(shí)例41中,實(shí)例I到40中的任一者的標(biāo)的物可任選地包括其中所述可編程元件經(jīng)配置以實(shí)施N個(gè)狀態(tài)機(jī)的邏輯群組,其中所述N個(gè)狀態(tài)機(jī)的所述輸出經(jīng)聚合以提供所述M數(shù)字輸出。在實(shí)例42中,實(shí)例I到41中的任一者的標(biāo)的物可任選地包括其中壓縮所述狀態(tài)信息包括對所述狀態(tài)信息應(yīng)用無損壓縮算法。在實(shí)例43中,實(shí)例I到42中的任一者的標(biāo)的物可任選地包括其中將所述經(jīng)壓縮狀態(tài)信息提供到所述另一裝置包含將所述經(jīng)壓縮狀態(tài)信息提供到另一并行機(jī)。在實(shí)例44中,實(shí)例I到43中的任一者的標(biāo)的物可任選地包括其中將所述經(jīng)壓縮狀態(tài)信息提供到所述另一裝置包含將所述經(jīng)壓縮狀態(tài)信息提供到系統(tǒng)存儲(chǔ)器。在實(shí)例45中,實(shí)例I到44中的任一者的標(biāo)的物可任選地包括其中壓縮所述狀態(tài)信息包含聚合在所述并行機(jī)上所實(shí)施的有限狀態(tài)機(jī)中的最終狀態(tài)。在實(shí)例46中,實(shí)例I到45中的任一者的標(biāo)的物可任選地包括第一層級(jí)并行機(jī),其具有至少一個(gè)N數(shù)字輸入及多個(gè)N數(shù)字輸出,其中所述N數(shù)字輸出中的每一者對應(yīng)于在所述第一層級(jí)并行機(jī)上所實(shí)施的N個(gè)狀態(tài)機(jī)的相應(yīng)群組。在實(shí)例47中,實(shí)例I到46中的任一者的標(biāo)的物可任選地包括其中在所述第一層級(jí)并行機(jī)上所實(shí)施的所述狀態(tài)機(jī)中的至少一者包括對應(yīng)于所述至少一個(gè)狀態(tài)機(jī)的多個(gè)最終狀態(tài)的多個(gè)可編程元件,其中將對應(yīng)于所述多個(gè)最終狀態(tài)的所述多個(gè)可編程元件的輸出聚合在一起以提供所述N數(shù)字輸出中的一者的一個(gè)數(shù)字。在實(shí)例48中,實(shí)例I到47中的任一者的標(biāo)的物可任選地包括其中在所述N數(shù)字輸出中的一者上提供的數(shù)據(jù)編碼在所述第一層級(jí)并行機(jī)上所實(shí)施的N個(gè)狀態(tài)機(jī)的所述相應(yīng)群組的所述最終狀態(tài)的狀況。在實(shí)例49中,實(shí)例I到48中的任一者的標(biāo)的物可任選地包括其中所述第一層級(jí)并行機(jī)包含有限狀態(tài)機(jī)引擎。
在實(shí)例50中,實(shí)例I到49中的任一者的標(biāo)的物可任選地包括其中所述有限狀態(tài)機(jī)引擎包含可編程元件群組陣列,且其中所述可編程元件群組中的每一者耦合到所述N數(shù)字輸出中的相應(yīng)一者。在實(shí)例51中,實(shí)例I到50中的任一者的標(biāo)的物可任選地包括其中所述第一層級(jí)并行機(jī)具有多個(gè)N數(shù)字輸入且其中所述可編程元件群組中的每一者耦合到所述第一層級(jí)并行機(jī)的所述N數(shù)字輸入中的相應(yīng)一者。在實(shí)例52中,實(shí)例I到51中的任一者的標(biāo)的物可任選地包括其中所述第二層級(jí)并行機(jī)包含有限狀態(tài)機(jī)引擎。在實(shí)例53中,實(shí)例I到52中的任一者的標(biāo)的物可任選地包括其中所述有限狀態(tài)機(jī)引擎包含可編程元件群組陣列,且其中所述可編程元件群組中的每一者耦合到所述N數(shù)字輸入中的相應(yīng)一者。在實(shí)例54中,實(shí)例I到53中的任一者的標(biāo)的物可任選地包括其中所述第二層級(jí)并行機(jī)具有多個(gè)N數(shù)字輸出且其中所述可編程元件群組中的每一者耦合到所述第二層級(jí)并行機(jī)的所述N數(shù)字輸出中的相應(yīng)一者。在實(shí)例55中,實(shí)例I到54中的任一者的標(biāo)的物可任選地包括其中所述第一并行機(jī)包含第一裸片,且所述第二并行機(jī)包含與所述第一裸片堆疊在一起的第二裸片。在實(shí)例56中,實(shí)例I到55中的任一者的標(biāo)的物可任選地包括進(jìn)一步包含第三并行機(jī)及總線,其中所述第三并行機(jī)包含與所述第一裸片及所述第二裸片堆疊在一起的第三裸片,其中所述第二裸片在所述堆疊中的所述第一裸片與所述第三裸片之間,且其中所述總線經(jīng)配置以在所述第一并行機(jī)與所述第三并行機(jī)之間傳送狀態(tài)信息。在實(shí)例57中,實(shí)例I到56中的任一者的標(biāo)的物可任選地包括其中所述總線包含多個(gè)互連件。在實(shí)例58中,實(shí)例I到57中的任一者的標(biāo)的物可任選地包括其中所述互連件包含穿通孔互連件。在實(shí)例59中,實(shí)例I含有限狀態(tài)機(jī)引擎。在實(shí)例60中,實(shí)例I機(jī)弓I擎包含型式辨識(shí)處理器。在實(shí)例61中,實(shí)例I含現(xiàn)場可編程門陣列。在實(shí)例62中,實(shí)例I
到58中的任一者的標(biāo)的物可任選地包括其中所述并行機(jī)包到59中的任一者的標(biāo)的物可任選地包括其中所述有限狀態(tài)到60中的任一者的標(biāo)的物可任選地包括其中所述并行機(jī)包到
61中的任一者的標(biāo)的物可任選地包括其中所述第一層級(jí)并行機(jī)的所述至少一個(gè)N數(shù)字輸入經(jīng)配置以接收原始數(shù)據(jù)。在實(shí)例63中,實(shí)例I到62中的任一者的標(biāo)的物可任選地包括其中所述第二層級(jí)并行機(jī)的所述N數(shù)字輸入中的每一者對應(yīng)于在所述第二層級(jí)并行機(jī)上所實(shí)施的N個(gè)狀態(tài)機(jī)的相應(yīng)群組,其中在所述第二層級(jí)并行機(jī)上所實(shí)施的N個(gè)狀態(tài)機(jī)的每一群組由在所述第一層級(jí)并行機(jī)上所實(shí)施的多達(dá)N個(gè)狀態(tài)機(jī)驅(qū)動(dòng)。在實(shí)例64中,實(shí)例I到63中的任一者的標(biāo)的物可任選地包括其中另一裝置包含第二并行機(jī),其中所述第二并行機(jī)經(jīng)配置以接收并處理所述經(jīng)壓縮狀態(tài)信息。在實(shí)例65中,實(shí)例I到64中的任一者的標(biāo)的物可任選地包括其中所述并行機(jī)經(jīng)配置以壓縮所述狀態(tài)信息包含所述并行機(jī)經(jīng)配置以聚合在所述并行機(jī)上所實(shí)施的有限狀態(tài)機(jī)的最終狀態(tài)。在實(shí)例66中,實(shí)例I到65中的任一者的標(biāo)的物可任選地包括經(jīng)配置以聚合所述最終狀態(tài)的布爾邏輯。在實(shí)例67中,實(shí)例I到66中的任一者的標(biāo)的物可任選地包括其中所述并行機(jī)經(jīng)配置以壓縮所述狀態(tài)信息包含所述并行機(jī)經(jīng)配置以輸出差向量,其中所述差向量僅識(shí)別已響應(yīng)于輸入符號(hào)而改變的那些狀態(tài)。在實(shí)例68中,實(shí)例I到67中的任一者的標(biāo)的物可任選地包括其中所述并行機(jī)經(jīng)配置以壓縮所述狀態(tài)信息包含所述并行機(jī)經(jīng)配置以輸出輸出向量,其中所述輸出向量僅提供在所述并行機(jī)上所實(shí)施的有限狀態(tài)機(jī)中的最終狀態(tài)的狀態(tài)信息。
權(quán)利要求
1.一種可編程裝置,其包含多個(gè)可編程元件,其中所述可編程元件經(jīng)配置以實(shí)施一個(gè)或一個(gè)以上有限狀態(tài)機(jī),其中所述多個(gè)可編程元件經(jīng)配置以接收N數(shù)字輸入且依據(jù)所述N數(shù)字輸入提供M數(shù)字輸出, 其中所述M數(shù)字輸出包括來自少于所有所述可編程元件的狀態(tài)信息。
2.根據(jù)權(quán)利要求1所述的可編程裝置,其中所述多個(gè)可編程元件包含兩個(gè)或兩個(gè)以上可編程元件群組中的一者。
3.根據(jù)權(quán)利要求2所述的可編程裝置,其進(jìn)一步包含N數(shù)字輸入接口,其耦合到所述一個(gè)可編程元件群組且經(jīng)配置以接收所述N數(shù)字輸入;及M數(shù)字輸出接口,其耦合到所述一個(gè)可編程元件群組且經(jīng)配置以提供所述M數(shù)字輸出。
4.根據(jù)權(quán)利要求2所述的可編程裝置,其中所述一個(gè)可編程元件群組包含可編程元件塊。
5.根據(jù)權(quán)利要求4所述的可編程裝置,其中所述可編程元件塊包含多個(gè)可編程元件行,其中所述行中的每一者耦合到多個(gè)塊內(nèi)開關(guān)中的相應(yīng)一者。
6.根據(jù)權(quán)利要求5所述的可編程裝置,其中所述行中的每一者中的所述可編程元件包含兩個(gè)狀態(tài)機(jī)元件的多個(gè)群組;及另一可編程元件。
7.根據(jù)權(quán)利要求2所述的可編程裝置,其進(jìn)一步包含可編程開關(guān),其經(jīng)配置以選擇性地將所述一個(gè)可編程元件群組耦合到所述可編程元件群組中的另一者、輸入端口及/或輸出端口。
8.根據(jù)權(quán)利要求7所述的可編程裝置,其進(jìn)一步包含寄存器,其經(jīng)配置以存儲(chǔ)經(jīng)配置以編程所述多個(gè)可編程元件及所述多個(gè)可編程開關(guān)的程序。
9.根據(jù)權(quán)利要求1所述的可編程裝置,其中N等于M。
10.根據(jù)權(quán)利要求1所述的可編程裝置,其中M為N的整數(shù)倍數(shù)。
11.根據(jù)權(quán)利要求1所述的可編程裝置,其進(jìn)一步包含“或”邏輯,其經(jīng)配置以聚合來自所述可編程元件中的用以實(shí)施所述有限狀態(tài)機(jī)中的同一者的兩者或兩者以上的輸出。
12.根據(jù)權(quán)利要求11所述的可編程裝置,其中所述可編程元件經(jīng)配置以實(shí)施N個(gè)狀態(tài)機(jī)的邏輯群組,其中所述N個(gè)狀態(tài)機(jī)的所述輸出經(jīng)聚合以提供所述M數(shù)字輸出。
13.根據(jù)權(quán)利要求11所述的可編程裝置,其中所述邏輯包含“或”門。
14.根據(jù)權(quán)利要求1所述的可編程裝置,其中所述M數(shù)字輸出中所包括的所述狀態(tài)信息包含經(jīng)壓縮狀態(tài)信息。
15.根據(jù)權(quán)利要求1所述的可編程裝置,其中所述多個(gè)可編程元件包含狀態(tài)機(jī)元件。
16.根據(jù)權(quán)利要求1所述的可編程裝置,其中所述M數(shù)字輸出包含差向量。
17.根據(jù)權(quán)利要求16所述的可編程裝置,其中所述所實(shí)施的一個(gè)或一個(gè)以上有限狀態(tài)機(jī)中的每一狀態(tài)對應(yīng)于狀態(tài)向量中的相應(yīng)數(shù)字,且其中所述差向量僅包括所述狀態(tài)向量中的響應(yīng)于提供到所述可編程裝置的輸入符號(hào)而改變的那些數(shù)字。
18.根據(jù)權(quán)利要求1所述的可編程裝置,其中所述所實(shí)施的一個(gè)或一個(gè)以上有限狀態(tài)機(jī)中的每一狀態(tài)對應(yīng)于狀態(tài)向量中的相應(yīng)數(shù)字,且其中所述M數(shù)字輸出僅包含所述狀態(tài)向量中的所述數(shù)字的子集。
19.根據(jù)權(quán)利要求1所述的可編程裝置,其中所述數(shù)字的所述子集包含對應(yīng)于所述一個(gè)或一個(gè)以上有限狀態(tài)機(jī)中的最終狀態(tài)的那些數(shù)字。
20.根據(jù)權(quán)利要求1所述的可編程裝置,其中在所述裝置中所實(shí)施的所有狀態(tài)機(jī)接收所述N數(shù)字輸入。
21.根據(jù)權(quán)利要求1所述的可編程裝置,其中所述多個(gè)可編程元件包含兩個(gè)或兩個(gè)以上可編程元件群組中的一者,其中所述群組中的每一者具有其自己的專用輸入。
22.根據(jù)權(quán)利要求1所述的可編程裝置,其中所述N數(shù)字輸入在半導(dǎo)體裸片的底部上, 且其中所述M數(shù)字輸出在所述半導(dǎo)體裸片的頂部上。
23.根據(jù)權(quán)利要求1所述的可編程裝置,其中所述多個(gè)可編程元件包含兩個(gè)或兩個(gè)以上可編程元件群組中的一者,且其中所述可編程裝置經(jīng)配置以在所述可編程裝置中將狀態(tài)信息從所述群組中的一者提供到所述群組中的另一者。
24.一種層次并行機(jī),其包含第一并行機(jī),其包含多個(gè)可編程元件,其中所述可編程元件經(jīng)配置以實(shí)施一個(gè)或一個(gè)以上有限狀態(tài)機(jī),其中所述多個(gè)可編程元件經(jīng)配置以接收N數(shù)字輸入且依據(jù)所述N數(shù)字輸入提供M數(shù)字輸出,其中所述M數(shù)字輸出包括來自少于所有所述可編程元件的狀態(tài)信息;及第二并行機(jī),其經(jīng)配置以接收并處理所述M數(shù)字輸出的至少一部分。
25.根據(jù)權(quán)利要求24所述的層次并行機(jī),其中所述第二并行機(jī)經(jīng)配置以接收并處理所述整個(gè)M數(shù)字輸出。
26.根據(jù)權(quán)利要求24所述的層次并行機(jī),其進(jìn)一步包含輸入總線,其耦合到所述第一并行機(jī)且經(jīng)配置以提供所述N數(shù)字輸入;及輸出總線,其耦合于所述第一并行機(jī)與所述第二并行機(jī)之間,所述輸出總線經(jīng)配置以將所述M數(shù)字輸出的至少一部分提供到所述第二并行機(jī)。
27.根據(jù)權(quán)利要求26所述的層次并行機(jī),其中所述輸入總線與輸出總線在大小上相
28.根據(jù)權(quán)利要求27所述的層次并行機(jī),其中所述第一及第二并行機(jī)中的對應(yīng)群組由相應(yīng)互連件群組耦合。
29.根據(jù)權(quán)利要求24所述的層次并行機(jī),其中所述M數(shù)字輸出被提供到在所述第二并行機(jī)中所實(shí)施的每一狀態(tài)機(jī)。
30.根據(jù)權(quán)利要求24所述的層次并行機(jī),其中所述第二并行機(jī)包含分組成多個(gè)群組的多個(gè)可編程元件,其中所述M數(shù)字輸出是根據(jù)預(yù)定義方式提供到所述群組中的相應(yīng)一者。
31.根據(jù)權(quán)利要求24所述的層次并行機(jī),其中所述第二并行機(jī)包含經(jīng)配置以將地址信息發(fā)送到所述第二并行機(jī)的多個(gè)可編程元件,其中所述地址信息指示正將所述M數(shù)字輸出提供到所述第二并行機(jī)中的所述群組中的哪一者。
32.根據(jù)權(quán)利要求24所述的層次并行機(jī),其中所述并行機(jī)為堆疊的。
33.根據(jù)權(quán)利要求24所述的層次并行機(jī),其中所述多個(gè)可編程元件包含兩個(gè)或兩個(gè)以上可編程元件群組中的一者,其進(jìn)一步包含對應(yīng)于每一群組的邏輯,其中對應(yīng)于所述群組中的相應(yīng)一者的所述邏輯聚合來自所述群組中的兩個(gè)或兩個(gè)以上可編程元件的狀態(tài)信息, 且其中來自所述群組的所述M數(shù)字輸出的一個(gè)或一個(gè)以上數(shù)字為此邏輯的函數(shù)。
34.根據(jù)權(quán)利要求24所述的層次并行機(jī),其中所述M數(shù)字輸出是通過壓縮來自所述可編程元件的狀態(tài)信息而形成。
35.一種可編程裝置,其包含多個(gè)可編程元件,其中所述可編程元件經(jīng)配置以實(shí)施一個(gè)或一個(gè)以上有限狀態(tài)機(jī),其中所述多個(gè)可編程元件經(jīng)配置以接收N數(shù)字輸入且依據(jù)所述N數(shù)字輸入提供M數(shù)字輸出, 其中所述M數(shù)字輸出是通過壓縮來自所述可編程元件中的每一者的狀態(tài)信息而形成。
36.根據(jù)權(quán)利要求35所述的可編程裝置,其中N等于M。
37.根據(jù)權(quán)利要求35所述的可編程裝置,其中M為N的整數(shù)倍數(shù)。
38.根據(jù)權(quán)利要求35所述的可編程裝置,其進(jìn)一步包含邏輯,其經(jīng)配置以聚合來自所述可編程元件中的用以實(shí)施所述有限狀態(tài)機(jī)中的同一者的兩者或兩者以上的輸出。
39.根據(jù)權(quán)利要求38所述的可編程裝置,其中所述可編程元件經(jīng)配置以實(shí)施N個(gè)狀態(tài)機(jī)的邏輯群組,其中所述N個(gè)狀態(tài)機(jī)的所述輸出經(jīng)聚合以提供所述M數(shù)字輸出。
40.一種層次并行機(jī),其包含第一并行機(jī),其包含多個(gè)可編程元件,其中所述可編程元件經(jīng)配置以實(shí)施一個(gè)或一個(gè)以上有限狀態(tài)機(jī),其中所述多個(gè)可編程元件經(jīng)配置以接收N數(shù)字輸入且依據(jù)所述N數(shù)字輸入提供M數(shù)字輸出,其中所述M數(shù)字輸出是通過壓縮來自所述可編程元件中的每一者的狀態(tài)信息而形成。
41.根據(jù)權(quán)利要求40所述的層次并行機(jī),其中N等于M。
42.根據(jù)權(quán)利要求40所述的層次并行機(jī),其中M為N的整數(shù)倍數(shù)。
43.一種將狀態(tài)信息從并行機(jī)提供到另一裝置的方法,其中所述并行機(jī)包括多個(gè)可編程元件,其中所述可編程元件中的每一者經(jīng)配置以具有對應(yīng)狀態(tài),所述方法包含確定狀態(tài)信息,其中所述狀態(tài)信息包含所述并行機(jī)中的所述可編程元件中的每一者的所述狀態(tài);壓縮所述狀態(tài)信息;及將所述經(jīng)壓縮狀態(tài)信息提供到所述另一裝置。
44.根據(jù)權(quán)利要求43所述的方法,其中壓縮所述狀態(tài)信息包括對所述狀態(tài)信息應(yīng)用無損壓縮算法。
45.根據(jù)權(quán)利要求43所述的方法,其中將所述經(jīng)壓縮狀態(tài)信息提供到所述另一裝置包含將所述經(jīng)壓縮狀態(tài)信息提供到另一并行機(jī)。
46.根據(jù)權(quán)利要求43所述的方法,其中將所述經(jīng)壓縮狀態(tài)信息提供到所述另一裝置包含將所述經(jīng)壓縮狀態(tài)信息提供到系統(tǒng)存儲(chǔ)器。
47.根據(jù)權(quán)利要求43所述的方法,其中壓縮所述狀態(tài)信息包含聚合在所述并行機(jī)上所實(shí)施的有限狀態(tài)機(jī)中的最終狀態(tài)。
48.—種層次并行機(jī),其包含第一層級(jí)并行機(jī),其具有至少一個(gè)N數(shù)字輸入及多個(gè)N數(shù)字輸出,其中所述N數(shù)字輸出中的每一者對應(yīng)于在所述第一層級(jí)并行機(jī)上所實(shí)施的N個(gè)狀態(tài)機(jī)的相應(yīng)群組。
49.根據(jù)權(quán)利要求48所述的層次并行機(jī),其中在所述第一層級(jí)并行機(jī)上所實(shí)施的所述狀態(tài)機(jī)中的至少一者包括對應(yīng)于所述至少一個(gè)狀態(tài)機(jī)的多個(gè)最終狀態(tài)的多個(gè)可編程元件, 其中將對應(yīng)于所述多個(gè)最終狀態(tài)的所述多個(gè)可編程元件的輸出聚合在一起以提供所述N 數(shù)字輸出中的一者的一個(gè)數(shù)字。
50.根據(jù)權(quán)利要求48所述的層次并行機(jī),其中在所述N數(shù)字輸出中的一者上提供的數(shù)據(jù)編碼在所述第一層級(jí)并行機(jī)上所實(shí)施的N個(gè)狀態(tài)機(jī)的所述相應(yīng)群組的所述最終狀態(tài)的狀況。
51.根據(jù)權(quán)利要求48所述的層次并行機(jī),其中所述第一層級(jí)并行機(jī)包含有限狀態(tài)機(jī)引擎。
52.根據(jù)權(quán)利要求51所述的層次并行機(jī),其中所述有限狀態(tài)機(jī)引擎包含可編程元件群組陣列,且其中所述可編程元件群組中的每一者耦合到所述N數(shù)字輸出中的相應(yīng)一者。
53.根據(jù)權(quán)利要求52所述的層次并行機(jī),其中所述第一層級(jí)并行機(jī)具有多個(gè)N數(shù)字輸入,且其中所述可編程元件群組中的每一者耦合到所述第一層級(jí)并行機(jī)的所述N數(shù)字輸入中的相應(yīng)一者。
54.根據(jù)權(quán)利要求48所述的層次并行機(jī),其中第二層級(jí)并行機(jī)包含有限狀態(tài)機(jī)引擎。
55.根據(jù)權(quán)利要求54所述的層次并行機(jī),其中所述有限狀態(tài)機(jī)引擎包含可編程元件群組陣列,且其中所述可編程元件群組中的每一者耦合到所述N數(shù)字輸入中的相應(yīng)一者。
56.根據(jù)權(quán)利要求55所述的層次并行機(jī),其中所述第二層級(jí)并行機(jī)具有多個(gè)N數(shù)字輸出,且其中所述可編程元件群組中的每一者耦合到所述第二層級(jí)并行機(jī)的所述N數(shù)字輸出中的相應(yīng)一者。
57.根據(jù)權(quán)利要求48所述的層次并行機(jī),其中所述第一并行機(jī)包含第一裸片,且所述第二并行機(jī)包含與所述第一裸片堆疊在一起的第二裸片。
58.根據(jù)權(quán)利要求57所述的層次并行機(jī),其進(jìn)一步包含第三并行機(jī)及總線,其中所述第三并行機(jī)包含與所述第一裸片及所述第二裸片堆疊在一起的第三裸片,其中所述第二裸片在所述堆疊中的所述第一裸片與所述第三裸片之間,且其中所述總線經(jīng)配置以在所述第一并行機(jī)與所述第三并行機(jī)之間傳送狀態(tài)信息。
59.根據(jù)權(quán)利要求58所述的層次并行機(jī),其中所述總線包含多個(gè)互連件。
60.根據(jù)權(quán)利要求59所述的層次并行機(jī),其中所述互連件包含穿通孔互連件。
61.根據(jù)權(quán)利要求48所述的層次并行機(jī),其中所述并行機(jī)包含有限狀態(tài)機(jī)引擎。
62.根據(jù)權(quán)利要求61所述的層次并行機(jī),其中所述有限狀態(tài)機(jī)引擎包含型式辨識(shí)處理器。
63.根據(jù)權(quán)利要求48所述的層次并行機(jī),其中所述并行機(jī)包含現(xiàn)場可編程門陣列。
64.根據(jù)權(quán)利要求48所述的層次并行機(jī),其中所述第一層級(jí)并行機(jī)的所述至少一個(gè)N 數(shù)字輸入經(jīng)配置以接收原始數(shù)據(jù)。
65.根據(jù)權(quán)利要求48所述的層次并行機(jī),其中所述第二層級(jí)并行機(jī)的所述N數(shù)字輸入中的每一者對應(yīng)于在所述第二層級(jí)并行機(jī)上所實(shí)施的N個(gè)狀態(tài)機(jī)的相應(yīng)群組,其中在所述第二層級(jí)并行機(jī)上所實(shí)施的N個(gè)狀態(tài)機(jī)的每一群組由在所述第一層級(jí)并行機(jī)上所實(shí)施的多達(dá)N個(gè)狀態(tài)機(jī)驅(qū)動(dòng)。
66.一種包含經(jīng)配置以實(shí)施至少一個(gè)有限狀態(tài)機(jī)的多個(gè)可編程元件的并行機(jī),其中所述并行機(jī)經(jīng)配置以確定狀態(tài)信息,其中所述狀態(tài)信息包含所述可編程元件中的每一者的狀態(tài);壓縮所述狀態(tài)信息;及將所述經(jīng)壓縮狀態(tài)信息提供到另一裝置。
67.根據(jù)權(quán)利要求66所述的并行機(jī),其中所述另一裝置包含第二并行機(jī),其中所述第二并行機(jī)經(jīng)配置以接收并處理所述經(jīng)壓縮狀態(tài)信息。
68.根據(jù)權(quán)利要求66所述的并行機(jī),其中所述并行機(jī)經(jīng)配置以壓縮所述狀態(tài)信息包含所述并行機(jī)經(jīng)配置以聚合在所述并行機(jī)上所實(shí)施的有限狀態(tài)機(jī)的最終狀態(tài)。
69.根據(jù)權(quán)利要求68所述的并行機(jī),其進(jìn)一步包含經(jīng)配置以聚合所述最終狀態(tài)的布爾邏輯。
70.根據(jù)權(quán)利要求66所述的并行機(jī),其中所述并行機(jī)經(jīng)配置以壓縮所述狀態(tài)信息包含所述并行機(jī)經(jīng)配置以輸出差向量,其中所述差向量僅識(shí)別已響應(yīng)于輸入符號(hào)而改變的那些狀態(tài)。
71.根據(jù)權(quán)利要求66所述的并行機(jī),其中所述并行機(jī)經(jīng)配置以壓縮所述狀態(tài)信息包含所述并行機(jī)經(jīng)配置以輸出輸出向量,其中所述輸出向量僅提供在所述并行機(jī)上所實(shí)施的有限狀態(tài)機(jī)中的最終狀態(tài)的狀態(tài)信息。
全文摘要
本發(fā)明描述可編程裝置、層次并行機(jī)及用于提供狀態(tài)信息的方法。在一個(gè)此種可編程裝置中,提供可編程元件。所述可編程元件經(jīng)配置以實(shí)施一個(gè)或一個(gè)以上有限狀態(tài)機(jī)。所述可編程元件經(jīng)配置以接收N數(shù)字輸入且依據(jù)所述N數(shù)字輸入提供M數(shù)字輸出。所述M數(shù)字輸出包括來自少于所有所述可編程元件的狀態(tài)信息。本發(fā)明還揭示其它可編程裝置、層次并行機(jī)及方法。
文檔編號(hào)G06F7/00GK103026332SQ201180035858
公開日2013年4月3日 申請日期2011年6月9日 優(yōu)先權(quán)日2010年6月10日
發(fā)明者保羅·德盧戈施 申請人:美光科技公司