两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

狀態(tài)機(jī)晶格中的計(jì)數(shù)器操作的制作方法

文檔序號:6498031閱讀:199來源:國知局
狀態(tài)機(jī)晶格中的計(jì)數(shù)器操作的制作方法
【專利摘要】本發(fā)明揭示若干方法及裝置,其中存在一種包含有限狀態(tài)機(jī)晶格(30)的裝置。所述晶格(30)可包含適合于計(jì)數(shù)所述晶格(30)中的可編程元件(34、36)檢測到一條件的次數(shù)的計(jì)數(shù)器(58)。所述計(jì)數(shù)器(58)可經(jīng)配置以響應(yīng)于計(jì)數(shù)檢測到所述條件達(dá)特定次數(shù)而輸出。舉例來說,所述計(jì)數(shù)器(58)可經(jīng)配置以響應(yīng)于以下各項(xiàng)而輸出:確定檢測到一條件達(dá)至少(或不超過)所述特定次數(shù)、確定檢測到所述條件達(dá)恰好所述特定次數(shù)或確定在特定次數(shù)范圍內(nèi)檢測到所述條件。所述計(jì)數(shù)器(58)可耦合到所述裝置中的其它計(jì)數(shù)器(58)以用于確定高計(jì)數(shù)操作及/或特定量詞。
【專利說明】狀態(tài)機(jī)晶格中的計(jì)數(shù)器操作

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明的實(shí)施例一般來說涉及電子裝置,且更具體來說,在某些實(shí)施例中涉及用 于型式辨識的并行有限狀態(tài)機(jī)。

【背景技術(shù)】
[0002] 在計(jì)算領(lǐng)域中,型式辨識任務(wù)日益具挑戰(zhàn)性。在計(jì)算機(jī)之間傳輸?shù)臄?shù)據(jù)量越來越 大,且用戶希望檢測的型式的數(shù)目日益增加。舉例來說,通常通過搜索數(shù)據(jù)流中的型式(例 如,特定短語或代碼片段)來檢測垃圾郵件及惡意軟件。型式的數(shù)目隨垃圾郵件及惡意軟 件的多樣化而增加,因?yàn)樾滦褪娇山?jīng)實(shí)施以搜索新變化形式。
[0003] 辨識一型式通??缮婕皺z測指示所述型式的各種條件。計(jì)數(shù)檢測到一(若干)條 件的次數(shù)也可為有用的。計(jì)數(shù)器可經(jīng)實(shí)施以計(jì)數(shù)檢測到一條件的次數(shù)。然而,辨識一型式 有時可涉及不可通過基本計(jì)數(shù)器容易地計(jì)數(shù)的所檢測條件的特定量詞。

【專利附圖】

【附圖說明】
[0004] 圖1圖解說明根據(jù)本發(fā)明的各種實(shí)施例的具有狀態(tài)機(jī)引擎的系統(tǒng)的實(shí)例。
[0005] 圖2圖解說明根據(jù)本發(fā)明的各種實(shí)施例的圖1的狀態(tài)機(jī)引擎的FSM晶格的實(shí)例。
[0006] 圖3圖解說明根據(jù)本發(fā)明的各種實(shí)施例的圖2的FSM晶格的塊的實(shí)例。
[0007] 圖4圖解說明根據(jù)本發(fā)明的各種實(shí)施例的圖3的塊的行的實(shí)例。
[0008] 圖5圖解說明根據(jù)本發(fā)明的各種實(shí)施例的圖4的行的兩個一群組的實(shí)例。
[0009] 圖6圖解說明根據(jù)本發(fā)明的各種實(shí)施例的有限狀態(tài)機(jī)圖的實(shí)例。
[0010] 圖7圖解說明根據(jù)本發(fā)明的各種實(shí)施例的借助FSM晶格實(shí)施的兩層級層次的實(shí) 例。
[0011] 圖8圖解說明根據(jù)本發(fā)明的各種實(shí)施例的用于編譯器將源代碼轉(zhuǎn)換成二進(jìn)制文 件以用于編程圖2的FSM晶格的方法的實(shí)例。
[0012] 圖9圖解說明根據(jù)本發(fā)明的各種實(shí)施例的狀態(tài)機(jī)引擎。
[0013] 圖10圖解說明根據(jù)本發(fā)明的各種實(shí)施例的如圖3中的塊,所述塊在所述塊的行中 具有計(jì)數(shù)器。
[0014] 圖11圖解說明根據(jù)本發(fā)明的各種實(shí)施例的圖10的計(jì)數(shù)器。

【具體實(shí)施方式】
[0015] 現(xiàn)在轉(zhuǎn)到各圖,圖1圖解說明通常由參考編號10指定的基于處理器的系統(tǒng)的實(shí)施 例。系統(tǒng)10可為多種類型中的任一者,例如桌上型計(jì)算機(jī)、膝上型計(jì)算機(jī)、尋呼機(jī)、蜂窩式 電話、個人記事本、便攜式音頻播放器、控制電路、相機(jī)等。系統(tǒng)10也可為網(wǎng)絡(luò)節(jié)點(diǎn),例如路 由器、服務(wù)器或客戶端(例如,先前所描述的類型的計(jì)算機(jī)中的一者)。系統(tǒng)10可為某一 其它種類的電子裝置,例如復(fù)印機(jī)、掃描儀、打印機(jī)、游戲控制臺、電視機(jī)、機(jī)頂盒視頻分配 或記錄系統(tǒng)、電纜盒、個人數(shù)字媒體播放器、工廠自動化系統(tǒng)、汽車計(jì)算機(jī)系統(tǒng)或醫(yī)療裝置。 (用以描述系統(tǒng)的這各種實(shí)例的術(shù)語(如本文中所使用的許多其它術(shù)語)可共享一些所指 物,且如此不應(yīng)按照所列舉的其它物項(xiàng)來狹義地理解。)
[0016] 在典型基于處理器的裝置(例如系統(tǒng)10)中,處理器12(例如微處理器)控制系 統(tǒng)10中的系統(tǒng)功能及請求的處理。此外,處理器12可包括共享系統(tǒng)控制的多個處理器。處 理器12可直接或間接耦合到系統(tǒng)10中的元件中的每一者以使得處理器12通過執(zhí)行可存 儲于系統(tǒng)10內(nèi)或在系統(tǒng)10外部的指令來控制系統(tǒng)10。
[0017] 根據(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),但出于論述目的,本申請案是指FSM。然而,所屬領(lǐng)域的技術(shù)人員將了解可使用 多種狀態(tài)機(jī)架構(gòu)中的任一者來米用所描述技術(shù)。
[0018] 如下文所進(jìn)一步論述,狀態(tài)機(jī)引擎14可包含若干個(例如,一或多個)有限狀態(tài) 機(jī)(FSM)晶格。每一 FSM晶格可包含各自并行接收及分析同一數(shù)據(jù)的多個FSM。此外,F(xiàn)SM 晶格可布置成若干群組(例如,群集),以使得FSM晶格的群集可并行分析同一輸入數(shù)據(jù)。 此外,狀態(tài)機(jī)引擎14的FSM晶格的群集可布置成層次式結(jié)構(gòu),其中來自所述層次式結(jié)構(gòu)的 較低層級上的狀態(tài)機(jī)晶格的輸出可用作到較高層級上的狀態(tài)機(jī)晶格的輸入。通過經(jīng)由層次 式結(jié)構(gòu)串行地級聯(lián)狀態(tài)機(jī)引擎14的并行FSM晶格的群集,可分析(例如,評估、搜索等)日 益復(fù)雜的型式。
[0019] 此外,基于狀態(tài)機(jī)引擎14的層次式并行配置,狀態(tài)機(jī)引擎14可用于利用高處理速 度的系統(tǒng)中的型式辨識。例如,本文中所描述的實(shí)施例可并入于具有1千兆字節(jié)/秒的處 理速度的系統(tǒng)中。因此,利用狀態(tài)機(jī)引擎14,可針對各種型式快速地分析來自高速存儲器裝 置或其它外部裝置的數(shù)據(jù)。狀態(tài)機(jī)引擎14可根據(jù)數(shù)種準(zhǔn)則約同時(例如,在單個裝置循環(huán) 期間)及其相應(yīng)搜索項(xiàng)分析數(shù)據(jù)流。狀態(tài)機(jī)引擎14的層級上的FSM群集內(nèi)的FSM晶格中 的每一者可各自約同時接收來自數(shù)據(jù)流的同一搜索項(xiàng),且并行FSM晶格中的每一者可確定 所述項(xiàng)是否將狀態(tài)機(jī)引擎14推進(jìn)到處理準(zhǔn)則中的下一狀態(tài)。狀態(tài)機(jī)引擎14可根據(jù)相對大 量準(zhǔn)則(例如,100個以上、110個以上或10, 〇〇〇個以上)分析項(xiàng)。由于其并行操作,因此 其可將準(zhǔn)則應(yīng)用于具有相對高帶寬的數(shù)據(jù)流(例如,大于或通常等于1千兆字節(jié)/秒的數(shù) 據(jù)流)而不減慢所述數(shù)據(jù)流。
[0020] 在一個實(shí)施例中,狀態(tài)機(jī)引擎14可經(jīng)配置以辨識(例如,檢測)數(shù)據(jù)流中的大量 型式。例如,狀態(tài)機(jī)引擎14可用以檢測用戶或其它實(shí)體可希望分析的多種類型的數(shù)據(jù)流中 的一或多者中的型式。舉例來說,狀態(tài)機(jī)引擎14可經(jīng)配置以分析經(jīng)由網(wǎng)絡(luò)接收的數(shù)據(jù)流, 例如經(jīng)由因特網(wǎng)接收的包或者經(jīng)由蜂窩式網(wǎng)絡(luò)接收的話音或數(shù)據(jù)。在一個實(shí)例中,狀態(tài)機(jī) 引擎14可經(jīng)配置以針對垃圾郵件或惡意軟件分析數(shù)據(jù)流。數(shù)據(jù)流可作為串行數(shù)據(jù)流接收, 其中以具有意義的次序(例如以時間、詞匯或語義重要性次序)接收數(shù)據(jù)?;蛘?,數(shù)據(jù)流 可經(jīng)并行或無序地接收且然后轉(zhuǎn)換成串行數(shù)據(jù)流,例如,通過將經(jīng)由因特網(wǎng)接收的包重新 排序。在一些實(shí)施例中,數(shù)據(jù)流可串行地呈現(xiàn)項(xiàng),但表達(dá)所述項(xiàng)中的每一者的位可被并行接 收。數(shù)據(jù)流可從系統(tǒng)10外部的源接收或可通過詢問存儲器裝置(例如存儲器16)且由存 儲于存儲器16中的數(shù)據(jù)形成數(shù)據(jù)流而形成。在其它實(shí)例中,狀態(tài)機(jī)引擎14可經(jīng)配置以辨 識拼寫某一字的字符序列、規(guī)定基因的遺傳堿基對序列、圖片或視頻文件中形成圖像的一 部分的位序列、可執(zhí)行文件中形成程序的一部分的位序列或者音頻文件中形成歌曲或口語 短語的一部分的位序列。將分析的數(shù)據(jù)流可包含呈二進(jìn)制格式或其它格式(例如,十進(jìn)制、 ASCII等)的多個數(shù)據(jù)位。所述流可編碼具有單個數(shù)字或多個數(shù)字(例如,數(shù)個二進(jìn)制數(shù) 字)的數(shù)據(jù)。
[0021] 如將了解,系統(tǒng)10可包含存儲器16。存儲器16可包含易失性存儲器,例如動態(tài) 隨機(jī)存取存儲器(DRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、同步DRAM (SDRAM)、雙倍數(shù)據(jù)速率 DRAM (DDR SDRAM)、DDR2 SDRAM、DDR3 SDRAM等。存儲器16還可包含用以連同易失性存儲 器一起使用的非易失性存儲器,例如只讀存儲器(ROM)、PC-RAM、硅-氧化物-氮化物-氧化 物-硅(S0N0S)存儲器、金屬-氧化物-氮化物-氧化物-硅(M0N0S)存儲器、基于多晶硅浮 動?xùn)艠O的存儲器及/或各種架構(gòu)的其它類型的快閃存儲器(例如,"與非"存儲器、"或非"存 儲器等)。存儲器16可包含可提供將由狀態(tài)機(jī)引擎14分析的數(shù)據(jù)的一或多個存儲器裝置, 例如DRAM裝置。此類裝置可稱為或包含固態(tài)驅(qū)動器(SSD)、MultimediaMediaCard(MMC)、 SecureDigital(SD)卡、CompactFlash(CF)卡或任何其它適合裝置。此外,應(yīng)了解,此類裝 置可經(jīng)由任何適合接口(例如通用串行總線(USB)、外圍組件互連(PCI)、高速PCI (PCI-E)、 小型計(jì)算機(jī)系統(tǒng)接口(SCSI)、IEEE 1394(火線(Firewire))或任何其它適合接口)耦合到 系統(tǒng)10。為促進(jìn)存儲器16 (例如快閃存儲器裝置)的操作,系統(tǒng)10可包含存儲器控制器 (未圖解說明)。如將了解,所述存儲器控制器可為獨(dú)立裝置或者其可與處理器12成整體。 另外,系統(tǒng)10可包含外部存儲裝置18,例如磁性存儲裝置。所述外部存儲裝置也可將輸入 數(shù)據(jù)提供到狀態(tài)機(jī)引擎14。
[0022] 系統(tǒng)10可包含若干個額外元件。例如,編譯器20可用以編程狀態(tài)機(jī)引擎14,如 關(guān)于圖8所更詳細(xì)描述。輸入裝置22也可耦合到處理器12以允許用戶將數(shù)據(jù)輸入到系統(tǒng) 10中。例如,輸入裝置22可用以將數(shù)據(jù)輸入到存儲器16中以供稍后由狀態(tài)機(jī)引擎14分 析。輸入裝置22可包含(例如)按鈕、交換元件、鍵盤、光筆、手寫筆、鼠標(biāo)及/或話音辨識 系統(tǒng)。輸出裝置24(例如顯示器)也可耦合到處理器12。顯示器24可包含(舉例來說) IXD、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)用而包含 許多其它組件。
[0023] 圖2到5圖解說明FSM晶格30的實(shí)例。在一實(shí)例中,F(xiàn)SM晶格30包括塊32的陣 列。如將描述,每一塊32可包含對應(yīng)于FSM中的多個狀態(tài)的多個可選擇性耦合硬件元件 (例如,可編程元件及/或?qū)S迷?。類似于FSM中的狀態(tài),硬件元件可分析輸入流且基 于所述輸入流而激活下游硬件元件。
[0024] 可編程元件可經(jīng)編程以實(shí)施許多不同功能。例如,所述可編程元件可包含以層次 方式組織成若干行38 (展示于圖3及4中)及若干塊32 (展示于圖2及3中)的狀態(tài)機(jī)元 件(SME)34、36(展示于圖5中)。為了在以層次方式組織的SME 34、36之間路由信號,可 使用可編程交換元件的層次,其包含塊間交換元件40 (展示于圖2及3中)、塊內(nèi)交換元件 42 (展示于圖3及4中)及行內(nèi)交換元件44 (展示于圖4中)。
[0025] 如下文所描述,交換元件可包含路由結(jié)構(gòu)及緩沖器。SME 34、36可對應(yīng)于由FSM晶 格30實(shí)施的FSM的狀態(tài)??赏ㄟ^使用如下文所描述的可編程交換元件而將SME 34、36耦 合在一起。因此,可通過編程SME 34、36以對應(yīng)于狀態(tài)的功能且通過將SME 34、36選擇性 地耦合在一起以對應(yīng)于FSM中的狀態(tài)之間的轉(zhuǎn)變而在FSM晶格30上實(shí)施FSM。
[0026] 圖2圖解說明FSM晶格30的實(shí)例的總體視圖。FSM晶格30包含可與可編程塊間 交換元件40選擇性地耦合在一起的多個塊32。塊間交換元件40可包含導(dǎo)體46 (例如,導(dǎo) 線、跡線等)以及緩沖器48及50。在一實(shí)例中,包含緩沖器48及50以控制去往/來自塊 間交換元件40的信號的連接及時序。如下文所進(jìn)一步描述,可提供緩沖器48以緩沖在塊 32之間發(fā)送的數(shù)據(jù),而可提供緩沖器50以緩沖在塊間交換元件40之間發(fā)送的數(shù)據(jù)。另外, 塊32可選擇性地耦合到用于接收信號(例如,數(shù)據(jù))且將數(shù)據(jù)提供到塊32的輸入塊52 (例 如,數(shù)據(jù)輸入端口)。塊32還可選擇性地耦合到用于將信號從塊32提供到外部裝置(例 如,另一 FSM晶格30)的輸出塊54(例如,輸出端口)。FSM晶格30還可包含編程接口 56 以將程序(例如,圖像)加載到FSM晶格30上。所述圖像可編程(例如,設(shè)定)SME 34、36 的狀態(tài)。也就是說,所述圖像可將SME 34、36配置為以某一方式對輸入塊52處的給定輸入 做出反應(yīng)。舉例來說,SME 34、36可經(jīng)設(shè)定以在于輸入塊52處接收到字符'a'時輸出高信 號。
[0027] 在一實(shí)例中,可將輸入塊52、輸出塊54及/或編程接口 56實(shí)施為寄存器以使得向 所述寄存器的寫入將數(shù)據(jù)提供到相應(yīng)元件或從所述寄存器的讀取從所述相應(yīng)元件提供數(shù) 據(jù)。因此,來自存儲于對應(yīng)于編程接口 56的寄存器中的圖像的位可加載于SME 34、36上。 雖然圖2圖解說明塊32、輸入塊52、輸出塊54與塊間交換元件40之間的某一數(shù)目個導(dǎo)體 (例如,導(dǎo)線、跡線),但應(yīng)理解在其它實(shí)例中可使用更少或更多導(dǎo)體。
[0028] 圖3圖解說明塊32的實(shí)例。塊32可包含可與可編程塊內(nèi)交換元件42選擇性地 耦合在一起的多個行38。另外,行38可借助塊間交換元件40選擇性地耦合到另一塊32內(nèi) 的另一行38。行38包含組織成本文中稱為兩個一群組(GOT)60的若干對元件的多個SME 34、36。在一實(shí)例中,塊32包括十六(16)個行38。
[0029] 圖4圖解說明行38的實(shí)例。GOT 60可通過可編程行內(nèi)交換元件44選擇性地耦合 到其它GOT 60及行38內(nèi)的任何其它元件(例如,專用元件58)。GOT 60也可借助塊內(nèi)交 換元件42耦合到其它行38中的其它GOT 60,或者借助塊間交換元件40耦合到其它塊32 中的其它GOT 60。在一實(shí)例中,GOT 60具有第一輸入62及第二輸入64以及輸出66。第 一輸入62耦合到GOT 60的第一 SME 34且第二輸入62耦合到GOT 60的第二SME 34,如將 參考圖5進(jìn)一步圖解說明。
[0030] 在一實(shí)例中,行38包含第一多個行互連導(dǎo)體68及第二多個行互連導(dǎo)體70。在一 實(shí)例中,GOT 60的輸入62、64可耦合到一或多個行互連導(dǎo)體68、70,且輸出66可耦合到一 個行互連導(dǎo)體68、70。在一實(shí)例中,第一多個行互連導(dǎo)體68可耦合到行38內(nèi)的每一 GOT 60的每一 SME 34、36。第二多個行互連導(dǎo)體70可耦合到行38內(nèi)的每一 GOT 60的僅一個 SME 34、36,但無法耦合到GOT 60的另一 SME 34、36。在一實(shí)例中,第二多個行互連導(dǎo)體70 的第一半部可耦合到行38內(nèi)的SME 34、36的第一半部(來自每一 GOT 60的一個SME 34), 且第二多個行互連導(dǎo)體70的第二半部可耦合到行38內(nèi)的SME34、36的第二半部(來自每 一 GOT 60的另一 SME 34、36),如將關(guān)于圖5更佳地圖解說明。第二多個行互連導(dǎo)體70與 SME 34、36之間的有限連接性在本文中稱為"奇偶"。在一實(shí)例中,行38還可包含專用元件 58,例如計(jì)數(shù)器、可編程布爾邏輯單元、查找表、RAM、現(xiàn)場可編程門陣列(FPGA)、專用集成電 路(ASIC)、可編程處理器(例如,微處理器)或用于執(zhí)行專用功能的其它元件。
[0031] 在一實(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ù)輸入在被斷言時使計(jì)數(shù)器58的值遞減1。復(fù)位輸入在被斷言時致使計(jì)數(shù) 器58從相關(guān)聯(lián)寄存器加載初始值。對于12位計(jì)數(shù)器58來說,可加載多達(dá)12位的數(shù)目作 為所述初始值。當(dāng)計(jì)數(shù)器58的值遞減到零(0)時,斷言零計(jì)數(shù)輸出。計(jì)數(shù)器58也具有至 少兩種模式,脈沖及保持。當(dāng)將計(jì)數(shù)器58設(shè)定為脈沖模式時,在時鐘循環(huán)期間當(dāng)計(jì)數(shù)器58 遞減到零時斷言零計(jì)數(shù)輸出,且在下一時鐘循環(huán)處不再斷言零計(jì)數(shù)輸出。當(dāng)將計(jì)數(shù)器58設(shè) 定為保持模式時,在時鐘循環(huán)期間當(dāng)計(jì)數(shù)器58遞減到零時斷言零計(jì)數(shù)輸出,且其保持經(jīng)斷 言直到計(jì)數(shù)器58由斷言復(fù)位輸入而被復(fù)位為止。
[0032] 在另一實(shí)例中,專用元件58包括布爾邏輯。在一些實(shí)例中,此布爾邏輯可用以從 FSM晶格30中的終端狀態(tài)SME(對應(yīng)于FSM的終端節(jié)點(diǎn),如本文中稍后所論述)提取信息。 所提取的信息可用以將狀態(tài)信息傳送到其它FSM晶格30及/或傳送用以重新編程FSM晶 格30或重新編程另一 FSM晶格30的編程信息。
[0033] 圖5圖解說明GOT 60的實(shí)例。GOT 60包含具有輸入62、64且使其輸出72、74耦 合到"或"門76及3對1多路復(fù)用器78的第一 SME 34及第二SME 36。3對1多路復(fù)用器 78可經(jīng)設(shè)定以將GOT 60的輸出66耦合到第一 SME 34、第二SME 36或者"或"門76。"或" 門76可用以將輸出72、74兩者耦合在一起以形成GOT 60的共同輸出66。在一實(shí)例中,如 上文所論述,第一 SME 34及第二SME 36展現(xiàn)奇偶,其中第一 SME 34的輸入62可耦合到行 互連件導(dǎo)體68中的一些行互連導(dǎo)體且第二SME 36的輸入64可耦合到其它行互連件導(dǎo)體 70。在一實(shí)例中,可通過設(shè)定交換元件79中的任一者或兩者而使GOT 60內(nèi)的兩個SME 34、 36級聯(lián)及/或循環(huán)回到其自身??赏ㄟ^將SME 34、36的輸出72、74耦合到另一 SME 34、36 的輸入62、64而將SME 34、36級聯(lián)??赏ㄟ^將輸出72、74耦合到其自己的輸入62、64而使 SME 34、36循環(huán)回到其自身。因此,第一 SME 34的輸出72可不耦合到第一 SME 34的輸入 62及第二SME 36的輸入64中的任一者、耦合到其中的一者或其中的兩者。
[0034] 在一實(shí)例中,狀態(tài)機(jī)元件34、36包括并聯(lián)耦合到檢測線82的多個存儲器單元80, 例如通常用于動態(tài)隨機(jī)存取存儲器(DRAM)中的存儲器單元。一種此類存儲器單元80包括 可設(shè)定到一數(shù)據(jù)狀態(tài)(例如對應(yīng)于高值或低值(例如,1或〇)的數(shù)據(jù)狀態(tài))的存儲器單元。 存儲器單元80的輸出耦合到檢測線82且到存儲器單元80的輸入基于數(shù)據(jù)流線84上的數(shù) 據(jù)而接收信號。在一實(shí)例中,數(shù)據(jù)流線84上的輸入經(jīng)解碼以選擇存儲器單元80中的一者。 選定存儲器單元80將其所存儲數(shù)據(jù)狀態(tài)作為輸出提供到檢測線82上。舉例來說,在輸入 塊52處所接收的數(shù)據(jù)可提供到解碼器(未展示)且所述解碼器可選擇數(shù)據(jù)流線84中的一 者。在一實(shí)例中,所述解碼器可將8位ACSII字符轉(zhuǎn)換為256個數(shù)據(jù)流線84中的對應(yīng)1。
[0035] 因此,當(dāng)存儲器單元80設(shè)定到高值且數(shù)據(jù)流線84上的數(shù)據(jù)對應(yīng)于存儲器單元80 時,存儲器單元80將高信號輸出到檢測線82。當(dāng)數(shù)據(jù)流線84上的數(shù)據(jù)對應(yīng)于存儲器單元 80且存儲器單元80設(shè)定到低值時,存儲器單元80將低信號輸出到檢測線82。檢測線82 上的來自存儲器單元80的輸出由檢測單元86感測。
[0036] 在一實(shí)例中,輸入線62、64上的信號將相應(yīng)檢測單元86設(shè)定到作用或非作用狀 態(tài)。當(dāng)設(shè)定到非作用狀態(tài)時,檢測單元86在相應(yīng)輸出72、74上輸出低信號,而不管相應(yīng)檢 測線82上的信號如何。當(dāng)設(shè)定到作用狀態(tài)時,檢測單元86在從相應(yīng)SME 34、36的存儲器 單元82中的一者檢測到高信號時在相應(yīng)輸出線72、74上輸出高信號。當(dāng)處于作用狀態(tài)中 時,檢測單元86在來自相應(yīng)SME 34、36的所有存儲器單元82的信號為低時在相應(yīng)輸出線 72、74上輸出低信號。
[0037] 在一實(shí)例中,SME 34、36包含256個存儲器單元80且每一存儲器單元80耦合到 不同數(shù)據(jù)流線84。因此,SME 34、36可經(jīng)編程以在數(shù)據(jù)流線84中的選定一或多者在其上具 有高信號時輸出高信號。舉例來說,SME 34可將第一存儲器單元80 (例如,位0)設(shè)定為高 且將所有其它存儲器單元80 (例如,位1到255)設(shè)定為低。當(dāng)相應(yīng)檢測單元86處于作用 狀態(tài)中時,SME 34在對應(yīng)于位0的數(shù)據(jù)流線84在其上具有高信號時在輸出72上輸出高信 號。在其它實(shí)例中,當(dāng)多個數(shù)據(jù)流線84中的一者在其上具有高信號時,可通過將適當(dāng)存儲 器單元80設(shè)定到高值來設(shè)定SME 34以輸出高信號。
[0038] 在一實(shí)例中,可通過從相關(guān)聯(lián)寄存器讀取位而將存儲器單元80設(shè)定到高值或低 值。因此,可通過將編譯器20所創(chuàng)建的圖像存儲到寄存器中且將所述寄存器中的位加載到 相關(guān)聯(lián)存儲器單元80中來編程SME 34。在一實(shí)例中,編譯器20所創(chuàng)建的圖像包含高及低 (例如,1及〇)位的二進(jìn)制圖像。所述圖像可編程FSM晶格30以通過級聯(lián)SME 34、36而使 其作為FSM操作。舉例來說,可通過將檢測單元86設(shè)定到作用狀態(tài)而將第一 SME 34設(shè)定 到作用狀態(tài)。第一 SME 34可經(jīng)設(shè)定以在對應(yīng)于位0的數(shù)據(jù)流線84在其上具有高信號時輸 出高信號。第二SME 36可最初設(shè)定到非作用狀態(tài),但可在作用時經(jīng)設(shè)定以在對應(yīng)于位1的 數(shù)據(jù)流線84在其上具有高信號時輸出高信號??赏ㄟ^設(shè)定第一 SME34的輸出72以耦合到 第二SME 36的輸入64來級聯(lián)第一 SME 34與第二SME 36。因此,當(dāng)在對應(yīng)于位0的數(shù)據(jù)流 線84上感測到高信號時,第一 SME 34在輸出72上輸出高信號且將第二SME 36的檢測單 元86設(shè)定到作用狀態(tài)。當(dāng)在對應(yīng)于位1的數(shù)據(jù)流線84上感測到高信號時,第二SME 36在 輸出74上輸出高信號以激活另一 SME 36或以供從FSM晶格30輸出。
[0039] 在一實(shí)例中,在單個物理裝置上實(shí)施單個FSM晶格30,然而,在其它實(shí)例中可在單 個物理裝置(例如,物理芯片)上實(shí)施兩個或兩個以上FSM晶格30。在一實(shí)例中,每一 FSM 晶格30可包含相異數(shù)據(jù)輸入塊52、相異輸出塊54、相異編程接口 56及一組相異可編程兀 件。此外,每一組可編程元件可對其對應(yīng)數(shù)據(jù)輸入塊52處的數(shù)據(jù)做出反應(yīng)(例如,輸出高 信號或低信號)。舉例來說,對應(yīng)于第一 FSM晶格30的第一組可編程元件可對對應(yīng)于第一 FSM晶格30的第一數(shù)據(jù)輸入塊52處的數(shù)據(jù)做出反應(yīng)。對應(yīng)于第二FSM晶格30的第二組可 編程元件可對對應(yīng)于第二FSM晶格30的第二數(shù)據(jù)輸入塊52做出反應(yīng)。因此,每一 FSM晶格 30包含一組可編程元件,其中不同組的可編程元件可對不同輸入數(shù)據(jù)做出反應(yīng)。類似地,每 一 FSM晶格30及每一對應(yīng)組的可編程兀件可提供相異輸出。在一些實(shí)例中,來自第一 FSM 晶格30的輸出塊54可耦合到第二FSM晶格30的輸入塊52以使得第二FSM晶格30的輸 入數(shù)據(jù)可包含來自一系列FSM晶格30的層次式布置中的第一 FSM晶格30的輸出數(shù)據(jù)。
[0040] 在一實(shí)例中,用于加載到FSM晶格30上的圖像包括用于配置FSM晶格30內(nèi)的可 編程元件、可編程交換元件及專用元件的多個信息位。在一實(shí)例中,所述圖像可加載到FSM 晶格30上以編程FSM晶格30以基于某些輸入而提供所要輸出。輸出塊54可基于可編程 元件對數(shù)據(jù)輸入塊52處的數(shù)據(jù)的反應(yīng)而提供來自FSM晶格30的輸出。來自輸出塊54的 輸出可包含指示給定型式的匹配的單個位、包括指示與多個型式的匹配及不匹配的多個位 的字及對應(yīng)于所有或某些可編程元件在給定時刻的狀態(tài)的狀態(tài)向量。如所描述,若干個FSM 晶格30可包含于狀態(tài)機(jī)引擎(例如狀態(tài)機(jī)引擎14)中以執(zhí)行數(shù)據(jù)分析,例如型式辨識(例 如,語音辨識、圖像辨識等)、信號處理、成像、計(jì)算機(jī)視覺、密碼編譯及其它。
[0041] 圖6圖解說明可由FSM晶格30實(shí)施的有限狀態(tài)機(jī)(FSM)的實(shí)例性模型。FSM晶格 30可配置(例如,編程)為FSM的物理實(shí)施方案。FSM可表示為含有一或多個根節(jié)點(diǎn)92的 圖90 (例如,有向圖、無向圖、偽圖)。除了根節(jié)點(diǎn)92之外,所述FSM還可由經(jīng)由一或多個邊 緣98連接到根節(jié)點(diǎn)92及其它標(biāo)準(zhǔn)節(jié)點(diǎn)94的數(shù)個標(biāo)準(zhǔn)節(jié)點(diǎn)94及終端節(jié)點(diǎn)96構(gòu)成。節(jié)點(diǎn) 92、94、96對應(yīng)于所述FSM中的狀態(tài)。邊緣98對應(yīng)于所述狀態(tài)之間的轉(zhuǎn)變。
[0042] 節(jié)點(diǎn)92、94、96中的每一者可處于作用或非作用狀態(tài)中。當(dāng)處于非作用狀態(tài)中時, 節(jié)點(diǎn)92、94、96不對輸入數(shù)據(jù)做出反應(yīng)(例如,響應(yīng))。當(dāng)處于作用狀態(tài)中時,節(jié)點(diǎn)92、94、 96可對輸入數(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)則時通過激活下游節(jié)點(diǎn)94、96而對所述輸 入數(shù)據(jù)做出反應(yīng)。舉例來說,規(guī)定字符'b'的第一節(jié)點(diǎn)94將在第一節(jié)點(diǎn)94為作用的且字 符'b'被接收為輸入數(shù)據(jù)時激活通過邊緣98連接到第一節(jié)點(diǎn)94的第二節(jié)點(diǎn)94。如本文所 使用,"上游"是指一或多個節(jié)點(diǎn)之間的關(guān)系,其中在一或多個其它節(jié)點(diǎn)上游(或在循環(huán)或 反饋配置的情況中,在其自身上游)的第一節(jié)點(diǎn)是指其中所述第一節(jié)點(diǎn)可激活所述一或多 個其它節(jié)點(diǎn)(或在循環(huán)的情況中,可激活其自身)的情形。類似地,"下游"是指其中在一 或多個其它節(jié)點(diǎn)下游(或在循環(huán)的情況中,在其自身下游)的第一節(jié)點(diǎn)可由所述一或多個 其它節(jié)點(diǎn)激活(或在循環(huán)的情況中,可由其自身激活)的關(guān)系。因此,本文中使用術(shù)語"上 游"及"下游"來指一或多個節(jié)點(diǎn)之間的關(guān)系,但這些術(shù)語不排除循環(huán)或節(jié)點(diǎn)當(dāng)中的其它非 線性路徑的使用。
[0043] 在圖90中,可最初激活根節(jié)點(diǎn)92且根節(jié)點(diǎn)92可在輸入數(shù)據(jù)匹配來自根節(jié)點(diǎn)92 的邊緣98時激活下游節(jié)點(diǎn)94。節(jié)點(diǎn)94可在輸入數(shù)據(jù)匹配來自節(jié)點(diǎn)94的邊緣98時激活節(jié) 點(diǎn)96。可在接收到輸入數(shù)據(jù)時以此方式激活貫穿圖90的節(jié)點(diǎn)94、96。終端節(jié)點(diǎn)96對應(yīng)于 輸入數(shù)據(jù)對所關(guān)注序列的匹配。因此,終端節(jié)點(diǎn)96的激活指示已接收到所關(guān)注序列作為輸 入數(shù)據(jù)。在實(shí)施型式辨識功能的FSM晶格30的情景中,到達(dá)終端節(jié)點(diǎn)96可指示已在輸入 數(shù)據(jù)中檢測到特定所關(guān)注型式。
[0044] 在一實(shí)例中,每一根節(jié)點(diǎn)92、標(biāo)準(zhǔn)節(jié)點(diǎn)94及終端節(jié)點(diǎn)96可對應(yīng)于FSM晶格30中 的可編程元件。每一邊緣98可對應(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對應(yīng)于轉(zhuǎn)變到另一可編程元件(例如,將輸出提供到另一可編程元件)的可編程 元件。在一些實(shí)例中,根節(jié)點(diǎn)92不具有對應(yīng)可編程元件。
[0045] 當(dāng)編程FSM晶格30時,可編程元件中的每一者也可處于作用或非作用狀態(tài)中。給 定可編程元件在非作用時不對對應(yīng)數(shù)據(jù)輸入塊52處的輸入數(shù)據(jù)做出反應(yīng)。作用可編程元 件可對數(shù)據(jù)輸入塊52處的輸入數(shù)據(jù)做出反應(yīng)且可在所述輸入數(shù)據(jù)匹配所述可編程元件的 設(shè)定時激活下游可編程元件。當(dāng)可編程元件對應(yīng)于終端節(jié)點(diǎn)96時,所述可編程元件可耦合 到輸出塊54以將匹配的指示提供到外部裝置。
[0046] 經(jīng)由編程接口 56加載到FSM晶格30上的圖像可配置可編程元件及專用元件以及 可編程元件與專用元件之間的連接,以使得基于對數(shù)據(jù)輸入塊52處的數(shù)據(jù)的反應(yīng)而經(jīng)由 節(jié)點(diǎn)的循序激活來實(shí)施所要FSM。在一實(shí)例中,可編程元件保持作用達(dá)單個數(shù)據(jù)循環(huán)(例 如,單個字符、一組字符、單個時鐘循環(huán))且然后變得非作用,除非被上游可編程元件重新 激活。
[0047] 可認(rèn)為終端節(jié)點(diǎn)96存儲經(jīng)壓縮過去事件歷史。舉例來說,到達(dá)終端節(jié)點(diǎn)96所需 的輸入數(shù)據(jù)的一或多個型式可由所述終端節(jié)點(diǎn)96的激活表示。在一實(shí)例中,終端節(jié)點(diǎn)96 所提供的輸出是二進(jìn)制的,也就是說,所述輸出指示是否已匹配所關(guān)注型式。圖90中終端 節(jié)點(diǎn)96對標(biāo)準(zhǔn)節(jié)點(diǎn)94的比率可相當(dāng)小。換句話說,雖然在FSM中可存在高復(fù)雜度,但相比 之下FSM的輸出可為小的。
[0048] 在一實(shí)例中,F(xiàn)SM晶格30的輸出可包括狀態(tài)向量。所述狀態(tài)向量包括FSM晶格30 的可編程元件的狀態(tài)(例如,經(jīng)激活或未經(jīng)激活)。在一實(shí)例中,所述狀態(tài)向量包含對應(yīng)于 終端節(jié)點(diǎn)96的可編程元件的狀態(tài)。因此,所述輸出可包含圖90的所有終端節(jié)點(diǎn)96所提供 的指示的集合。所述狀態(tài)向量可表示為字,其中每一終端節(jié)點(diǎn)96所提供的二進(jìn)制指示包括 所述字的一個位。終端節(jié)點(diǎn)96的此編碼可提供FSM晶格30的檢測狀態(tài)(例如,是否已檢 測到所關(guān)注序列及已檢測到何種所關(guān)注序列)的有效指示。在另一實(shí)例中,狀態(tài)向量可包 含所有或一子組的可編程元件的狀態(tài),而不論所述可編程元件是否對應(yīng)于終端節(jié)點(diǎn)96。
[0049] 如上文所提及,F(xiàn)SM晶格30可經(jīng)編程以實(shí)施型式辨識功能。舉例來說,F(xiàn)SM晶格30 可經(jīng)配置以辨識輸入數(shù)據(jù)中的一或多個數(shù)據(jù)序列(例如,簽名、型式)。當(dāng)FSM晶格30辨識 出所關(guān)注數(shù)據(jù)序列時,可在輸出塊54處提供所述辨識的指示。在一實(shí)例中,型式辨識可辨 識符號串(例如,ASCII字符)以(舉例來說)識別網(wǎng)絡(luò)數(shù)據(jù)中的惡意軟件或其它信息。
[0050] 圖7圖解說明層次式結(jié)構(gòu)100的實(shí)例,其中FSM晶格30的兩個層級串行地耦合且 用以分析數(shù)據(jù)。具體來說,在所圖解說明的實(shí)施例中,層次式結(jié)構(gòu)1〇〇包含串行布置的第一 FSM晶格30A及第二FSM晶格30B。每一 FSM晶格30包含用以接收數(shù)據(jù)輸入的相應(yīng)數(shù)據(jù)輸 入塊52、用以接收編程信號的編程接口塊56及輸出塊54。
[0051] 第一 FSM晶格30A經(jīng)配置以在數(shù)據(jù)輸入塊處接收輸入數(shù)據(jù)(舉例來說,原始數(shù) 據(jù))。第一 FSM晶格30A如上文所描述對所述輸入數(shù)據(jù)做出反應(yīng)且在輸出塊處提供輸出。 來自第一 FSM晶格30A的輸出發(fā)送到第二FSM晶格30B的數(shù)據(jù)輸入塊。第二FSM晶格30B 可然后基于由第一 FSM晶格30A提供的輸出而做出反應(yīng)且提供層次式結(jié)構(gòu)100的對應(yīng)輸出 信號102。兩個FSM晶格30A與30B的此串行層次式耦合提供用以將關(guān)于過去事件的信息 以經(jīng)壓縮字從第一 FSM晶格30A傳送到第二FSM晶格30B的手段。所傳送的信息可實(shí)際上 是由第一 FSM晶格30A記錄的復(fù)雜事件(例如,所關(guān)注序列)的概要。
[0052] 圖7中所展示的FSM晶格30A、30B的兩層級層次100允許兩個獨(dú)立程序基于同一 數(shù)據(jù)流而操作。兩級層次可類似于建模為不同區(qū)域的生物大腦中的視覺辨識。在此模型下, 所述區(qū)域?qū)嶋H上是不同型式辨識引擎,每一型式辨識引擎執(zhí)行類似計(jì)算功能(型式匹配) 但使用不同程序(簽名)。通過將多個FSM晶格30A、30B連接在一起,可獲得關(guān)于數(shù)據(jù)流輸 入的增加的知識。
[0053] 所述層次的第一層級(由第一 FSM晶格30A實(shí)施)可(舉例來說)直接對原始數(shù) 據(jù)流執(zhí)行處理。也就是說,可在第一 FSM晶格30A的輸入塊52處接收原始數(shù)據(jù)流且第一 FSM晶格30A的可編程元件可對所述原始數(shù)據(jù)流做出反應(yīng)。所述層次的第二層級(由第二 FSM晶格30B實(shí)施)可處理來自所述第一層級的輸出。也就是說,第二FSM晶格30B在第二 FSM晶格30B的輸入塊52處接收來自第一 FSM晶格30A的輸出塊54的輸出且第二FSM晶 格30B的可編程元件可對第一 FSM晶格30A的輸出做出反應(yīng)。因此,在此實(shí)例中,第二FSM 晶格30B不將原始數(shù)據(jù)流接收為輸入,而是接收如第一 FSM晶格30A所確定由原始數(shù)據(jù)流 匹配的所關(guān)注型式的指示。第二FSM晶格30B可實(shí)施辨識來自第一 FSM晶格30A的輸出數(shù) 據(jù)流中的型式的FSM。
[0054] 圖8圖解說明用于編譯器將源代碼轉(zhuǎn)換成經(jīng)配置以編程FSM晶格(例如晶格30) 的圖像以實(shí)施FSM的方法110的實(shí)例。方法110包含將源代碼剖析成語法樹(框112),將 所述語法樹轉(zhuǎn)換成自動機(jī)(框114),優(yōu)化所述自動機(jī)(框116),將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表 (框118),將所述網(wǎng)表放置于硬件上(框120),路由所述網(wǎng)表(框122)及公布所得圖像(框 124)。
[0055] 在一實(shí)例中,編譯器20包含允許軟件開發(fā)者創(chuàng)建用于在FSM晶格30上實(shí)施FSM 的圖像的應(yīng)用編程接口(API)。編譯器20提供用以將源代碼中的輸入正則表達(dá)式集轉(zhuǎn)換成 經(jīng)配置以編程FSM晶格30的圖像的方法??赏ㄟ^用于具有馮?諾伊曼(von Neumann)架 構(gòu)的計(jì)算機(jī)的指令來實(shí)施編譯器20。這些指令可致使計(jì)算機(jī)上的處理器12實(shí)施編譯器20 的功能。舉例來說,所述指令在由處理器12執(zhí)行時可致使處理器12對可由處理器12存取 的源代碼執(zhí)行如框112、114、116、118、120、122及124中所描述的動作。
[0056] 在一實(shí)例中,源代碼描述用于識別符號群組內(nèi)的符號型式的搜索串。為了描述搜 索串,源代碼可包含多個正則表達(dá)式(regex)。正則表達(dá)式可為用于描述符號搜索型式的 串。正則表達(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á)式。
[0057] 在框112處,編譯器20可剖析源代碼以形成關(guān)系連接的運(yùn)算符的布置,其中不同 類型的運(yùn)算符對應(yīng)于源代碼所實(shí)施的不同函數(shù)(例如,源代碼中的正則表達(dá)式所實(shí)施的不 同函數(shù))。剖析源代碼可創(chuàng)建所述源代碼的類屬表示。在一實(shí)例中,所述類屬表示包括源代 碼中的正則表達(dá)式的經(jīng)編碼表示,其呈稱作語法樹的樹形圖的形式。本文所述的實(shí)例涉及 作為語法樹(還稱作"抽象語法樹")的布置,然而在其它實(shí)例中可使用具體語法樹或其它 布置。
[0058] 如上文所提及,由于編譯器20可支持源代碼的多種語言,因此不管語言如何剖析 均將源代碼轉(zhuǎn)換成非語言特定表示(例如,語法樹)。因此,由編譯器20進(jìn)行的進(jìn)一步處理 (框114、116、118、120)可從共同輸入結(jié)構(gòu)起作用而不管源代碼的語言如何。
[0059] 如上所述,語法樹包含關(guān)系連接的多個運(yùn)算符。語法樹可包含多種不同類型的運(yùn) 算符。也就是說,不同運(yùn)算符可對應(yīng)于源代碼中的正則表達(dá)式所實(shí)施的不同函數(shù)。
[0060] 在框114處,將語法樹轉(zhuǎn)換成自動機(jī)。自動機(jī)包括FSM的軟件模型且可因此分類 為確定性或非確定性。確定性自動機(jī)在給定時間具有單個執(zhí)行路徑,而非確定性自動機(jī)具 有多個同時執(zhí)行路徑。所述自動機(jī)包括多個狀態(tài)。為了將語法樹轉(zhuǎn)換成自動機(jī),將語法樹 中的運(yùn)算符及運(yùn)算符之間的關(guān)系轉(zhuǎn)換成狀態(tài),其中所述狀態(tài)之間具有轉(zhuǎn)變。在一實(shí)例中,可 部分地基于FSM晶格30的硬件而轉(zhuǎn)換所述自動機(jī)。
[0061] 在一實(shí)例中,用于自動機(jī)的輸入符號包含字母、數(shù)字0到9及其它可打印字符的符 號。在一實(shí)例中,輸入符號由字節(jié)值0到255 (包含0及255)表不。在一實(shí)例中,自動機(jī)可 表示為有向圖,其中所述圖的節(jié)點(diǎn)對應(yīng)于狀態(tài)集。在一實(shí)例中,輸入符號a (g卩,δ (ρ,α)) 上從狀態(tài)Ρ到狀態(tài)q的轉(zhuǎn)變由從節(jié)點(diǎn)Ρ到節(jié)點(diǎn)q的有向連接展示。在一實(shí)例中,自動機(jī)的反 轉(zhuǎn)產(chǎn)生新的自動機(jī),其中某一符號α上的每一轉(zhuǎn)變p - q在同一符號上反轉(zhuǎn)q - p。在反轉(zhuǎn) 中,開始狀態(tài)變?yōu)樽罱K狀態(tài)且最終狀態(tài)變?yōu)殚_始狀態(tài)。在一實(shí)例中,自動機(jī)所辨識(例如, 匹配)的語言是當(dāng)依序輸入到所述自動機(jī)中時將到達(dá)最終狀態(tài)的所有可能字符串的集。所 述自動機(jī)所辨識的語言中的每一串追蹤從開始狀態(tài)到一或多個最終狀態(tài)的路徑。
[0062] 在框116處,在構(gòu)造自動機(jī)之后,優(yōu)化所述自動機(jī)以除其它之外還減小其復(fù)雜度 及大小。可通過組合冗余狀態(tài)來優(yōu)化所述自動機(jī)。
[0063] 在框118處,將經(jīng)優(yōu)化的自動機(jī)轉(zhuǎn)換成網(wǎng)表。將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表將所述自 動機(jī)的每一狀態(tài)映射到FSM晶格30上的硬件元件(例如,SME 34、36,其它元件)并確定所 述硬件元件之間的連接。
[0064] 在框120處,放置網(wǎng)表以選擇對應(yīng)于所述網(wǎng)表的每一節(jié)點(diǎn)的目標(biāo)裝置的特定硬件 元件(例如,SME 34、36,專用元件58)。在一實(shí)例中,放置是基于FSM晶格30的一般輸入 及輸出約束而選擇每一特定硬件元件。
[0065] 在框122處,路由所放置的網(wǎng)表以確定用于可編程交換元件(例如,塊間交換元件 40、塊內(nèi)交換元件42及行內(nèi)交換元件44)的設(shè)定,以便將選定硬件元件耦合在一起以實(shí)現(xiàn) 網(wǎng)表所描述的連接。在一實(shí)例中,通過確定FSM晶格30的將用以連接選定硬件元件及用于 可編程交換元件的設(shè)定的特定導(dǎo)體來確定用于可編程交換元件的設(shè)定。相比于框120處的 放置,路由可能考慮硬件元件之間的連接的更特定限制。因此,假定有對FSM晶格30上的 導(dǎo)體的實(shí)際限制,路由可調(diào)整如通過全局放置所確定的所述硬件元件中的一些硬件元件的 位置以便做出適當(dāng)連接。
[0066] 一旦網(wǎng)表經(jīng)放置及路由,便可將所述經(jīng)放置及路由的網(wǎng)表轉(zhuǎn)換成用于編程FSM晶 格30的多個位。所述多個位在本文中稱作圖像。
[0067] 在框124處,由編譯器20公布圖像。所述圖像包括用于編程FSM晶格30的特定 硬件元件的多個位。在其中所述圖像包括多個位(例如,?及1)的實(shí)施例中,所述圖像可稱 為二進(jìn)制圖像??蓪⑺鑫患虞d到FSM晶格30上以編程SME 34、36、專用元件58及可編 程交換元件的狀態(tài),以使得經(jīng)編程FSM晶格30實(shí)施具有源代碼所描述的功能性的FSM。放 置(框120)及路由(框122)可將FSM晶格30中的特定位置處的特定硬件元件映射到自 動機(jī)中的特定狀態(tài)。因此,所述圖像中的位可編程特定硬件元件以實(shí)施所要功能。在一實(shí) 例中,可通過將機(jī)器代碼保存到計(jì)算機(jī)可讀媒體來公布所述圖像。在另一實(shí)例中,可通過在 顯示裝置上顯示所述圖像來公布所述圖像。在又一實(shí)例中,可通過將所述圖像發(fā)送到另一 裝置(例如用于將所述圖像加載到FSM晶格30上的編程裝置)來公布所述圖像。在再一 實(shí)例中,可通過將所述圖像加載到FSM晶格(例如,F(xiàn)SM晶格30)上來公布所述圖像。
[0068] 在一實(shí)例中,可通過將位值從圖像直接加載到SME 34、36及其它硬件元件或通過 將圖像加載到一或多個寄存器中且然后將所述位值從所述寄存器寫入到SME 34、36及其 它硬件元件來將所述圖像加載到FSM晶格30上。在一實(shí)例中,F(xiàn)SM晶格30的硬件元件(例 如,SME 34、36、專用元件58、可編程交換元件40、42、44)經(jīng)存儲器映射以使得編程裝置及 /或計(jì)算機(jī)可通過將所述圖像寫入到一或多個存儲器地址而將所述圖像加載到FSM晶格30 上。
[0069] 本文中所描述的方法實(shí)例可為至少部分地機(jī)器或計(jì)算機(jī)實(shí)施的。一些實(shí)例可包含 用指令編碼的計(jì)算機(jī)可讀媒體或機(jī)器可讀媒體,所述指令可操作以配置電子裝置以執(zhí)行如 在以上實(shí)例中所述的方法。此類方法的實(shí)施方案可包含代碼,例如微碼、匯編語言代碼、高 級語言代碼等。此代碼可包含用于執(zhí)行各種方法的計(jì)算機(jī)可讀指令。所述代碼可形成計(jì)算 機(jī)程序產(chǎn)品的部分。此外,所述代碼可在執(zhí)行期間或在其它時間有形地存儲于一或多個易 失性或非易失性計(jì)算機(jī)可讀媒體上。這些計(jì)算機(jī)可讀媒體可包含(但不限于)硬盤、可裝 卸磁盤、可裝卸光盤(例如,壓縮光盤及數(shù)字視頻光盤)、盒式磁帶、存儲卡或存儲棒、隨機(jī) 存取存儲器(RAM)、只讀存儲器(ROM)等。
[0070] 現(xiàn)在參考圖9,其圖解說明狀態(tài)機(jī)引擎14的實(shí)施例。如先前所描述,狀態(tài)機(jī)引擎 14經(jīng)配置以經(jīng)由數(shù)據(jù)總線從源(例如存儲器16)接收數(shù)據(jù)。在所圖解說明的實(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ù)的一或多個FSM晶格30。每一 FSM晶格30可劃分成兩半晶格。在所圖 解說明的實(shí)施例中,每一半晶格可包含24K SME(例如,SME 34、36)以使得晶格30包含48K SME。晶格30可包括如先前關(guān)于圖2到5所描述而布置的任何所要數(shù)目個SME。此外,盡管 圖解說明了僅一個FSM晶格30,但狀態(tài)機(jī)引擎14可包含多個FSM晶格30,如先前所描述。
[0071] 將分析的數(shù)據(jù)可在總線接口 130處接收且經(jīng)由若干個緩沖器及緩沖器接口傳輸 到FSM晶格30。在所圖解說明的實(shí)施例中,數(shù)據(jù)路徑包含數(shù)據(jù)緩沖器132、過程緩沖器134 及排間(IR)總線與過程緩沖器接口 136。數(shù)據(jù)緩沖器132經(jīng)配置以接收且暫時存儲將分析 的數(shù)據(jù)。在一個實(shí)施例中,存在兩個數(shù)據(jù)緩沖器132(數(shù)據(jù)緩沖器A及數(shù)據(jù)緩沖器B)??蓪?數(shù)據(jù)存儲于兩個數(shù)據(jù)緩沖器132中的一者中,而從另一數(shù)據(jù)緩沖器132清空數(shù)據(jù)以供由FSM 晶格30分析。在所圖解說明的實(shí)施例中,數(shù)據(jù)緩沖器132可各自為32千字節(jié)。IR總線與 過程緩沖器接口 136可促進(jìn)到過程緩沖器134的數(shù)據(jù)傳送。IR總線與過程緩沖器136確 保數(shù)據(jù)由FSM晶格30按次序處理。IR總線與過程緩沖器136可協(xié)調(diào)數(shù)據(jù)交換、時序信息、 打包指令等以使得按正確次序接收及分析數(shù)據(jù)。通常,IR總線與過程緩沖器136允許經(jīng)由 FSM晶格30的邏輯排并行分析多個數(shù)據(jù)集。
[0072] 在所圖解說明的實(shí)施例中,狀態(tài)機(jī)引擎14還包含解壓縮器138及壓縮器140以幫 助經(jīng)由狀態(tài)機(jī)引擎14傳送大量數(shù)據(jù)。壓縮器140與解壓縮器138協(xié)同工作以使得可將數(shù) 據(jù)壓縮以最小化數(shù)據(jù)傳送時間。通過壓縮將分析的數(shù)據(jù),可最小化總線利用時間?;谟?編譯器20提供的信息,可將掩碼提供到狀態(tài)機(jī)引擎14以提供可能不對其使用狀態(tài)機(jī)的信 息。壓縮器140及解壓縮器138還可經(jīng)配置以處置變化的突發(fā)長度的數(shù)據(jù)。通過填補(bǔ)經(jīng)壓 縮數(shù)據(jù)及包含關(guān)于每一經(jīng)壓縮區(qū)域何時結(jié)束的指示符,壓縮器140可經(jīng)由狀態(tài)機(jī)引擎14改 進(jìn)總體處理速度。壓縮器140及解壓縮器138還可用以壓縮及解壓縮在由FSM晶格30分 析之后的匹配結(jié)果數(shù)據(jù)。
[0073] 如先前所描述,F(xiàn)SM晶格30的輸出可包括狀態(tài)向量。所述狀態(tài)向量包括FSM晶格 30的可編程元件的狀態(tài)(例如,經(jīng)激活或未經(jīng)激活)。每一狀態(tài)向量可暫時存儲于狀態(tài)向 量高速緩沖存儲器142中以供進(jìn)一步層次式處理及分析。也就是說,可存儲每一狀態(tài)機(jī)的 狀態(tài)以使得最終狀態(tài)可用于進(jìn)一步分析,同時釋放狀態(tài)機(jī)以用于重新編程及/或新數(shù)據(jù)集 的進(jìn)一步分析。如同典型高速緩沖存儲器,狀態(tài)向量高速緩沖存儲器允許存儲信息(此處, 狀態(tài)向量)以供快速擷取及使用(此處,(例如)由FSM晶格30擷取及使用)。額外緩沖 器(例如狀態(tài)向量存儲器緩沖器、狀態(tài)向量中間輸入緩沖器146及狀態(tài)向量中間輸出緩沖 器148)可連同狀態(tài)向量高速緩沖存儲器142 -起利用以適應(yīng)狀態(tài)向量的快速分析及存儲, 同時遵守經(jīng)由狀態(tài)機(jī)引擎14的包傳輸協(xié)議。
[0074] -旦由FSM晶格30產(chǎn)生所關(guān)注結(jié)果,便可將匹配結(jié)果存儲于匹配結(jié)果存儲器150 中。也就是說,可將指示匹配(例如,檢測到所關(guān)注型式)的"匹配向量"存儲于匹配結(jié)果 存儲器150中。舉例來說,然后可將匹配結(jié)果發(fā)送到匹配緩沖器152以供經(jīng)由總線接口 130 傳輸?shù)教幚砥?2。如先前所描述,可壓縮匹配結(jié)果。
[0075] 也可在狀態(tài)機(jī)引擎14中提供額外寄存器及緩沖器。例如,狀態(tài)機(jī)引擎14可包含 控制與狀態(tài)寄存器154。另外,可提供恢復(fù)與編程緩沖器156以便最初用于編程FSM晶格 30或在分析期間恢復(fù)FSM晶格30中的機(jī)器的狀態(tài)。類似地,也可提供保存與修復(fù)映射緩沖 器158以用于存儲用于設(shè)置及使用的保存與修復(fù)映射。
[0076] 如所論述,在一些實(shí)施例中,塊32中的行38中的每一者可包含一或多個專用元件 58,例如計(jì)數(shù)器、可編程布爾邏輯單元、查找表RAM、現(xiàn)場可編程門陣列(FPGA)、專用集成電 路(ASIC)、可編程處理器(例如,微處理器)或用于執(zhí)行專用功能的其它元件。專用元件 58可借助每一行38中的一或多個GOT 60連接到行內(nèi)交換元件。此外,來自每一行38的輸 出可連接到塊內(nèi)交換元件42,塊內(nèi)交換元件42可通過塊間交換元件40連接。
[0077] 圖10是具有各自包含專用元件58的行38的塊32的實(shí)例的圖解說明。舉例來 說,塊32中的專用元件58可包含計(jì)數(shù)器單元58A及布爾邏輯單元58B。盡管圖10中圖解 說明行位置〇到4中的僅行38(例如,標(biāo)記為38A到38E),但每一塊32可具有任何數(shù)目個 行38 (例如,16個行38)且一或多個專用元件58可配置于行38中的每一者中。舉例來說, 在一個實(shí)施例中,計(jì)數(shù)器單元58A可配置于特定行38中(例如,在行位置0、4、8及12中), 而布爾邏輯單元58B可配置于16個行38中的剩余行中(例如,在行位置1、2、3、5、6、7、9、 10、11、13、14、15及16中)。GOT 60與專用元件58可通過行內(nèi)交換元件44在每一行38中 選擇性地耦合(例如,選擇性地連接),其中塊32的每一行38可通過塊內(nèi)交換元件42與塊 32的其它行38中的任一者選擇性地耦合。
[0078] 在一些實(shí)施例中,每一行38中的每一作用GOT 60可輸出指示是否檢測到一或多 個條件(例如,檢測到匹配)的信號,且行38中的專用元件58可接收GOT 60輸出以確定 是否滿足所述一或多個條件的特定量詞及/或計(jì)數(shù)檢測到一條件的次數(shù)。舉例來說,計(jì)數(shù) 操作的量詞可包含確定是否檢測到一條件達(dá)至少特定次數(shù),確定是否檢測到一條件不超過 特定次數(shù),確定是否檢測到一條件達(dá)恰好特定次數(shù),及確定是否在特定次數(shù)范圍內(nèi)檢測到 一條件。
[0079] 來自計(jì)數(shù)器58A及/或布爾邏輯單元58B的輸出可通過行內(nèi)交換元件44及塊內(nèi) 交換元件42傳遞以執(zhí)行具有較大復(fù)雜度的計(jì)數(shù)或邏輯。舉例來說,計(jì)數(shù)器58A可經(jīng)配置以 實(shí)施量詞,例如僅在檢測到一條件達(dá)確切次數(shù)時斷言輸出。也可同時使用塊32中的計(jì)數(shù)器 58A,借此增加經(jīng)組合計(jì)數(shù)器的總位計(jì)數(shù)以計(jì)數(shù)所檢測條件的較高數(shù)目。此外,在一些實(shí)施 例中,可共同使用不同專用元件58 (例如計(jì)數(shù)器58A與布爾邏輯單元58B)。舉例來說,可通 過塊32中的一或多個計(jì)數(shù)器58A計(jì)數(shù)一或多個布爾邏輯單元58B的輸出。
[0080] 盡管圖10中簡化了計(jì)數(shù)器58A與塊32的其它元件之間的連接,但計(jì)數(shù)器58A可 具有可經(jīng)斷言以執(zhí)行各種計(jì)數(shù)器功能的多個輸入。如圖11中所圖解說明,計(jì)數(shù)器58A包括 12位可編程遞減計(jì)數(shù)器。根據(jù)本發(fā)明技術(shù),可在每一計(jì)數(shù)器58A處執(zhí)行計(jì)數(shù)操作,且也可通 過將一行38中的一或多個計(jì)數(shù)器58A "鏈接"在一起來執(zhí)行計(jì)數(shù)操作。此外,在一些實(shí)施 例中,也可將不同行38中的計(jì)數(shù)器58A鏈接在一起。
[0081] 在一些實(shí)施例中,計(jì)數(shù)器58A可包含計(jì)數(shù)啟用輸入178、復(fù)位輸入180及零計(jì)數(shù)輸 出176。計(jì)數(shù)器58A可具有其中可將計(jì)數(shù)的初始值加載于計(jì)數(shù)器58A中的初始值輸入160。 舉例來說,對于12位計(jì)數(shù)器58A,可從相關(guān)聯(lián)寄存器加載或以其它方式加載最高達(dá)12位數(shù) 目作為初始值。在一些實(shí)施例中,計(jì)數(shù)器58A可包含可用以在計(jì)數(shù)器58A的初始編程期間 鎖存所述初始值的加載初始輸入162。一旦加載初始輸入162經(jīng)斷言以鎖存所述初始值, 計(jì)數(shù)器58A的復(fù)位便將加載所述經(jīng)鎖存初始值。可通過適合編程信號(例如,來自處理器 12)改變所述初始值。
[0082] 計(jì)數(shù)啟用輸入178在被斷言時使計(jì)數(shù)器58A的計(jì)數(shù)遞減1。舉例來說,如果在行 38A中的GOT 60中的一者處檢測到一條件,那么GOT 60可將高信號輸出到相關(guān)聯(lián)計(jì)數(shù)器 58A的計(jì)數(shù)啟用輸入178。通過斷言計(jì)數(shù)啟用輸入178,計(jì)數(shù)器58A可使計(jì)數(shù)遞減。一旦計(jì) 數(shù)器58A遞減到零計(jì)數(shù),計(jì)數(shù)器58A便可斷言零計(jì)數(shù)輸出176,零計(jì)數(shù)輸出176可通過行內(nèi) 交換器44、塊內(nèi)交換器42及/或塊間交換器40傳輸以指示已計(jì)數(shù)特定數(shù)目個所檢測條件。
[0083] 計(jì)數(shù)器58A可包含可在計(jì)數(shù)器58A執(zhí)行特定計(jì)數(shù)操作之前取決于將由計(jì)數(shù)器58A 執(zhí)行的操作而編程到所述計(jì)數(shù)器的滾動輸入164及保持輸入166。當(dāng)斷言滾動輸入164且 未斷言保持輸入166時,計(jì)數(shù)器58A響應(yīng)于計(jì)數(shù)器58A遞減到零(例如,在計(jì)數(shù)器58A遞減 到零之后)加載鎖存于12位初始值輸入160中的初始值。因此,具有經(jīng)斷言滾動輸入164 及經(jīng)解除斷言保持輸入166的計(jì)數(shù)器58A可在不具有額外復(fù)位輸入的情況下復(fù)位為初始 值。滾動輸入164可經(jīng)斷言以執(zhí)行特定計(jì)數(shù)操作。舉例來說,為了執(zhí)行計(jì)數(shù)操作以確定數(shù) 據(jù)流是否滿足第一量詞(例如,確定是否檢測到一條件達(dá)至少特定次數(shù)),可斷言滾動輸入 164以使得一旦計(jì)數(shù)遞減到零,便結(jié)束計(jì)數(shù)操作,因?yàn)閷λ鰲l件的進(jìn)一步檢測與滿足第一 量詞不相關(guān)。
[0084] 保持輸入166在被斷言時響應(yīng)于(例如,一旦)計(jì)數(shù)器58A遞減到零而將計(jì)數(shù)保 持為零。如果斷言保持輸入166且將滾動輸入164解除斷言,那么計(jì)數(shù)器58A可在遞減到 零之后斷言零計(jì)數(shù)輸出176直到在復(fù)位輸入180處對計(jì)數(shù)器58A進(jìn)行復(fù)位為止。保持輸入 166可經(jīng)斷言以執(zhí)行特定操作。舉例來說,為了執(zhí)行計(jì)數(shù)操作以確定數(shù)據(jù)流是否滿足第二 量詞(例如,確定是否檢測到一條件達(dá)恰好特定次數(shù)),可斷言保持輸入166以便一旦計(jì)數(shù) 器58A已從初始值遞減到零便將計(jì)數(shù)器保持為零。盡管計(jì)數(shù)器58A保持零計(jì)數(shù),但耦合到 塊32中的計(jì)數(shù)器58A的其它計(jì)數(shù)器58A可確定是否檢測到所述條件達(dá)任何進(jìn)一步次數(shù),此 指示未滿足第二量詞。
[0085] 在一些實(shí)施例中,一個以上計(jì)數(shù)器58A可經(jīng)配置以共同使用以執(zhí)行一或多個計(jì)數(shù) 操作。針對計(jì)數(shù)操作使用一個以上計(jì)數(shù)器58A(稱為經(jīng)鏈接計(jì)數(shù)器)可增加經(jīng)鏈接計(jì)數(shù)器 的位大小。舉例來說,可將塊32中的來自行位置0、4、8及12的四個計(jì)數(shù)器58A鏈接為48 位計(jì)數(shù)器。每一計(jì)數(shù)器58A可包含鏈接啟用輸入168,鏈接啟用輸入168在被斷言時將計(jì)數(shù) 器58A啟用為其它經(jīng)鏈接啟用計(jì)數(shù)器58A的級聯(lián)的部分。經(jīng)級聯(lián)計(jì)數(shù)器可按階配置,其中 較低階計(jì)數(shù)器可計(jì)數(shù)零計(jì)數(shù)并將所述零計(jì)數(shù)輸出到較高階計(jì)數(shù)器。較高階計(jì)數(shù)器可在其已 達(dá)到零計(jì)數(shù)時將零計(jì)數(shù)輸出到另一較高階計(jì)數(shù)器(例如,主計(jì)數(shù)器)。
[0086] 作為經(jīng)鏈接計(jì)數(shù)器操作的實(shí)例,行位置0、4及8中的計(jì)數(shù)器58A(分別稱為計(jì)數(shù)器 (〇)、計(jì)數(shù)器(4)及計(jì)數(shù)器(8))可具有經(jīng)斷言鏈接啟用輸入168以使得其在計(jì)數(shù)器級聯(lián)中 操作。計(jì)數(shù)器(〇)可為最低階計(jì)數(shù)器且可稱為級聯(lián)中的主計(jì)數(shù)器。計(jì)數(shù)器(4)可為按階的 下一者,且計(jì)數(shù)器(8)可為級聯(lián)的最高階計(jì)數(shù)器58A。計(jì)數(shù)器58A可具有使得計(jì)數(shù)器58A能 夠在計(jì)數(shù)器58A已達(dá)到零時加載("翻轉(zhuǎn)")其初始值的經(jīng)斷言滾動輸入164。在一個實(shí)施 例中,計(jì)數(shù)器(〇)可具有初始值輸入且可在斷言計(jì)數(shù)啟用輸入178時使計(jì)數(shù)遞減。一旦計(jì) 數(shù)器(0)已遞減到零,計(jì)數(shù)器(0)便可指示其已遞減到零,且下一較高階計(jì)數(shù)器(4)可在接 收進(jìn)位輸入182處接收此指示。計(jì)數(shù)器(4)可使計(jì)數(shù)遞減,且計(jì)數(shù)器(0)可復(fù)位為其原始 輸入值且可繼續(xù)遞減到零并重新加載,其中計(jì)數(shù)器(4)隨計(jì)數(shù)器(0)的每一重新加載而使 計(jì)數(shù)遞減。當(dāng)計(jì)數(shù)器(4)遞減到零時,計(jì)數(shù)器(4)可指示其已遞減到零,且下一較高階計(jì)數(shù) 器(8)可在其進(jìn)位輸入182處接收此指示。計(jì)數(shù)器(8)可使計(jì)數(shù)遞減,且計(jì)數(shù)器(4)可復(fù) 位為其原始輸入值且可繼續(xù)遞減到零并重新加載,其中計(jì)數(shù)器(8)隨計(jì)數(shù)器(4)的每一重 新加載而使計(jì)數(shù)遞減。
[0087] 一旦計(jì)數(shù)器(8)遞減到零,計(jì)數(shù)器(8)便可向計(jì)數(shù)器(4)指示其已遞減到零,計(jì)數(shù) 器(4)可在接收結(jié)果輸入184處接收此輸入。一旦最高階計(jì)數(shù)器(8)已完全遞減,計(jì)數(shù)器 (4)便可不再復(fù)位。一旦計(jì)數(shù)器(4)完全遞減,計(jì)數(shù)器(4)便可將此指示給主計(jì)數(shù)器(0), 主計(jì)數(shù)器(〇)在結(jié)果輸入184處接收所述輸入。一旦所有較高階計(jì)數(shù)器已完全遞減,主計(jì) 數(shù)器(〇)便可不再復(fù)位,且主計(jì)數(shù)器(〇)可斷言其零計(jì)數(shù)輸出176以指示完成經(jīng)級聯(lián)計(jì)數(shù) 操作。
[0088] 此外,在一些實(shí)施例中,經(jīng)級聯(lián)計(jì)數(shù)器可經(jīng)配置以使得遞減到零的較低階計(jì)數(shù)器 可對較高階計(jì)數(shù)器進(jìn)行復(fù)位。每一計(jì)數(shù)器可具有啟用復(fù)位0(ER(0))輸入174、ER(1)輸入 172及ER⑵輸入170。ER(0)輸入174、ER(1)輸入172及ER⑵輸入170中的每一者可經(jīng) 斷言以使得計(jì)數(shù)器58A可通過從對應(yīng)于啟用復(fù)位輸入位置的計(jì)數(shù)器在復(fù)位輸入186U88或 190中接收復(fù)位信號而復(fù)位。舉例來說,在一些實(shí)施例中,如果將行位置0、4、8及12中的計(jì) 數(shù)器58A級聯(lián),那么可在計(jì)數(shù)器(12)上斷言ER0輸入174、ER1輸入172及ER2輸入170。 當(dāng)斷言ER0輸入174、ER1輸入172及ER2輸入170時,計(jì)數(shù)器(12)可通過行位置0中的計(jì) 數(shù)器58A而在復(fù)位輸入0 (R (0)輸入)190處復(fù)位,通過行位置4中的計(jì)數(shù)器58A而在R (1) 輸入188處復(fù)位且通過行位置8中的計(jì)數(shù)器58A而在R (2)輸入186處復(fù)位。因此,在一些 實(shí)施例中,在經(jīng)級聯(lián)計(jì)數(shù)器操作中,每當(dāng)較低階計(jì)數(shù)器已遞減到零時,所述較低階計(jì)數(shù)器便 可對較高階計(jì)數(shù)器進(jìn)行復(fù)位。
[0089] 應(yīng)注意,盡管圖10將每一行38描繪為具有一個計(jì)數(shù)器58A或一個布爾單元58B, 但行38不限于具有僅一個專用元件58。舉例來說,在一些實(shí)施例中,一或多個行38可具 有一或多個計(jì)數(shù)器58A以及額外專用元件58。包含計(jì)數(shù)器58A的專用元件58可能夠經(jīng)由 行38內(nèi)的行內(nèi)交換元件44與其它專用元件58通信。此外,計(jì)數(shù)器58A不限于12位遞減 計(jì)數(shù)器。在一些實(shí)施例中,也可使用不同位大小的適合計(jì)數(shù)器及/或?qū)嵤┎煌δ苄缘挠?jì) 數(shù)器。
[0090] 盡管可易于對本發(fā)明做出各種修改及替代形式,但已在圖式中通過舉例方式展示 且在本文中詳細(xì)描述了特定實(shí)施例。然而,應(yīng)理解,本發(fā)明并不意欲限于所揭示的特定形 式。而是,本發(fā)明意欲涵蓋如由以下隨附申請專利范圍定義的本發(fā)明的精神及范疇內(nèi)的所 有修改形式、等效形式及替代方案。
【權(quán)利要求】
1. 一種裝置,其包括: 有限狀態(tài)機(jī)FSM晶格,其包括: 多個塊,所述塊中的每一者包括多個行, 所述行中的每一者包括多個可編程元件,其中所述可編程元件中的特定一者經(jīng)配置以 基于檢測到一條件而輸出信號;且 所述塊中的特定一者的所述行中的至少一者進(jìn)一步包括經(jīng)配置以可選擇性地耦合到 所述塊中的所述特定一者的所述多個行中的任一者中的所述多個可編程元件中的任一者 的計(jì)數(shù)器,其中所述計(jì)數(shù)器經(jīng)配置以響應(yīng)于計(jì)數(shù)檢測到所述條件達(dá)特定次數(shù)而輸出。
2. 根據(jù)權(quán)利要求1所述的裝置,其中所述塊中的所述特定一者的所述多個行中的每一 者包括經(jīng)配置以選擇性地耦合所述行的所述多個可編程元件中的任一者與所述計(jì)數(shù)器的 行內(nèi)電路。
3. 根據(jù)權(quán)利要求2所述的裝置,其中所述多個塊中的每一者包括經(jīng)配置以選擇性地耦 合所述塊的所述多個行中的任一者的塊內(nèi)電路,其中所述塊的所述多個行中的一者中的一 個計(jì)數(shù)器可耦合到所述塊的所述多個行中的另一者中的另一計(jì)數(shù)器。
4. 根據(jù)權(quán)利要求3所述的裝置,其中所述晶格包括經(jīng)配置以選擇性地耦合所述多個塊 中的任一者的塊間電路,其中所述多個塊中的所述特定一者中的所述計(jì)數(shù)器可經(jīng)由所述行 內(nèi)電路、所述塊內(nèi)電路及所述塊間電路選擇性地耦合到所述多個塊中的另一者中的可編程 元件。
5. 根據(jù)權(quán)利要求1所述的裝置,其中每一計(jì)數(shù)器包括遞減計(jì)數(shù)器。
6. 根據(jù)權(quán)利要求1所述的裝置,其中所述計(jì)數(shù)器經(jīng)配置以可選擇性地耦合到所述多個 行中的任何其它計(jì)數(shù)器包括所述計(jì)數(shù)器經(jīng)配置以可選擇性地耦合到所述多個行中的任何 其它計(jì)數(shù)器以形成經(jīng)級聯(lián)計(jì)數(shù)器。
7. 根據(jù)權(quán)利要求1所述的裝置,其中每一計(jì)數(shù)器包括: 保持輸入,其配置成經(jīng)斷言以響應(yīng)于所述計(jì)數(shù)器遞減到零且直到所述計(jì)數(shù)器被復(fù)位為 止將所述計(jì)數(shù)器保持為零;及 滾動輸入,其配置成經(jīng)斷言以在未斷言所述保持輸入時加載所述計(jì)數(shù)器的初始值。
8. 根據(jù)權(quán)利要求1所述的裝置,其中每一計(jì)數(shù)器包括: 啟用鏈接輸入,其配置成經(jīng)斷言以將所述計(jì)數(shù)器啟用為經(jīng)級聯(lián)計(jì)數(shù)器的部分;及 滾動輸入,其配置成經(jīng)斷言以響應(yīng)于所述計(jì)數(shù)器遞減到零而翻轉(zhuǎn)所述計(jì)數(shù)器的初始 值。
9. 根據(jù)權(quán)利要求8所述的裝置,其中每一計(jì)數(shù)器包括經(jīng)配置以從較低階計(jì)數(shù)器接收經(jīng) 翻轉(zhuǎn)值的進(jìn)位輸入。
10. 根據(jù)權(quán)利要求9所述的裝置,其中每一計(jì)數(shù)器包括經(jīng)配置以響應(yīng)于較高階計(jì)數(shù)器 遞減到零而接收指示的結(jié)果輸入。
11. 根據(jù)權(quán)利要求8所述的裝置,其中所述每一計(jì)數(shù)器包括經(jīng)配置以通過另一計(jì)數(shù)器 斷言以對所述計(jì)數(shù)器進(jìn)行復(fù)位的啟用復(fù)位輸入。
12. 根據(jù)權(quán)利要求11所述的裝置,其中所述啟用復(fù)位輸入包括經(jīng)配置以啟用所述計(jì)數(shù) 器以通過多個其它計(jì)數(shù)器中的任一者復(fù)位的多個啟用復(fù)位輸入。
13. 根據(jù)權(quán)利要求1所述的裝置,其中所述塊中的所述特定一者的所述多個行中不包 括計(jì)數(shù)器的特定一者包括布爾邏輯單元,其中所述布爾邏輯單元可經(jīng)由行內(nèi)電路及塊內(nèi)電 路選擇性地耦合到所述計(jì)數(shù)器。
14. 根據(jù)權(quán)利要求1所述的裝置,其中所述計(jì)數(shù)器經(jīng)配置以響應(yīng)于計(jì)數(shù)檢測到所述條 件達(dá)特定次數(shù)而輸出包括所述計(jì)數(shù)器經(jīng)配置以響應(yīng)于計(jì)數(shù)檢測到所述條件達(dá)至少所述特 定次數(shù)而輸出。
15. 根據(jù)權(quán)利要求1所述的裝置,其中所述計(jì)數(shù)器經(jīng)配置以響應(yīng)于計(jì)數(shù)檢測到所述條 件達(dá)特定次數(shù)而輸出包括所述計(jì)數(shù)器經(jīng)配置以響應(yīng)于計(jì)數(shù)檢測到所述條件達(dá)恰好所述特 定次數(shù)而輸出。
16. 根據(jù)權(quán)利要求1所述的裝置,其中所述計(jì)數(shù)器經(jīng)配置以響應(yīng)于計(jì)數(shù)檢測到所述條 件達(dá)特定次數(shù)而輸出包括所述計(jì)數(shù)器經(jīng)配置以響應(yīng)于計(jì)數(shù)在特定次數(shù)范圍內(nèi)檢測到所述 條件而輸出。
17. 根據(jù)權(quán)利要求1所述的裝置,其中所述計(jì)數(shù)器經(jīng)配置以可選擇性地耦合到所述塊 中的所述特定一者的所述多個行中的任何其它計(jì)數(shù)器。
18. 根據(jù)權(quán)利要求1所述的裝置,其包括服務(wù)器、個人計(jì)算機(jī)、工作站、路由器、網(wǎng)絡(luò)交 換器、芯片測試設(shè)備、膝上型計(jì)算機(jī)、手機(jī)、媒體播放器、游戲控制臺或包括所述FSM晶格的 大型計(jì)算機(jī)。
19. 一種在計(jì)數(shù)器處執(zhí)行計(jì)數(shù)操作的方法,其包括: 在狀態(tài)機(jī)晶格中分析數(shù)據(jù)流以檢測一條件; 每當(dāng)檢測到所述條件時便在所述計(jì)數(shù)器處計(jì)數(shù); 響應(yīng)于所述計(jì)數(shù)器計(jì)數(shù)檢測到所述條件達(dá)特定次數(shù)而從所述計(jì)數(shù)器輸出; 響應(yīng)于所述計(jì)數(shù)器計(jì)數(shù)檢測到所述條件達(dá)特定次數(shù)、斷言所述計(jì)數(shù)器的滾動輸入且未 斷言所述計(jì)數(shù)器的保持輸入而將初始值加載到所述計(jì)數(shù)器;及 響應(yīng)于斷言所述計(jì)數(shù)器的所述保持輸入且直到所述計(jì)數(shù)器的復(fù)位為止保持所述計(jì)數(shù) 器的所述輸出,其中基于所述計(jì)數(shù)操作的量詞而斷言所述計(jì)數(shù)器的所述滾動輸入、所述計(jì) 數(shù)器的所述保持輸入或者不斷言所述計(jì)數(shù)器的所述滾動輸入或所述保持輸入中的任一者。
20. 根據(jù)權(quán)利要求19所述的方法,其包括:將所述初始值加載到所述計(jì)數(shù)器中且將所 述初始值鎖存于所述計(jì)數(shù)器中。
21. 根據(jù)權(quán)利要求19所述的方法,其中在所述計(jì)數(shù)器處計(jì)數(shù)包括:每當(dāng)檢測到所述條 件時,便使計(jì)數(shù)從所述初始值遞減。
22. 根據(jù)權(quán)利要求21所述的方法,其中從所述計(jì)數(shù)器輸出包括:輸出零計(jì)數(shù)。
23. 根據(jù)權(quán)利要求22所述的方法,其中保持所述計(jì)數(shù)器的所述輸出包括:將所述計(jì)數(shù) 保持為零。
24. 根據(jù)權(quán)利要求19所述的方法,其中在所述計(jì)數(shù)器處計(jì)數(shù)包括:在經(jīng)級聯(lián)計(jì)數(shù)器處 計(jì)數(shù)。
25. 根據(jù)權(quán)利要求19所述的方法,其中所述量詞包括以下各項(xiàng)中的一者:確定是否檢 測到所述條件達(dá)至少特定次數(shù)、確定是否檢測到所述條件不超過特定次數(shù)、確定是否檢測 到所述條件達(dá)恰好特定次數(shù)及確定是否在特定次數(shù)范圍內(nèi)檢測到所述條件。
26. -種裝置,其包括: 計(jì)數(shù)器,其經(jīng)配置以: 接收計(jì)數(shù)啟用信號且響應(yīng)于檢測到一條件而使計(jì)數(shù)遞減; 響應(yīng)于所述計(jì)數(shù)器遞減到零而輸出零計(jì)數(shù); 如果在所述計(jì)數(shù)器上斷言保持輸入,那么保持所述零計(jì)數(shù)直到所述計(jì)數(shù)器被復(fù)位為 止; 如果較低級計(jì)數(shù)器與所述計(jì)數(shù)器級聯(lián),那么從所述較低級計(jì)數(shù)器接收進(jìn)位輸入; 響應(yīng)于所述計(jì)數(shù)器遞減到零而向所述較低級計(jì)數(shù)器指示;及 響應(yīng)于另一計(jì)數(shù)器斷言復(fù)位信號而復(fù)位。
27. 根據(jù)權(quán)利要求26所述的裝置,其中所述計(jì)數(shù)器經(jīng)配置以在遞減到零之后且直到所 述計(jì)數(shù)器被復(fù)位為止輸出所述零計(jì)數(shù)。
28. 根據(jù)權(quán)利要求26所述的裝置,其包括布爾邏輯單元,其中所述計(jì)數(shù)器經(jīng)配置以選 擇性地耦合到所述布爾邏輯單元。
29. 根據(jù)權(quán)利要求26所述的裝置,其包括經(jīng)配置以響應(yīng)于檢測到一條件而提供所述計(jì) 數(shù)啟用信號的可編程元件,其中所述計(jì)數(shù)器經(jīng)配置以響應(yīng)于檢測到一條件而使計(jì)數(shù)遞減包 括所述計(jì)數(shù)器經(jīng)配置以計(jì)數(shù)所述可編程元件檢測到所述條件的次數(shù)。
【文檔編號】G06N5/04GK104067282SQ201280068059
【公開日】2014年9月24日 申請日期:2012年12月5日 優(yōu)先權(quán)日:2011年12月15日
【發(fā)明者】哈羅德·B·諾伊斯, 戴維·R·布朗, 保羅·格倫迪寧 申請人:美光科技公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
广汉市| 大安市| 英德市| 石狮市| 太保市| 东莞市| 东平县| 蒙山县| 新龙县| 阳泉市| 鹤庆县| 兰坪| 宜兰县| 且末县| 涞水县| 金堂县| 隆尧县| 卓尼县| 资兴市| 县级市| 陈巴尔虎旗| 普兰县| 城市| 凉城县| 新源县| 织金县| 白河县| 布尔津县| 闻喜县| 信丰县| 兰州市| 沾益县| 孟连| 固原市| 高台县| 曲阳县| 长丰县| 鹤壁市| 鱼台县| 措美县| 陈巴尔虎旗|