專利名稱:用于減少模式辨識(shí)處理器中的功率消耗的方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例大體來說涉及模式辨識(shí)處理器,且更具體來說,在某些實(shí)施例中,涉及減少此些模式辨識(shí)處理器的功率消耗。
背景技術(shù):
在計(jì)算領(lǐng)域中,模式辨識(shí)任務(wù)越來越具有挑戰(zhàn)性。計(jì)算機(jī)之間傳輸?shù)臄?shù)據(jù)量不斷增大,且用戶希望識(shí)別的模式數(shù)目日益增加。舉例來說,通常通過搜索數(shù)據(jù)流中的模式(例如,特定短語或代碼片段)來檢測(cè)垃圾郵件或惡意軟件。模式的數(shù)目隨著垃圾郵件及惡意軟件的變化而增加,因?yàn)榭蓪?shí)施新模式以搜索新變體。搜索數(shù)據(jù)流以找到這些模式中的每一者可形成計(jì)算瓶頸。通常,在接收到數(shù)據(jù)流時(shí),搜索數(shù)據(jù)流以一次一個(gè)地找到每一模式。在系統(tǒng)準(zhǔn)備搜索數(shù)據(jù)流的下一部分之前的延遲隨著模式數(shù)目而增加。因此,模式辨識(shí)可使 數(shù)據(jù)的接收減慢。此些模式辨識(shí)裝置可使用可用于模式辨識(shí)過程的存儲(chǔ)器核心的全部或幾乎全部。也就是說,由于搜索每一數(shù)據(jù)流以找出一個(gè)或一個(gè)以上模式的本質(zhì),在每一處理循環(huán)期間可存取所述存儲(chǔ)器核心的全部或幾乎全部。此可導(dǎo)致模式辨識(shí)處理器的高功率消耗。另外,與常規(guī)DRAM裝置或其它存儲(chǔ)器一起使用的地址解碼技術(shù)可能不適合于供模式辨識(shí)裝置使用
發(fā)明內(nèi)容
圖I描繪搜索數(shù)據(jù)流的系統(tǒng)的實(shí)例;圖2描繪圖I的系統(tǒng)中的模式辨識(shí)處理器的實(shí)例;圖3描繪圖2的模式辨識(shí)處理器中的搜索項(xiàng)單元的實(shí)例;圖4及5描繪圖3的搜索項(xiàng)單元搜索數(shù)據(jù)流以找到單個(gè)字符;圖6到8描繪搜索數(shù)據(jù)流以找到一詞的包含數(shù)個(gè)搜索項(xiàng)單元的辨識(shí)模塊;圖9描繪經(jīng)布置以搜索數(shù)據(jù)流以并行找到兩個(gè)詞的辨識(shí)模塊;圖10到12描繪根據(jù)規(guī)定具有同一前綴的多個(gè)詞的搜索準(zhǔn)則進(jìn)行搜索的辨識(shí)模塊;圖13描繪根據(jù)本發(fā)明的實(shí)施例將特征單元布置成若干行及若干塊;圖14A及14B描繪根據(jù)本發(fā)明的實(shí)施例的特征單元塊的操作;圖15描繪根據(jù)本發(fā)明的實(shí)施例的功率控制電路的邏輯示意圖;圖16描繪根據(jù)本發(fā)明的實(shí)施例用于模式辨識(shí)處理器的塊的預(yù)測(cè)性激活方案;且圖17描繪根據(jù)本發(fā)明的實(shí)施例用于在一塊處處理信號(hào)的邏輯圖。
具體實(shí)施方式
圖I描繪搜索數(shù)據(jù)流12的系統(tǒng)10的實(shí)例。系統(tǒng)10可包含模式辨識(shí)處理器14,其根據(jù)搜索準(zhǔn)則16搜索數(shù)據(jù)流12。每一搜索準(zhǔn)則可規(guī)定一個(gè)或一個(gè)以上目標(biāo)表達(dá)(即,模式)。短語“目標(biāo)表達(dá)”是指模式辨識(shí)處理器14正在搜索的數(shù)據(jù)序列。目標(biāo)表達(dá)的實(shí)例包含拼寫某一詞的字符序列、詳細(xì)說明基因的遺傳堿基對(duì)序列、形成圖像的一部分的圖片或視頻文件中的位序列、形成程序的一部分的可執(zhí)行文件中的位序列或形成歌曲或口語短語的一部分的音頻文件中的位序列。搜索準(zhǔn)則可規(guī)定一個(gè)以上目標(biāo)表達(dá)。舉例來說,搜索準(zhǔn)則可規(guī)定以字母序列“Cl”開始的所有五個(gè)字母的詞、以字母序列“Cl”開始的任一詞、包含詞“cloud”三次以上的段落等。可能目標(biāo)表達(dá)集合的數(shù)目為任意大的,例如,可存在與數(shù)據(jù)流可呈現(xiàn)的數(shù)據(jù)排列同樣多的目標(biāo)表達(dá)。搜索準(zhǔn)則可以各種格式來表達(dá),包含正則表達(dá)、簡(jiǎn)明地規(guī)定若干目標(biāo)表達(dá)集合而不必列舉每一目標(biāo)表達(dá)的程序設(shè)計(jì)語言。 每一搜索準(zhǔn)則可由一個(gè)或一個(gè)以上搜索項(xiàng)構(gòu)造而成。因此,搜索準(zhǔn)則的每一目標(biāo)表達(dá)可包含一個(gè)或一個(gè)以上搜索項(xiàng)且一些目標(biāo)表達(dá)可使用共用搜索項(xiàng)。如本文中所使用,短語“搜索項(xiàng)”是指在單個(gè)搜索循環(huán)期間所搜索的數(shù)據(jù)序列。所述數(shù)據(jù)序列可包含呈二進(jìn)制格式或其它格式(例如,十進(jìn)制、ASCII等)的多個(gè)數(shù)據(jù)位。所述序列可用單個(gè)數(shù)字或多個(gè)數(shù)字(例如,數(shù)個(gè)二進(jìn)制數(shù)字)編碼數(shù)據(jù)。舉例來說,模式辨識(shí)處理器14可一次一個(gè)字符地搜索文本數(shù)據(jù)流12,且搜索項(xiàng)可規(guī)定具有單個(gè)字符的集合,例如,字母“a”,字母“a”或“ e ”,或規(guī)定具有所有單個(gè)字符的集合的通配符搜索項(xiàng)。搜索項(xiàng)可小于或大于規(guī)定字符(或數(shù)據(jù)流所表達(dá)的信息的其它語義符-即,基本單位,例如,音符、遺傳堿基對(duì)、10進(jìn)制數(shù)字或子像素)的位的數(shù)目。舉例來說,搜索項(xiàng)可為8個(gè)位且單個(gè)字符可為16個(gè)位,在此情況下,兩個(gè)相連搜索項(xiàng)可規(guī)定單個(gè)字符。搜索準(zhǔn)則16可由編譯器18格式化以用于模式辨識(shí)處理器14。格式化可包含從所述搜索準(zhǔn)則解構(gòu)出搜索項(xiàng)。舉例來說,如果數(shù)據(jù)流12所表達(dá)的語義符大于所述搜索項(xiàng),那么所述編譯器可將搜索準(zhǔn)則解構(gòu)成多個(gè)搜索項(xiàng)以搜索單個(gè)語義符。類似地,如果數(shù)據(jù)流12所表達(dá)的語義符小于所述搜索項(xiàng),那么編譯器18可為每一單獨(dú)語義符提供具有未使用位的單個(gè)搜索項(xiàng)。編譯器18還可對(duì)搜索準(zhǔn)則16進(jìn)行格式化以支持模式辨識(shí)處理器14本機(jī)不支持的各種正則表達(dá)運(yùn)算符。模式辨識(shí)處理器14可通過評(píng)估來自數(shù)據(jù)流12的每一新項(xiàng)來搜索數(shù)據(jù)流12。此處,詞“項(xiàng)”是指可匹配搜索項(xiàng)的數(shù)據(jù)量。在搜索循環(huán)期間,模式辨識(shí)處理器14可確定當(dāng)前所呈現(xiàn)的項(xiàng)是否匹配搜索準(zhǔn)則中的當(dāng)前搜索項(xiàng)。如果所述項(xiàng)匹配所述搜索項(xiàng),那么使評(píng)估“前進(jìn)”,即,將下一項(xiàng)與搜索準(zhǔn)則中的下一搜索項(xiàng)進(jìn)行比較。如果所述項(xiàng)不匹配,那么將下一項(xiàng)與搜索準(zhǔn)則中的第一項(xiàng)進(jìn)行比較,借此對(duì)搜索進(jìn)行復(fù)位??蓪⒚恳凰阉鳒?zhǔn)則編譯到模式辨識(shí)處理器14中的不同有限狀態(tài)機(jī)(FSM)中。所述有限狀態(tài)機(jī)可并行運(yùn)行,從而根據(jù)搜索準(zhǔn)則16來搜索數(shù)據(jù)流12。在前面的搜索項(xiàng)由數(shù)據(jù)流12匹配時(shí),所述有限狀態(tài)機(jī)可步進(jìn)經(jīng)過搜索準(zhǔn)則中的每一連續(xù)搜索項(xiàng),或如果所述搜索項(xiàng)未被匹配,那么所述有限狀態(tài)機(jī)可開始搜索所述搜索準(zhǔn)則的第一搜索項(xiàng)。模式辨識(shí)處理器14可在約相同時(shí)間(例如,在單個(gè)裝置循環(huán)期間)根據(jù)數(shù)個(gè)搜索準(zhǔn)則及其相應(yīng)搜索項(xiàng)評(píng)估每一新項(xiàng)。所述并行有限狀態(tài)機(jī)可各自在約相同時(shí)間接收來自數(shù)據(jù)流12的項(xiàng),且所述并行有限狀態(tài)機(jī)中的每一者可確定所述項(xiàng)是否使所述并行有限狀態(tài)機(jī)前進(jìn)到其搜索準(zhǔn)則中的下一搜索項(xiàng)。所述并行有限狀態(tài)機(jī)可根據(jù)相對(duì)大數(shù)目個(gè)搜索準(zhǔn)則(例如,多于100、多于1000或多于10,000)來評(píng)估項(xiàng)。由于其并行操作,因此其可將所述搜索準(zhǔn)則應(yīng)用到具有相對(duì)高帶寬的數(shù)據(jù)流12 (例如,大于或大體等于每秒64MB或每秒128MB的數(shù)據(jù)流12)而不會(huì)使所述數(shù)據(jù)流減慢。在一些實(shí)施例中,搜索循環(huán)持續(xù)時(shí)間不隨搜索準(zhǔn)則的數(shù)目按比例縮放,因此搜索準(zhǔn)則的數(shù)目對(duì)模式辨識(shí)處理器14的性能可幾乎沒有影響。當(dāng)滿足搜索準(zhǔn)則時(shí)(即,在前進(jìn)到最后一個(gè)搜索項(xiàng)且匹配其之后),模式辨識(shí)處理器14可將所述準(zhǔn)則的滿足報(bào)告給處理單元,例如,中央處理單元(CPU) 20。中央處理單元20可控制模式辨識(shí)處理器14及系統(tǒng)10的其它部分。系統(tǒng)10可為搜索數(shù)據(jù)流的各種系統(tǒng)或裝置中的任一者。舉例來說,系統(tǒng)10可為搜索數(shù)據(jù)流12的桌上型、膝上型、手持式或其它類型的計(jì)算機(jī)。系統(tǒng)10還可為網(wǎng)絡(luò)節(jié)點(diǎn),例如,路由器、服務(wù)器或客戶端(例如,先前所述類型的計(jì)算機(jī)中的一者)。系統(tǒng)10可為某一 其它類別的電子裝置,例如,復(fù)印機(jī)、掃描儀、打印機(jī)、游戲控制臺(tái)、電視、機(jī)頂視頻分配或記錄系統(tǒng)、電纜盒、個(gè)人數(shù)字媒體播放器、工廠自動(dòng)化系統(tǒng)、汽車計(jì)算機(jī)系統(tǒng)或醫(yī)療裝置。(用來描述系統(tǒng)的這些各種實(shí)例的術(shù)語(如同本文中所使用的許多其它術(shù)語)可共享某些所指物,且如此不應(yīng)僅根據(jù)所列舉的其它物項(xiàng)來理解)。數(shù)據(jù)流12可為用戶或其它實(shí)體可希望搜索的各種類型的數(shù)據(jù)流中的一者或一者以上。舉例來說,數(shù)據(jù)流12可為在網(wǎng)絡(luò)上接收的數(shù)據(jù)流,例如,在因特網(wǎng)上接收的包或在蜂窩式網(wǎng)絡(luò)上接收的話音或數(shù)據(jù)。數(shù)據(jù)流12可為從與系統(tǒng)10通信的傳感器(例如,成像傳感器、溫度傳感器、加速度計(jì)或類似物或其組合物)接收的數(shù)據(jù)。數(shù)據(jù)流12可作為串行數(shù)據(jù)流由系統(tǒng)10接收,其中數(shù)據(jù)是以具有意義的次序(例如,以在時(shí)間上、在詞法上或在語義上有效的次序)被接收?;蛘?,可并行地或無序地接收數(shù)據(jù)流12,且接著(例如)通過將在因特網(wǎng)上接收的包重新排序?qū)?shù)據(jù)流12轉(zhuǎn)換成串行數(shù)據(jù)流。在一些實(shí)施例中,數(shù)據(jù)流12可以串行方式呈現(xiàn)項(xiàng),但可并行地接收表達(dá)所述項(xiàng)中的每一者的位。數(shù)據(jù)流12可從系統(tǒng)10外部的源接收,或可通過詢問存儲(chǔ)器裝置且由所存儲(chǔ)的數(shù)據(jù)形成數(shù)據(jù)流12來形成。取決于數(shù)據(jù)流12中的數(shù)據(jù)的類型,設(shè)計(jì)者可選擇不同類型的搜索準(zhǔn)則。舉例來說,搜索準(zhǔn)則16可為病毒定義文件??杀碚鞑《净蚱渌鼝阂廛浖铱墒褂脨阂廛浖姆矫鎭硇纬芍甘緮?shù)據(jù)流12是否可能正在遞送惡意軟件的搜索準(zhǔn)則??蓪⑺盟阉鳒?zhǔn)則存儲(chǔ)于服務(wù)器上,且客戶端系統(tǒng)的操作者可訂閱將搜索準(zhǔn)則下載到系統(tǒng)10的服務(wù)。由于會(huì)出現(xiàn)不同類型的惡意軟件,因此可從所述服務(wù)器周期性地更新搜索準(zhǔn)則16。搜索準(zhǔn)則還可用來規(guī)定可在網(wǎng)絡(luò)上接收的不合意內(nèi)容,舉例來說,不想要的電子郵件(通常稱為垃圾郵件)或用戶發(fā)現(xiàn)是令人反感的其它內(nèi)容。數(shù)據(jù)流12可由對(duì)系統(tǒng)10正在接收的數(shù)據(jù)感興趣的第三方來搜索。舉例來說,可針對(duì)在版權(quán)作品中出現(xiàn)的文本、音頻序列或視頻序列而搜索數(shù)據(jù)流12??舍槍?duì)與刑事調(diào)查或民事訴訟有關(guān)或雇主感興趣的言論而搜索數(shù)據(jù)流12。在其它實(shí)施例中,針對(duì)感興趣的數(shù)據(jù)監(jiān)視數(shù)據(jù)流可為搜索的實(shí)例。搜索準(zhǔn)則16還可包含數(shù)據(jù)流12中的若干模式,例如,在可由CPU 20或模式辨識(shí)處理器14尋址的存儲(chǔ)器中,可對(duì)所述模式進(jìn)行翻譯。舉例來說,搜索準(zhǔn)則16可各自規(guī)定英語詞,對(duì)于所述英語詞,對(duì)應(yīng)西班牙語詞存儲(chǔ)于存儲(chǔ)器中。在另一實(shí)例中,搜索準(zhǔn)則16可規(guī)定數(shù)據(jù)流12的經(jīng)編碼版本,例如,MP3、MPEG4、FLAC、Ogg Vorbis等,對(duì)于所述經(jīng)編碼版本,可得到數(shù)據(jù)流12的經(jīng)解碼版本,或反之亦然。模式辨識(shí)處理器14可為與CPU 20 一起集成到單個(gè)組件(例如,單個(gè)裝置)中或可形成為單獨(dú)組件的 硬件。舉例來說,模式辨識(shí)處理器14可為單獨(dú)集成電路。模式辨識(shí)處理器14可稱為“協(xié)處理器”或“模式辨識(shí)協(xié)處理器”。圖2描繪模式辨識(shí)處理器14的實(shí)例。模式辨識(shí)處理器14可包含辨識(shí)模塊22及聚合模塊24。辨識(shí)模塊22可經(jīng)配置以將所接收的項(xiàng)與搜索項(xiàng)進(jìn)行比較,且辨識(shí)模塊22與聚合模塊24兩者可協(xié)作以確定將項(xiàng)與搜索項(xiàng)匹配是否滿足搜索準(zhǔn)則。辨識(shí)模塊22可包含行解碼器28及多個(gè)特征單元30。每一特征單元30可規(guī)定一搜索項(xiàng),且特征單元30的群組可形成形成搜索準(zhǔn)則的并行有限狀態(tài)機(jī)。特征單元30的組件可形成搜索項(xiàng)陣列32、檢測(cè)陣列34及激活路由矩陣36。搜索項(xiàng)陣列32可包含多個(gè)輸入導(dǎo)體37,其中的每一者可使特征單元30中的每一者與行解碼器28通信。行解碼器28可基于數(shù)據(jù)流12的內(nèi)容而在多個(gè)輸入導(dǎo)體37當(dāng)中選擇特定導(dǎo)體。舉例來說,行解碼器28可為I字節(jié)/256行解碼器,其基于可表示一個(gè)項(xiàng)的所接收字節(jié)的值而激活256個(gè)行中的一者。I字節(jié)項(xiàng)0000 0000可對(duì)應(yīng)于多個(gè)輸入導(dǎo)體37當(dāng)中的頂部行,且I字節(jié)項(xiàng)1111 1111可對(duì)應(yīng)于多個(gè)輸入導(dǎo)體37當(dāng)中的底部行。因此,取決于從數(shù)據(jù)流12接收到哪些項(xiàng),可選擇不同輸入導(dǎo)體37。在接收到不同項(xiàng)時(shí),行解碼器28可去激活對(duì)應(yīng)于先前項(xiàng)的行且激活對(duì)應(yīng)于新項(xiàng)的行。檢測(cè)陣列34可耦合到檢測(cè)總線38,檢測(cè)總線38將指示搜索準(zhǔn)則的全部或部分滿足的信號(hào)輸出到聚合模塊24。激活路由矩陣36可基于(舉例來說)搜索準(zhǔn)則中的已被匹配的搜索項(xiàng)而選擇性地激活及去激活特征單元30。聚合模塊24可包含鎖存器矩陣40、聚合路由矩陣42、閾值邏輯矩陣44、邏輯積矩陣46、邏輯和矩陣48及初始化路由矩陣50。鎖存器矩陣40可實(shí)施某些搜索準(zhǔn)則的若干部分。一些搜索準(zhǔn)則(例如,一些正則表達(dá))僅計(jì)數(shù)匹配或匹配群組的第一次出現(xiàn)。鎖存器矩陣40可包含記錄是否已出現(xiàn)匹配的鎖存器。所述鎖存器可在初始化期間經(jīng)清除,且在操作期間周期性地經(jīng)重新初始化,因?yàn)榻?jīng)確定將滿足或不可進(jìn)一步滿足搜索準(zhǔn)則-即,較早搜索項(xiàng)可需要在可滿足所述搜索準(zhǔn)則之前被再次匹配。聚合路由矩陣42可類似于激活路由矩陣36地發(fā)揮作用。聚合路由矩陣42可在檢測(cè)總線38上接收指示匹配的信號(hào)且可將所述信號(hào)路由到連接到閾值邏輯矩陣44的不同群組邏輯線53。聚合路由矩陣42還可將初始化路由矩陣50的輸出路由到檢測(cè)陣列34以在經(jīng)確定將滿足或不可進(jìn)一步滿足搜索準(zhǔn)則時(shí)對(duì)檢測(cè)陣列34的若干部分進(jìn)行復(fù)位。閾值邏輯矩陣44可包含多個(gè)計(jì)數(shù)器,例如,經(jīng)配置以遞增計(jì)數(shù)或遞減計(jì)數(shù)的32位計(jì)數(shù)器。閾值邏輯矩陣44可加載有初始計(jì)數(shù)且其可基于由辨識(shí)模塊用信號(hào)通知的匹配而從所述計(jì)數(shù)遞增計(jì)數(shù)或遞減計(jì)數(shù)。舉例來說,閾值邏輯矩陣44可計(jì)數(shù)某一長(zhǎng)度的文本中一詞的出現(xiàn)數(shù)目。閾值邏輯矩陣44的輸出可為到邏輯積矩陣46的輸入。邏輯積矩陣46可選擇性地產(chǎn)生“積”結(jié)果(例如,布爾邏輯(Boolean logic)中的“與”函數(shù))。邏輯積矩陣46可實(shí)施為正方形矩陣,其中輸出積的數(shù)目等于來自閾值邏輯矩陣44的輸入線的數(shù)目,或邏輯積矩陣46可具有數(shù)目不同于輸出的輸入??蓪⑺梅e值輸出到邏輯和矩陣48。邏輯和矩陣48可選擇性地產(chǎn)生和(例如,布爾邏輯中的“或”函數(shù))。邏輯和矩陣48也可為正方形矩陣,或邏輯和矩陣48可具有數(shù)目不同于輸出的輸入。由于所述輸入為邏輯積,因此邏輯和矩陣48的輸出可為邏輯積和(例如,布爾邏輯積和(SOP)形式)。邏輯和矩陣48的輸出可由初始化路由矩陣50接收。初始化路由矩陣50可經(jīng)由聚合路由矩陣42對(duì)檢測(cè)陣列34及聚合模塊24的若干部分進(jìn)行復(fù)位。初始化路由矩陣50也可實(shí)施為正方形矩陣,或初始化路由矩陣50可具有數(shù)目不同于輸出的輸入。初始化路由矩陣50可響應(yīng)于來自邏輯和矩陣48的信號(hào)且重新初始化模式辨識(shí)處理器14的其它部分(例如,在滿足搜索準(zhǔn)則或經(jīng)確定不可進(jìn)一步滿足所述搜索準(zhǔn)則時(shí))。聚合模塊24可包含輸出緩沖器51,其接收閾值邏輯矩陣44、聚合路由矩陣42及邏輯和矩陣48的輸出。聚合模塊24的輸出可在輸出總線26上從輸出緩沖器51傳輸?shù)紺PU 20(圖I)。在一些實(shí)施例中,輸出多路復(fù)用器可對(duì)來自這些組件42、44及48的信號(hào)進(jìn) 行多路復(fù)用且將指示準(zhǔn)則的滿足或搜索項(xiàng)的匹配的信號(hào)輸出到CPU 20(圖I)。在其它實(shí)施例中,可在不通過所述輸出多路復(fù)用器傳輸所述信號(hào)的情況下報(bào)告來自模式辨識(shí)處理器14的結(jié)果,此并非暗示也不可省略本文中所描述的任一其它特征。舉例來說,可將來自閾值邏輯矩陣44、邏輯積矩陣46、邏輯和矩陣48或初始化路由矩陣50的信號(hào)在輸出總線26上并行傳輸?shù)剿鯟PU。圖3圖解說明搜索項(xiàng)陣列32 (圖2)中的單個(gè)特征單元30的一部分(本文中稱為搜索項(xiàng)單元54的組件)。搜索項(xiàng)單元54可包含輸出導(dǎo)體56及多個(gè)存儲(chǔ)器單元58。存儲(chǔ)器單元58中的每一者可耦合到輸出導(dǎo)體56及多個(gè)輸入導(dǎo)體37當(dāng)中的導(dǎo)體中的一者兩者。響應(yīng)于其輸入導(dǎo)體37被選擇,存儲(chǔ)器單元58中的每一者可輸出指示其所存儲(chǔ)值的值,從而通過輸出導(dǎo)體56輸出數(shù)據(jù)。在一些實(shí)施例中,多個(gè)輸入導(dǎo)體37可稱為“字線”,且輸出導(dǎo)體56可稱為“數(shù)據(jù)線”。存儲(chǔ)器單元58可包含各種類型的存儲(chǔ)器單元中的任一者。舉例來說,存儲(chǔ)器單元58可為易失性存儲(chǔ)器,例如,具有晶體管及電容器的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)單元。所述晶體管的源極與漏極可分別連接到所述電容器的板及輸出導(dǎo)體56,且所述晶體管的柵極可連接到輸入導(dǎo)體37中的一者。在易失性存儲(chǔ)器的另一實(shí)例中,存儲(chǔ)器單元58中的每一者可包含靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)單元。所述SRAM單元可具有輸出,其通過受輸入導(dǎo)體37中的一者控制的存取晶體管選擇性地耦合到輸出導(dǎo)體56。存儲(chǔ)器單元58還可包含非易失性存儲(chǔ)器,例如,相變存儲(chǔ)器(例如,雙向裝置)、快閃存儲(chǔ)器、硅-氧化物-氮化物-氧化物-硅(SONOS)存儲(chǔ)器、磁阻式存儲(chǔ)器或其它類型的非易失性存儲(chǔ)器。存儲(chǔ)器單元58還可包含觸發(fā)器,例如,由邏輯門制成的存儲(chǔ)器單元。圖4及5描繪操作中的搜索項(xiàng)單元54的實(shí)例。圖4圖解說明搜索項(xiàng)單元54接收不匹配所述單元的搜索項(xiàng)的項(xiàng),且圖5圖解說明匹配。如圖4所圖解說明,搜索項(xiàng)單元54可經(jīng)配置以通過將數(shù)據(jù)存儲(chǔ)于存儲(chǔ)器單元58中來搜索一個(gè)或一個(gè)以上項(xiàng)。存儲(chǔ)器單元58可各自表示數(shù)據(jù)流12可呈現(xiàn)的項(xiàng),例如,在圖3中,每一存儲(chǔ)器單元58表示單個(gè)字母或數(shù)字,以字母“a”開始且以數(shù)字“9”結(jié)束。表示滿足搜索項(xiàng)的項(xiàng)的存儲(chǔ)器單元58可經(jīng)編程以存儲(chǔ)第一值,且不表示滿足搜索項(xiàng)的項(xiàng)的存儲(chǔ)器單元58可經(jīng)編程以存儲(chǔ)不同值。在所圖解說明的實(shí)例中,搜索項(xiàng)單元54經(jīng)配置以搜索字母“b”。表示“b”的存儲(chǔ)器單元58可存儲(chǔ)I或邏輯高,且不表示“b”的存儲(chǔ)器單元58可經(jīng)編程以存儲(chǔ)O或邏輯低。為了將來自數(shù)據(jù)流12的項(xiàng)與搜索項(xiàng)進(jìn)行比較,行解碼器28可選擇耦合到表示所接收項(xiàng)的存儲(chǔ)器單元58的輸入導(dǎo)體37。在圖4中,數(shù)據(jù)流12呈現(xiàn)小寫“e”。此項(xiàng)可由數(shù)據(jù)流12以八位ASCII代碼的形式呈現(xiàn),且行解碼器28可將此字節(jié)解釋為行地址,從而通過給導(dǎo)體60通電而在其上輸出信號(hào)。作為響應(yīng),由導(dǎo)體60控制的存儲(chǔ)器單元58可輸出指示存儲(chǔ)器單元58所存儲(chǔ)的數(shù)據(jù)的信號(hào),且所述信號(hào)可由輸出導(dǎo)體56傳達(dá)。在此情況下,由于字母“e”并非由搜索項(xiàng)單元54規(guī)定的項(xiàng)中的一者,因此其不匹配搜索項(xiàng),且搜索項(xiàng)單元54輸出O值,從而指示未發(fā)現(xiàn)匹配。在圖5中,數(shù)據(jù)流12呈現(xiàn)字符“b”。同樣,行解碼器28可將此項(xiàng)解釋為地址,且行解碼器28可選擇導(dǎo)體62。作為響應(yīng),表示字母“b”的存儲(chǔ)器單元58輸出其所存儲(chǔ)值,在此 情況下,其為1,從而指示匹配。搜索項(xiàng)單元54可經(jīng)配置以一次搜索一個(gè)以上項(xiàng)。多個(gè)存儲(chǔ)器單元58可經(jīng)編程以存儲(chǔ)1,從而規(guī)定與一個(gè)以上項(xiàng)匹配的搜索項(xiàng)。舉例來說,表示小寫字母“a”及大寫字母“A”的存儲(chǔ)器單元58可經(jīng)編程以存儲(chǔ)I,且搜索項(xiàng)單元54可搜索任一項(xiàng)。在另一實(shí)例中,搜索項(xiàng)單元54可經(jīng)配置以在接收到任一字符的情況下輸出匹配。所有存儲(chǔ)器單元58可經(jīng)編程以存儲(chǔ)1,使得搜索項(xiàng)單元54可用作搜索準(zhǔn)則中的通配符項(xiàng)。圖6到8描繪辨識(shí)模塊22根據(jù)多項(xiàng)搜索準(zhǔn)則進(jìn)行搜索(例如,以找到一詞)。具體來說,圖6圖解說明辨識(shí)模塊22檢測(cè)詞的第一字母,圖7圖解說明第二字母的檢測(cè),且圖8圖解說明最后一個(gè)字母的檢測(cè)。如圖6所圖解說明,辨識(shí)模塊22可經(jīng)配置以搜索詞“big”。圖解說明三個(gè)鄰近特征單元63、64及66。特征單元63經(jīng)配置以檢測(cè)字母“b”。特征單元64經(jīng)配置以檢測(cè)字母“i”。且特征單元66經(jīng)配置以既檢測(cè)字母“g”又指示搜索準(zhǔn)則得到滿足。圖6還描繪檢測(cè)陣列34的額外細(xì)節(jié)。檢測(cè)陣列34可包含特征單元63、64及66中的每一者中的檢測(cè)單元68。檢測(cè)單元68中的每一者可包含存儲(chǔ)器單元70 (例如,上述存儲(chǔ)器單元類型中的一者(例如,觸發(fā)器)),其指示特征單元63、64或66是活動(dòng)還是不活動(dòng)。檢測(cè)單元68可經(jīng)配置以將指示所述檢測(cè)單元是否為活動(dòng)的及是否已從其相關(guān)聯(lián)搜索項(xiàng)單元54接收到指示匹配的信號(hào)兩者的信號(hào)輸出到激活路由矩陣36。不活動(dòng)特征單元63、64及66可忽視匹配。檢測(cè)單元68中的每一者可包含具有來自存儲(chǔ)器單元70及輸出導(dǎo)體56的輸入的“與”門??蓪⑺觥芭c”門的輸出路由到檢測(cè)總線38及激活路由矩陣36兩者或者一者或另一者。激活路由矩陣36又可通過向檢測(cè)陣列34中的存儲(chǔ)器單元70寫入來選擇性地激活特征單元63、64及66。激活路由矩陣36可根據(jù)搜索準(zhǔn)則及接下來在數(shù)據(jù)流12中搜索哪個(gè)搜索項(xiàng)來激活特征單元63、64或66。在圖6中,數(shù)據(jù)流12呈現(xiàn)字母“b”。作為響應(yīng),特征單元63、64及66中的每一者可在其輸出導(dǎo)體56上輸出指示存儲(chǔ)于連接到導(dǎo)體62的存儲(chǔ)器單元58 (其表示字母“b”)中的值的信號(hào)。接著,檢測(cè)單元56可各自確定其是否已接收到指示匹配的信號(hào)及其是否為活動(dòng)的。由于特征單元63經(jīng)配置以檢測(cè)字母“b”且為活動(dòng)的(如其存儲(chǔ)器單元70所指示),因此特征單元63中的檢測(cè)單元68可將指示搜索準(zhǔn)則的第一搜索項(xiàng)已被匹配的信號(hào)輸出到激活路由矩陣36。如圖7所圖解說明,在匹配第一搜索項(xiàng)之后,激活路由矩陣36可通過將I寫入到下一特征單元64的檢測(cè)單元68中的存儲(chǔ)器單元70來激活所述特征單元。激活路由矩陣36還可維持特征單元63的活動(dòng)狀態(tài),以防下一項(xiàng)滿足第一搜索項(xiàng)(例如,在接收到項(xiàng)序列“bbig”的情況下)。在搜索數(shù)據(jù)流12期間的一部分時(shí)間或大致所有時(shí)間期間,搜索準(zhǔn)則的第一搜索項(xiàng)可維持于活動(dòng)狀態(tài)中。在圖7中,數(shù)據(jù)流12將字母“i”呈現(xiàn)給辨識(shí)模塊22。作為響應(yīng),特征單元63、64及66中的每一者可在其輸出導(dǎo)體56上輸出指示存儲(chǔ)于連接到導(dǎo)體72的存儲(chǔ)器單元58 (其表示字母“i”)中的值的信號(hào)。接著,檢測(cè)單元56可各自確定其是否已接收到指示匹配的信號(hào)及其是否為活動(dòng)的。由于特征單元64經(jīng)配置以檢測(cè)字母“i”且為活動(dòng)的(如其存儲(chǔ) 器單元70所指示),因此特征單元64中的檢測(cè)單元68可將指示其搜索準(zhǔn)則的下一搜索項(xiàng)已被匹配的信號(hào)輸出到激活路由矩陣36。接下來,激活路由矩陣36可激活特征單元66,如圖8所圖解說明。在評(píng)估下一項(xiàng)之前,可去激活特征單元64。舉例來說,特征單元64可由其檢測(cè)單元68在檢測(cè)循環(huán)之間對(duì)其存儲(chǔ)器單元70進(jìn)行復(fù)位來去激活或激活路由矩陣36可去激活特征單元64。在圖8中,數(shù)據(jù)流12將項(xiàng)“g”呈現(xiàn)給行解碼器28,所述行解碼器選擇表示項(xiàng)g”的導(dǎo)體74。作為響應(yīng),特征單元63、64及66中的每一者可在其輸出導(dǎo)體56上輸出指示存儲(chǔ)于連接到導(dǎo)體74的存儲(chǔ)器單元58 (其表示字母“g”)中的值的信號(hào)。接著,檢測(cè)單元56可各自確定其是否已接收到指示匹配的信號(hào)及其是否為活動(dòng)的。由于特征單元66經(jīng)配置以檢測(cè)字母“g”且為活動(dòng)的(如其存儲(chǔ)器單元70所指示),因此特征單元66中的檢測(cè)單元68可將指示其搜索準(zhǔn)則的最后一個(gè)搜索項(xiàng)已被匹配的信號(hào)輸出到激活路由矩陣36。搜索準(zhǔn)則的末端或搜索準(zhǔn)則的一部分可由激活路由矩陣36或檢測(cè)單元68來識(shí)別。這些組件36或68可包含指示其特征單元63、64或66是規(guī)定搜索準(zhǔn)則的最后一個(gè)搜索項(xiàng)還是搜索準(zhǔn)則的分量的存儲(chǔ)器。舉例來說,搜索準(zhǔn)則可規(guī)定其中詞“cattle”出現(xiàn)兩次的所有句子,且辨識(shí)模塊可將指示“cattle”在句子內(nèi)的每一次出現(xiàn)的信號(hào)輸出到聚合模塊,所述聚合模塊可計(jì)數(shù)所述出現(xiàn)以確定所述搜索準(zhǔn)則是否得到滿足??稍跀?shù)個(gè)條件下激活特征單元63、64或66。特征單元63、64或66可為“始終活動(dòng)”,此意味著其在整個(gè)或大致整個(gè)搜索期間保持活動(dòng)。始終活動(dòng)特征單元63、64或66的實(shí)例為搜索準(zhǔn)則的第一特征單元(例如,特征單元63)。特征單元63、64或66可為“在請(qǐng)求時(shí)活動(dòng)”,此意味著特征單元63、64或66在某一在先條件得到匹配時(shí)(例如,在搜索準(zhǔn)則中的前面搜索項(xiàng)得到匹配時(shí))為活動(dòng)的。實(shí)例為在由圖6到8中的特征單元63請(qǐng)求時(shí)為活動(dòng)的特征單元64及在由特征單元64請(qǐng)求時(shí)為活動(dòng)的特征單元66。特征單元63、64或66可為“自激活的”,此意味著一旦其被激活,只要其搜索項(xiàng)得到匹配其即激活其自身。舉例來說,具有由任一數(shù)值數(shù)字匹配的搜索項(xiàng)的自激活特征單元可在序列“123456xy”中保持活動(dòng)直到到達(dá)字母“X”為止。每當(dāng)所述自激活特征單元的搜索項(xiàng)得到匹配時(shí),其即可激活搜索準(zhǔn)則中的下一特征單元。因此,始終活動(dòng)特征單元可由自激活特征單元及在請(qǐng)求時(shí)活動(dòng)的特征單元形成所述自激活特征單元可經(jīng)編程而使所有其存儲(chǔ)器單元58均存儲(chǔ)1,且其可在每一項(xiàng)之后重復(fù)激活在請(qǐng)求時(shí)活動(dòng)的特征單元。在一些實(shí)施例中,每一特征單元63、64及66可在其檢測(cè)單元68中或在激活路由矩陣36中包含規(guī)定所述特征單元是否為始終活動(dòng)的存儲(chǔ)器單元,借此由單個(gè)特征單元形成始終活動(dòng)的特征單元。圖9描繪經(jīng)配置以根據(jù)第一搜索準(zhǔn)則75及第二搜索準(zhǔn)則76并行進(jìn)行搜索的辨識(shí)模塊22的實(shí)例。在此實(shí)例中,第一搜索準(zhǔn)則75規(guī)定詞“big”,且第二搜索準(zhǔn)則76規(guī)定詞“cab”。指示來自數(shù)據(jù)流12的當(dāng)前項(xiàng)的信號(hào)可在大體相同時(shí)間被傳遞到每一搜索準(zhǔn)則75及76中的特征單元。輸入導(dǎo)體37中的每一者跨越搜索準(zhǔn)則75及76兩者。因此,在一些實(shí)施例中,搜索準(zhǔn)則75及76兩者可大體同時(shí)評(píng)估當(dāng)前項(xiàng)。相信此會(huì)加速搜索準(zhǔn)則的評(píng)估。其它實(shí)施例可包含經(jīng)配置以并行評(píng)估更多搜索準(zhǔn)則的更多特征單元。舉例來說,一些實(shí)施例可包含并行操作的100、500、1000、5000、10,000個(gè)以上特征單元。這些特征單元可大體同時(shí)評(píng)估數(shù)百個(gè)或數(shù)千個(gè)搜索準(zhǔn)則。具有不同數(shù)目個(gè)搜索項(xiàng)的搜索準(zhǔn)則可通過將更多或更少的特征單元分配到所述 搜索準(zhǔn)則來形成。簡(jiǎn)單搜索準(zhǔn)則可消耗比復(fù)雜搜索準(zhǔn)則更少的呈特征單元形式的資源。相信,相對(duì)于具有大數(shù)目個(gè)大體等同的核心的處理器(全部經(jīng)配置以評(píng)估復(fù)雜搜索準(zhǔn)則),此會(huì)減少模式辨識(shí)處理器14(圖2)的成本。圖10到12描繪更復(fù)雜搜索準(zhǔn)則的實(shí)例及激活路由矩陣36的特征兩者。激活路由矩陣36可包含多個(gè)激活路由單元78,其群組可與特征單元63、64、66、80、82、84及86中的每一者相關(guān)聯(lián)。舉例來說,所述特征單元中的每一者可包含5個(gè)、10個(gè)、20個(gè)、50個(gè)或50個(gè)以上激活路由單元78。激活路由單元78可經(jīng)配置以在搜索準(zhǔn)則中前面的搜索項(xiàng)得到匹配時(shí)將激活信號(hào)傳輸?shù)较乱凰阉黜?xiàng)。激活路由單元78可經(jīng)配置以將激活信號(hào)路由到鄰近特征單元或同一特征單元內(nèi)的其它激活路由單元78。激活路由單元78可包含指示哪些特征單元對(duì)應(yīng)于搜索準(zhǔn)則中的下一搜索項(xiàng)的存儲(chǔ)器。如圖10到12所圖解說明,辨識(shí)模塊22可經(jīng)配置以根據(jù)比規(guī)定單個(gè)詞的準(zhǔn)則復(fù)雜的搜索準(zhǔn)則進(jìn)行搜索。舉例來說,辨識(shí)模塊22可經(jīng)配置以搜索以前綴88開始且以兩個(gè)后綴90或92中的一者結(jié)束的詞。所圖解說明的搜索準(zhǔn)則規(guī)定依序以字母“c”及“I”開始且以字母序列“ap”或字母序列“oud”結(jié)束的詞。此為規(guī)定多個(gè)目標(biāo)表達(dá)(例如,詞“clap”或詞“cloud”)的搜索準(zhǔn)則的實(shí)例。在圖10中,數(shù)據(jù)流12將字母“c”呈現(xiàn)給辨識(shí)模塊22,且特征單元63既活動(dòng)又檢測(cè)匹配。作為響應(yīng),激活路由矩陣36可激活下一特征單元64。激活路由矩陣36還可維持特征單元63的活動(dòng)狀態(tài),因?yàn)樘卣鲉卧?3為搜索準(zhǔn)則中的第一搜索項(xiàng)。在圖11中,數(shù)據(jù)流12呈現(xiàn)字母“1”,且特征單元64辨識(shí)匹配且為活動(dòng)的。作為響應(yīng),激活路由矩陣36可將激活信號(hào)傳輸?shù)降谝缓缶Y90的第一特征單元66及第二后綴92的第一特征單元82兩者。在其它實(shí)例中,可激活更多后綴,或多個(gè)前綴可激活一個(gè)或一個(gè)以上后綴。接下來,如圖12所圖解說明,數(shù)據(jù)流12將字母“O”呈現(xiàn)給辨識(shí)模塊22,且第二后綴92的特征單元82檢測(cè)匹配且為活動(dòng)的。作為響應(yīng),激活路由矩陣36可激活第二后綴92的下一特征單元84。在允許特征單元66變成不活動(dòng)時(shí),對(duì)第一后綴90的搜索可停止。圖10到12所圖解說明的步驟可繼續(xù)經(jīng)過字母“u”及“d”,或搜索可停止直到下一次前綴88得到匹配為止。模式辨識(shí)處理器14的實(shí)施例可包含特征單元30 (也稱為狀態(tài)機(jī)元件(SME))的任一布置。在一個(gè)實(shí)施例中,如圖13中所描繪,特征單元30可布置成若干行94,其中每一行94可包含一個(gè)或一個(gè)以上特征單元30??蓪⑿?4聚集成若干塊96,其中每一塊96包含一個(gè)或一個(gè)以上行94。模式辨識(shí)處理器14可包含用于實(shí)施上文所描述的模式搜索的任一數(shù)目個(gè)塊96。如上文所描述,特征單元30的群組可形成規(guī)定一或若干搜索準(zhǔn)則的并行有限狀態(tài)機(jī)。因此,每一行94及塊96可經(jīng)編程并用以根據(jù)一個(gè)或一個(gè)以上搜索準(zhǔn)則來搜索數(shù)據(jù)流。在針對(duì)搜索準(zhǔn)則對(duì)數(shù)據(jù)流12進(jìn)行搜索時(shí),上文所描述的模式搜索可依序進(jìn)展經(jīng)過一個(gè)或一個(gè)以上塊96。在搜索循環(huán)期間執(zhí)行對(duì)每一活動(dòng)塊96中的數(shù)據(jù)流的一項(xiàng)的評(píng)估。所述搜索循環(huán)可為模式辨識(shí)處理器14的稱為模式搜索循環(huán)(也稱為字符循環(huán))的較廣泛循環(huán)、的一部分。每一模式搜索循環(huán)可包含模式辨識(shí)處理器14的多個(gè)內(nèi)部時(shí)鐘循環(huán)。模式搜索循環(huán)可包含(舉例來說)以下事件中的一者或一者以上從數(shù)據(jù)流12輸入字節(jié)、解碼所述字節(jié)及驅(qū)動(dòng)對(duì)應(yīng)輸入導(dǎo)體37、讀取處理器14的存儲(chǔ)器(例如,存儲(chǔ)器單元58)、確定特征單元30是否活動(dòng)及所讀取的數(shù)據(jù)是否指示針對(duì)相應(yīng)特征單元的匹配、驅(qū)動(dòng)匹配特征單元的激活路由矩陣36的輸出,及/或?qū)碜约せ盥酚删仃?6的信號(hào)傳播到每一特征單元30。所述模式搜索循環(huán)還可包含在模式辨識(shí)處理器14的操作期間所執(zhí)行的其它事件。在模式搜索循環(huán)期間,可在包含模式搜索循環(huán)的事件中的一些事件的存儲(chǔ)器存取循環(huán)期間存取塊96。舉例來說,所述存儲(chǔ)器存取循環(huán)可包含讀取處理器14的存儲(chǔ)器(以便給特征單元30提供“匹配”指示)、出于測(cè)試編程或檢驗(yàn)處理器14的存儲(chǔ)器的目的的存儲(chǔ)器讀取或?qū)懭?,?或存儲(chǔ)器刷新循環(huán)。所述存儲(chǔ)器刷新循環(huán)可刷新一塊的特征單元30。在一個(gè)實(shí)施例中,模式辨識(shí)處理器14的存儲(chǔ)器存取循環(huán)可與模式搜索循環(huán)的其它事件交錯(cuò)。在此些實(shí)施例中,當(dāng)執(zhí)行模式搜索時(shí),模式辨識(shí)處理器14可在給定模式搜索循環(huán)期間存取特征單元的“活動(dòng)”塊。“活動(dòng)”塊是指當(dāng)前或?qū)⒃诮o定模式搜索循環(huán)期間根據(jù)編程到塊中的搜索項(xiàng)搜索數(shù)據(jù)流的所述塊。因此,“不活動(dòng)”塊是指當(dāng)前不或?qū)⒉辉诮o定模式搜索循環(huán)期間搜索數(shù)據(jù)流的塊。在操作期間,模式辨識(shí)處理器14在每一存儲(chǔ)器存取循環(huán)期間存取活動(dòng)塊的特征單元30或特征單元30的群組。在一個(gè)實(shí)施例中,為減少通過在每一存儲(chǔ)器存取循環(huán)期間存取“不活動(dòng)”塊所招致的功率消耗,可將每一塊96耦合到一功率控制電路98。功率控制電路98可為每一塊96的邏輯的一部分(或與每一塊96分離的邏輯)。功率控制電路98可在模式搜索之前、之后或期間控制每一塊96的激活(將塊設(shè)定為“活動(dòng)”)及去激活(將塊設(shè)定為“不活動(dòng)”)。功率控制電路98還可控制塊96中的每一者的“永久”去激活,其中永久去激活是指完全停用塊96,使得所述塊不活動(dòng)且在刷新循環(huán)期間不被刷新。在一些實(shí)施例中,功率控制電路98可包含以下能力能夠基于正搜索的數(shù)據(jù)流的身份而激活或去激活(永久地或暫時(shí)地)塊;能夠在模式搜索進(jìn)展到塊之前(例如,在模式搜索將在后續(xù)模式搜索循環(huán)上存取所述塊時(shí))自動(dòng)地激活所述塊;能夠在模式搜索在塊中不再活動(dòng)時(shí)(例如,在將不在任一后續(xù)模式搜索循環(huán)上使用塊時(shí))自動(dòng)地去激活所述塊;及能夠在塊將不用于編程到模式辨識(shí)處理器14中的有限狀態(tài)機(jī)中的任一者時(shí)完全地停用所述塊。圖14A及14B描繪根據(jù)本發(fā)明的實(shí)施例使用功率控制電路98A到98D的功率控制能力的模式辨識(shí)處理器14的塊96A到96D的操作。同樣,如圖14A及14B中所示,每一塊96A到96D耦合到可選擇性地激活或去激活(暫時(shí)地或永久地)塊的相應(yīng)功率控制電路98A到98D。如圖14A中所展示,在模式搜索期間,每一塊96可具有不同狀態(tài)。可停用第一塊96A,使得此塊在模式辨識(shí)處理器14的操作期間不被使用或甚至刷新。舉例來說,可不將來自制造合格率“不足”或來自當(dāng)前搜索準(zhǔn)則未使用的塊的任何“額外”塊編程為處理器14的狀態(tài)機(jī)。因此,此些塊(例如,塊96A)可由對(duì)應(yīng)功率控制電路98A停用。在停用之后,塊96A為停用的且在存儲(chǔ)器存取循環(huán)的刷新期間不被刷新。如上文所提及,功率控制電路98還可包含基于正搜索的數(shù)據(jù)流的身份(例如,HTTP、FTP、SMTP、DNS等)而激活或去激活一塊的能力。在圖14A中所描繪的模式搜索期間,可基于正搜索的數(shù)據(jù)流的身份而去激活第二塊96B。在此實(shí)例中,每一塊的經(jīng)編程狀態(tài)機(jī)可經(jīng)編程以用于對(duì)特定類型的協(xié)議、語言或其它數(shù)據(jù)識(shí)別符進(jìn)行模式搜索。此經(jīng)識(shí)別數(shù) 據(jù)可包含但不限于數(shù)據(jù)傳送協(xié)議(例如,HTTP、FTP、SMTP、DNS等)、自然語言、遺傳識(shí)別符等。舉例來說,在針對(duì)因特網(wǎng)安全性的一個(gè)實(shí)施例中,塊96B的狀態(tài)機(jī)可經(jīng)編程以用于搜索FTP數(shù)據(jù)中的模式。狀態(tài)機(jī)96C及96D可經(jīng)編程以用于搜索HTTP數(shù)據(jù)中的模式。一旦識(shí)別了傳入包的協(xié)議(例如,基于包標(biāo)頭),便可僅使用經(jīng)編程以用于搜索HTTP數(shù)據(jù)的那些狀態(tài)機(jī)。因此,在正處理HTTP包的時(shí)間期間,塊96B可由功率控制電路98B去激活??扇ゼせ顗K96B,使得在模式搜索循環(huán)中不使用所述塊。然而,塊96B并非被永久地停用且仍將經(jīng)刷新并可供在其它模式搜索中使用,例如,當(dāng)將數(shù)據(jù)流識(shí)別為FTP數(shù)據(jù)時(shí)。如果數(shù)據(jù)流的類型改變,那么塊96B可由對(duì)應(yīng)功率控制電路98B激活。如下文進(jìn)一步描述,可基于數(shù)據(jù)流12的身份而將塊聚集成不同“分區(qū)”。分區(qū)是指經(jīng)編程以用于搜索特定類型的數(shù)據(jù)的塊群組。舉例來說,可將塊96B與其它塊一起聚集成用于搜索FTP數(shù)據(jù)的分區(qū)。類似地,可將塊96C及96D連同其它塊一起聚集成用于搜索HTTP數(shù)據(jù)的分區(qū)。分區(qū)聚集使得能夠基于數(shù)據(jù)流12的身份而激活或去激活塊群組。 另外,上文所論述的功率控制電路還可在模式搜索進(jìn)展到經(jīng)去激活的塊之前激活所述塊且在模式搜索在一塊中不再活動(dòng)時(shí)去激活所述塊。圖14A及14B的塊96C及96D描繪基于從塊96C進(jìn)展到塊96D的模式搜索的激活及去激活。圖14A展示塊96C中正在進(jìn)展中的模式搜索,例如在第一模式搜索循環(huán)期間。所述模式搜索可為根據(jù)編程到塊96C的狀態(tài)機(jī)(特征單元30的群組)中的搜索準(zhǔn)則評(píng)估數(shù)據(jù)流中的項(xiàng)。塊96C為“活動(dòng)的”,因?yàn)槠洚?dāng)前在模式搜索期間正在使用中。如圖14A中所示,可去激活塊96D使得在存儲(chǔ)器存取循環(huán)期間不存取塊96D,從而減少處理器14的功率消耗。如果在塊96D中未編程“開始”項(xiàng)(例如,模式的開始),那么可去激活塊96D直到模式搜索序列進(jìn)展到塊96D。 圖14B描繪在模式搜索從塊96C進(jìn)展到塊96D時(shí)模式辨識(shí)處理器14的后續(xù)模式搜索循環(huán)。在搜索數(shù)據(jù)流以找出一模式時(shí),模式搜索可從塊96C “跨接”到塊96D?!翱缃印笔侵冈谀J剿阉鞯捻樞蜻M(jìn)展期間從第一塊到第二塊的進(jìn)展。模式搜索在塊96C中不再活動(dòng)且現(xiàn)在在塊96D中活動(dòng)。當(dāng)將塊96C檢測(cè)為不活動(dòng)時(shí),功率控制電路96C可去激活塊96C直到另一模式搜索進(jìn)展到塊96C。功率控制電路96D可在模式搜索進(jìn)展到塊96D之前激活塊96D。因此,在預(yù)測(cè)性“按需要”的基礎(chǔ)上激活塊96D。如下文進(jìn)一步描述,功率控制電路98D及/或塊96D可檢測(cè)模式搜索何時(shí)將到達(dá)塊96D且在下一模式搜索循環(huán)之前激活塊96D。因此,隨著模式搜索序列繼續(xù)經(jīng)過每一特征單元塊,可去激活不活動(dòng)的塊且可在需要預(yù)期的塊時(shí)將其激活。另外,其它實(shí)施例可包含在模式搜索進(jìn)展經(jīng)過一塊之前、期間或之后影響所述塊的激活或去激活的特殊搜索準(zhǔn)則。此些特殊搜索準(zhǔn)則可包含正則表達(dá)(RegEx)運(yùn)算符、例如星號(hào)(*)、問號(hào)( )及/或加號(hào)(+)。舉例來說,規(guī)定匹配每一事物及任何事物直到數(shù)據(jù)流的項(xiàng)的結(jié)束的星號(hào)(“*”)運(yùn)算符可通過規(guī)定一塊(一旦激活)始終活動(dòng)直到所述數(shù)據(jù)流的項(xiàng)的結(jié)束的激活命令來實(shí)施。任何特殊搜索準(zhǔn)則可通過規(guī)定適合于那些特殊搜索準(zhǔn)則的激活或去激活方案來實(shí)施到上文所論述的功率控制技術(shù)中。模式辨識(shí)處理器14的每一塊均可包含用以提供上文所述的功率控制技術(shù)的信號(hào)及/或配置位。舉例來說,除功率控制電路以外,每一塊還可包含用以產(chǎn)生指示一行含有“活動(dòng)”特征單元的信號(hào)及/或指示所述塊含有接下來處于模式搜索序列中的特征單元的信號(hào)的邏輯。另外,塊可包含經(jīng)配置以發(fā)射或接收各種控制及配置信號(hào)的邏輯。這些控制及配置信號(hào)可包含所述塊用于當(dāng)前數(shù)據(jù)流的指示(塊活動(dòng)/不活動(dòng));開始項(xiàng)的指示;激活 一次/始終激活信號(hào)(例如,針對(duì)上文所論述的特殊搜索準(zhǔn)則);刷新信號(hào);及塊流啟用信號(hào)。上文所述的選擇性激活及去激活方案可指示是否停用特定塊(例如,是否將永遠(yuǎn)使用所述塊)、指示一塊是否為當(dāng)前使用的群組的一部分、指示一塊是否含有模式的“開始”的特征單元,且在模式搜索序列期間按需要激活塊。在一些實(shí)施例中,為了實(shí)施塊喚醒方案,塊96可包含用以指示塊的狀態(tài)的配置位或其它數(shù)據(jù)指示符??赏ㄟ^本文中所論述的各種控制信號(hào)來修改這些位。舉例來說,塊96可包含用以指示是否停用所述塊的一個(gè)或一個(gè)以上配置位。如上文所提及,在一些實(shí)施例中,可將塊96聚集成若干分區(qū)使得每一分區(qū)包含待用于特定類型的數(shù)據(jù)流的塊。在此實(shí)施例中,每一塊可包含用以指示相應(yīng)塊所屬的分區(qū)的一個(gè)或一個(gè)以上配置位。另外,每一塊96可包含指示所述塊是否包含包含模式的“開始”(例如,開頭)的特征單元30的一個(gè)或一個(gè)以上配置位。在使用所述分區(qū)的給定模式搜索序列期間,此些塊可始終為活動(dòng)的。另外,在此實(shí)施例中,如上所述,可選擇性地激活及去激活分區(qū)中的所有其它塊。圖15描繪根據(jù)本發(fā)明的實(shí)施例的功率控制電路98的邏輯示意圖。功率控制電路98可確定一塊何時(shí)應(yīng)活動(dòng)、一塊(一旦活動(dòng))何時(shí)應(yīng)暫時(shí)地去激活及一塊何時(shí)應(yīng)永久地去激活(即,停用,使得其不對(duì)刷新循環(huán)請(qǐng)求做出響應(yīng))。功率控制電路98可包含“塊仍活動(dòng)感測(cè)”組件100、“與”門102、“或”門104、可再觸發(fā)去激活定時(shí)器106及輸出“Bl0Ck_ACtive”信號(hào)的“或”門108。功率控制電路98可從塊喚醒方案110接收“BloCk_ACtivate”信號(hào)。舉例來說,所述塊喚醒方案可指示是否停用特定塊(例如,是否將從不使用所述塊)、指示一塊是否為當(dāng)前使用的群組的部分、指示一塊是否含有模式的“開始”的特征單元,且在模式搜索序列期間按需要激活塊。塊仍活動(dòng)感測(cè)組件100可從一塊接收及/或檢測(cè)指示所述塊是否仍活動(dòng)(根據(jù)此檢測(cè)所提供的分辨率)的信號(hào)。舉例來說,所述塊仍活動(dòng)感測(cè)組件可接收或檢測(cè)活動(dòng)特征單元30、行94或塊96中的其它活動(dòng)且輸出(舉例來說)指示一塊的一行仍活動(dòng)的Row_Active信號(hào)。在一個(gè)實(shí)施例中,功率控制電路可由五個(gè)信號(hào)控制及配置,如下文表I中所述
權(quán)利要求
1.一種用于使用模式辨識(shí)處理器的多個(gè)塊來搜索以找出數(shù)據(jù)流的模式的方法,其中每一塊包括多個(gè)特征單元,所述方法包括 當(dāng)所述模式搜索在第一塊中不再活動(dòng)時(shí),去激活所述第一塊。
2.根據(jù)權(quán)利要求I所述的方法,其包括在所述模式搜索進(jìn)展到第二塊之前激活所述第二塊,使得所述第二塊經(jīng)激活以用于所述模式搜索。
3.根據(jù)權(quán)利要求I所述的方法,其中所述多個(gè)塊中的一者或一者以上包括從所述多個(gè)特征單元編程的多個(gè)狀態(tài)機(jī)。
4.根據(jù)權(quán)利要求3所述的方法,其包括在第三塊不包括任何經(jīng)編程狀態(tài)機(jī)的情況下停用所述塊。
5.根據(jù)權(quán)利要求I所述的方法,其包括將來自所述第一塊的第一信號(hào)提供到所述第二塊以致使所述第二塊激活。
6.根據(jù)權(quán)利要求5所述的方法,其中所述第一信號(hào)是基于所述第一塊的狀態(tài)。
7.根據(jù)權(quán)利要求5所述的方法,其包括將來自所述第一塊的第二信號(hào)提供到所述第二塊以指示所述模式搜索的跨接。
8.根據(jù)權(quán)利要求7所述的方法,其中所述第二信號(hào)是基于所述第一塊的狀態(tài)。
9.根據(jù)權(quán)利要求I所述的方法,其包括在所述模式搜索在所述第二塊中不再活動(dòng)時(shí)去激活所述第二塊。
10.根據(jù)權(quán)利要求I所述的方法,其包括激活所述第二塊使得所述塊在所述模式搜索的剩余部分內(nèi)始終為活動(dòng)的。
11.一種方法,其包括 在第一模式搜索循環(huán)中在第一塊中搜索以找出數(shù)據(jù)流中的模式; 將來自所述第一塊的第一信號(hào)提供到第二塊,其中所述第一信號(hào)激活所述第二塊以用于第二模式搜索循環(huán);及 將來自所述第一塊的第二信號(hào)提供到所述第二塊以使得能夠在所述第二模式搜索循環(huán)中在所述第二塊中搜索以找出所述數(shù)據(jù)流中的模式。
12.根據(jù)權(quán)利要求11所述的方法,其中提供所述第一信號(hào)包括在所述模式搜索進(jìn)展到所述第一塊中的第一狀態(tài)時(shí)提供所述第一信號(hào)。
13.根據(jù)權(quán)利要求11所述的方法,其中提供所述第二信號(hào)包括在所述模式搜索進(jìn)展到所述第一塊中的第二狀態(tài)時(shí)提供所述第二信號(hào)。
14.一種裝置,其包括 模式辨識(shí)處理器,其包括 多個(gè)塊,其中一個(gè)或一個(gè)以上塊包括多個(gè)狀態(tài)機(jī)中的一者或一者以上;及 多個(gè)功率控制電路,其中每一功率控制電路耦合到所述多個(gè)塊中的相應(yīng)一者, 且其中每一功率控制電路經(jīng)配置以激活及去激活所述相應(yīng)塊。
15.根據(jù)權(quán)利要求14所述的裝置,其中所述功率控制電路中的每一者提供用于激活所述多個(gè)塊中的相應(yīng)一者的信號(hào)。
16.根據(jù)權(quán)利要求14所述的裝置,其中所述功率控制電路中的每一者經(jīng)配置以基于數(shù)據(jù)流的標(biāo)識(shí)而去激活相應(yīng)塊。
17.根據(jù)權(quán)利要求14所述的裝置,其中所述功率控制電路中的每一者經(jīng)配置以在相應(yīng)塊不包括任何經(jīng)編程狀態(tài)元件的情況下停用所述塊。
18.根據(jù)權(quán)利要求14所述的裝置,其中所述功率控制電路中的每一者經(jīng)配置以停用相應(yīng)塊的存儲(chǔ)器刷新。
19.根據(jù)權(quán)利要求14所述的裝置,其中所述功率控制電路中的每一者經(jīng)配置以基于模式搜索的進(jìn)展而激活相應(yīng)塊。
20.根據(jù)權(quán)利要求14所述的裝置,其中所述功率控制電路中的每一者包括一定時(shí)器組件,所述定時(shí)器組件經(jīng)配置以基于相應(yīng)塊的狀態(tài)的確定而延遲相應(yīng)塊的去激活。
21.根據(jù)權(quán)利要求20所述的裝置,其中所述定時(shí)器組件經(jīng)配置以在所述相應(yīng)塊的活動(dòng)狀態(tài)的確定之后即刻復(fù)位。
22.一種裝置,其包括 模式辨識(shí)處理器,其包括 第一多個(gè)特征單元的第一塊;及 第二多個(gè)特征單元的第二塊; 其中所述第一塊包括 第一邏輯,其經(jīng)配置以在第一模式搜索循環(huán)期間激活所述第二塊使得所述第二塊經(jīng)激活以用于第二模式搜索循環(huán);及 第二邏輯,其經(jīng)配置以致使模式搜索從所述第一塊跨接到所述第二塊。
23.根據(jù)權(quán)利要求22所述的裝置,其中所述第一邏輯經(jīng)配置以在所述第一模式搜索循環(huán)期間基于所述第一塊的第一狀態(tài)而激活所述第二塊。
24.根據(jù)權(quán)利要求22所述的裝置,其中所述第二邏輯經(jīng)配置以基于所述第一塊的第二狀態(tài)而跨接所述模式搜索。
25.根據(jù)權(quán)利要求22所述的裝置,其中所述第一塊包括第三邏輯,所述第三邏輯經(jīng)配置以指示所述第一塊為活動(dòng)的。
26.根據(jù)權(quán)利要求22所述的裝置,其中所述第二塊包括第四邏輯,所述第四邏輯經(jīng)配置以指示所述第二塊接下來處于模式搜索序列中。
27.一種模式辨識(shí)處理器,其包括 多個(gè)可編程狀態(tài)機(jī)元件 '及 功率控制電路,其中所述功率控制電路經(jīng)配置以 基于模式搜索的進(jìn)展而在所述模式搜索期間選擇性地激活所述多個(gè)元件。
28.根據(jù)權(quán)利要求27所述的模式辨識(shí)處理器,其包括狀態(tài)機(jī)元件的塊。
29.根據(jù)權(quán)利要求28所述的模式辨識(shí)處理器,其中所述功率控制電路為所述塊的邏輯的一部分。
30.根據(jù)權(quán)利要求28所述的模式辨識(shí)處理器,其中所述功率控制電路與所述塊的邏輯分離。
31.一種根據(jù)編程為多個(gè)狀態(tài)機(jī)的搜索準(zhǔn)則搜索數(shù)據(jù)流的方法,所述方法包括; 在模式搜索進(jìn)展到一塊的所述多個(gè)狀態(tài)機(jī)中的第一一者或一者以上之前激活所述多個(gè)狀態(tài)機(jī)中的所述第一一者或一者以上;及 基于所述模式搜索在所述塊中不再活動(dòng)的確定,去激活所述多個(gè)狀態(tài)機(jī)中的所述第 者或一者以上。
32.根據(jù)權(quán)利要求31所述的方法,其進(jìn)一步包括確定所述數(shù)據(jù)流的識(shí)別符。
33.根據(jù)權(quán)利要求32所述的方法,其進(jìn)一步包括基于所述識(shí)別符而去激活所述多個(gè)狀態(tài)機(jī)中的第二一者或一者以上。
34.根據(jù)權(quán)利要求32所述的方法,其中所述識(shí)別符包括因特網(wǎng)傳送協(xié)議、自然語言或遺傳識(shí)別符。
35.一種模式辨識(shí)處理器,其包括 多個(gè)可編程狀態(tài)機(jī)元件 '及 功率控制電路,其中所述功率控制電路經(jīng)配置以基于模式搜索的進(jìn)展而在所述模式搜索期間選擇性地去激活所述多個(gè)元件。
36.一種模式辨識(shí)處理器,其包括 多個(gè)可編程狀態(tài)機(jī)元件 '及 功率控制電路,其中所述功率控制電路經(jīng)配置以基于模式搜索的數(shù)據(jù)流的標(biāo)識(shí)而在所述模式搜索期間去激活所述多個(gè)元件。
全文摘要
本發(fā)明提供用于減少模式辨識(shí)處理器(14)中的功率消耗的設(shè)備及方法??蓪⒐β士刂齐娐?98)耦合到經(jīng)編程狀態(tài)機(jī)的塊(96)以使得能夠在模式搜索期間選擇性地激活及去激活所述塊(96)??稍谒瞿J剿阉髟谒鰤K(96)中不再活動(dòng)的情況下去激活所述塊(96)且在所述模式搜索需要時(shí)激活所述塊(96)。另外,可基于正搜索的數(shù)據(jù)流(12)的識(shí)別符而去激活所述塊(96)??赏S貌挥糜谌魏谓?jīng)編程狀態(tài)機(jī)的過量塊(96),使得其在存儲(chǔ)器循環(huán)期間不被刷新。
文檔編號(hào)G06K9/00GK102741859SQ201080062795
公開日2012年10月17日 申請(qǐng)日期2010年12月7日 優(yōu)先權(quán)日2009年12月15日
發(fā)明者哈羅德·B·諾伊斯, 戴維·R·布朗 申請(qǐng)人:美光科技公司