在模式辨識(shí)處理系統(tǒng)中用于電力管理的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明的實(shí)施例大體涉及電子裝置,且更具體地說(shuō),在某些實(shí)施例中,涉及具有用于數(shù)據(jù)分析的并行裝置的電子裝置。
【背景技術(shù)】
[0002]在常規(guī)基于馮?諾伊曼(von Neumann)的計(jì)算機(jī)上執(zhí)行復(fù)雜模式辨識(shí)可能效率低下。然而,生物大腦(尤其人類大腦)善于執(zhí)行模式辨識(shí)。當(dāng)前研宄表明,人類大腦使用大腦新皮質(zhì)中的一系列經(jīng)階層式組織的神經(jīng)元層執(zhí)行模式辨識(shí)。階層的較低層中的神經(jīng)元分析來(lái)自(例如)感覺(jué)器官的“原始信號(hào)”,而較高層中的神經(jīng)元分析來(lái)自較低層級(jí)中的神經(jīng)元的信號(hào)輸出。大腦新皮質(zhì)中的這種階層式系統(tǒng)可能結(jié)合大腦的其它區(qū)域完成復(fù)雜模式辨識(shí),這使人類能夠執(zhí)行例如空間推理、意識(shí)思考及復(fù)雜語(yǔ)言等高階功能。
[0003]在計(jì)算領(lǐng)域中,模式辨識(shí)任務(wù)越來(lái)越具有挑戰(zhàn)性。計(jì)算機(jī)之間傳輸?shù)臄?shù)據(jù)量不斷增大,且用戶希望識(shí)別的模式數(shù)目日益增加。例如,通常通過(guò)在數(shù)據(jù)流中搜索模式(例如,特定詞組或代碼段)來(lái)檢測(cè)垃圾郵件或惡意軟件。模式數(shù)目隨著垃圾郵件及惡意軟件的多樣化而增加,這是因?yàn)榭蓪?shí)施新模式以搜索新變體。在數(shù)據(jù)流中搜索這些模式中的每一者可形成計(jì)算瓶頸。通常,當(dāng)接收到數(shù)據(jù)流時(shí),在數(shù)據(jù)流中一次一個(gè)地搜索每一模式。在系統(tǒng)準(zhǔn)備好搜索數(shù)據(jù)流的下一部分之前的延遲隨模式數(shù)目而增加。因此,模式辨識(shí)可使數(shù)據(jù)的接收減慢。
[0004]硬件已經(jīng)設(shè)計(jì)以在數(shù)據(jù)流中搜索模式,但是這種硬件通常不能在給定的時(shí)間量期間處理足夠的數(shù)據(jù)量。經(jīng)配置以搜索數(shù)據(jù)流的一些裝置通過(guò)將數(shù)據(jù)流分布在多個(gè)電路之間以在給定的時(shí)間量期間處理足夠的數(shù)據(jù)量。所述電路各自確定數(shù)據(jù)流是否匹配模式的一部分。通常,大量電路并行操作,其各自大體同時(shí)搜索數(shù)據(jù)流。然而,尚不存在有效地允許以與生物大腦的方式更相當(dāng)?shù)姆绞綀?zhí)行模式辨識(shí)的系統(tǒng)。開發(fā)這種系統(tǒng)是合乎需要的。
【附圖說(shuō)明】
[0005]圖1說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的具有狀態(tài)機(jī)引擎的系統(tǒng)的實(shí)例。
[0006]圖2說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖1的狀態(tài)機(jī)引擎的FSM點(diǎn)陣的實(shí)例。
[0007]圖3說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖2的FSM點(diǎn)陣的塊的實(shí)例。
[0008]圖4說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖3的塊的行的實(shí)例。
[0009]圖5說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖4的行的兩成員群組的實(shí)例。
[0010]圖6說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的有限狀態(tài)機(jī)圖表的實(shí)例。
[0011]圖7說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的使用FSM點(diǎn)陣實(shí)施的二層級(jí)階層的實(shí)例。
[0012]圖8說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的編譯器將源代碼轉(zhuǎn)換為二進(jìn)制文件以編程圖2的FSM點(diǎn)陣的方法的實(shí)例。
[0013]圖9說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的狀態(tài)機(jī)引擎。
[0014]圖10說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖3的塊的行的第二實(shí)例。
[0015]圖11說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖10的塊內(nèi)交換元件。
[0016]圖12說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖2的塊的塊啟動(dòng)邏輯。
[0017]圖13是說(shuō)明根據(jù)本發(fā)明的各種實(shí)施例的圖12的塊啟動(dòng)邏輯的操作的狀態(tài)圖。
【具體實(shí)施方式】
[0018]現(xiàn)在轉(zhuǎn)到諸圖,圖1說(shuō)明大體上由參考數(shù)字10標(biāo)示的基于處理器的系統(tǒng)的實(shí)施例。系統(tǒng)10(例如,數(shù)據(jù)分析系統(tǒng))可為例如臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、傳呼器、蜂窩電話、個(gè)人記事本、便攜式音頻播放器、控制電路、相機(jī)等等的多種類型中的任一者。系統(tǒng)10還可為網(wǎng)絡(luò)節(jié)點(diǎn),例如路由器、服務(wù)器或客戶端(例如,先前描述的計(jì)算機(jī)類型中的一者)。系統(tǒng)10可為某個(gè)其它種類的電子裝置,例如復(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)通過(guò)所列出的其它項(xiàng)加以狹隘地理解)。
[0019]在典型的基于處理器的裝置(例如系統(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外部的指令而控制系統(tǒng)10。
[0020]根據(jù)本文中描述的實(shí)施例,系統(tǒng)10包含可在處理器12的控制下操作的狀態(tài)機(jī)引擎14。狀態(tài)機(jī)引擎14可采用任何自動(dòng)機(jī)理論。例如,狀態(tài)機(jī)引擎14可采用數(shù)個(gè)狀態(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ù)人員應(yīng)了解,可使用多種狀態(tài)機(jī)架構(gòu)中的任一者來(lái)采用所述技術(shù)。
[0021]如下文進(jìn)一步討論,狀態(tài)機(jī)引擎14可包含數(shù)個(gè)(例如,一或多個(gè))有限狀態(tài)機(jī)(FSM)點(diǎn)陣(例如,芯片的核心)。為本申請(qǐng)案的目的,術(shù)語(yǔ)“點(diǎn)陣”是指元件(例如,布爾單元、計(jì)數(shù)器單元、狀態(tài)機(jī)元件、狀態(tài)轉(zhuǎn)變?cè)?的組織框架(例如,路由矩陣、路由網(wǎng)絡(luò)、框架)。此外,“點(diǎn)陣”可具有任何合適的形狀、結(jié)構(gòu)或階層式組織(例如,柵格、立方體、球形、級(jí)聯(lián))。每一 FSM點(diǎn)陣可實(shí)施各自并行接收及分析相同數(shù)據(jù)的多個(gè)FSM。此外,F(xiàn)SM點(diǎn)陣可布置成群組(例如,群集),使得FSM點(diǎn)陣的群集可并行分析相同輸入數(shù)據(jù)。此外,狀態(tài)機(jī)引擎14的FSM點(diǎn)陣的群集可布置在階層式結(jié)構(gòu)中,其中來(lái)自階層式結(jié)構(gòu)的較低層級(jí)上的狀態(tài)機(jī)點(diǎn)陣的輸出可用作到較高層級(jí)上的狀態(tài)機(jī)點(diǎn)陣的輸入。通過(guò)經(jīng)由階層式結(jié)構(gòu)使?fàn)顟B(tài)機(jī)引擎14的并行FSM點(diǎn)陣的群集串聯(lián)地級(jí)聯(lián),可分析(例如,評(píng)估、搜索等等)日益復(fù)雜的模式。
[0022]此外,基于狀態(tài)機(jī)引擎14的階層式并行配置,狀態(tài)機(jī)引擎14可用于利用高處理速度的系統(tǒng)中的復(fù)雜數(shù)據(jù)分析(例如,模式辨識(shí)或其它處理)。例如,本文中描述的實(shí)施例可并入具有I千兆字節(jié)/秒的處理速度的系統(tǒng)中。因此,利用狀態(tài)機(jī)引擎14,可迅速分析來(lái)自高速存儲(chǔ)器裝置或其它外部裝置的數(shù)據(jù)。狀態(tài)機(jī)引擎14可根據(jù)多個(gè)準(zhǔn)則(例如,搜索項(xiàng))大約同時(shí)(例如,在單個(gè)裝置循環(huán)期間)分析數(shù)據(jù)流。狀態(tài)機(jī)引擎14的層級(jí)上的FSM群集內(nèi)的FSM點(diǎn)陣中的每一者可各自大約同時(shí)從數(shù)據(jù)流接收相同搜索項(xiàng),且并行FSM點(diǎn)陣中的每一者可依處理準(zhǔn)則確定所述項(xiàng)是否將狀態(tài)機(jī)引擎14推進(jìn)到下一狀態(tài)。狀態(tài)機(jī)引擎14可根據(jù)相對(duì)較大數(shù)目個(gè)準(zhǔn)則(例如,大于100個(gè)、大于110個(gè)或大于10,000個(gè)準(zhǔn)則)分析諸個(gè)項(xiàng)。因?yàn)镕SM點(diǎn)陣并行操作,所以其可將準(zhǔn)則應(yīng)用于具有相對(duì)較高帶寬的數(shù)據(jù)流(例如,大于或大體等于I千兆字節(jié)/秒的數(shù)據(jù)流)而不使數(shù)據(jù)流減慢。
[0023]在一個(gè)實(shí)施例中,狀態(tài)機(jī)引擎14可經(jīng)配置以辨識(shí)(例如,檢測(cè))數(shù)據(jù)流中的大量模式。例如,狀態(tài)機(jī)引擎14可用以檢測(cè)用戶或其它實(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ò)接收的語(yǔ)音或數(shù)據(jù)。在一個(gè)實(shí)例中,狀態(tài)機(jī)引擎14可經(jīng)配置以分析垃圾郵件或惡意軟件的數(shù)據(jù)流。數(shù)據(jù)流可被接收為串行數(shù)據(jù)流,其中以具有意義的順序(例如以時(shí)間、詞匯或語(yǔ)義顯著的順序)接收數(shù)據(jù)?;蛘撸瑪?shù)據(jù)流可經(jīng)并行或無(wú)序接收,且然后通過(guò)(例如)對(duì)經(jīng)由因特網(wǎng)接收的包進(jìn)行重新排序而轉(zhuǎn)換為串行數(shù)據(jù)流。在一些實(shí)施例中,數(shù)據(jù)流可串行地呈現(xiàn)項(xiàng),但是可并行接收表達(dá)所述項(xiàng)中的每一者的位。數(shù)據(jù)流可從系統(tǒng)10外部的源接收,或可通過(guò)詢問(wèn)例如存儲(chǔ)器16等存儲(chǔ)器裝置且由存儲(chǔ)于存儲(chǔ)器16中的數(shù)據(jù)形成數(shù)據(jù)流而形成。在其它實(shí)例中,狀態(tài)機(jī)引擎14可經(jīng)配置以辨識(shí)拼寫某一字的字符序列、指定基因的基因堿基對(duì)序列、形成圖像的部分的圖片或視頻文件中的位序列、形成程序的部分的可執(zhí)行文件中的位序列或形成歌曲或口語(yǔ)詞組的部分的音頻文件中的位序列。待分析的數(shù)據(jù)流可包含呈二進(jìn)制格式或其它格式(例如,十進(jìn)制、ASCII等等)的多個(gè)數(shù)據(jù)位。所述流可編碼具有單個(gè)數(shù)字或多個(gè)數(shù)字(例如,多個(gè)二進(jìn)制數(shù)字)的數(shù)據(jù)。
[0024]如應(yīng)了解,系統(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 (DDR SDRAM)、DDR2 SDRAM,DDR3 SDRAM等等。存儲(chǔ)器16還可包含非易失性存儲(chǔ)器,例如只讀存儲(chǔ)器(ROM)、PC-RAM、硅-氧化物-氮化物-氧化物-硅(SONOS)存儲(chǔ)器、金屬-氧化物-氮化物-氧化物-硅(MONOS)存儲(chǔ)器、基于多晶硅浮動(dòng)?xùn)艠O的存儲(chǔ)器及/或結(jié)合易失性存儲(chǔ)器使用的各種架構(gòu)的其它類型快閃存儲(chǔ)器(例如,NAND存儲(chǔ)器、NOR存儲(chǔ)器等等)。存儲(chǔ)器16可包含可提供待由狀態(tài)機(jī)引擎14分析的數(shù)據(jù)的一或多個(gè)存儲(chǔ)器裝置,例如DRAM裝置。如本文中所使用,術(shù)語(yǔ)“提供”可大體是指引導(dǎo)、輸入、插入、發(fā)出、路由、發(fā)送、傳送、發(fā)射、產(chǎn)生、給出、輸出、放置、寫入等等。這些裝置可被稱為或包含固態(tài)驅(qū)動(dòng)器(SSD)、多媒體卡(MMC)、安全數(shù)字(SD)卡、壓縮閃存(CF)卡或任何其它合適的裝置。此外,應(yīng)了解,這些裝置可經(jīng)由任何合適的接口(例如通用串行總線(USB)、外圍組件互連(PCI)、PCIExpress(PC1-E)、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)、IEEE 1394 (Firewire)或任何其它合適的接口)耦合到系統(tǒng)10。為了促進(jìn)存儲(chǔ)器16 (例如快閃存儲(chǔ)器裝置)的操作,系統(tǒng)10可包含存儲(chǔ)器控制器(未說(shuō)明)。如應(yīng)了解,存儲(chǔ)器控制器可為獨(dú)立裝置或其可與處理器12成一體。此外,系統(tǒng)10可包含外部存儲(chǔ)裝置18,例如磁性存儲(chǔ)裝置。外部存儲(chǔ)裝置還可將輸入數(shù)據(jù)提供到狀態(tài)機(jī)引擎14。
[0025]系統(tǒng)10可包含數(shù)個(gè)額外元件。例如,如關(guān)于圖8更詳細(xì)地描述,編譯器20可用以配置(例如,編程)狀態(tài)機(jī)引擎14。輸入裝置22還可耦合到處理器12以允許用戶將數(shù)據(jù)輸入到系統(tǒng)10中。例如,輸入裝置22可用以將數(shù)據(jù)輸入到存儲(chǔ)器16中以供狀態(tài)機(jī)引擎14隨后分析。例如,輸入裝置22可包含按鈕、交換元件、鍵盤、光筆、尖筆、鼠標(biāo)及/或語(yǔ)音辨識(shí)系統(tǒng)。例如顯示器等輸出裝置24還可耦合到處理器12。例如,顯示器24可包含IXD、CRT、LED及/或音頻顯示器。所述系統(tǒng)還可包含用于與網(wǎng)絡(luò)(例如因特網(wǎng))介接的網(wǎng)絡(luò)接口裝置26,例如網(wǎng)絡(luò)接口卡(NIC)。如應(yīng)了解,取決于系統(tǒng)10的應(yīng)用,系統(tǒng)10可包含許多其它組件。
[0026]圖2到5說(shuō)明FSM點(diǎn)陣30的實(shí)例。在一實(shí)例中,F(xiàn)SM點(diǎn)陣30包括塊32的陣列。如將描述,每一塊32可包含對(duì)應(yīng)于FSM中的多個(gè)狀態(tài)的多個(gè)可選擇性地耦合的硬件元件(例如,可配置元件及/或?qū)S迷?。類似于FSM中的狀態(tài),硬件元件可分析輸入流并基于輸入流啟動(dòng)下游硬件元件。
[0027]可配置元件可經(jīng)配置(例如,編程)以實(shí)施許多不同功能。例如,可配置元件可包含階層式地組織成行38(圖3及4中所示)及塊32(圖2及3中所示)中的狀態(tài)機(jī)元件(SME)34、36(圖5中所示)。SME還可被視為狀態(tài)轉(zhuǎn)變?cè)?STE)。為了在經(jīng)階層式組織的SME34、36之間路由信號(hào),可使用可配置交換元件的階層,包含塊間交換元件40 (圖2及3中所示)、塊內(nèi)交換元件42(圖3及4中所示)及行內(nèi)交換元件44(圖4中所示)。
[0028]如下文所述,交換元件可包含路由結(jié)構(gòu)及緩沖器。SME 34、36可對(duì)應(yīng)于由FSM點(diǎn)陣30實(shí)施的FSM的狀態(tài)。SME 34、36可通過(guò)使用如下文描述的可配置交換元件而耦合在一起。因此,可通過(guò)以下操作在FSM點(diǎn)陣30上實(shí)施FSM:配置SME 34、36以對(duì)應(yīng)于狀態(tài)功能且選擇性地將SME 34,36耦合在一起以對(duì)應(yīng)于FSM中的狀態(tài)之間的轉(zhuǎn)變。
[0029]圖2說(shuō)明FSM點(diǎn)陣30的實(shí)例的整體視圖。FSM點(diǎn)陣30包含可選擇性地與可配置塊間交換元件40耦合在一起的多個(gè)塊32。塊間交換元件40可包含導(dǎo)體46 (例如,導(dǎo)線、跡線等等)以及緩沖器48及50。在一實(shí)例中,包含緩沖器48及50以控制信號(hào)往返于塊間交換元件40的連接及時(shí)序。如下文進(jìn)一步描述,緩沖器48可經(jīng)提供以緩沖在塊32之間發(fā)送的數(shù)據(jù),而緩沖器50可經(jīng)提供以緩沖在塊間交換元件40之間發(fā)送的數(shù)據(jù)。此外,塊32可選擇性地耦合到用于接收信號(hào)(例如,數(shù)據(jù))且將數(shù)據(jù)提供到塊32的輸入塊52 (例如,數(shù)據(jù)輸入端口)。塊32還可選擇性地耦合到用于將信號(hào)從塊32提供到外部裝置(例如,另一FSM點(diǎn)陣30)的輸出塊54(例如,輸出端口)。FSM點(diǎn)陣30還可包含編程接口 56以(例如,經(jīng)由圖像、程序)配置F