亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于狀態(tài)機(jī)中的檢測(cè)的方法及系統(tǒng)與流程

文檔序號(hào):11514726閱讀:362來(lái)源:國(guó)知局
用于狀態(tài)機(jī)中的檢測(cè)的方法及系統(tǒng)與流程

分案申請(qǐng)的相關(guān)信息

本申請(qǐng)是國(guó)際申請(qǐng)?zhí)枮閜ct/us2012/067995、申請(qǐng)日為2012年12月5日、發(fā)明名稱為“用于狀態(tài)機(jī)中的檢測(cè)的方法及系統(tǒng)”的pct申請(qǐng)進(jìn)入中國(guó)國(guó)家階段后申請(qǐng)?zhí)枮?01280062249.4的中國(guó)發(fā)明專利申請(qǐng)的分案申請(qǐng)。

本發(fā)明的實(shí)施例一般來(lái)說(shuō)涉及電子裝置,且更具體來(lái)說(shuō),在某些實(shí)施例中涉及具有用于型式辨識(shí)的并行有限狀態(tài)機(jī)的電子裝置。



背景技術(shù):

在常規(guī)基于馮·諾伊曼(vonneumann)的計(jì)算機(jī)上執(zhí)行復(fù)雜型式辨識(shí)可為低效的。然而,生物大腦(特定來(lái)說(shuō),人腦)擅長(zhǎng)執(zhí)行型式辨識(shí)。當(dāng)前研究表明,人腦使用新皮質(zhì)中的一系列以層次方式組織的神經(jīng)元層執(zhí)行型式辨識(shí)。層次的較低層中的神經(jīng)元分析來(lái)自(舉例來(lái)說(shuō))感覺(jué)器官的“原始信號(hào)”,而較高層中的神經(jīng)元分析來(lái)自較低層中的神經(jīng)元的信號(hào)輸出。新皮質(zhì)中的此層次式系統(tǒng)(可能與大腦的其它區(qū)一起)實(shí)現(xiàn)復(fù)雜型式辨識(shí),此使得人類能夠執(zhí)行高級(jí)功能,例如空間推理、意識(shí)思考及復(fù)雜語(yǔ)言。

在計(jì)算領(lǐng)域中,型式辨識(shí)任務(wù)日益具挑戰(zhàn)性。在計(jì)算機(jī)之間傳輸?shù)臄?shù)據(jù)量越來(lái)越大,且用戶希望識(shí)別的型式的數(shù)目日益增加。舉例來(lái)說(shuō),通常通過(guò)搜索數(shù)據(jù)流中的型式(例如,特定短語(yǔ)或代碼片段)來(lái)檢測(cè)垃圾郵件或惡意軟件。型式的數(shù)目隨垃圾郵件與惡意軟件的多樣化而增加,因?yàn)樾滦褪娇山?jīng)實(shí)施以搜索新變化形式。針對(duì)這些型式中的每一者搜索數(shù)據(jù)流可形成計(jì)算瓶頸。通常,在接收數(shù)據(jù)流時(shí),針對(duì)每一型式一次搜索一個(gè)數(shù)據(jù)流。在系統(tǒng)準(zhǔn)備好搜索數(shù)據(jù)流的下一部分之前的延遲隨型式的數(shù)目而增加。因此,型式辨識(shí)可減慢數(shù)據(jù)的接收。

已設(shè)計(jì)用以針對(duì)若干型式搜索數(shù)據(jù)流的硬件,但此硬件通常不能在給定時(shí)間量?jī)?nèi)處理充足數(shù)據(jù)量。經(jīng)配置以搜索數(shù)據(jù)流的一些裝置通過(guò)將數(shù)據(jù)流分布在多個(gè)電路當(dāng)中而如此進(jìn)行。所述電路各自確定數(shù)據(jù)流是否匹配型式的一部分。通常,大量電路并行操作,從而各自大體同時(shí)搜索數(shù)據(jù)流。然而,尚未存在一種實(shí)際上允許以與生物大腦的方式更相當(dāng)?shù)姆绞綀?zhí)行型式辨識(shí)的系統(tǒng)。此系統(tǒng)的開發(fā)是期望的。

附圖說(shuō)明

圖1圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的具有狀態(tài)機(jī)引擎的系統(tǒng)的實(shí)例。

圖2圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖1的狀態(tài)機(jī)引擎的fsm晶格的實(shí)例。

圖3圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖2的fsm晶格的塊的實(shí)例。

圖4圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖3的塊的行的實(shí)例。

圖5圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖4的行的兩個(gè)一群組的實(shí)例。

圖6圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的有限狀態(tài)機(jī)圖的實(shí)例。

圖7圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的借助fsm晶格實(shí)施的兩層級(jí)層次的實(shí)例。

圖8圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的用于編譯器將源代碼轉(zhuǎn)換成二進(jìn)制文件以用于編程圖2的fsm晶格的方法的實(shí)例。

圖9圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的狀態(tài)機(jī)引擎。

圖10圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖4的檢測(cè)單元的實(shí)例。

圖11圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的耦合到圖10的檢測(cè)單元的路由的實(shí)例。

圖12圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖11的群組內(nèi)電路。

圖13圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖12的多路復(fù)用器的真值表。

具體實(shí)施方式

現(xiàn)在轉(zhuǎn)到各圖,圖1圖解說(shuō)明通常由參考編號(hào)10指定的基于處理器的系統(tǒng)的實(shí)施例。系統(tǒng)10可為多種類型中的任一者,例如桌上型計(jì)算機(jī)、膝上型計(jì)算機(jī)、尋呼機(jī)、蜂窩式電話、個(gè)人記事本、便攜式音頻播放器、控制電路、相機(jī)等。系統(tǒng)10也可為網(wǎng)絡(luò)節(jié)點(diǎn),例如路由器、服務(wù)器或客戶端(例如,先前所描述的類型的計(jì)算機(jī)中的一者)。系統(tǒng)10可為某一其它種類的電子裝置,例如復(fù)印機(jī)、掃描儀、打印機(jī)、游戲控制臺(tái)、電視機(jī)、機(jī)頂盒視頻分配或記錄系統(tǒng)、電纜盒、個(gè)人數(shù)字媒體播放器、工廠自動(dòng)化系統(tǒng)、汽車計(jì)算機(jī)系統(tǒng)或醫(yī)療裝置。(用以描述系統(tǒng)的這各種實(shí)例的術(shù)語(yǔ)(如本文中所使用的許多其它術(shù)語(yǔ))可共享一些所指物,且如此不應(yīng)按照所列舉的其它物項(xiàng)來(lái)狹義地理解。)

在典型基于處理器的裝置(例如系統(tǒng)10)中,處理器12(例如微處理器)控制系統(tǒng)10中的系統(tǒng)功能及請(qǐng)求的處理。此外,處理器12可包括共享系統(tǒng)控制的多個(gè)處理器。處理器12可直接或間接耦合到系統(tǒng)10中的元件中的每一者以使得處理器12通過(guò)執(zhí)行可存儲(chǔ)于系統(tǒng)10內(nèi)或在系統(tǒng)10外部的指令來(lái)控制系統(tǒng)10。

根據(jù)本文中所描述的實(shí)施例,系統(tǒng)10包含可在處理器12的控制下操作的狀態(tài)機(jī)引擎14。狀態(tài)機(jī)引擎14可采用若干種狀態(tài)機(jī)架構(gòu)中的任一者,包含(但不限于)mealy架構(gòu)、moore架構(gòu)、有限狀態(tài)機(jī)(fsm)、確定性fsm(dfsm)、位并行狀態(tài)機(jī)(bpsm)等。雖然可使用多種架構(gòu),但出于論述目的,本申請(qǐng)案是指fsm。然而,所屬領(lǐng)域的技術(shù)人員將了解可使用多種狀態(tài)機(jī)架構(gòu)中的任一者來(lái)采用所描述技術(shù)。

如下文所進(jìn)一步論述,狀態(tài)機(jī)引擎14可包含若干個(gè)(例如,一或多個(gè))有限狀態(tài)機(jī)(fsm)晶格。每一fsm晶格可包含各自并行接收及分析同一數(shù)據(jù)的多個(gè)fsm。此外,fsm晶格可布置成若干群組(例如,群集),以使得fsm晶格的群集可并行分析同一輸入數(shù)據(jù)。此外,狀態(tài)機(jī)引擎14的fsm晶格的群集可布置成層次式結(jié)構(gòu),其中來(lái)自所述層次式結(jié)構(gòu)的較低層級(jí)上的狀態(tài)機(jī)晶格的輸出可用作到較高層級(jí)上的狀態(tài)機(jī)晶格的輸入。通過(guò)經(jīng)由層次式結(jié)構(gòu)串行地級(jí)聯(lián)狀態(tài)機(jī)引擎14的并行fsm晶格的群集,可分析(例如,評(píng)估、搜索等)日益復(fù)雜的型式。

此外,基于狀態(tài)機(jī)引擎14的層次式并行配置,狀態(tài)機(jī)引擎14可用于利用高處理速度的系統(tǒng)中的型式辨識(shí)。例如,本文中所描述的實(shí)施例可并入于具有1千兆字節(jié)/秒的處理速度的系統(tǒng)中。因此,利用狀態(tài)機(jī)引擎14,可針對(duì)各種型式快速地分析來(lái)自高速存儲(chǔ)器裝置或其它外部裝置的數(shù)據(jù)。狀態(tài)機(jī)引擎14可根據(jù)數(shù)種準(zhǔn)則約同時(shí)(例如,在單個(gè)裝置循環(huán)期間)及其相應(yīng)搜索項(xiàng)分析數(shù)據(jù)流。狀態(tài)機(jī)引擎14的層級(jí)上的fsm群集內(nèi)的fsm晶格中的每一者可各自約同時(shí)接收來(lái)自數(shù)據(jù)流的同一搜索項(xiàng),且并行fsm晶格中的每一者可確定所述項(xiàng)是否將狀態(tài)機(jī)引擎14推進(jìn)到處理準(zhǔn)則中的下一狀態(tài)。狀態(tài)機(jī)引擎14可根據(jù)相對(duì)大量準(zhǔn)則(例如,100個(gè)以上、110個(gè)以上或10,000個(gè)以上)分析項(xiàng)。由于其并行操作,因此其可將準(zhǔn)則應(yīng)用于具有相對(duì)高帶寬的數(shù)據(jù)流(例如,大于或通常等于1千兆字節(jié)/秒的數(shù)據(jù)流)而不減慢所述數(shù)據(jù)流。

在一個(gè)實(shí)施例中,狀態(tài)機(jī)引擎14可經(jīng)配置以辨識(shí)(例如,檢測(cè))數(shù)據(jù)流中的大量型式。例如,狀態(tài)機(jī)引擎14可用以檢測(cè)用戶或其它實(shí)體可希望分析的多種類型的數(shù)據(jù)流中的一或多者中的型式。舉例來(lái)說(shuō),狀態(tài)機(jī)引擎14可經(jīng)配置以分析經(jīng)由網(wǎng)絡(luò)接收的數(shù)據(jù)流,例如經(jīng)由因特網(wǎng)接收的包或者經(jīng)由蜂窩式網(wǎng)絡(luò)接收的話音或數(shù)據(jù)。在一個(gè)實(shí)例中,狀態(tài)機(jī)引擎14可經(jīng)配置以針對(duì)垃圾郵件或惡意軟件分析數(shù)據(jù)流。數(shù)據(jù)流可作為串行數(shù)據(jù)流接收,其中以具有意義的次序(例如以時(shí)間、詞匯或語(yǔ)義重要性次序)接收數(shù)據(jù)?;蛘撸瑪?shù)據(jù)流可經(jīng)并行或無(wú)序地接收且然后轉(zhuǎn)換成串行數(shù)據(jù)流,例如,通過(guò)將經(jīng)由因特網(wǎng)接收的包重新排序。在一些實(shí)施例中,數(shù)據(jù)流可串行地呈現(xiàn)項(xiàng),但表達(dá)所述項(xiàng)中的每一者的位可被并行接收。數(shù)據(jù)流可從系統(tǒng)10外部的源接收或可通過(guò)詢問(wèn)存儲(chǔ)器裝置(例如存儲(chǔ)器16)且由存儲(chǔ)于存儲(chǔ)器16中的數(shù)據(jù)形成數(shù)據(jù)流而形成。在其它實(shí)例中,狀態(tài)機(jī)引擎14可經(jīng)配置以辨識(shí)拼寫某一字的字符序列、規(guī)定基因的遺傳堿基對(duì)序列、圖片或視頻文件中形成圖像的一部分的位序列、可執(zhí)行文件中形成程序的一部分的位序列或者音頻文件中形成歌曲或口語(yǔ)短語(yǔ)的一部分的位序列。將分析的數(shù)據(jù)流可包含呈二進(jìn)制格式或其它格式(例如,十進(jìn)制、ascii等)的多個(gè)數(shù)據(jù)位。所述流可編碼具有單個(gè)數(shù)字或多個(gè)數(shù)字(例如,數(shù)個(gè)二進(jìn)制數(shù)字)的數(shù)據(jù)。

如將了解,系統(tǒng)10可包含存儲(chǔ)器16。存儲(chǔ)器16可包含易失性存儲(chǔ)器,例如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、同步dram(sdram)、雙倍數(shù)據(jù)速率dram(ddrsdram)、ddr2sdram、ddr3sdram等。存儲(chǔ)器16還可包含用以連同易失性存儲(chǔ)器一起使用的非易失性存儲(chǔ)器,例如只讀存儲(chǔ)器(rom)、pc-ram、硅-氧化物-氮化物-氧化物-硅(sonos)存儲(chǔ)器、金屬-氧化物-氮化物-氧化物-硅(monos)存儲(chǔ)器、基于多晶硅浮動(dòng)?xùn)艠O的存儲(chǔ)器及/或各種架構(gòu)的其它類型的快閃存儲(chǔ)器(例如,“與非”存儲(chǔ)器、“或非”存儲(chǔ)器等)。存儲(chǔ)器16可包含可提供將由狀態(tài)機(jī)引擎14分析的數(shù)據(jù)的一或多個(gè)存儲(chǔ)器裝置,例如dram裝置。此類裝置可稱為或包含固態(tài)驅(qū)動(dòng)器(ssd)、multimediamediacard(mmc)、securedigital(sd)卡、compactflash(cf)卡或任何其它適合裝置。此外,應(yīng)了解,此類裝置可經(jīng)由任何適合接口(例如通用串行總線(usb)、外圍組件互連(pci)、高速pci(pci-e)、小型計(jì)算機(jī)系統(tǒng)接口(scsi)、ieee1394(火線(firewire))或任何其它適合接口)耦合到系統(tǒng)10。為促進(jìn)存儲(chǔ)器16(例如快閃存儲(chǔ)器裝置)的操作,系統(tǒng)10可包含存儲(chǔ)器控制器(未圖解說(shuō)明)。如將了解,所述存儲(chǔ)器控制器可為獨(dú)立裝置或者其可與處理器12成整體。另外,系統(tǒng)10可包含外部存儲(chǔ)裝置18,例如磁性存儲(chǔ)裝置。所述外部存儲(chǔ)裝置也可將輸入數(shù)據(jù)提供到狀態(tài)機(jī)引擎14。

系統(tǒng)10可包含若干個(gè)額外元件。例如,編譯器20可用以編程狀態(tài)機(jī)引擎14,如關(guān)于圖8所更詳細(xì)描述。輸入裝置22也可耦合到處理器12以允許用戶將數(shù)據(jù)輸入到系統(tǒng)10中。例如,輸入裝置22可用以將數(shù)據(jù)輸入到存儲(chǔ)器16中以供稍后由狀態(tài)機(jī)引擎14分析。輸入裝置22可包含(例如)按鈕、交換元件、鍵盤、光筆、手寫筆、鼠標(biāo)及/或話音辨識(shí)系統(tǒng)。輸出裝置24(例如顯示器)也可耦合到處理器12。顯示器24可包含(舉例來(lái)說(shuō))lcd、crt、led及/或音頻顯示器。其系統(tǒng)還可包含用于與網(wǎng)絡(luò)(例如因特網(wǎng))介接的網(wǎng)絡(luò)接口裝置26,例如網(wǎng)絡(luò)接口卡(nic)。如將了解,系統(tǒng)10可取決于系統(tǒng)10的應(yīng)用而包含許多其它組件。

圖2到5圖解說(shuō)明fsm晶格30的實(shí)例。在一實(shí)例中,fsm晶格30包括塊32的陣列。如將描述,每一塊32可包含對(duì)應(yīng)于fsm中的多個(gè)狀態(tài)的多個(gè)可選擇性耦合硬件元件(例如,可編程元件及/或?qū)S迷?。類似于fsm中的狀態(tài),硬件元件可分析輸入流且基于所述輸入流而激活下游硬件元件。

可編程元件可經(jīng)編程以實(shí)施許多不同功能。例如,所述可編程元件可包含以層次方式組織成若干行38(展示于圖3及4中)及若干塊32(展示于圖2及3中)的狀態(tài)機(jī)元件(sme)34、36(展示于圖5中)。為了在以層次方式組織的sme34、36之間路由信號(hào),可使用可編程交換元件的層次,其包含塊間交換元件40(展示于圖2及3中)、塊內(nèi)交換元件42(展示于圖3及4中)及行內(nèi)交換元件44(展示于圖4中)。

如下文所描述,交換元件可包含路由結(jié)構(gòu)及緩沖器。sme34、36可對(duì)應(yīng)于由fsm晶格30實(shí)施的fsm的狀態(tài)??赏ㄟ^(guò)使用如下文所描述的可編程交換元件而將sme34、36耦合在一起。因此,可通過(guò)編程sme34、36以對(duì)應(yīng)于狀態(tài)的功能且通過(guò)將sme34、36選擇性地耦合在一起以對(duì)應(yīng)于fsm中的狀態(tài)之間的轉(zhuǎn)變而在fsm晶格30上實(shí)施fsm。

圖2圖解說(shuō)明fsm晶格30的實(shí)例的總體視圖。fsm晶格30包含可與可編程塊間交換元件40選擇性地耦合在一起的多個(gè)塊32。塊間交換元件40可包含導(dǎo)體46(例如,導(dǎo)線、跡線等)以及緩沖器48及50。在一實(shí)例中,包含緩沖器48及50以控制去往/來(lái)自塊間交換元件40的信號(hào)的連接及時(shí)序。如下文所進(jìn)一步描述,可提供緩沖器48以緩沖在塊32之間發(fā)送的數(shù)據(jù),而可提供緩沖器50以緩沖在塊間交換元件40之間發(fā)送的數(shù)據(jù)。另外,塊32可選擇性地耦合到用于接收信號(hào)(例如,數(shù)據(jù))且將數(shù)據(jù)提供到塊32的輸入塊52(例如,數(shù)據(jù)輸入端口)。塊32還可選擇性地耦合到用于將信號(hào)從塊32提供到外部裝置(例如,另一fsm晶格30)的輸出塊54(例如,輸出端口)。fsm晶格30還可包含編程接口56以將程序(例如,圖像)加載到fsm晶格30上。所述圖像可編程(例如,設(shè)定)sme34、36的狀態(tài)。也就是說(shuō),所述圖像可將sme34、36配置為以某一方式對(duì)輸入塊52處的給定輸入做出反應(yīng)。舉例來(lái)說(shuō),sme34、36可經(jīng)設(shè)定以在于輸入塊52處接收到字符‘a(chǎn)’時(shí)輸出高信號(hào)。

在一實(shí)例中,可將輸入塊52、輸出塊54及/或編程接口56實(shí)施為寄存器以使得向所述寄存器的寫入將數(shù)據(jù)提供到相應(yīng)元件或從所述寄存器的讀取從所述相應(yīng)元件提供數(shù)據(jù)。因此,來(lái)自存儲(chǔ)于對(duì)應(yīng)于編程接口56的寄存器中的圖像的位可加載于sme34、36上。雖然圖2圖解說(shuō)明塊32、輸入塊52、輸出塊54與塊間交換元件40之間的某一數(shù)目個(gè)導(dǎo)體(例如,導(dǎo)線、跡線),但應(yīng)理解在其它實(shí)例中可使用更少或更多導(dǎo)體。

圖3圖解說(shuō)明塊32的實(shí)例。塊32可包含可與可編程塊內(nèi)交換元件42選擇性地耦合在一起的多個(gè)行38。另外,行38可借助塊間交換元件40選擇性地耦合到另一塊32內(nèi)的另一行38。行38包含組織成本文中稱為兩個(gè)一群組(got)60的若干對(duì)元件的多個(gè)sme34、36。在一實(shí)例中,塊32包括十六(16)個(gè)行38。

圖4圖解說(shuō)明行38的實(shí)例。got60可通過(guò)可編程行內(nèi)交換元件44選擇性地耦合到其它got60及行38內(nèi)的任何其它元件(例如,專用元件58)。got60也可借助塊內(nèi)交換元件42耦合到其它行38中的其它got60,或者借助塊間交換元件40耦合到其它塊32中的其它got60。在一實(shí)例中,got60具有第一輸入62及第二輸入64以及輸出66。第一輸入62耦合到got60的第一sme34且第二輸入62耦合到got60的第二sme34,如將參考圖5進(jìn)一步圖解說(shuō)明。

在一實(shí)例中,行38包含第一多個(gè)行互連導(dǎo)體68及第二多個(gè)行互連導(dǎo)體70。在一實(shí)例中,got60的輸入62、64可耦合到一或多個(gè)行互連導(dǎo)體68、70,且輸出66可耦合到一個(gè)行互連導(dǎo)體68、70。在一實(shí)例中,第一多個(gè)行互連導(dǎo)體68可耦合到行38內(nèi)的每一got60的每一sme34、36。第二多個(gè)行互連導(dǎo)體70可耦合到行38內(nèi)的每一got60的僅一個(gè)sme34、36,但無(wú)法耦合到got60的另一sme34、36。在一實(shí)例中,第二多個(gè)行互連導(dǎo)體70的第一半部可耦合到行38內(nèi)的sme34、36的第一半部(來(lái)自每一got60的一個(gè)sme34),且第二多個(gè)行互連導(dǎo)體70的第二半部可耦合到行38內(nèi)的sme34、36的第二半部(來(lái)自每一got60的另一sme34、36),如將關(guān)于圖5更佳地圖解說(shuō)明。第二多個(gè)行互連導(dǎo)體70與sme34、36之間的有限連接性在本文中稱為“奇偶”。在一實(shí)例中,行38還可包含專用元件58,例如計(jì)數(shù)器、可編程布爾邏輯元件、查找表、ram、現(xiàn)場(chǎng)可編程門陣列(fpga)、專用集成電路(asic)、可編程處理器(例如,微處理器)或用于執(zhí)行專用功能的其它元件。

在一實(shí)例中,專用元件58包括計(jì)數(shù)器(在本文中也稱為計(jì)數(shù)器58)。在一實(shí)例中,計(jì)數(shù)器58包括12位可編程遞減計(jì)數(shù)器。12位可編程計(jì)數(shù)器58具有計(jì)數(shù)輸入、復(fù)位輸入及零計(jì)數(shù)輸出。計(jì)數(shù)輸入在被斷言時(shí)使計(jì)數(shù)器58的值遞減1。復(fù)位輸入在被斷言時(shí)致使計(jì)數(shù)器58從相關(guān)聯(lián)寄存器加載初始值。對(duì)于12位計(jì)數(shù)器58來(lái)說(shuō),可加載多達(dá)12位的數(shù)目作為所述初始值。當(dāng)計(jì)數(shù)器58的值遞減到零(0)時(shí),斷言零計(jì)數(shù)輸出。計(jì)數(shù)器58也具有至少兩種模式,脈沖及保持。當(dāng)將計(jì)數(shù)器58設(shè)定為脈沖模式時(shí),在時(shí)鐘循環(huán)期間當(dāng)計(jì)數(shù)器58遞減到零時(shí)斷言零計(jì)數(shù)輸出,且在下一時(shí)鐘循環(huán)處不再斷言零計(jì)數(shù)輸出。當(dāng)將計(jì)數(shù)器58設(shè)定為保持模式時(shí),在時(shí)鐘循環(huán)期間當(dāng)計(jì)數(shù)器58遞減到零時(shí)斷言零計(jì)數(shù)輸出,且其保持經(jīng)斷言直到計(jì)數(shù)器58由斷言復(fù)位輸入而被復(fù)位為止。

在另一實(shí)例中,專用元件58包括布爾邏輯。在一些實(shí)例中,此布爾邏輯可用以從fsm晶格30中的終端狀態(tài)sme(對(duì)應(yīng)于fsm的終端節(jié)點(diǎn),如本文中稍后所論述)提取信息。所提取的信息可用以將狀態(tài)信息傳送到其它fsm晶格30及/或傳送用以重新編程fsm晶格30或重新編程另一fsm晶格30的編程信息。

圖5圖解說(shuō)明got60的實(shí)例。got60包含具有輸入62、64且使其輸出72、74耦合到“或”門76及3對(duì)1多路復(fù)用器78的第一sme34及第二sme36。3對(duì)1多路復(fù)用器78可經(jīng)設(shè)定以將got60的輸出66耦合到第一sme34、第二sme36或者“或”門76?!盎颉遍T76可用以將輸出72、74兩者耦合在一起以形成got60的共同輸出66。在一實(shí)例中,如上文所論述,第一sme34及第二sme36展現(xiàn)奇偶,其中第一sme34的輸入62可耦合到行互連件導(dǎo)體68中的一些行互連導(dǎo)體且第二sme36的輸入64可耦合到其它行互連件導(dǎo)體70。在一實(shí)例中,可通過(guò)設(shè)定交換元件79中的任一者或兩者而使got60內(nèi)的兩個(gè)sme34、36級(jí)聯(lián)及/或循環(huán)回到其自身。可通過(guò)將sme34、36的輸出72、74耦合到另一sme34、36的輸入62、64而將sme34、36級(jí)聯(lián)??赏ㄟ^(guò)將輸出72、74耦合到其自己的輸入62、64而使sme34、36循環(huán)回到其自身。因此,第一sme34的輸出72可不耦合到第一sme34的輸入62及第二sme36的輸入64中的任一者、耦合到其中的一者或其中的兩者。

在一實(shí)例中,狀態(tài)機(jī)元件34、36包括并聯(lián)耦合到檢測(cè)線82的多個(gè)存儲(chǔ)器單元80,例如通常用于動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)中的存儲(chǔ)器單元。一種此類存儲(chǔ)器單元80包括可設(shè)定到一數(shù)據(jù)狀態(tài)(例如對(duì)應(yīng)于高值或低值(例如,1或0)的數(shù)據(jù)狀態(tài))的存儲(chǔ)器單元。存儲(chǔ)器單元80的輸出耦合到檢測(cè)線82且到存儲(chǔ)器單元80的輸入基于數(shù)據(jù)流線84上的數(shù)據(jù)而接收信號(hào)。在一實(shí)例中,數(shù)據(jù)流線84上的輸入經(jīng)解碼以選擇存儲(chǔ)器單元80中的一者。選定存儲(chǔ)器單元80將其所存儲(chǔ)數(shù)據(jù)狀態(tài)作為輸出提供到檢測(cè)線82上。舉例來(lái)說(shuō),在輸入塊52處所接收的數(shù)據(jù)可提供到解碼器(未展示)且所述解碼器可選擇數(shù)據(jù)流線84中的一者。在一實(shí)例中,所述解碼器可將8位acsii字符轉(zhuǎn)換為256個(gè)數(shù)據(jù)流線84中的對(duì)應(yīng)1。

因此,當(dāng)存儲(chǔ)器單元80設(shè)定到高值且數(shù)據(jù)流線84上的數(shù)據(jù)對(duì)應(yīng)于存儲(chǔ)器單元80時(shí),存儲(chǔ)器單元80將高信號(hào)輸出到檢測(cè)線82。當(dāng)數(shù)據(jù)流線84上的數(shù)據(jù)對(duì)應(yīng)于存儲(chǔ)器單元80且存儲(chǔ)器單元80設(shè)定到低值時(shí),存儲(chǔ)器單元80將低信號(hào)輸出到檢測(cè)線82。檢測(cè)線82上的來(lái)自存儲(chǔ)器單元80的輸出由檢測(cè)單元86感測(cè)。

在一實(shí)例中,輸入線62、64上的信號(hào)將相應(yīng)檢測(cè)單元86設(shè)定到作用或非作用狀態(tài)。當(dāng)設(shè)定到非作用狀態(tài)時(shí),檢測(cè)單元86在相應(yīng)輸出72、74上輸出低信號(hào),而不管相應(yīng)檢測(cè)線82上的信號(hào)如何。當(dāng)設(shè)定到作用狀態(tài)時(shí),檢測(cè)單元86在從相應(yīng)sme34、36的存儲(chǔ)器單元82中的一者檢測(cè)到高信號(hào)時(shí)在相應(yīng)輸出線72、74上輸出高信號(hào)。當(dāng)處于作用狀態(tài)中時(shí),檢測(cè)單元86在來(lái)自相應(yīng)sme34、36的所有存儲(chǔ)器單元82的信號(hào)為低時(shí)在相應(yīng)輸出線72、74上輸出低信號(hào)。

在一實(shí)例中,sme34、36包含256個(gè)存儲(chǔ)器單元80且每一存儲(chǔ)器單元80耦合到不同數(shù)據(jù)流線84。因此,sme34、36可經(jīng)編程以在數(shù)據(jù)流線84中的選定一或多者在其上具有高信號(hào)時(shí)輸出高信號(hào)。舉例來(lái)說(shuō),sme34可將第一存儲(chǔ)器單元80(例如,位0)設(shè)定為高且將所有其它存儲(chǔ)器單元80(例如,位1到255)設(shè)定為低。當(dāng)相應(yīng)檢測(cè)單元86處于作用狀態(tài)中時(shí),sme34在對(duì)應(yīng)于位0的數(shù)據(jù)流線84在其上具有高信號(hào)時(shí)在輸出72上輸出高信號(hào)。在其它實(shí)例中,當(dāng)多個(gè)數(shù)據(jù)流線84中的一者在其上具有高信號(hào)時(shí),可通過(guò)將適當(dāng)存儲(chǔ)器單元80設(shè)定到高值來(lái)設(shè)定sme34以輸出高信號(hào)。

在一實(shí)例中,可通過(guò)從相關(guān)聯(lián)寄存器讀取位而將存儲(chǔ)器單元80設(shè)定到高值或低值。因此,可通過(guò)將編譯器20所創(chuàng)建的圖像存儲(chǔ)到寄存器中且將所述寄存器中的位加載到相關(guān)聯(lián)存儲(chǔ)器單元80中來(lái)編程sme34。在一實(shí)例中,編譯器20所創(chuàng)建的圖像包含高及低(例如,1及0)位的二進(jìn)制圖像。所述圖像可編程fsm晶格30以通過(guò)級(jí)聯(lián)sme34、36而使其作為fsm操作。舉例來(lái)說(shuō),可通過(guò)將檢測(cè)單元86設(shè)定到作用狀態(tài)而將第一sme34設(shè)定到作用狀態(tài)。第一sme34可經(jīng)設(shè)定以在對(duì)應(yīng)于位0的數(shù)據(jù)流線84在其上具有高信號(hào)時(shí)輸出高信號(hào)。第二sme36可最初設(shè)定到非作用狀態(tài),但可在作用時(shí)經(jīng)設(shè)定以在對(duì)應(yīng)于位1的數(shù)據(jù)流線84在其上具有高信號(hào)時(shí)輸出高信號(hào)??赏ㄟ^(guò)設(shè)定第一sme34的輸出72以耦合到第二sme36的輸入64來(lái)級(jí)聯(lián)第一sme34與第二sme36。因此,當(dāng)在對(duì)應(yīng)于位0的數(shù)據(jù)流線84上感測(cè)到高信號(hào)時(shí),第一sme34在輸出72上輸出高信號(hào)且將第二sme36的檢測(cè)單元86設(shè)定到作用狀態(tài)。當(dāng)在對(duì)應(yīng)于位1的數(shù)據(jù)流線84上感測(cè)到高信號(hào)時(shí),第二sme36在輸出74上輸出高信號(hào)以激活另一sme36或以供從fsm晶格30輸出。

在一實(shí)例中,在單個(gè)物理裝置上實(shí)施單個(gè)fsm晶格30,然而,在其它實(shí)例中可在單個(gè)物理裝置(例如,物理芯片)上實(shí)施兩個(gè)或兩個(gè)以上fsm晶格30。在一實(shí)例中,每一fsm晶格30可包含相異數(shù)據(jù)輸入塊52、相異輸出塊54、相異編程接口56及一組相異可編程元件。此外,每一組可編程元件可對(duì)其對(duì)應(yīng)數(shù)據(jù)輸入塊52處的數(shù)據(jù)做出反應(yīng)(例如,輸出高信號(hào)或低信號(hào))。舉例來(lái)說(shuō),對(duì)應(yīng)于第一fsm晶格30的第一組可編程元件可對(duì)對(duì)應(yīng)于第一fsm晶格30的第一數(shù)據(jù)輸入塊52處的數(shù)據(jù)做出反應(yīng)。對(duì)應(yīng)于第二fsm晶格30的第二組可編程元件可對(duì)對(duì)應(yīng)于第二fsm晶格30的第二數(shù)據(jù)輸入塊52做出反應(yīng)。因此,每一fsm晶格30包含一組可編程元件,其中不同組的可編程元件可對(duì)不同輸入數(shù)據(jù)做出反應(yīng)。類似地,每一fsm晶格30及每一對(duì)應(yīng)組的可編程元件可提供相異輸出。在一些實(shí)例中,來(lái)自第一fsm晶格30的輸出塊54可耦合到第二fsm晶格30的輸入塊52以使得第二fsm晶格30的輸入數(shù)據(jù)可包含來(lái)自一系列fsm晶格30的層次式布置中的第一fsm晶格30的輸出數(shù)據(jù)。

在一實(shí)例中,用于加載到fsm晶格30上的圖像包括用于配置fsm晶格30內(nèi)的可編程元件、可編程交換元件及專用元件的多個(gè)信息位。在一實(shí)例中,所述圖像可加載到fsm晶格30上以編程fsm晶格30以基于某些輸入而提供所要輸出。輸出塊54可基于可編程元件對(duì)數(shù)據(jù)輸入塊52處的數(shù)據(jù)的反應(yīng)而提供來(lái)自fsm晶格30的輸出。來(lái)自輸出塊54的輸出可包含指示給定型式的匹配的單個(gè)位、包括指示與多個(gè)型式的匹配及不匹配的多個(gè)位的字及對(duì)應(yīng)于所有或某些可編程元件在給定時(shí)刻的狀態(tài)的狀態(tài)向量。如所描述,若干個(gè)fsm晶格30可包含于狀態(tài)機(jī)引擎(例如狀態(tài)機(jī)引擎14)中以執(zhí)行數(shù)據(jù)分析,例如型式辨識(shí)(例如,語(yǔ)音辨識(shí)、圖像辨識(shí)等)、信號(hào)處理、成像、計(jì)算機(jī)視覺(jué)、密碼編譯及其它。

圖6圖解說(shuō)明可由fsm晶格30實(shí)施的有限狀態(tài)機(jī)(fsm)的實(shí)例性模型。fsm晶格30可配置(例如,編程)為fsm的物理實(shí)施方案。fsm可表示為含有一或多個(gè)根節(jié)點(diǎn)92的圖90(例如,有向圖、無(wú)向圖、偽圖)。除了根節(jié)點(diǎn)92之外,所述fsm還可由經(jīng)由一或多個(gè)邊緣98連接到根節(jié)點(diǎn)92及其它標(biāo)準(zhǔn)節(jié)點(diǎn)94的數(shù)個(gè)標(biāo)準(zhǔn)節(jié)點(diǎn)94及終端節(jié)點(diǎn)96構(gòu)成。節(jié)點(diǎn)92、94、96對(duì)應(yīng)于所述fsm中的狀態(tài)。邊緣98對(duì)應(yīng)于所述狀態(tài)之間的轉(zhuǎn)變。

節(jié)點(diǎn)92、94、96中的每一者可處于作用或非作用狀態(tài)中。當(dāng)處于非作用狀態(tài)中時(shí),節(jié)點(diǎn)92、94、96不對(duì)輸入數(shù)據(jù)做出反應(yīng)(例如,響應(yīng))。當(dāng)處于作用狀態(tài)中時(shí),節(jié)點(diǎn)92、94、96可對(duì)輸入數(shù)據(jù)做出反應(yīng)。上游節(jié)點(diǎn)92、94可在輸入數(shù)據(jù)匹配由上游節(jié)點(diǎn)92、94與在所述節(jié)點(diǎn)下游的節(jié)點(diǎn)94、96之間的邊緣98規(guī)定的準(zhǔn)則時(shí)通過(guò)激活下游節(jié)點(diǎn)94、96而對(duì)所述輸入數(shù)據(jù)做出反應(yīng)。舉例來(lái)說(shuō),規(guī)定字符‘b’的第一節(jié)點(diǎn)94將在第一節(jié)點(diǎn)94為作用的且字符‘b’被接收為輸入數(shù)據(jù)時(shí)激活通過(guò)邊緣98連接到第一節(jié)點(diǎn)94的第二節(jié)點(diǎn)94。如本文所使用,“上游”是指一或多個(gè)節(jié)點(diǎn)之間的關(guān)系,其中在一或多個(gè)其它節(jié)點(diǎn)上游(或在循環(huán)或反饋配置的情況中,在其自身上游)的第一節(jié)點(diǎn)是指其中所述第一節(jié)點(diǎn)可激活所述一或多個(gè)其它節(jié)點(diǎn)(或在循環(huán)的情況中,可激活其自身)的情形。類似地,“下游”是指其中在一或多個(gè)其它節(jié)點(diǎn)下游(或在循環(huán)的情況中,在其自身下游)的第一節(jié)點(diǎn)可由所述一或多個(gè)其它節(jié)點(diǎn)激活(或在循環(huán)的情況中,可由其自身激活)的關(guān)系。因此,本文中使用術(shù)語(yǔ)“上游”及“下游”來(lái)指一或多個(gè)節(jié)點(diǎn)之間的關(guān)系,但這些術(shù)語(yǔ)不排除循環(huán)或節(jié)點(diǎn)當(dāng)中的其它非線性路徑的使用。

在圖90中,可最初激活根節(jié)點(diǎn)92且根節(jié)點(diǎn)92可在輸入數(shù)據(jù)匹配來(lái)自根節(jié)點(diǎn)92的邊緣98時(shí)激活下游節(jié)點(diǎn)94。節(jié)點(diǎn)94可在輸入數(shù)據(jù)匹配來(lái)自節(jié)點(diǎn)94的邊緣98時(shí)激活節(jié)點(diǎn)96??稍诮邮盏捷斎霐?shù)據(jù)時(shí)以此方式激活貫穿圖90的節(jié)點(diǎn)94、96。終端節(jié)點(diǎn)96對(duì)應(yīng)于輸入數(shù)據(jù)對(duì)所關(guān)注序列的匹配。因此,終端節(jié)點(diǎn)96的激活指示已接收到所關(guān)注序列作為輸入數(shù)據(jù)。在實(shí)施型式辨識(shí)功能的fsm晶格30的情景中,到達(dá)終端節(jié)點(diǎn)96可指示已在輸入數(shù)據(jù)中檢測(cè)到特定所關(guān)注型式。

在一實(shí)例中,每一根節(jié)點(diǎn)92、標(biāo)準(zhǔn)節(jié)點(diǎn)94及終端節(jié)點(diǎn)96可對(duì)應(yīng)于fsm晶格30中的可編程元件。每一邊緣98可對(duì)應(yīng)于所述可編程元件之間的連接。因此,轉(zhuǎn)變到另一標(biāo)準(zhǔn)節(jié)點(diǎn)94或終端節(jié)點(diǎn)96(例如,具有連接到另一標(biāo)準(zhǔn)節(jié)點(diǎn)94或終端節(jié)點(diǎn)96的邊緣98)的標(biāo)準(zhǔn)節(jié)點(diǎn)94對(duì)應(yīng)于轉(zhuǎn)變到另一可編程元件(例如,將輸出提供到另一可編程元件)的可編程元件。在一些實(shí)例中,根節(jié)點(diǎn)92不具有對(duì)應(yīng)可編程元件。

當(dāng)編程fsm晶格30時(shí),可編程元件中的每一者也可處于作用或非作用狀態(tài)中。給定可編程元件在非作用時(shí)不對(duì)對(duì)應(yīng)數(shù)據(jù)輸入塊52處的輸入數(shù)據(jù)做出反應(yīng)。作用可編程元件可對(duì)數(shù)據(jù)輸入塊52處的輸入數(shù)據(jù)做出反應(yīng)且可在所述輸入數(shù)據(jù)匹配所述可編程元件的設(shè)定時(shí)激活下游可編程元件。當(dāng)可編程元件對(duì)應(yīng)于終端節(jié)點(diǎn)96時(shí),所述可編程元件可耦合到輸出塊54以將匹配的指示提供到外部裝置。

經(jīng)由編程接口56加載到fsm晶格30上的圖像可配置可編程元件及專用元件以及可編程元件與專用元件之間的連接,以使得基于對(duì)數(shù)據(jù)輸入塊52處的數(shù)據(jù)的反應(yīng)而經(jīng)由節(jié)點(diǎn)的循序激活來(lái)實(shí)施所要fsm。在一實(shí)例中,可編程元件保持作用達(dá)單個(gè)數(shù)據(jù)循環(huán)(例如,單個(gè)字符、一組字符、單個(gè)時(shí)鐘循環(huán))且然后變得非作用,除非被上游可編程元件重新激活。

可認(rèn)為終端節(jié)點(diǎn)96存儲(chǔ)經(jīng)壓縮過(guò)去事件歷史。舉例來(lái)說(shuō),到達(dá)終端節(jié)點(diǎn)96所需的輸入數(shù)據(jù)的一或多個(gè)型式可由所述終端節(jié)點(diǎn)96的激活表示。在一實(shí)例中,終端節(jié)點(diǎn)96所提供的輸出是二進(jìn)制的,也就是說(shuō),所述輸出指示是否已匹配所關(guān)注型式。圖90中終端節(jié)點(diǎn)96對(duì)標(biāo)準(zhǔn)節(jié)點(diǎn)94的比率可相當(dāng)小。換句話說(shuō),雖然在fsm中可存在高復(fù)雜度,但相比之下fsm的輸出可為小的。

在一實(shí)例中,fsm晶格30的輸出可包括狀態(tài)向量。所述狀態(tài)向量包括fsm晶格30的可編程元件的狀態(tài)(例如,經(jīng)激活或未經(jīng)激活)。在一實(shí)例中,所述狀態(tài)向量包含對(duì)應(yīng)于終端節(jié)點(diǎn)96的可編程元件的狀態(tài)。因此,所述輸出可包含圖90的所有終端節(jié)點(diǎn)96所提供的指示的集合。所述狀態(tài)向量可表示為字,其中每一終端節(jié)點(diǎn)96所提供的二進(jìn)制指示包括所述字的一個(gè)位。終端節(jié)點(diǎn)96的此編碼可提供fsm晶格30的檢測(cè)狀態(tài)(例如,是否已檢測(cè)到所關(guān)注序列及已檢測(cè)到何種所關(guān)注序列)的有效指示。在另一實(shí)例中,狀態(tài)向量可包含所有或一子組的可編程元件的狀態(tài),而不論所述可編程元件是否對(duì)應(yīng)于終端節(jié)點(diǎn)96。

如上文所提及,fsm晶格30可經(jīng)編程以實(shí)施型式辨識(shí)功能。舉例來(lái)說(shuō),fsm晶格30可經(jīng)配置以辨識(shí)輸入數(shù)據(jù)中的一或多個(gè)數(shù)據(jù)序列(例如,簽名、型式)。當(dāng)fsm晶格30辨識(shí)出所關(guān)注數(shù)據(jù)序列時(shí),可在輸出塊54處提供所述辨識(shí)的指示。在一實(shí)例中,型式辨識(shí)可辨識(shí)符號(hào)串(例如,ascii字符)以;(舉例來(lái)說(shuō))識(shí)別網(wǎng)絡(luò)數(shù)據(jù)中的惡意軟件或其它信息。

圖7圖解說(shuō)明層次式結(jié)構(gòu)100的實(shí)例,其中fsm晶格30的兩個(gè)層級(jí)串行地耦合且用以分析數(shù)據(jù)。具體來(lái)說(shuō),在所圖解說(shuō)明的實(shí)施例中,層次式結(jié)構(gòu)100包含串行布置的第一fsm晶格30a及第二fsm晶格30b。每一fsm晶格30包含用以接收數(shù)據(jù)輸入的相應(yīng)數(shù)據(jù)輸入塊52、用以接收編程信號(hào)的編程接口塊56及輸出塊54。

第一fsm晶格30a經(jīng)配置以在數(shù)據(jù)輸入塊處接收輸入數(shù)據(jù)(舉例來(lái)說(shuō),原始數(shù)據(jù))。第一fsm晶格30a如上文所描述對(duì)所述輸入數(shù)據(jù)做出反應(yīng)且在輸出塊處提供輸出。來(lái)自第一fsm晶格30a的輸出發(fā)送到第二fsm晶格30b的數(shù)據(jù)輸入塊。第二fsm晶格30b可然后基于由第一fsm晶格30a提供的輸出而做出反應(yīng)且提供層次式結(jié)構(gòu)100的對(duì)應(yīng)輸出信號(hào)102。兩個(gè)fsm晶格30a與30b的此串行層次式耦合提供用以將關(guān)于過(guò)去事件的信息以經(jīng)壓縮字從第一fsm晶格30a傳送到第二fsm晶格30b的手段。所傳送的信息可實(shí)際上是由第一fsm晶格30a記錄的復(fù)雜事件(例如,所關(guān)注序列)的概要。

圖7中所展示的fsm晶格30a、30b的兩層級(jí)層次100允許兩個(gè)獨(dú)立程序基于同一數(shù)據(jù)流而操作。兩級(jí)層次可類似于建模為不同區(qū)域的生物大腦中的視覺(jué)辨識(shí)。在此模型下,所述區(qū)域?qū)嶋H上是不同型式辨識(shí)引擎,每一型式辨識(shí)引擎執(zhí)行類似計(jì)算功能(型式匹配)但使用不同程序(簽名)。通過(guò)將多個(gè)fsm晶格30a、30b連接在一起,可獲得關(guān)于數(shù)據(jù)流輸入的增加的知識(shí)。

所述層次的第一層級(jí)(由第一fsm晶格30a實(shí)施)可(舉例來(lái)說(shuō))直接對(duì)原始數(shù)據(jù)流執(zhí)行處理。也就是說(shuō),可在第一fsm晶格30a的輸入塊52處接收原始數(shù)據(jù)流且第一fsm晶格30a的可編程元件可對(duì)所述原始數(shù)據(jù)流做出反應(yīng)。所述層次的第二層級(jí)(由第二fsm晶格30b實(shí)施)可處理來(lái)自所述第一層級(jí)的輸出。也就是說(shuō),第二fsm晶格30b在第二fsm晶格30b的輸入塊52處接收來(lái)自第一fsm晶格30a的輸出塊54的輸出且第二fsm晶格30b的可編程元件可對(duì)第一fsm晶格30a的輸出做出反應(yīng)。因此,在此實(shí)例中,第二fsm晶格30b不將原始數(shù)據(jù)流接收為輸入,而是接收如第一fsm晶格30a所確定由原始數(shù)據(jù)流匹配的所關(guān)注型式的指示。第二fsm晶格30b可實(shí)施辨識(shí)來(lái)自第一fsm晶格30a的輸出數(shù)據(jù)流中的型式的fsm。

圖8圖解說(shuō)明用于編譯器將源代碼轉(zhuǎn)換成經(jīng)配置以編程fsm晶格(例如晶格30)的圖像以實(shí)施fsm的方法110的實(shí)例。方法110包含將源代碼剖析成語(yǔ)法樹(框112),將所述語(yǔ)法樹轉(zhuǎn)換成自動(dòng)機(jī)(框114),優(yōu)化所述自動(dòng)機(jī)(框116),將所述自動(dòng)機(jī)轉(zhuǎn)換成網(wǎng)表(框118),將所述網(wǎng)表放置于硬件上(框120),路由所述網(wǎng)表(框122)及公布所得圖像(框124)。

在一實(shí)例中,編譯器20包含允許軟件開發(fā)者創(chuàng)建用于在fsm晶格30上實(shí)施fsm的圖像的應(yīng)用編程接口(api)。編譯器20提供用以將源代碼中的輸入正則表達(dá)式集轉(zhuǎn)換成經(jīng)配置以編程fsm晶格30的圖像的方法??赏ㄟ^(guò)用于具有馮·諾伊曼(vonneumann)架構(gòu)的計(jì)算機(jī)的指令來(lái)實(shí)施編譯器20。這些指令可致使計(jì)算機(jī)上的處理器12實(shí)施編譯器20的功能。舉例來(lái)說(shuō),所述指令在由處理器12執(zhí)行時(shí)可致使處理器12對(duì)可由處理器12存取的源代碼執(zhí)行如框112、114、116、118、120、122及124中所描述的動(dòng)作。

在一實(shí)例中,源代碼描述用于識(shí)別符號(hào)群組內(nèi)的符號(hào)型式的搜索串。為了描述搜索串,源代碼可包含多個(gè)正則表達(dá)式(regex)。正則表達(dá)式可為用于描述符號(hào)搜索型式的串。正則表達(dá)式廣泛地用于各種計(jì)算機(jī)領(lǐng)域中,例如程序設(shè)計(jì)語(yǔ)言、文本編輯器、網(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í)例中,編譯器可支持多種不同源代碼語(yǔ)言以用于實(shí)施包含perl(例如,perl兼容正則表達(dá)式(pcre))、php、java及.net語(yǔ)言的正則表達(dá)式。

在框112處,編譯器20可剖析源代碼以形成關(guān)系連接的運(yùn)算符的布置,其中不同類型的運(yùn)算符對(duì)應(yīng)于源代碼所實(shí)施的不同函數(shù)(例如,源代碼中的正則表達(dá)式所實(shí)施的不同函數(shù))。剖析源代碼可創(chuàng)建所述源代碼的類屬表示。在一實(shí)例中,所述類屬表示包括源代碼中的正則表達(dá)式的經(jīng)編碼表示,其呈稱作語(yǔ)法樹的樹形圖的形式。本文所述的實(shí)例涉及作為語(yǔ)法樹(還稱作“抽象語(yǔ)法樹”)的布置,然而在其它實(shí)例中可使用具體語(yǔ)法樹或其它布置。

如上文所提及,由于編譯器20可支持源代碼的多種語(yǔ)言,因此不管語(yǔ)言如何剖析均將源代碼轉(zhuǎn)換成非語(yǔ)言特定表示(例如,語(yǔ)法樹)。因此,由編譯器20進(jìn)行的進(jìn)一步處理(框114、116、118、120)可從共同輸入結(jié)構(gòu)起作用而不管源代碼的語(yǔ)言如何。

如上所述,語(yǔ)法樹包含關(guān)系連接的多個(gè)運(yùn)算符。語(yǔ)法樹可包含多種不同類型的運(yùn)算符。也就是說(shuō),不同運(yùn)算符可對(duì)應(yīng)于源代碼中的正則表達(dá)式所實(shí)施的不同函數(shù)。

在框114處,將語(yǔ)法樹轉(zhuǎn)換成自動(dòng)機(jī)。自動(dòng)機(jī)包括fsm的軟件模型且可因此分類為確定性或非確定性。確定性自動(dòng)機(jī)在給定時(shí)間具有單個(gè)執(zhí)行路徑,而非確定性自動(dòng)機(jī)具有多個(gè)同時(shí)執(zhí)行路徑。所述自動(dòng)機(jī)包括多個(gè)狀態(tài)。為了將語(yǔ)法樹轉(zhuǎn)換成自動(dòng)機(jī),將語(yǔ)法樹中的運(yùn)算符及運(yùn)算符之間的關(guān)系轉(zhuǎn)換成狀態(tài),其中所述狀態(tài)之間具有轉(zhuǎn)變。在一實(shí)例中,可部分地基于fsm晶格30的硬件而轉(zhuǎn)換所述自動(dòng)機(jī)。

在一實(shí)例中,用于自動(dòng)機(jī)的輸入符號(hào)包含字母、數(shù)字0到9及其它可打印字符的符號(hào)。在一實(shí)例中,輸入符號(hào)由字節(jié)值0到255(包含0及255)表示。在一實(shí)例中,自動(dòng)機(jī)可表示為有向圖,其中所述圖的節(jié)點(diǎn)對(duì)應(yīng)于狀態(tài)集。在一實(shí)例中,輸入符號(hào)α(即,δ(p,α))上從狀態(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ī)所辨識(shí)(例如,匹配)的語(yǔ)言是當(dāng)依序輸入到所述自動(dòng)機(jī)中時(shí)將到達(dá)最終狀態(tài)的所有可能字符串的集。所述自動(dòng)機(jī)所辨識(shí)的語(yǔ)言中的每一串追蹤從開始狀態(tài)到一或多個(gè)最終狀態(tài)的路徑。

在框116處,在構(gòu)造自動(dòng)機(jī)之后,優(yōu)化所述自動(dòng)機(jī)以除其它之外還減小其復(fù)雜度及大小??赏ㄟ^(guò)組合冗余狀態(tài)來(lái)優(yōu)化所述自動(dòng)機(jī)。

在框118處,將經(jīng)優(yōu)化的自動(dòng)機(jī)轉(zhuǎn)換成網(wǎng)表。將所述自動(dòng)機(jī)轉(zhuǎn)換成網(wǎng)表將所述自動(dòng)機(jī)的每一狀態(tài)映射到fsm晶格30上的硬件元件(例如,sme34、36,其它元件)并確定所述硬件元件之間的連接。

在框120處,放置網(wǎng)表以選擇對(duì)應(yīng)于所述網(wǎng)表的每一節(jié)點(diǎn)的目標(biāo)裝置的特定硬件元件(例如,sme34、36,專用元件58)。在一實(shí)例中,放置基于fsm晶格30的一般輸入及輸出約束而選擇每一特定硬件元件。

在框122處,路由所放置的網(wǎng)表以確定用于可編程交換元件(例如,塊間交換元件40、塊內(nèi)交換元件42及行內(nèi)交換元件44)的設(shè)定,以便將選定硬件元件耦合在一起以實(shí)現(xiàn)網(wǎng)表描述的連接。在一實(shí)例中,通過(guò)確定fsm晶格30的將用以連接選定硬件元件及用于可編程交換元件的設(shè)定的特定導(dǎo)體來(lái)確定用于可編程交換元件的設(shè)定。相比于框120處的放置,路由可能考慮硬件元件之間的連接的更特定限制。因此,假定有對(duì)fsm晶格30上的導(dǎo)體的實(shí)際限制,路由可調(diào)整如通過(guò)全局放置所確定的所述硬件元件中的一些硬件元件的位置以便做出適當(dāng)連接。

一旦網(wǎng)表經(jīng)放置及路由,便可將所述經(jīng)放置及路由的網(wǎng)表轉(zhuǎn)換成用于編程fsm晶格30的多個(gè)位。所述多個(gè)位在本文中稱作圖像。

在框124處,由編譯器20公布圖像。所述圖像包括用于編程fsm晶格30的特定硬件元件的多個(gè)位。在其中所述圖像包括多個(gè)位(例如,0及1)的實(shí)施例中,所述圖像可稱為二進(jìn)制圖像??蓪⑺鑫患虞d到fsm晶格30上以編程sme34、36、專用元件58及可編程交換元件的狀態(tài),以使得經(jīng)編程fsm晶格30實(shí)施具有源代碼所描述的功能性的fsm。放置(框120)及路由(框122)可將fsm晶格30中的特定位置處的特定硬件元件映射到自動(dòng)機(jī)中的特定狀態(tài)。因此,所述圖像中的位可編程特定硬件元件以實(shí)施所要功能。在一實(shí)例中,可通過(guò)將機(jī)器代碼保存到計(jì)算機(jī)可讀媒體來(lái)公布所述圖像。在另一實(shí)例中,可通過(guò)在顯示裝置上顯示所述圖像來(lái)公布所述圖像。在又一實(shí)例中,可通過(guò)將所述圖像發(fā)送到另一裝置(例如用于將所述圖像加載到fsm晶格30上的編程裝置)來(lái)公布所述圖像。在再一實(shí)例中,可通過(guò)將所述圖像加載到fsm晶格(例如,fsm晶格30)上來(lái)公布所述圖像。

在一實(shí)例中,可通過(guò)將位值從圖像直接加載到sme34、36及其它硬件元件或通過(guò)將圖像加載到一或多個(gè)寄存器中且然后將所述位值從所述寄存器寫入到sme34、36及其它硬件元件來(lái)將所述圖像加載到fsm晶格30上。在一實(shí)例中,fsm晶格30的硬件元件(例如,sme34、36、專用元件58、可編程交換元件40、42、44)經(jīng)存儲(chǔ)器映射以使得編程裝置及/或計(jì)算機(jī)可通過(guò)將所述圖像寫入到一或多個(gè)存儲(chǔ)器地址而將所述圖像加載到fsm晶格30上。

本文中所描述的方法實(shí)例可為至少部分地機(jī)器或計(jì)算機(jī)實(shí)施的。一些實(shí)例可包含用指令編碼的計(jì)算機(jī)可讀媒體或機(jī)器可讀媒體,所述指令可操作以配置電子裝置以執(zhí)行如在以上實(shí)例中所述的方法。此類方法的實(shí)施方案可包含代碼,例如微碼、匯編語(yǔ)言代碼、高級(jí)語(yǔ)言代碼等。此代碼可包含用于執(zhí)行各種方法的計(jì)算機(jī)可讀指令。所述代碼可形成計(jì)算機(jī)程序產(chǎn)品的部分。此外,所述代碼可在執(zhí)行期間或在其它時(shí)間有形地存儲(chǔ)于一或多個(gè)易失性或非易失性計(jì)算機(jī)可讀媒體上。這些計(jì)算機(jī)可讀媒體可包含(但不限于)硬盤、可裝卸磁盤、可裝卸光盤(例如,壓縮光盤及數(shù)字視頻光盤)、盒式磁帶、存儲(chǔ)卡或存儲(chǔ)棒、隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)等。

現(xiàn)在參考圖9,其圖解說(shuō)明狀態(tài)機(jī)引擎14的實(shí)施例。如先前所描述,狀態(tài)機(jī)引擎14經(jīng)配置以經(jīng)由數(shù)據(jù)總線從源(例如存儲(chǔ)器16)接收數(shù)據(jù)。在所圖解說(shuō)明的實(shí)施例中,數(shù)據(jù)可經(jīng)由總線接口(例如ddr3總線接口130)發(fā)送到狀態(tài)機(jī)引擎14。ddr3總線接口130可能夠以大于或等于1千兆字節(jié)/秒的速率交換數(shù)據(jù)。如將了解,取決于將分析的數(shù)據(jù)的源,總線接口130可為用于將數(shù)據(jù)交換到數(shù)據(jù)源及將數(shù)據(jù)從數(shù)據(jù)源交換到狀態(tài)機(jī)引擎14的任何適合總線接口,例如“與非”快閃接口、pci接口等。如先前所描述,狀態(tài)機(jī)引擎14包含經(jīng)配置以分析數(shù)據(jù)的一或多個(gè)fsm晶格30。每一fsm晶格30可劃分成兩半晶格。在所圖解說(shuō)明的實(shí)施例中,每一半晶格可包含24ksme(例如,sme34、36)以使得晶格30包含48ksme。晶格30可包括如先前關(guān)于圖2到5所描述而布置的任何所要數(shù)目個(gè)sme。此外,盡管圖解說(shuō)明了僅一個(gè)fsm晶格30,但狀態(tài)機(jī)引擎14可包含多個(gè)fsm晶格30,如先前所描述。

將分析的數(shù)據(jù)可在總線接口130處接收且經(jīng)由若干個(gè)緩沖器及緩沖器接口傳輸?shù)絝sm晶格30。在所圖解說(shuō)明的實(shí)施例中,數(shù)據(jù)路徑包含數(shù)據(jù)緩沖器132、過(guò)程緩沖器134及排間(ir)總線與過(guò)程緩沖器接口136。數(shù)據(jù)緩沖器132經(jīng)配置以接收且暫時(shí)存儲(chǔ)將分析的數(shù)據(jù)。在一個(gè)實(shí)施例中,存在兩個(gè)數(shù)據(jù)緩沖器132(數(shù)據(jù)緩沖器a及數(shù)據(jù)緩沖器b)。可將數(shù)據(jù)存儲(chǔ)于兩個(gè)數(shù)據(jù)緩沖器132中的一者中,而從另一數(shù)據(jù)緩沖器132清空數(shù)據(jù)以供由fsm晶格30分析。在所圖解說(shuō)明的實(shí)施例中,數(shù)據(jù)緩沖器132可各自為32千字節(jié)。ir總線與過(guò)程緩沖器接口136可促進(jìn)到過(guò)程緩沖器134的數(shù)據(jù)傳送。ir總線與過(guò)程緩沖器136確保數(shù)據(jù)由fsm晶格30按次序處理。ir總線與過(guò)程緩沖器136可協(xié)調(diào)數(shù)據(jù)交換、時(shí)序信息、打包指令等以使得按正確次序接收及分析數(shù)據(jù)。通常,ir總線與過(guò)程緩沖器136允許經(jīng)由fsm晶格30的邏輯排并行分析多個(gè)數(shù)據(jù)集。

在所圖解說(shuō)明的實(shí)施例中,狀態(tài)機(jī)引擎14還包含解壓縮器138及壓縮器140以幫助經(jīng)由狀態(tài)機(jī)引擎14傳送大量數(shù)據(jù)。壓縮器140與解壓縮器138協(xié)同工作以使得可將數(shù)據(jù)壓縮以最小化數(shù)據(jù)傳送時(shí)間。通過(guò)壓縮將分析的數(shù)據(jù),可最小化總線利用時(shí)間?;谟删幾g器20提供的信息,可將屏蔽提供到狀態(tài)機(jī)引擎14以提供可能不對(duì)其使用狀態(tài)機(jī)的信息。壓縮器140及解壓縮器138還可經(jīng)配置以處置變化的突發(fā)長(zhǎng)度的數(shù)據(jù)。通過(guò)填補(bǔ)經(jīng)壓縮數(shù)據(jù)及包含關(guān)于每一經(jīng)壓縮區(qū)域何時(shí)結(jié)束的指示符,壓縮器140可經(jīng)由狀態(tài)機(jī)引擎14改進(jìn)總體處理速度。壓縮器140及解壓縮器138還可用以壓縮及解壓縮在由fsm晶格30分析之后的匹配結(jié)果數(shù)據(jù)。

如先前所描述,fsm晶格30的輸出可包括狀態(tài)向量。所述狀態(tài)向量包括fsm晶格30的可編程元件的狀態(tài)(例如,經(jīng)激活或未經(jīng)激活)。每一狀態(tài)向量可暫時(shí)存儲(chǔ)于狀態(tài)向量高速緩沖存儲(chǔ)器142中以供進(jìn)一步層次式處理及分析。也就是說(shuō),可存儲(chǔ)每一狀態(tài)機(jī)的狀態(tài)以使得最終狀態(tài)可用于進(jìn)一步分析,同時(shí)釋放狀態(tài)機(jī)以用于重新編程及/或新數(shù)據(jù)集的進(jìn)一步分析。如同典型高速緩沖存儲(chǔ)器,狀態(tài)向量高速緩沖存儲(chǔ)器允許存儲(chǔ)信息(此處,狀態(tài)向量)以供快速擷取及使用(此處,(例如)由fsm晶格30擷取及使用)。額外緩沖器(例如狀態(tài)向量存儲(chǔ)器緩沖器、狀態(tài)向量中間輸入緩沖器146及狀態(tài)向量中間輸出緩沖器148)可連同狀態(tài)向量高速緩沖存儲(chǔ)器142一起利用以適應(yīng)狀態(tài)向量的快速分析及存儲(chǔ),同時(shí)遵守經(jīng)由狀態(tài)機(jī)引擎14的包傳輸協(xié)議。

一旦由fsm晶格30產(chǎn)生所關(guān)注結(jié)果,便可將匹配結(jié)果存儲(chǔ)于匹配結(jié)果存儲(chǔ)器150中。也就是說(shuō),可將指示匹配(例如,檢測(cè)到所關(guān)注型式)的“匹配向量”存儲(chǔ)于匹配結(jié)果存儲(chǔ)器150中。舉例來(lái)說(shuō),然后可將匹配結(jié)果發(fā)送到匹配緩沖器152以供經(jīng)由總線接口130傳輸?shù)教幚砥?2。如先前所描述,可壓縮匹配結(jié)果。

也可在狀態(tài)機(jī)引擎14中提供額外寄存器及緩沖器。例如,狀態(tài)機(jī)引擎14可包含控制與狀態(tài)寄存器154。另外,可提供恢復(fù)與編程緩沖器156以便最初用于編程fsm晶格30或在分析期間恢復(fù)fsm晶格30中的機(jī)器的狀態(tài)。類似地,也可提供保存與修復(fù)映射緩沖器158以用于存儲(chǔ)用于設(shè)置及使用的保存與修復(fù)映射。

圖10更詳細(xì)地圖解說(shuō)明圖5的檢測(cè)單元86。如先前所述,此檢測(cè)單元86可接收第一輸入62及第二輸入82。在一個(gè)實(shí)施例中,第一輸入62可為統(tǒng)一啟用輸入以作為用于檢測(cè)單元86的啟用信號(hào)而操作。如先前所論述,此輸入62可包含從耦合到行38中的got60的每一sme34的路由線接收的信號(hào)。另外,應(yīng)注意,行38中的got60的sme36中的等同檢測(cè)單元86也可接收為輸入62鏡像的輸入64作為統(tǒng)一啟用輸入以作為用于檢測(cè)單元86的啟用信號(hào)而操作。因此,輸入64可包含從耦合到行38中的got60的每一sme36的路由線接收的信號(hào)。因此,盡管下文將更詳細(xì)地論述sme34的檢測(cè)單元86,但應(yīng)注意sme36的檢測(cè)單元86將以實(shí)質(zhì)上類似方式操作。

如圖10中所圖解說(shuō)明,所述檢測(cè)單元可包含d觸發(fā)器160。此d觸發(fā)器可操作以接收統(tǒng)一啟用輸入62以及輸入162上的時(shí)鐘信號(hào)。因此,當(dāng)接收到輸入162(時(shí)鐘輸入)處的正邊緣時(shí),d觸發(fā)器160可在q輸出164上驅(qū)動(dòng)可為統(tǒng)一啟用輸入62(d輸入)的狀態(tài)的結(jié)果。以此方式,d觸發(fā)器160允許檢測(cè)單元86成為可僅在所規(guī)定時(shí)間輸出使用所述sme的存儲(chǔ)器單元80執(zhí)行的分析的結(jié)果的時(shí)鐘啟用的電路,如下文將論述。還應(yīng)注意,檢測(cè)單元86可包含可用以將q輸出164設(shè)定到高態(tài)有效信號(hào)的設(shè)定輸入166及可用以將q輸出164設(shè)定到低態(tài)有效信號(hào)的復(fù)位輸入168,而不管統(tǒng)一啟用輸入62或輸入162上的時(shí)鐘信號(hào)中的任一者的值如何。

圖10中的檢測(cè)單元86還可接收第二輸入82。如先前所論述,此輸入82可對(duì)應(yīng)于檢測(cè)線82。此檢測(cè)線82可載運(yùn)來(lái)自對(duì)應(yīng)于檢測(cè)單元86的sme34的一或多個(gè)存儲(chǔ)器單元80的分析結(jié)果(例如,匹配結(jié)果)。因此,選定存儲(chǔ)器單元80將其所存儲(chǔ)數(shù)據(jù)狀態(tài)作為輸出提供到檢測(cè)線82上,所述輸出然后作為分析結(jié)果傳輸?shù)綑z測(cè)單元86。檢測(cè)線82上的此結(jié)果可傳輸?shù)綑z測(cè)單元86中的“與”門170。另外,q輸出164可傳輸?shù)健芭c”門107。舉例來(lái)說(shuō),當(dāng)檢測(cè)線82上的合格匹配發(fā)生且經(jīng)由統(tǒng)一啟用輸入62激活檢測(cè)單元86(例如,在作用狀態(tài)中)時(shí),將在輸出72(或sme36中的檢測(cè)單元86的輸出74)上從檢測(cè)單元86輸出匹配結(jié)果輸出。此合格匹配可表示(舉例來(lái)說(shuō))來(lái)自單個(gè)sme34的經(jīng)分析數(shù)據(jù)流中的匹配,所述匹配可連同其它sme34、36中的其它匹配一起用于搜索(舉例來(lái)說(shuō))數(shù)據(jù)流中的型式。通過(guò)使用檢測(cè)單元86中的d觸發(fā)器160,可在預(yù)定時(shí)間基于計(jì)時(shí)信號(hào)而執(zhí)行搜索及從其產(chǎn)生的結(jié)果。另外,可(例如,通過(guò)統(tǒng)一啟用輸入62的選定使用)實(shí)現(xiàn)對(duì)將在何時(shí)從sme34、36輸出(例如,在輸出72、74上)結(jié)果及輸出何種結(jié)果的控制。此外,經(jīng)由統(tǒng)一啟用輸入62(及統(tǒng)一啟用輸入64)對(duì)sme34、36的此選擇性激活允許利用在sme34、36中的每一者中找到的結(jié)果作為數(shù)據(jù)流的總體較寬廣分析的部分。

圖11圖解說(shuō)明可耦合到行38的got60的局部路由矩陣172的實(shí)例。如所圖解說(shuō)明,sme34包含檢測(cè)單元86以及可包含sme34的存儲(chǔ)器單元80的數(shù)據(jù)分析元件171。數(shù)據(jù)分析元件171可耦合到sme34的檢測(cè)線82。類似地,sme36包含檢測(cè)單元86以及可包含存儲(chǔ)器單元80的數(shù)據(jù)分析元件173。另外,數(shù)據(jù)分析元件173可耦合到sme36的檢測(cè)線82。此外,除耦合到圖11中的所圖解說(shuō)明sme34、36之外,局部路由矩陣172也可耦合到特定行38中的got60的所有對(duì)的sme34、36。因此,局部路由矩陣172可包含可編程行內(nèi)交換元件44及行互連/互連件導(dǎo)體68、70(其也可稱為“行路由線”,如下文所描述)。

在一個(gè)實(shí)施例中,局部路由矩陣172可包含多個(gè)行路由線174、176、178、180、182、184、186、188、190、192、194、196、198、200、202及204(下文中統(tǒng)稱為“行路由線174到204”)。以此方式,行路由線174到204的數(shù)目可對(duì)應(yīng)于給定行中的got的數(shù)目。因此,在所圖解說(shuō)明的實(shí)施例中,存在16個(gè)行路由線174到204。然而,應(yīng)了解,可在局部路由矩陣172中利用更少或更多的行路由線。

行路由線174到204中的每一者可用以為一或多個(gè)got60的sme34、36中的任一者提供啟用信號(hào)。因此,通過(guò)使用這些行路由線174到204,可激活任何特定sme(例如,sme34)的任何特定檢測(cè)單元86。此可通過(guò)將行路由線174到204選擇性地耦合(例如,經(jīng)由編程)到sme34、36的統(tǒng)一啟用輸入62、64而實(shí)現(xiàn)。此外,為了提供將啟用信號(hào)提供到sme34、36中的進(jìn)一步靈活性,可在兩個(gè)sme34、36當(dāng)中劃分行路由線174到204。舉例來(lái)說(shuō),可利用行路由線174、176、178、180、182、184、186及188來(lái)激活行38中的sme34、36中的每一者。另外,可使用行路由線190、194、198及202來(lái)將統(tǒng)一啟用輸入62傳輸?shù)叫?8中的sme34,而可使用行路由線192、196、200及204來(lái)將統(tǒng)一啟用輸入64傳輸?shù)叫?8中的sme36。因此,舉例來(lái)說(shuō),可直接尋址行中的sme34的總共16個(gè)檢測(cè)單元86中的sme34的多達(dá)12個(gè)檢測(cè)單元86,而可通過(guò)使用(舉例來(lái)說(shuō))上文關(guān)于圖5所描述的交換元件79尋址剩余檢測(cè)單元86。以此方式,可減小行路由線174到204的總體數(shù)目,同時(shí)仍允許激活行38中的sme34、36中的任一者的任何檢測(cè)單元86的總體靈活性及能力。

另外,應(yīng)注意圖11包含群組內(nèi)電路206。此群組內(nèi)電路206的輸出可為可傳輸相應(yīng)got60的輸出的輸出66。在一個(gè)實(shí)施例中,此輸出66可耦合到用于傳輸got60的輸出66的行路由線174、176、178、180、182、184、186及188中的任一者,從而反映在作用sme34、36中產(chǎn)生的任何結(jié)果。通過(guò)使用行路由線174、176、178、180、182、184、186及188(其為局部路由矩陣172與sme34、36的統(tǒng)一啟用輸入62、64共有的)來(lái)傳輸got的輸出66,可減小行路由線174到204的總體數(shù)目,同時(shí)仍允許總體系統(tǒng)靈活性。

應(yīng)注意,圖11的群組內(nèi)電路206可包含先前關(guān)于圖5所論述的got60的元件。將關(guān)于圖12更詳細(xì)地論述群組內(nèi)電路206中的這些元件的特定功能性及互連。

圖12中的群組內(nèi)電路206包含先前已展示為耦合到sme34、36的輸入62、64及輸出72、74。應(yīng)注意,輸入62、64及輸出72、74是相對(duì)于其與sme34、36的相應(yīng)關(guān)系且未必相對(duì)于其在群組內(nèi)電路206中的功能而提及的。另外,群組內(nèi)電路206包含“或”門76、3對(duì)1多路復(fù)用器78及分別耦合到輸出72、74的交換元件79。如所圖解說(shuō)明,耦合到輸出72的交換元件79可允許sme34的輸出72傳輸?shù)絪me36的統(tǒng)一啟用輸入64(舉例來(lái)說(shuō))以允許級(jí)聯(lián)搜索發(fā)生。另外或替代地,耦合到輸出72的交換元件79可允許sme34的統(tǒng)一啟用輸入62傳輸?shù)絪me36的統(tǒng)一啟用輸入64及/或允許sme34的輸出72傳輸?shù)健盎颉遍T76。如前線所論述,允許sme34的統(tǒng)一啟用輸入62傳輸?shù)絪me36的統(tǒng)一啟用輸入64可允許經(jīng)由共享行路由線174到204對(duì)給定行38的sme36中的所有檢測(cè)單元元件86的完全尋址。

類似地,耦合到輸出74的交換元件79可允許sme36的輸出74傳輸?shù)絪me34的統(tǒng)一啟用輸入62(舉例來(lái)說(shuō))以允許級(jí)聯(lián)搜索發(fā)生。另外或替代地,耦合到輸出74的交換元件79可允許sme36的統(tǒng)一啟用輸入64傳輸?shù)絪me34的統(tǒng)一啟用輸入62及/或允許sme36的輸出74傳輸?shù)健盎颉遍T76。同樣,允許sme36的統(tǒng)一啟用輸入64傳輸?shù)絪me34的統(tǒng)一啟用輸入62可允許經(jīng)由共享行路由線174到204對(duì)給定行38的sme34中的所有檢測(cè)單元元件86的完全尋址。另外,盡管未圖解說(shuō)明,但應(yīng)注意輸出72、74可通過(guò)經(jīng)由一個(gè)交換元件79將輸出72耦合到輸入62且經(jīng)由另一交換元件79將輸出77耦合到輸入64而循環(huán)回到產(chǎn)生輸出72、74的sme34、36。

群組內(nèi)電路206的3對(duì)1多路復(fù)用器78可經(jīng)設(shè)定以將got60的輸出66耦合到第一sme34、第二sme36或者可用以將sme34、36的兩個(gè)輸出72、74耦合在一起以形成got60的共同輸出66的“或”門76。因此,3對(duì)1多路復(fù)用器78可包含第一輸出選擇輸入208及第二輸出選擇輸入210。因此,這些輸出選擇輸入208、210可以可編程方式選擇在輸出66上傳輸何種輸出。此編程可(舉例來(lái)說(shuō))基于在fsm晶格30的初始編程階段期間執(zhí)行的經(jīng)加載圖像而實(shí)現(xiàn)。圖13圖解說(shuō)明陳述輸出選擇輸入208、210可如何以可編程方式選擇got60的輸出66的實(shí)例的真值表212。

如圖13中所展示,當(dāng)兩個(gè)輸出選擇輸入208、210均為低(即,0)時(shí),got60的輸出66將為高阻抗信號(hào),因此有效地防止在輸出66上傳輸任何值。當(dāng)輸出選擇輸入208為高(即,1)且輸出選擇輸入210為低時(shí),got60的輸出66將為第一sme34的輸出(即,輸出72)。當(dāng)輸出選擇輸入208為低且輸出選擇輸入210為高時(shí),got60的輸出66將為第二sme346的輸出(即,輸出74)。最終,當(dāng)輸出選擇輸入208、210為高時(shí),got60的輸出66將為“或”門76的輸出(即,與輸出74進(jìn)行邏輯“或”運(yùn)算的輸出72)。以此方式,3對(duì)1多路復(fù)用器78不以可編程方式選擇任何輸出(輸出72、輸出74或與輸出74進(jìn)行邏輯“或”運(yùn)算的輸出72)作為got60的輸出66。此外,應(yīng)注意,3對(duì)1多路復(fù)用器可以不限于圖12中所圖解說(shuō)明的特定實(shí)施例的其它可編程配置操作。

盡管可易于對(duì)本發(fā)明做出各種修改及替代形式,但已在圖式中通過(guò)舉例方式展示且在本文中詳細(xì)描述了特定實(shí)施例。然而,應(yīng)理解,本發(fā)明并不意欲限于所揭示的特定形式。而是,本發(fā)明意欲涵蓋如由以下隨附申請(qǐng)專利范圍定義的本發(fā)明的精神及范疇內(nèi)的所有修改形式、等效形式及替代方案。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1