欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

高效實(shí)現(xiàn)及評(píng)估狀態(tài)機(jī)和可編程有限狀態(tài)自動(dòng)機(jī)的方法和設(shè)備的制作方法

文檔序號(hào):6418550閱讀:222來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):高效實(shí)現(xiàn)及評(píng)估狀態(tài)機(jī)和可編程有限狀態(tài)自動(dòng)機(jī)的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及信息處理領(lǐng)域,尤其是內(nèi)容分析學(xué)和處理領(lǐng)域。
背景技術(shù)
計(jì)算和通信領(lǐng)域的顯著趨勢(shì)導(dǎo)致大量?jī)?nèi)容分析學(xué)和處理的環(huán)境的出現(xiàn)。這些環(huán)境在某些類(lèi)型的功能上要求高性能以及可編程性,即對(duì)消息、文檔或者信息包中的內(nèi)容進(jìn)行搜索、剖析、分析、解釋以及轉(zhuǎn)化。強(qiáng)調(diào)所述的大容量?jī)?nèi)容分析學(xué)和處理的顯著領(lǐng)域包括內(nèi)容感知(content-aware)網(wǎng)絡(luò),基于內(nèi)容的安全系統(tǒng),監(jiān)視,分布式計(jì)算,無(wú)線(xiàn)通信,人機(jī)接口,信息存儲(chǔ)和檢索系統(tǒng),語(yǔ)義網(wǎng)絡(luò)上的內(nèi)容搜索,生物信息學(xué)以及其他等等。
內(nèi)容感知網(wǎng)絡(luò)領(lǐng)域要求對(duì)信息包或消息內(nèi)的內(nèi)容進(jìn)行搜索和檢查以確定這些信息包和消息將被發(fā)送或轉(zhuǎn)發(fā)到哪里。所述檢查必須以“線(xiàn)速”對(duì)傳送中的消息進(jìn)行操作,所述“線(xiàn)速”是網(wǎng)絡(luò)連接的數(shù)據(jù)速率。假定當(dāng)今網(wǎng)絡(luò)中整個(gè)過(guò)程的線(xiàn)路速率范圍從100Mbits/秒到40Gbits/秒,那么這對(duì)內(nèi)容檢查功能需要以這樣的速率執(zhí)行有巨大的壓力。
基于內(nèi)容的安全系統(tǒng)和監(jiān)視以及監(jiān)控系統(tǒng)被要求分析消息或信息包的內(nèi)容并且應(yīng)用一系列規(guī)則以確定是否存在安全缺口或者入侵的可能性。典型地,在當(dāng)今的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)中(NIDS),必須以線(xiàn)路速率對(duì)輸入有效載荷應(yīng)用大量模式、規(guī)則和語(yǔ)法以確保所有潛在的系統(tǒng)弱點(diǎn)被揭示出來(lái)。需要對(duì)所述網(wǎng)絡(luò)和正在進(jìn)行的操作的說(shuō)明的上下文中應(yīng)用和分析這樣的規(guī)則和模式。因此精密的狀態(tài)機(jī)需要被評(píng)估以此來(lái)作出適當(dāng)?shù)臎Q定。由于網(wǎng)絡(luò)和計(jì)算的基礎(chǔ)結(jié)構(gòu)在不斷地演變,新的弱點(diǎn)不斷出現(xiàn)。而且,入侵者采用了越來(lái)越復(fù)雜的攻擊以避免被檢測(cè)到。入侵檢測(cè)系統(tǒng)需要能夠檢測(cè)系統(tǒng)中所有已知的攻擊,并且還要足夠智能化以檢測(cè)預(yù)示新的攻擊的不正常和可疑的行為。所有這些因素導(dǎo)致了同時(shí)對(duì)內(nèi)容分析和處理的可編程性和極度高性能的需求。
隨著分布式和聚集式計(jì)算的出現(xiàn),現(xiàn)在工作被分配給彼此互相協(xié)作和通信的多臺(tái)計(jì)算機(jī)或服務(wù)器以完成復(fù)合的任務(wù)。這種分配導(dǎo)致計(jì)算機(jī)通信的迅速增長(zhǎng),對(duì)這些消息的處理要求高性能。隨著XML(擴(kuò)展標(biāo)記語(yǔ)言)作為通用數(shù)據(jù)交換的新的標(biāo)準(zhǔn)的出現(xiàn),應(yīng)用程序使用XML作為“應(yīng)用層數(shù)據(jù)傳輸”進(jìn)行互相通信。消息和文檔現(xiàn)在被嵌入在XML標(biāo)記中。所有的消息處理首先要求對(duì)XML文檔進(jìn)行解析以及提取相關(guān)內(nèi)容并進(jìn)行解釋?zhuān)酉聛?lái)是任何所需的轉(zhuǎn)化和過(guò)濾。由于這些功能需要以很高的消息速率進(jìn)行操作,它們?cè)谟?jì)算性能上要求很苛刻。
隨著無(wú)線(xiàn)化(untethered)通信和無(wú)線(xiàn)網(wǎng)絡(luò)的發(fā)展,從無(wú)線(xiàn)設(shè)備對(duì)信息的訪(fǎng)問(wèn)在增長(zhǎng)。對(duì)于給定的小型化(Iightform factor)客戶(hù)端設(shè)備,對(duì)投遞到該設(shè)備的數(shù)據(jù)進(jìn)行過(guò)濾并保持較小的有效載荷是很重要的。未來(lái)的環(huán)境會(huì)將來(lái)自有線(xiàn)基礎(chǔ)結(jié)構(gòu)的XML內(nèi)容過(guò)濾并轉(zhuǎn)化為無(wú)線(xiàn)基礎(chǔ)結(jié)構(gòu)上的輕量?jī)?nèi)容(使用無(wú)線(xiàn)標(biāo)記語(yǔ)言或者WML)。隨著無(wú)線(xiàn)網(wǎng)絡(luò)應(yīng)用地不斷增長(zhǎng),這種內(nèi)容轉(zhuǎn)化功能會(huì)變得很常見(jiàn),從而對(duì)于其處理的有效解決方案將會(huì)很有必要。
出現(xiàn)的另一種重要需求是使用人機(jī)接口例如語(yǔ)音與計(jì)算機(jī)進(jìn)行通信和交互的能力。語(yǔ)音處理和自然語(yǔ)言處理在內(nèi)容搜索、詞匯分析、內(nèi)容解析以及語(yǔ)法處理中特別密集。一旦音頻流被轉(zhuǎn)換為文本,語(yǔ)音系統(tǒng)需要對(duì)進(jìn)入的文本流應(yīng)用大量詞匯以及句法和語(yǔ)法規(guī)則以理解語(yǔ)音。這樣的上下文和狀態(tài)處理對(duì)計(jì)算性能要求會(huì)非常苛刻。
萬(wàn)維網(wǎng)的出現(xiàn)和發(fā)展給信息檢索(IR)系統(tǒng)帶來(lái)了巨大的計(jì)算負(fù)荷。信息被以高速持續(xù)添加到網(wǎng)絡(luò)。這些信息典型地針對(duì)完備的詞匯表進(jìn)行完全索引化并且被添加到搜索引擎和IR系統(tǒng)的數(shù)據(jù)庫(kù)中。由于信息不斷產(chǎn)生并添加,索引編制器(indexer)需要一直工作。為了提供高效實(shí)時(shí)的上下文檢索,用于索引功能的高性能模式匹配系統(tǒng)將會(huì)非常必要。
另一個(gè)強(qiáng)調(diào)大容量?jī)?nèi)容分析學(xué)和處理的領(lǐng)域是生物信息學(xué)領(lǐng)域?;蚍治鰧W(xué)和蛋白體學(xué)(proteomics)需要對(duì)基因序列和結(jié)構(gòu)應(yīng)用復(fù)雜的搜索和分析算法。同樣地,這樣的計(jì)算需要高性能的搜索、分析以及解釋能力。
因此,未來(lái)出現(xiàn)的計(jì)算機(jī)和通信環(huán)境會(huì)強(qiáng)調(diào)大容量?jī)?nèi)容的分析和處理。這樣的環(huán)境對(duì)以下功能提出高效率和可編程的解決方案的要求——對(duì)文檔、消息或者信息包中的內(nèi)容的狀態(tài)和上下文檢查、搜索、詞匯分析、解析、特征描述、解釋、過(guò)濾以及轉(zhuǎn)化。這些大容量?jī)?nèi)容處理功能的核心是對(duì)輸入數(shù)據(jù)流高效評(píng)估狀態(tài)器的能力。
狀態(tài)機(jī)的歷史追溯到早期的計(jì)算機(jī)科學(xué)。在其最簡(jiǎn)單的陳述中,狀態(tài)機(jī)是由狀態(tài)、狀態(tài)間的轉(zhuǎn)換以及輸入表述組成的規(guī)范模型。從圖靈的算術(shù)計(jì)算模型(1936)開(kāi)始,狀態(tài)機(jī)即成為計(jì)算理論的核心。在二十世紀(jì)五十年代,Kleene提出了正則表達(dá)式作為描述和特征表示字符串集合的規(guī)范符號(hào)。有限狀態(tài)自動(dòng)機(jī)作為等價(jià)于正則表達(dá)式的狀態(tài)機(jī)模型被提出。隨后非確定自動(dòng)機(jī)被提出并被證明與確定自動(dòng)機(jī)等價(jià)。Thompson等人隨后的工作產(chǎn)生了構(gòu)建有限狀態(tài)自動(dòng)機(jī)以評(píng)估正則表達(dá)式的構(gòu)建算法主體。大量參考文獻(xiàn)被應(yīng)用于描述正則表達(dá)式和有限狀態(tài)自動(dòng)機(jī)。對(duì)于這些材料的參考文獻(xiàn)文本,見(jiàn)“Speech and Language Processing”(Daniel Jurafsky和James H.Martin,Prentice-Hall Inc,2000)。正則表達(dá)式演變成為模式匹配和識(shí)別的強(qiáng)大工具,并且有限自動(dòng)機(jī)成為實(shí)現(xiàn)對(duì)其進(jìn)行評(píng)估的機(jī)器的標(biāo)準(zhǔn)技術(shù)。
使用現(xiàn)有技術(shù)中的方法,狀態(tài)機(jī)和有限狀態(tài)自動(dòng)機(jī)處理可以以三種方式之一進(jìn)行。第一,所述處理使用固定的專(zhuān)用集成電路(ASIC)解決方案直接實(shí)現(xiàn)事先知道的固定且選定的狀態(tài)機(jī)。盡管固定的ASIC方法可以提高性能,但其缺乏可編程性,并且因此其應(yīng)用嚴(yán)重受限。而且,對(duì)各個(gè)目標(biāo)解決方案設(shè)計(jì)和定制專(zhuān)用芯片的費(fèi)用非常高昂。
第二,可以使用現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)以可編程方式實(shí)現(xiàn)狀態(tài)機(jī)。本質(zhì)上,F(xiàn)PGA架構(gòu)提供了為適合廣泛領(lǐng)域應(yīng)用而配置的通用可編程邏輯,而不是針對(duì)狀態(tài)機(jī)的實(shí)現(xiàn)進(jìn)行專(zhuān)門(mén)優(yōu)化。使用該方法,在單塊芯片上只能容納很少數(shù)量的狀態(tài)機(jī),并且可以進(jìn)行的評(píng)估速度有限。該實(shí)現(xiàn)的密度和工作特性使得這種解決方案不適于正在出現(xiàn)的廣泛領(lǐng)域的應(yīng)用。
第三,傳統(tǒng)的通用微處理器被用于實(shí)現(xiàn)各種狀態(tài)機(jī)。微處理器是完全可編程設(shè)備并且通過(guò)重新對(duì)軟件進(jìn)行編程實(shí)現(xiàn)新的功能而能夠解決不斷增長(zhǎng)的需求問(wèn)題。然而,傳統(tǒng)的微處理器在其實(shí)現(xiàn)和評(píng)估狀態(tài)機(jī)的效率方面受限?,F(xiàn)在將描述這些局限性。
圖1(a)基于示例總結(jié)了微處理器在實(shí)現(xiàn)有限狀態(tài)自動(dòng)機(jī)時(shí)的局限性。存在兩種實(shí)現(xiàn)選擇——第一,確定性有限狀態(tài)自動(dòng)機(jī)方法(DFA),以及第二,非確定性有限狀態(tài)自動(dòng)機(jī)方法。對(duì)這兩種選擇在其實(shí)現(xiàn)R字符正則表達(dá)式并且對(duì)N字節(jié)輸入數(shù)據(jù)流進(jìn)行評(píng)估的能力方面進(jìn)行比較。在兩種方法中,正則表達(dá)式均以一定數(shù)量的狀態(tài)被映射到狀態(tài)機(jī)或者有限狀態(tài)自動(dòng)機(jī)中。對(duì)于基于微處理器的解決方案,容納這些狀態(tài)所需的存儲(chǔ)量是該方法的一種優(yōu)良性度量。第二種關(guān)鍵度量是評(píng)估N字節(jié)輸入數(shù)據(jù)流所需的時(shí)間總量。
在DFA方法中,對(duì)于R字符正則表達(dá)式的狀態(tài)所需的存儲(chǔ)限度為2R。因此,需要大量存儲(chǔ)空間以容納這些狀態(tài)。實(shí)現(xiàn)DFA的一般方法是構(gòu)建狀態(tài)轉(zhuǎn)換表,并且在所述狀態(tài)表遞進(jìn)地評(píng)估輸入數(shù)據(jù)時(shí)使所述微處理器序列通過(guò)該表。所述狀態(tài)轉(zhuǎn)換表在存儲(chǔ)器中建立。該表的巨大規(guī)模使得商用微處理器中的緩存子系統(tǒng)效率很低,并且需要微處理器在每個(gè)新的輸入數(shù)據(jù)字節(jié)時(shí)訪(fǎng)問(wèn)外部存儲(chǔ)器以查找該表從而確定下一個(gè)狀態(tài)。因此狀態(tài)機(jī)評(píng)估輸入數(shù)據(jù)的速度受到存儲(chǔ)器訪(fǎng)問(wèn)周期的限制。這顯示在圖1(b)中。對(duì)于輸入流的N個(gè)字節(jié),評(píng)估狀態(tài)機(jī)所需時(shí)間與N次訪(fǎng)問(wèn)存儲(chǔ)器成正比。在2003年普遍存在的典型商業(yè)計(jì)算機(jī)系統(tǒng)中,存儲(chǔ)器訪(fǎng)問(wèn)延遲數(shù)量級(jí)為100納秒。因此狀態(tài)機(jī)評(píng)估的延遲數(shù)量級(jí)為N×100ns。這會(huì)將對(duì)狀態(tài)機(jī)可能進(jìn)行評(píng)估的數(shù)據(jù)速率限制在大約100Mbps。如果需要并行的評(píng)估多個(gè)正則表達(dá)式,一種選擇是將這些表達(dá)式實(shí)現(xiàn)在存儲(chǔ)器中的不同表中,微處理器將其一個(gè)接一個(gè)的連續(xù)地計(jì)算。對(duì)于K并行正則表達(dá)式,評(píng)估時(shí)間則會(huì)退變?yōu)镵*N*100ns,同時(shí)存儲(chǔ)量限度將會(huì)增加到K*2R。另一種可替換選擇是將所有正則表達(dá)式匯編到單片集成電路DFA中并且使得微處理器序列在單次通行中通過(guò)該表。對(duì)于K并行正則表達(dá)式,存儲(chǔ)量限度將會(huì)增加到2(K*R),同時(shí)評(píng)估時(shí)間仍為N*100ns。這種方法所需的存儲(chǔ)量非常龐大。為了實(shí)現(xiàn)幾千個(gè)正則表達(dá)式,所需的存儲(chǔ)量超過(guò)了商業(yè)系統(tǒng)上可用的存儲(chǔ)器的物理限制。
在NFA方法中,R字符正則表達(dá)式所需的存儲(chǔ)量限度正比于R。因此不必?fù)?dān)心存儲(chǔ)量。然而,在NFA中,多個(gè)節(jié)點(diǎn)可以同時(shí)進(jìn)行獨(dú)立的狀態(tài)轉(zhuǎn)換,每個(gè)都基于獨(dú)立的評(píng)估準(zhǔn)則。假定微處理器是可以按先后次序執(zhí)行單個(gè)線(xiàn)程控制的標(biāo)量引擎(scalar engine),則NFA的多個(gè)狀態(tài)轉(zhuǎn)換需要微處理器順次遍歷每個(gè)狀態(tài)的評(píng)估。因此,對(duì)于數(shù)據(jù)的每個(gè)輸入字節(jié),該評(píng)估必須重復(fù)R次。假定該方案所需的存儲(chǔ)量適度,所有處理可以局限于使用芯片上的資源,因此保持不受存儲(chǔ)器瓶頸的限制。每個(gè)狀態(tài)轉(zhuǎn)換計(jì)算通過(guò)芯片上評(píng)估而完成,所述芯片上計(jì)算的性能受到來(lái)自數(shù)據(jù)訪(fǎng)問(wèn)緩存延遲和分支延遲的限制。由于現(xiàn)代微處理器高度管道化(在位于加利福尼亞的圣塔克萊拉的Intel公司提供的奔騰三代和奔騰四代處理器等產(chǎn)品中大約有20-30級(jí)),由于分支造成的性能代價(jià)是巨大的。假定以4GHz運(yùn)行的商業(yè)微處理器的16周期循環(huán),單個(gè)狀態(tài)轉(zhuǎn)換的評(píng)估需要4納秒。因此,對(duì)R字符正則表達(dá)式的R狀態(tài)NFA評(píng)估N字節(jié)輸入流需要N*R*4納秒。對(duì)于K并行正則表達(dá)式,微處理器會(huì)順次遍歷每一者,需要K*N*R*4納秒。注意對(duì)僅僅4并行正則表達(dá)式如果每個(gè)有8個(gè)狀態(tài),數(shù)據(jù)速率會(huì)再次被限制在100Mbps左右。
這些數(shù)據(jù)點(diǎn)表明2003或2004年的傳統(tǒng)微處理器能夠以大約100Mbps左右范圍的數(shù)率提供對(duì)輸入數(shù)據(jù)的可編程狀態(tài)機(jī)評(píng)估。然而,到那個(gè)時(shí)限,1Gbps至10Gbps之間的數(shù)據(jù)速率在企業(yè)網(wǎng)絡(luò)和環(huán)境中將并不少見(jiàn)。顯然,在傳統(tǒng)微處理器所能提供的性能和環(huán)境所需的性能之間存在著一到兩個(gè)數(shù)量級(jí)的嚴(yán)重不匹配。盡管可以采用多個(gè)并行微處理器系統(tǒng)從而以目標(biāo)速率執(zhí)行某些需求功能,但是這樣大大增加了系統(tǒng)的成本。顯然存在對(duì)于這些目標(biāo)功能的更有效的解決方案的需求。

發(fā)明內(nèi)容
在此描述了一種對(duì)狀態(tài)機(jī)和可編程有限狀態(tài)自動(dòng)機(jī)進(jìn)行高效執(zhí)行和評(píng)估的方法和設(shè)備。在一個(gè)實(shí)施例中,狀態(tài)機(jī)架構(gòu)包括多個(gè)節(jié)點(diǎn)元件,其中所述多個(gè)節(jié)點(diǎn)元件中的每一個(gè)表示控制流圖中的一個(gè)節(jié)點(diǎn)。所述狀態(tài)機(jī)架構(gòu)還包括連接節(jié)點(diǎn)元件的多個(gè)互連線(xiàn),多個(gè)狀態(tài)轉(zhuǎn)換連通性控制邏輯用于設(shè)置和取消所述多個(gè)互連線(xiàn)內(nèi)的連接以此通過(guò)多個(gè)節(jié)點(diǎn)元件形成控制流圖,以及連接到所述互連線(xiàn)的多個(gè)狀態(tài)轉(zhuǎn)換評(píng)估邏輯,所述多個(gè)狀態(tài)轉(zhuǎn)換評(píng)估邏輯能被控制以根據(jù)標(biāo)準(zhǔn)對(duì)輸入數(shù)據(jù)進(jìn)行評(píng)估,從而控制所述控制流圖中節(jié)點(diǎn)元件之間的一個(gè)或多個(gè)狀態(tài)轉(zhuǎn)換。


本發(fā)明可以通過(guò)下面給出的本發(fā)明各種實(shí)施例的詳細(xì)描述和附圖而更全面的理解,然而,這些不應(yīng)被認(rèn)為是將本發(fā)明限制于特定實(shí)施例,而僅是用于解釋和理解。
圖1(a)顯示了現(xiàn)有技術(shù)中的狀態(tài)機(jī)技術(shù)的存儲(chǔ)和性能的局限性;圖1(b)顯示了現(xiàn)有技術(shù)中的狀態(tài)機(jī)技術(shù)的存儲(chǔ)器瓶頸;圖2顯示了對(duì)于具有3種狀態(tài)的狀態(tài)機(jī)的狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例;圖3(a)顯示了正則表達(dá)式如何映射到非確定有限狀態(tài)自動(dòng)機(jī)(NFA)的有限狀態(tài)機(jī)描述;圖3(b)顯示了使用狀態(tài)機(jī)評(píng)估每個(gè)節(jié)點(diǎn)元件具有1個(gè)評(píng)估符號(hào)的3狀態(tài)非確定有限狀態(tài)自動(dòng)機(jī)(NFA);圖4顯示了使用狀態(tài)機(jī)架構(gòu)實(shí)現(xiàn)非確定有限態(tài)自動(dòng)機(jī)的一個(gè)實(shí)施例;圖5是實(shí)現(xiàn)有限狀態(tài)自動(dòng)機(jī)的狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例的高層結(jié)構(gòu)圖;圖6顯示了程序員角度的實(shí)現(xiàn)有限狀態(tài)自動(dòng)機(jī)的狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例;圖7顯示了在集成電路芯片上實(shí)現(xiàn)數(shù)千有限狀態(tài)自動(dòng)機(jī)的實(shí)施例中所述設(shè)備的使用;圖8(a)顯示了能夠通過(guò)在更大的圖中分級(jí)使用狀態(tài)機(jī)構(gòu)建模塊而實(shí)現(xiàn)更大的狀態(tài)機(jī)的狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例;圖8(b)顯示了能夠通過(guò)在更大的圖中使用狀態(tài)機(jī)構(gòu)建模塊而實(shí)現(xiàn)更大的狀態(tài)機(jī)的狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例;圖9(a)顯示了在狀態(tài)機(jī)技術(shù)上超出現(xiàn)有技術(shù)的示例的狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例的存儲(chǔ)和性能優(yōu)勢(shì);以及圖9(b)顯示了通過(guò)使用狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例而消除了存儲(chǔ)器瓶頸。
具體實(shí)施例方式
在此公開(kāi)了一種可編程設(shè)備用于實(shí)現(xiàn)和評(píng)估狀態(tài)機(jī)和有限狀態(tài)自動(dòng)機(jī)。所述設(shè)備采用了以可編程方式能夠達(dá)到在硬件上幾乎任意的控制流圖的物理實(shí)現(xiàn)的方式,所述方式使用電路構(gòu)建圖的技術(shù)。該設(shè)備的實(shí)施例提供了一種高性能和簡(jiǎn)潔的解決方案用于多個(gè)復(fù)雜狀態(tài)機(jī)的評(píng)估。該設(shè)備的實(shí)施例可以用于通過(guò)在數(shù)據(jù)上分級(jí)應(yīng)用數(shù)千個(gè)規(guī)則樹(shù)而進(jìn)行高效解析和數(shù)據(jù)評(píng)估,以及對(duì)文檔、消息或者其他內(nèi)容中的任意長(zhǎng)度模式進(jìn)行高速上下文搜索。
在一個(gè)實(shí)施例中,所述硬件包括一組存儲(chǔ)元件或者節(jié)點(diǎn)元件,用于保存表示控制流圖節(jié)點(diǎn)或者狀態(tài)機(jī)狀態(tài)的值,節(jié)點(diǎn)之間的一組連線(xiàn)或者互連線(xiàn),用于表示控制流圖的弧或者狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換,一組可編程連通性控制,可以用于設(shè)置和取消任何節(jié)點(diǎn)之間的任何互連線(xiàn),對(duì)輸入數(shù)據(jù)應(yīng)用的一組可編程評(píng)估符號(hào),其結(jié)果用于觸發(fā)節(jié)點(diǎn)元件之間的值的傳送或者節(jié)點(diǎn)元件之間的狀態(tài)轉(zhuǎn)換。在一個(gè)實(shí)施例中,還包括附加控制以初始化、評(píng)估和終止所述狀態(tài)機(jī)評(píng)估。通過(guò)對(duì)所述控制和符號(hào)編程,所述設(shè)備可以配置以實(shí)現(xiàn)任何給定的狀態(tài)機(jī)。
在一個(gè)實(shí)施例中,對(duì)于每個(gè)評(píng)估周期,新的數(shù)據(jù)流入到所述設(shè)備并且被應(yīng)用到所述評(píng)估符號(hào),觸發(fā)節(jié)點(diǎn)元件間的狀態(tài)轉(zhuǎn)換。在一個(gè)實(shí)施例中,多個(gè)節(jié)點(diǎn)元件的每一個(gè)獨(dú)立地對(duì)多個(gè)其他節(jié)點(diǎn)元件進(jìn)行并行狀態(tài)轉(zhuǎn)換。所述設(shè)備可以用于實(shí)現(xiàn)有限狀態(tài)自動(dòng)機(jī)的快速和高效執(zhí)行。非確定有限狀態(tài)自動(dòng)機(jī)(NFSA或NFA)規(guī)范自然地映射到所述設(shè)備。
在一個(gè)實(shí)施例中,控制流圖的所有節(jié)點(diǎn)或者狀態(tài)機(jī)的所有狀態(tài)均實(shí)例化(instantiated)到硬件中的存儲(chǔ)元件或者節(jié)點(diǎn)元件中,并且狀態(tài)機(jī)的所有弧或者狀態(tài)轉(zhuǎn)換被實(shí)例化為節(jié)點(diǎn)之間的連線(xiàn)或者互連線(xiàn)。節(jié)點(diǎn)之間的連通性被假定為完全的(全部連接)或者部分連接。所述連通性通過(guò)可選擇性開(kāi)啟/斷開(kāi)已有連接的設(shè)置/取消控制而進(jìn)一步增強(qiáng)。在一個(gè)實(shí)施例中,這些控制是可編程的。通過(guò)在特定組的控制值中編程,可以設(shè)置選定的互連線(xiàn),因此能夠使任意控制流圖實(shí)現(xiàn)。在此基本設(shè)置中,值可以通過(guò)在已設(shè)置的連線(xiàn)或互連線(xiàn)上傳送而從一個(gè)節(jié)點(diǎn)傳送到另一個(gè),從而導(dǎo)致有效的狀態(tài)轉(zhuǎn)換。在一個(gè)實(shí)施例中,所述設(shè)備可以進(jìn)一步增強(qiáng)由觸發(fā)信號(hào)設(shè)定門(mén)限的通過(guò)連線(xiàn)或者互連線(xiàn)的狀態(tài)轉(zhuǎn)換。在此情況下,對(duì)于每個(gè)互連線(xiàn),通過(guò)根據(jù)特定標(biāo)準(zhǔn)對(duì)輸入數(shù)據(jù)進(jìn)行評(píng)估而計(jì)算觸發(fā)信號(hào)。在一個(gè)實(shí)施例中,這些標(biāo)準(zhǔn)(在此稱(chēng)為評(píng)估符號(hào))是可編程的。通過(guò)對(duì)特定組的評(píng)估符號(hào)進(jìn)行編程可以實(shí)現(xiàn)大量的任意狀態(tài)機(jī)。
在一個(gè)實(shí)施例中,使用簡(jiǎn)單的雙穩(wěn)態(tài)多諧振蕩器來(lái)實(shí)現(xiàn)存儲(chǔ)元件,并且使用實(shí)現(xiàn)為邏輯門(mén)的簡(jiǎn)單開(kāi)關(guān)來(lái)實(shí)現(xiàn)連通性控制。在一個(gè)實(shí)施例中,所述設(shè)備的實(shí)現(xiàn)映射到簡(jiǎn)單并且常見(jiàn)的結(jié)構(gòu),可以做得非常緊湊。
通過(guò)在硬件中削減大量節(jié)點(diǎn),大型復(fù)雜的狀態(tài)機(jī)可以使用在此描述的技術(shù)實(shí)現(xiàn)。可替換地,可以采用分級(jí)實(shí)現(xiàn)策略以進(jìn)一步縮減整個(gè)控制流圖中的任何稀疏處。目標(biāo)狀態(tài)機(jī)的整個(gè)控制流圖可以分解為稀疏連接的緊湊子圖組或者更小的狀態(tài)機(jī)組。使用該方法,分級(jí)組織的規(guī)則樹(shù)或者更小的狀態(tài)機(jī)樹(shù)可以在芯片上實(shí)例化。
傳統(tǒng)實(shí)現(xiàn)方式是首先開(kāi)發(fā)給定大小(節(jié)點(diǎn)數(shù))的構(gòu)建模塊并且然后多次對(duì)其進(jìn)行復(fù)制,產(chǎn)生多個(gè)更小的狀態(tài)機(jī)。這些更小的狀態(tài)機(jī)可以作為獨(dú)立狀態(tài)機(jī)集合使用或者組合在一起以構(gòu)建更大的狀態(tài)機(jī)。后者可以通過(guò)使用互連結(jié)構(gòu)(interconnect fabric)連接所述更小的狀態(tài)機(jī)而實(shí)現(xiàn)。所述結(jié)構(gòu)可以遵循構(gòu)造基本設(shè)備相同的方法,將每個(gè)更小的狀態(tài)機(jī)自身視為更大的圖中的一個(gè)節(jié)點(diǎn)。這種方法可以很有效率的給出改進(jìn)的解決方案。通過(guò)選擇足夠滿(mǎn)足選定目標(biāo)范圍的尺寸大小(即節(jié)點(diǎn)數(shù)量),可以集中于其實(shí)現(xiàn)并且使其很緊湊。在連接到互連結(jié)構(gòu)時(shí),更大更復(fù)雜并且因此具有更強(qiáng)大的狀態(tài)機(jī)評(píng)估能力可以容納于單塊芯片上。例如,使用0.13μ硅工藝技術(shù),一個(gè)實(shí)施例的第一實(shí)現(xiàn)可以在單塊芯片上容納數(shù)千個(gè)狀態(tài)機(jī)(例如每個(gè)由16狀態(tài)非確定有限狀態(tài)自動(dòng)機(jī)組成)。
圖2顯示了對(duì)于具有3個(gè)節(jié)點(diǎn)的狀態(tài)機(jī)的狀態(tài)機(jī)評(píng)估設(shè)備的一個(gè)示例實(shí)施例。該架構(gòu)的實(shí)際實(shí)現(xiàn)會(huì)包括具有大量節(jié)點(diǎn)的狀態(tài)機(jī),但是選擇3個(gè)節(jié)點(diǎn)是為了示例簡(jiǎn)化目的。現(xiàn)在將描述所述狀態(tài)機(jī)評(píng)估架構(gòu)的關(guān)鍵元件。
(1)元件N1、N2和N3表示一組被稱(chēng)為節(jié)點(diǎn)元件的存儲(chǔ)元件(例如節(jié)點(diǎn)元件N1、N2和N3)。每個(gè)存儲(chǔ)元件或者元件組可以用于保存表示狀態(tài)機(jī)狀態(tài)或者控制流圖的節(jié)點(diǎn)的數(shù)值。多個(gè)節(jié)點(diǎn)在任何給定時(shí)間可以同時(shí)激活。
(2)一組連線(xiàn)或者互連線(xiàn)201被用于完全或者部分的互連節(jié)點(diǎn)元件N1、N2和N3,并且在所有節(jié)點(diǎn)元件N1、N2和N3之間讀取、寫(xiě)入以及傳送數(shù)據(jù)。每個(gè)連線(xiàn)或者互連線(xiàn)201可以用于表示控制流圖中不同的弧,從而兩個(gè)節(jié)點(diǎn)元件之間存在的互連線(xiàn)可以被認(rèn)為是存在一條弧連接這兩個(gè)節(jié)點(diǎn)??商鎿Q地,每個(gè)連線(xiàn)或者互連線(xiàn)201可以用于表示狀態(tài)機(jī)的不同狀態(tài)轉(zhuǎn)換。兩個(gè)節(jié)點(diǎn)元件或者狀態(tài)之間存在的互連線(xiàn)201可以被認(rèn)為是這兩個(gè)狀態(tài)之間可能的狀態(tài)轉(zhuǎn)換。通過(guò)互連線(xiàn)從一個(gè)節(jié)點(diǎn)元件到另一個(gè)的值的實(shí)際傳送可以被認(rèn)為是實(shí)際狀態(tài)轉(zhuǎn)換。多個(gè)狀態(tài)轉(zhuǎn)換可以在任何給定時(shí)間同時(shí)發(fā)生。在圖2中,節(jié)點(diǎn)元件N1、N2和N3互相之間完全連接。
(3)一組包含在此稱(chēng)為狀態(tài)轉(zhuǎn)換連通性控制202的值的存儲(chǔ)元件。狀態(tài)轉(zhuǎn)換連通性控制202的這些值被用于設(shè)置或取消節(jié)點(diǎn)元件(例如節(jié)點(diǎn)元件N1、N2和N3)之間的特定互連。伴隨這些控制的是一種機(jī)制,通過(guò)該機(jī)制,節(jié)點(diǎn)元件之間的互連可以通過(guò)所述狀態(tài)轉(zhuǎn)換連通性控制而設(shè)置或取消,下面將對(duì)此更加詳細(xì)的描述。
(4)一組包含操作和數(shù)據(jù)的規(guī)范的存儲(chǔ)元件。這些規(guī)范在此被稱(chēng)為狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)203。伴隨這些符號(hào)的是一種機(jī)制,通過(guò)該機(jī)制這些狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)可以連接到輸入數(shù)據(jù)。通過(guò)這種機(jī)制,這些符號(hào)被應(yīng)用到輸入數(shù)據(jù)以計(jì)算在此稱(chēng)為狀態(tài)轉(zhuǎn)換動(dòng)態(tài)觸發(fā)器204的輸出。在一個(gè)實(shí)施例中,所述符號(hào)包括比較運(yùn)算和單個(gè)8位字符值,從而輸入數(shù)據(jù)被指定為與所述8位字符值進(jìn)行比較以計(jì)算所述狀態(tài)轉(zhuǎn)換動(dòng)態(tài)觸發(fā)器204。在另一個(gè)實(shí)施例中,更豐富和更復(fù)雜的運(yùn)算符可以與數(shù)據(jù)集結(jié)合以提供更豐富的計(jì)評(píng)估符號(hào)。例如,所述符號(hào)可以包括例如減法或范圍計(jì)算的算術(shù)運(yùn)算。
(5)狀態(tài)轉(zhuǎn)換動(dòng)態(tài)觸發(fā)器204控制被狀態(tài)轉(zhuǎn)換連通性控制202所設(shè)置的互連線(xiàn)上節(jié)點(diǎn)元件之間的值的升級(jí)和傳送。
(6)提供了數(shù)據(jù)傳送單元205,通過(guò)所述數(shù)據(jù)傳送單元205可以將數(shù)據(jù)(例如動(dòng)態(tài)計(jì)算數(shù)據(jù))提供給包含狀態(tài)轉(zhuǎn)換連通性控制202的存儲(chǔ)器。因此狀態(tài)轉(zhuǎn)換連通性控制202可以被動(dòng)態(tài)編程和配置,使控制流圖結(jié)構(gòu)或配置范圍能夠動(dòng)態(tài)實(shí)現(xiàn)。在一個(gè)實(shí)施例中,數(shù)據(jù)傳送單元205還提供了一種機(jī)制,通過(guò)該機(jī)制可以將數(shù)據(jù)(例如動(dòng)態(tài)計(jì)算數(shù)據(jù))提供給包含狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)203的存儲(chǔ)器。因此狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)203和狀態(tài)轉(zhuǎn)換動(dòng)態(tài)觸發(fā)器204的計(jì)算可以被動(dòng)態(tài)編程和配置。數(shù)據(jù)傳送單元205還提供了一種機(jī)制用于訪(fǎng)問(wèn)和采樣所述節(jié)點(diǎn)元件并且以初始化值對(duì)其編程。數(shù)據(jù)傳送單元205還提供了一種機(jī)制用于將所述設(shè)備連接到其他類(lèi)似設(shè)備以構(gòu)建更大的狀態(tài)機(jī)或圖。
(7)并且,所述設(shè)備可以具有專(zhuān)用機(jī)制用于復(fù)位整個(gè)設(shè)備,例如復(fù)位線(xiàn)207。
(8)輸入數(shù)據(jù)流206提供了一種機(jī)制用于將輸入流提供給整個(gè)設(shè)備。每個(gè)評(píng)估周期內(nèi),新的數(shù)據(jù)被提供給所述設(shè)備,并且被應(yīng)用到評(píng)估符號(hào),觸發(fā)所有節(jié)點(diǎn)元件之間的狀態(tài)轉(zhuǎn)換。在一個(gè)實(shí)施例中,輸入數(shù)據(jù)流206基于時(shí)鐘208而將數(shù)據(jù)的輸入流提供給狀態(tài)機(jī)架構(gòu),所述時(shí)鐘208還為狀態(tài)機(jī)架構(gòu)提供時(shí)鐘。
(9)可選擇地,所述狀態(tài)機(jī)可以具有附加機(jī)制用于控制狀態(tài)機(jī)評(píng)估的進(jìn)度。起始狀態(tài)選擇控制209和接受狀態(tài)選擇控制210是比特向量,所述比特向量指定了待啟動(dòng)的特定節(jié)點(diǎn)元件和接受狀態(tài)節(jié)點(diǎn)。所指定的起始狀態(tài)在所述狀態(tài)機(jī)初始化后開(kāi)始激活。一旦所述狀態(tài)機(jī)進(jìn)入任何一個(gè)接受狀態(tài),則停止進(jìn)一步評(píng)估。所述接受狀態(tài)表明所述狀態(tài)機(jī)被配置的任務(wù)已經(jīng)完成。例如,在上下文搜索情況下,接受狀態(tài)表明輸入流中模式的匹配。
如同圖2所示,具有R個(gè)節(jié)點(diǎn)的狀態(tài)機(jī)設(shè)備具有R^2條弧,以及R^2個(gè)符號(hào)。在圖2中,R=3。
評(píng)估正則表達(dá)式的架構(gòu)的使用所描述的狀態(tài)機(jī)架構(gòu)對(duì)于實(shí)現(xiàn)可編程有限狀態(tài)自動(dòng)機(jī)以評(píng)估正則表達(dá)式尤其有用。正則表達(dá)式等價(jià)于有限狀態(tài)自動(dòng)機(jī)。
圖3(a)顯示了示例正則表達(dá)式以及其映射到有限狀態(tài)機(jī)規(guī)范?,F(xiàn)有技術(shù)中存在大量算法用于這種映射以及用于構(gòu)建所述有限狀態(tài)自動(dòng)機(jī)。[關(guān)于此材料存在若干資料和文本。對(duì)于各種算法的詳細(xì)論述,請(qǐng)參見(jiàn)下面的參考文獻(xiàn)Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman所著的“CompilersPrinciples,Techniques,and Tools”]。著名的算法包括Thompson構(gòu)建和Berry-Sethi構(gòu)建。這些算法將由給定數(shù)量的字符和運(yùn)算符組成的正則表達(dá)式映射到有限狀態(tài)自動(dòng)機(jī)。這些算法的優(yōu)劣度量包括所構(gòu)建的有限狀態(tài)自動(dòng)機(jī)的重要特性。這些特性包括狀態(tài)數(shù)量,狀態(tài)轉(zhuǎn)換弧數(shù)量,以及實(shí)現(xiàn)狀態(tài)機(jī)所需的狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)數(shù)量。有必要指出某種類(lèi)型的構(gòu)造算法(通常稱(chēng)為左偏構(gòu)造,右偏構(gòu)造或者Berry-Sethi構(gòu)造)導(dǎo)致R個(gè)字符正則表達(dá)式映射到具有R+1個(gè)狀態(tài)的有限狀態(tài)自動(dòng)機(jī),最多有R^2條弧,以及R個(gè)符號(hào)。這樣的構(gòu)造允許進(jìn)一步在所述設(shè)備的設(shè)計(jì)中的硬件里存儲(chǔ)正則表達(dá)式處理。僅需要對(duì)R節(jié)點(diǎn)狀態(tài)機(jī)提供R個(gè)評(píng)估符號(hào)(每個(gè)節(jié)點(diǎn)一個(gè)),而不用構(gòu)造具有R^2評(píng)估符號(hào)(每條弧一個(gè)符號(hào))的R節(jié)點(diǎn)狀態(tài)機(jī)。因此僅需要對(duì)每個(gè)節(jié)點(diǎn)提供一個(gè)評(píng)估符號(hào)和相關(guān)的動(dòng)態(tài)觸發(fā)器計(jì)算硬件。從節(jié)點(diǎn)發(fā)出或者流入節(jié)點(diǎn)的所有弧均被該觸發(fā)器進(jìn)行門(mén)限。對(duì)流入節(jié)點(diǎn)的所有弧的觸發(fā)相對(duì)于從節(jié)點(diǎn)發(fā)出的所有弧的觸發(fā)之間的設(shè)計(jì)決策導(dǎo)致了在左偏構(gòu)建算法對(duì)于右偏構(gòu)建算法之間的選擇決策。通過(guò)利用這種性質(zhì),減少了需要存儲(chǔ)的符號(hào)數(shù)量,以及對(duì)輸入流評(píng)估這些符號(hào)所需的硬件。同時(shí)還伴隨著將狀態(tài)轉(zhuǎn)換動(dòng)態(tài)觸發(fā)器(例如204)連接到互連線(xiàn)201所需硬件的減少。
圖3(b)顯示了狀態(tài)機(jī)如何利用特定構(gòu)造算法的優(yōu)點(diǎn)以實(shí)現(xiàn)每個(gè)節(jié)點(diǎn)元件一個(gè)符號(hào)的R節(jié)點(diǎn)狀態(tài)機(jī)。這表明R節(jié)點(diǎn)狀態(tài)機(jī)具有R個(gè)評(píng)估符號(hào),以及R^2條弧。在圖3(b)中所示的示例中,R=3。因此圖3(b)顯示了所述狀態(tài)機(jī)架構(gòu)如何高效率的實(shí)現(xiàn)非確定有限態(tài)自動(dòng)機(jī)以評(píng)估正則表達(dá)式。
在下面的描述中,給出了大量細(xì)節(jié)以提供對(duì)本發(fā)明的全面的理解。然而很顯然的是,對(duì)于本領(lǐng)域技術(shù)人員,本發(fā)明的實(shí)施可以不具有這些細(xì)節(jié)。在其他示例中,公知的結(jié)構(gòu)和設(shè)備以結(jié)構(gòu)圖形式顯示,而不是以細(xì)節(jié)形式,以避免模糊本發(fā)明。
下面的某些部分的詳細(xì)描述是針對(duì)計(jì)算機(jī)存儲(chǔ)器內(nèi)數(shù)據(jù)比特操作的算法和符號(hào)表示而提出的。這些算法描述和表示是數(shù)據(jù)處理領(lǐng)域的技術(shù)人員使用的方式,以最有效的向本領(lǐng)域其他技術(shù)人員傳達(dá)其工作的實(shí)質(zhì)。一種算法在此一般被認(rèn)為是導(dǎo)致所需結(jié)果的前后一致的步驟序列。這些步驟要求對(duì)物理量進(jìn)行物理操作。通常而非必要的,這些量采取電或磁信號(hào)的形式,能夠被存儲(chǔ)、傳送、組合、比較以及操作。主要由于通常使用的原因,以比特、數(shù)值、元素、符號(hào)、字符、項(xiàng)目、數(shù)字等等來(lái)提及這些信號(hào)被證實(shí)是方便的。
然而應(yīng)當(dāng)記住,所有這些和類(lèi)似的術(shù)語(yǔ)均與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián)并且僅僅是應(yīng)用到這些量的方便標(biāo)記。除非在以下討論中特別提及,可以認(rèn)為在整個(gè)下面的描述中,使用例如“處理”或“計(jì)算”或“計(jì)算的”或“確定”或“顯示”等等之類(lèi)術(shù)語(yǔ)的討論均是指計(jì)算機(jī)系統(tǒng)或者類(lèi)似電子計(jì)算設(shè)備的動(dòng)作和處理,其將在計(jì)算機(jī)系統(tǒng)的寄存器和存儲(chǔ)器中表示為物理(電子)量的數(shù)據(jù)操作并轉(zhuǎn)化為類(lèi)似地表示為計(jì)算機(jī)存儲(chǔ)器或寄存器或其他類(lèi)似信息存儲(chǔ)、傳送或顯示設(shè)備中的物理量的其他數(shù)據(jù)。
本發(fā)明還涉及一種用于進(jìn)行此處運(yùn)算的設(shè)備。該設(shè)備可以針對(duì)所需目的而特別構(gòu)建,或者它可以包含通過(guò)存儲(chǔ)在計(jì)算機(jī)中的計(jì)算機(jī)程序選擇性地激活或者重新配置的通用計(jì)算機(jī)。所述計(jì)算機(jī)程序可以存儲(chǔ)在計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì)中,例如但不限于任何類(lèi)型的磁盤(pán),包括軟盤(pán)、光盤(pán)、CD-ROM、磁-光盤(pán)、只讀存儲(chǔ)器(ROM)、隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器(RAM)、EPROM、EEPROM、磁卡或光學(xué)卡或者適合存儲(chǔ)電子指令的任何類(lèi)型的介質(zhì),并且每個(gè)均連接到計(jì)算機(jī)系統(tǒng)總線(xiàn)。
此處提出的算法和顯示并不固有的指定任何特定計(jì)算機(jī)或者其他設(shè)備??梢愿鶕?jù)此處的指示而使用各種具有程序的通用系統(tǒng),并且證實(shí)了構(gòu)建更專(zhuān)門(mén)化的設(shè)備以執(zhí)行所需方法步驟也是方便的。各種這類(lèi)系統(tǒng)的所需結(jié)構(gòu)將在下面進(jìn)行描述。并且,本發(fā)明并不是關(guān)于任何特定編程語(yǔ)言進(jìn)行描述??梢岳斫?,各種編程語(yǔ)言均可以被用于實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容。
可用計(jì)算機(jī)處理的介質(zhì)包括用于以機(jī)器(例如計(jì)算機(jī))可讀的形式存儲(chǔ)或者傳送信息的任何結(jié)構(gòu)。例如,可用計(jì)算機(jī)處理介質(zhì)包括只讀存儲(chǔ)器(“ROM”);隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器(“RAM”);磁盤(pán)存儲(chǔ)器;光存儲(chǔ)介器;閃速存儲(chǔ)設(shè)備;電、光、聲或其他形式的傳播信號(hào)(例如載波、紅外信號(hào)、數(shù)字信號(hào)等);等等。
示例的狀態(tài)機(jī)計(jì)算架構(gòu)下面描述允許狀態(tài)機(jī)以及有限狀態(tài)自動(dòng)機(jī)的高效實(shí)現(xiàn)和評(píng)估的狀態(tài)機(jī)評(píng)估架構(gòu)。在一個(gè)實(shí)施例中,所述設(shè)備采用了以能夠通過(guò)可編程方式在硬件中物理實(shí)現(xiàn)任意控制流圖的方式使用電路構(gòu)建圖的技術(shù)。所述設(shè)備提供了對(duì)于多樣狀態(tài)機(jī)的實(shí)現(xiàn)的高性能和緊湊解決方案,以及大型和復(fù)雜的狀態(tài)機(jī)。所述設(shè)備可以用于通過(guò)對(duì)進(jìn)入的數(shù)據(jù)流分級(jí)應(yīng)用數(shù)千個(gè)正則表達(dá)式而對(duì)數(shù)據(jù)進(jìn)行高效解析和評(píng)估。這樣的設(shè)備可以是正則表達(dá)式處理器的核心評(píng)估引擎。
圖4顯示了狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例,定制為實(shí)現(xiàn)非確定有限狀態(tài)自動(dòng)機(jī)和對(duì)輸入數(shù)據(jù)上的多個(gè)正則表達(dá)式的并行評(píng)估。圖4顯示了基本的狀態(tài)機(jī)評(píng)估構(gòu)建模塊。圖5是以簡(jiǎn)化和抽象形式的狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例的高層結(jié)構(gòu)圖??梢越M合多個(gè)構(gòu)建模塊以實(shí)現(xiàn)對(duì)多個(gè)正則表達(dá)式的并行評(píng)估。
注意圖3(b)顯示了實(shí)現(xiàn)對(duì)于具有R個(gè)節(jié)點(diǎn)、R個(gè)符號(hào)以及R^2條弧的非確定有限狀態(tài)自動(dòng)機(jī)的狀態(tài)機(jī)的架構(gòu)的一個(gè)實(shí)施例。在圖3(b)中,R=3。注意R是為了示例目的而設(shè)置成3個(gè)節(jié)點(diǎn)。同時(shí)應(yīng)注意到在圖3(b)中,對(duì)于每個(gè)節(jié)點(diǎn)元件N1、N2、N3均有一個(gè)評(píng)估符號(hào)。現(xiàn)在圖4顯示了用于實(shí)現(xiàn)具有R個(gè)節(jié)點(diǎn)、R個(gè)符號(hào)以及R^2條弧的非確定有限狀態(tài)自動(dòng)機(jī)的狀態(tài)機(jī)架構(gòu)的示例邏輯實(shí)現(xiàn)。在圖4中,R設(shè)置為變量M,并且硬件組織被設(shè)計(jì)和布置為對(duì)于任意M都可以進(jìn)行升級(jí)。通過(guò)固定M的值以及提供適當(dāng)級(jí)別的硬件,可以實(shí)現(xiàn)具有特定的M個(gè)實(shí)例化節(jié)點(diǎn)的狀態(tài)機(jī)。
在圖4描述的實(shí)施例中,M的值被設(shè)置為16或是32。節(jié)點(diǎn)元件N1-NM實(shí)施為觸發(fā)器。對(duì)于M=32,存在32個(gè)節(jié)點(diǎn)元件,因此實(shí)現(xiàn)了具有32個(gè)狀態(tài)的狀態(tài)機(jī)。
節(jié)點(diǎn)元件N1-NM完全連接到互連線(xiàn)401。每個(gè)節(jié)點(diǎn)元件具有一條弧或者互連線(xiàn)連接到其自身以及連接到每個(gè)其他節(jié)點(diǎn)元件。因此,對(duì)于M=32,存在32×32或者1024個(gè)互連線(xiàn)401。同樣的,對(duì)于M=16,存在16×16或者256個(gè)互連線(xiàn)401。
對(duì)于M=32,狀態(tài)轉(zhuǎn)換連通性控制402包括由32比特×32比特矩陣組成的1024個(gè)比特。同樣的,對(duì)于M=16,狀態(tài)轉(zhuǎn)換連通性控制402包括由16比特×16比特矩陣組成的256個(gè)比特。Y行和Z列的比特表示設(shè)置或取消節(jié)點(diǎn)元件NY和節(jié)點(diǎn)元件NZ之間的互連線(xiàn)的控制。這種通過(guò)狀態(tài)轉(zhuǎn)換連通性控制402可以設(shè)置或取消節(jié)點(diǎn)元件N1-NM之間的互連線(xiàn)401的機(jī)制實(shí)現(xiàn)為互連線(xiàn)(例如連線(xiàn))401上的開(kāi)關(guān),所述開(kāi)關(guān)通過(guò)對(duì)于該互連線(xiàn)的相關(guān)控制比特進(jìn)行門(mén)限。這也可以使用“與門(mén)”邏輯實(shí)現(xiàn)。
在該實(shí)施例中存在和狀態(tài)機(jī)中狀態(tài)一樣多的狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)403。對(duì)于M=32,存在32個(gè)符號(hào)。對(duì)于M=16,存在16個(gè)符號(hào)。每個(gè)符號(hào)可以包括單個(gè)8比特字符值和比較運(yùn)算符,從而輸入數(shù)據(jù)被指定與所述8比特字符值進(jìn)行比較以計(jì)算狀態(tài)轉(zhuǎn)換動(dòng)態(tài)觸發(fā)器404。在該實(shí)施例中,狀態(tài)轉(zhuǎn)換動(dòng)態(tài)觸發(fā)器404計(jì)算邏輯很簡(jiǎn)單——新的輸入數(shù)據(jù)字節(jié)同時(shí)提供給所有的M個(gè)比較器。一組M條匹配線(xiàn)作為狀態(tài)轉(zhuǎn)換動(dòng)態(tài)觸發(fā)器。同樣地,M可以為16或是32。
狀態(tài)轉(zhuǎn)換動(dòng)態(tài)觸發(fā)器404控制節(jié)點(diǎn)元件N1-NM之間值的升級(jí)和傳送(通過(guò)已設(shè)置的互連線(xiàn)401)的機(jī)制在該實(shí)施例中實(shí)現(xiàn)為簡(jiǎn)單的“與門(mén)”邏輯。也就是說(shuō),“與門(mén)”和“或門(mén)”一起設(shè)置和/或取消互連線(xiàn)401。
數(shù)據(jù)傳送單元405對(duì)狀態(tài)轉(zhuǎn)換連通性控制402和狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)403進(jìn)行動(dòng)態(tài)配置和編程。這樣能夠動(dòng)態(tài)實(shí)現(xiàn)一定范圍的控制流圖結(jié)構(gòu)或配置。在該實(shí)施例中,對(duì)于M=32,狀態(tài)轉(zhuǎn)換連通性控制402的比特矩陣可以實(shí)現(xiàn)為每個(gè)有32個(gè)比特32位寄存器。同樣的,對(duì)于M=16,狀態(tài)轉(zhuǎn)換連通性控制402的比特矩陣可以實(shí)現(xiàn)為每個(gè)有16個(gè)比特的16位寄存器。在該實(shí)施例中,對(duì)于M=32,狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)403的存儲(chǔ)可以實(shí)現(xiàn)為每個(gè)有8個(gè)比特的32位寄存器。同樣的,對(duì)于M=16,狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)403的存儲(chǔ)可以實(shí)現(xiàn)為每個(gè)有8個(gè)比特的16位寄存器。
數(shù)據(jù)傳送單元405還提供了對(duì)節(jié)點(diǎn)元件N1-NM的讀取和寫(xiě)入訪(fǎng)問(wèn)。對(duì)于M=32,節(jié)點(diǎn)元件可以看作32比特的邏輯寄存器。同樣的,對(duì)于M=16,節(jié)點(diǎn)元件可以看作16比特的邏輯寄存器。數(shù)據(jù)傳送單元405執(zhí)行載入和存儲(chǔ)操作以從所有這些寄存器讀取值以及寫(xiě)入值到這些寄存器。讀取和寫(xiě)入節(jié)點(diǎn)元件N1-NM的能力可以用于使數(shù)據(jù)傳送單元405與外部互連結(jié)構(gòu)進(jìn)行通信從而將所述狀態(tài)機(jī)構(gòu)建模塊連接到其他類(lèi)似構(gòu)建模塊,以構(gòu)建更大的狀態(tài)機(jī)或圖。數(shù)據(jù)傳送單元405在專(zhuān)用信號(hào)連線(xiàn)上輸出來(lái)自選定的節(jié)點(diǎn)元件的值,所述值可以被發(fā)送到例如其他狀態(tài)機(jī)或者外部互連結(jié)構(gòu)。同樣地,數(shù)據(jù)傳送單元405可以在專(zhuān)用信號(hào)連線(xiàn)上接收來(lái)自外部互連結(jié)構(gòu)的值。這些值可以傳送到選定的節(jié)點(diǎn)元件。
單個(gè)復(fù)位信號(hào)407被提供給所述設(shè)備的各個(gè)元件以將所述值清零。
在狀態(tài)機(jī)評(píng)估開(kāi)始之前,狀態(tài)轉(zhuǎn)換連通性控制402和狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)403應(yīng)該以所需的配置值進(jìn)行編程。因此在為這些控制指定的存儲(chǔ)器中的信號(hào)值在狀態(tài)機(jī)評(píng)估開(kāi)始之前是穩(wěn)定的。
在一個(gè)實(shí)施例中,存在一種機(jī)制用于控制狀態(tài)機(jī)評(píng)估的開(kāi)始。在一個(gè)實(shí)施例中,對(duì)于M=32,起始狀態(tài)選擇控制409由32位寄存器組成。在一個(gè)實(shí)施例中,對(duì)于M=16,起始狀態(tài)選擇控制409由16位寄存器組成。該寄存器中的每個(gè)比特對(duì)應(yīng)于一個(gè)節(jié)點(diǎn)元件。該寄存器中的任何數(shù)量的比特可以被設(shè)置為1(激活)。一旦所述狀態(tài)機(jī)初始化完畢,對(duì)應(yīng)于起始狀態(tài)選擇控制409寄存器中激活位的節(jié)點(diǎn)元件會(huì)以激活狀態(tài)被啟動(dòng)。
在一個(gè)實(shí)施例中,狀態(tài)機(jī)評(píng)估的進(jìn)程受到時(shí)鐘408的限制,所述時(shí)鐘408確定了評(píng)估周期。在一個(gè)實(shí)施例中,對(duì)每個(gè)評(píng)估周期,新的輸入數(shù)據(jù)字節(jié)被提供給所述設(shè)備,并且該字節(jié)對(duì)于所有狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)并行計(jì)算(在該實(shí)施例中,這是指將輸入字節(jié)與8比特字符值進(jìn)行比較),導(dǎo)致表示狀態(tài)轉(zhuǎn)換動(dòng)態(tài)觸發(fā)器404的一組M條匹配線(xiàn)的升級(jí)。這些M個(gè)觸發(fā)器404以及對(duì)應(yīng)于狀態(tài)轉(zhuǎn)換連通性控制402的M^2個(gè)比特與節(jié)點(diǎn)元件N1-NM中的當(dāng)前狀態(tài)值結(jié)合在一起以計(jì)算每個(gè)節(jié)點(diǎn)元件的下一個(gè)狀態(tài)值。計(jì)算每個(gè)節(jié)點(diǎn)元件的下個(gè)狀態(tài)的邏輯方程如下設(shè)狀態(tài)轉(zhuǎn)換動(dòng)態(tài)觸發(fā)器為T(mén)1至TM設(shè)節(jié)點(diǎn)元件為N1至NM設(shè)狀態(tài)轉(zhuǎn)換連通性控制為比特矩陣CI,J,其中I=1,M,并且J=1,M則給定節(jié)點(diǎn)元件NK的前一個(gè)狀態(tài)PSK,下一個(gè)狀態(tài)NSK如下
NSK=OR([PS1AND T1AND C1,K],[PS2AND T2AND C2,K],…………………………[PSIAND TIAND CI,K],…………………………[PSMAND TMAND CM,K],)對(duì)于每個(gè)節(jié)點(diǎn)元件,下一個(gè)狀態(tài)計(jì)算有效地為M項(xiàng)的很大的“或”函數(shù)。每項(xiàng)通過(guò)將3個(gè)值進(jìn)行“與”而計(jì)算——節(jié)點(diǎn)元件的前一個(gè)狀態(tài)值,對(duì)應(yīng)的動(dòng)態(tài)觸發(fā)器,以及對(duì)應(yīng)的指示特定互連線(xiàn)401是否被設(shè)置的連通性控制比特。
一旦下一個(gè)狀態(tài)計(jì)算完成,節(jié)點(diǎn)元件即以下一個(gè)狀態(tài)值進(jìn)行升級(jí),并且所述狀態(tài)機(jī)完成單個(gè)評(píng)估周期。如同對(duì)于下一個(gè)狀態(tài)計(jì)算的邏輯方程所示的,所述設(shè)備的計(jì)算周期時(shí)間是三級(jí)邏輯評(píng)估。第一級(jí)包括“與門(mén)”用于計(jì)算觸發(fā)器,第二級(jí)包括“與門(mén)”用于加入連通性控制因子,并且最后為M個(gè)輸入的“或門(mén)”。這樣的計(jì)算周期時(shí)間大大短于控制商業(yè)微處理器工作頻率的周期時(shí)間。
注意上述的步驟序列表示單個(gè)邏輯評(píng)估周期中所需的計(jì)算。就物理上而言,附加的管道是可能的,用于進(jìn)一步提高工作頻率。例如,狀態(tài)轉(zhuǎn)換動(dòng)態(tài)觸發(fā)器的計(jì)算(給定輸入數(shù)據(jù)新的字節(jié))可以從下一個(gè)狀態(tài)計(jì)算中解耦。
在一個(gè)實(shí)施例中,存在一種機(jī)制用于控制狀態(tài)機(jī)評(píng)估的中斷。對(duì)于M=32,接受狀態(tài)選擇控制410由32位寄存器組成。對(duì)于M=16,接受狀態(tài)選擇控制410由16位寄存器組成。所述寄存器中的每一位對(duì)應(yīng)于一個(gè)節(jié)點(diǎn)元件。該寄存器中任意數(shù)量的比特可以被設(shè)置為1(激活)。一旦狀態(tài)機(jī)進(jìn)入這些狀態(tài)中的任何一者(對(duì)應(yīng)的節(jié)點(diǎn)元件被激活),所述狀態(tài)機(jī)中斷其評(píng)估。
前述內(nèi)容提供了對(duì)于單個(gè)狀態(tài)機(jī)構(gòu)建模塊的評(píng)估周期的描述。當(dāng)所述模塊通過(guò)外部互連結(jié)構(gòu)連接到其他狀態(tài)機(jī)時(shí),會(huì)產(chǎn)生附加的同步握手信號(hào)以實(shí)現(xiàn)待協(xié)調(diào)的各個(gè)狀態(tài)機(jī)的評(píng)估周期。
圖6顯示了程序員角度的狀態(tài)機(jī)設(shè)備的一個(gè)實(shí)施例。所述狀態(tài)機(jī)架構(gòu)對(duì)于程序員來(lái)說(shuō)是一組寄存器。圖6顯示了下述寄存器節(jié)點(diǎn)元件、狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)、狀態(tài)轉(zhuǎn)換連通性控制、起始狀態(tài)選擇控制向量,以及接受狀態(tài)選擇控制向量。注意所述設(shè)備的實(shí)施例就表示狀態(tài)機(jī)所需的存儲(chǔ)量而言是高效的。對(duì)于16節(jié)點(diǎn)狀態(tài)機(jī),僅需要54字節(jié)的寄存器。
圖7顯示了在芯片上實(shí)現(xiàn)數(shù)千個(gè)有限狀態(tài)自動(dòng)機(jī)的實(shí)施例中所述設(shè)備的使用。單個(gè)狀態(tài)機(jī)的規(guī)范且緊湊的數(shù)據(jù)路徑被多次實(shí)例化,導(dǎo)致多行或并行的密集陣列。在單塊芯片上可以容納數(shù)千個(gè)自動(dòng)機(jī)。
注意盡管對(duì)示例架構(gòu)的說(shuō)明描述了所述設(shè)備的一個(gè)實(shí)施例,但是多種替換實(shí)施例均是可能的。
所述示例設(shè)備采用了一種解決方案,其中提供了與節(jié)點(diǎn)元件數(shù)量一樣多的狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)。在狀態(tài)機(jī)架構(gòu)的另一個(gè)實(shí)施例中,具有與互連線(xiàn)數(shù)量一樣多的符號(hào),從而對(duì)于M=32,可以有32×32或1024個(gè)符號(hào),每個(gè)控制1024種可能的狀態(tài)轉(zhuǎn)換中的一者。
使用狀態(tài)機(jī)架構(gòu)的構(gòu)建模塊構(gòu)建更大的狀態(tài)機(jī)圖8(a)顯示了狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例,其中通過(guò)在更大的圖中分級(jí)使用狀態(tài)機(jī)構(gòu)建模塊而實(shí)現(xiàn)了更大的狀態(tài)機(jī)。具有選定數(shù)量的實(shí)例化節(jié)點(diǎn)的狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例被選擇為構(gòu)建模塊。在一個(gè)實(shí)施例中,所述構(gòu)建模塊可以如圖2所示。在另一個(gè)實(shí)施例中,所述構(gòu)建模塊可以如圖4所示。然后該構(gòu)建模塊被作為更大的圖的超節(jié)點(diǎn)(supernode)。因此所述實(shí)現(xiàn)了更大的狀態(tài)機(jī)的更大的圖由多個(gè)超節(jié)點(diǎn)組成。這些超節(jié)點(diǎn)使用與特征化狀態(tài)機(jī)架構(gòu)相同的技術(shù)而連接。全局時(shí)鐘或超節(jié)點(diǎn)時(shí)鐘被作為控制所述更大圖的評(píng)估的同步機(jī)制使用。使用該技術(shù),可以通過(guò)分級(jí)使用狀態(tài)機(jī)構(gòu)建模塊而構(gòu)建更大的狀態(tài)機(jī)。
圖8(b)顯示了能夠通過(guò)使用互連所述構(gòu)建模塊的可替換方法而實(shí)現(xiàn)更大的狀態(tài)機(jī)的狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例。所述具有選定數(shù)量的實(shí)例化節(jié)點(diǎn)的狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例被選擇為構(gòu)建模塊。在一個(gè)實(shí)施例中,所述構(gòu)建模塊可以如圖2所示。在另一個(gè)實(shí)施例中,所述構(gòu)建模塊可以如圖4所示。然后該構(gòu)建模塊被作為更大的圖的超節(jié)點(diǎn)。因此所述實(shí)現(xiàn)了更大的狀態(tài)機(jī)的更大的圖由多個(gè)超節(jié)點(diǎn)組成。圖8(b)顯示了互連所述構(gòu)建模塊以實(shí)現(xiàn)更大的狀態(tài)機(jī)的兩種可替換方法。在一個(gè)實(shí)施例中,所有超節(jié)點(diǎn)或者狀態(tài)機(jī)被直接連接到全局通信總線(xiàn),并且通過(guò)該總線(xiàn)互相通信。在另一個(gè)實(shí)施例中,所述超節(jié)點(diǎn)被組成為樹(shù)狀。使用該方法,可以實(shí)現(xiàn)分級(jí)地組成樹(shù)狀狀態(tài)機(jī)并且對(duì)輸入數(shù)據(jù)進(jìn)行評(píng)估。
圖9(a)顯示了示例的狀態(tài)機(jī)架構(gòu)的一個(gè)實(shí)施例在狀態(tài)機(jī)技術(shù)上超出現(xiàn)有技術(shù)的存儲(chǔ)和性能優(yōu)勢(shì)。如同圖9(a)中表格所示,所述示例架構(gòu)同時(shí)提供了減少自動(dòng)機(jī)狀態(tài)存儲(chǔ)量和非常高的評(píng)估速度的優(yōu)點(diǎn)。由于所述示例狀態(tài)機(jī)架構(gòu)實(shí)現(xiàn)了NFA,所述狀態(tài)機(jī)的狀態(tài)存儲(chǔ)量與自動(dòng)機(jī)中節(jié)點(diǎn)數(shù)量成比例(對(duì)于R字符正則表達(dá)式,這正比于R)。評(píng)估速度大大快于商業(yè)微處理器所能實(shí)現(xiàn)的速度。
圖9(b)顯示了通過(guò)使用狀態(tài)機(jī)架構(gòu)一個(gè)實(shí)施例而消除存儲(chǔ)器瓶頸。由于所述示例狀態(tài)機(jī)架構(gòu)實(shí)現(xiàn)了NFA,所述狀態(tài)機(jī)的狀態(tài)存儲(chǔ)量與自動(dòng)機(jī)中節(jié)點(diǎn)數(shù)量成比例(對(duì)于R字符正則表達(dá)式,這正比于R)。這遠(yuǎn)遠(yuǎn)小于基于DFA方法所需的存儲(chǔ)量。所述存儲(chǔ)量足夠小,使其可以在單塊芯片上容納數(shù)千個(gè)這樣的狀態(tài)機(jī)。在所述示例的狀態(tài)機(jī)設(shè)備的臨界評(píng)估周期時(shí)間內(nèi)不需要訪(fǎng)問(wèn)任何外部存儲(chǔ)器。因此,該解決方案消除了限制基于微處理器方法的性能的存儲(chǔ)器瓶頸。
盡管本發(fā)明的各種替換和修改對(duì)于本領(lǐng)域普通技術(shù)人員在閱讀上述說(shuō)明之后無(wú)疑是顯然的,然而應(yīng)當(dāng)理解,以示例方式顯示和描述的任何特定實(shí)施例決不應(yīng)該認(rèn)為是限制性的。因此,參考各種實(shí)施例的細(xì)節(jié)并無(wú)意限制權(quán)利要求的范圍,權(quán)利要求自身敘述了本發(fā)明本質(zhì)性的特征。
權(quán)利要求
1.一種狀態(tài)機(jī)架構(gòu),包括多個(gè)節(jié)點(diǎn)元件,其中所述多個(gè)節(jié)點(diǎn)元件中的每一個(gè)表示控制流圖中的一個(gè)節(jié)點(diǎn);多個(gè)互連線(xiàn),用于連接節(jié)點(diǎn)元件;多個(gè)狀態(tài)轉(zhuǎn)換連通性控制邏輯,用于設(shè)置和取消所述多個(gè)互連線(xiàn)內(nèi)的連接,從而以所述多個(gè)節(jié)點(diǎn)元件形成控制流圖;以及連接到所述互連線(xiàn)并可按照標(biāo)準(zhǔn)對(duì)輸入數(shù)據(jù)進(jìn)行評(píng)估的多個(gè)狀態(tài)轉(zhuǎn)換評(píng)估邏輯,所述多個(gè)狀態(tài)轉(zhuǎn)換評(píng)估邏輯控制所述控制流圖中節(jié)點(diǎn)元件之間的一個(gè)或多個(gè)狀態(tài)轉(zhuǎn)換。
2.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述標(biāo)準(zhǔn)包括評(píng)估符號(hào),所述評(píng)估符號(hào)包含由操作和數(shù)據(jù)組成的一個(gè)或多個(gè)組的指示。
3.根據(jù)權(quán)利要求2所述的狀態(tài)機(jī)架構(gòu),其中所述評(píng)估符號(hào)是可編程的。
4.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其進(jìn)一步包括數(shù)據(jù)傳送單元,通過(guò)所述數(shù)據(jù)傳送單元,動(dòng)態(tài)計(jì)算的數(shù)據(jù)被發(fā)送到所述狀態(tài)轉(zhuǎn)換連通性控制邏輯。
5.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述多個(gè)互連線(xiàn)中的每一個(gè)互連線(xiàn)表示所述控制流圖中不同的狀態(tài)轉(zhuǎn)換。
6.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述狀態(tài)轉(zhuǎn)換連通性控制邏輯包括多個(gè)存儲(chǔ)元件,其中所述多個(gè)存儲(chǔ)元件中的每個(gè)存儲(chǔ)元件存儲(chǔ)用于設(shè)置或取消所述多個(gè)互連線(xiàn)中節(jié)點(diǎn)元件之間的互連線(xiàn)的值。
7.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述狀態(tài)轉(zhuǎn)換連通性控制邏輯是可編程的。
8.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述狀態(tài)轉(zhuǎn)換評(píng)估的標(biāo)準(zhǔn)是可編程的。
9.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述狀態(tài)轉(zhuǎn)換連通性控制邏輯和狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)是可編程的。
10.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其進(jìn)一步包括至少一個(gè)觸發(fā)信號(hào),所述觸發(fā)信號(hào)連接到所述多個(gè)互連線(xiàn),用于對(duì)所述多個(gè)互連線(xiàn)中的一個(gè)互連線(xiàn)上的狀態(tài)轉(zhuǎn)換進(jìn)行門(mén)限。
11.根據(jù)權(quán)利要求10所述的狀態(tài)機(jī)架構(gòu),其中所述至少一個(gè)觸發(fā)信號(hào)是響應(yīng)于一組狀態(tài)轉(zhuǎn)換評(píng)估邏輯而產(chǎn)生的。
12.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述多個(gè)節(jié)點(diǎn)元件中的每一個(gè)包括存儲(chǔ)元件用于存儲(chǔ)表示所述控制流圖的狀態(tài)的值。
13.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述一組狀態(tài)轉(zhuǎn)換評(píng)估邏輯包括多個(gè)比較器用于將輸入數(shù)據(jù)與標(biāo)準(zhǔn)進(jìn)行比較。
14.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述狀態(tài)機(jī)架構(gòu)配置為以一組已初始化為激活的可編程起始狀態(tài)開(kāi)始評(píng)估。
15.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述狀態(tài)機(jī)架構(gòu)配置為對(duì)接受狀態(tài)進(jìn)行識(shí)別,所述接受狀態(tài)定義為在到達(dá)時(shí)終止評(píng)估。
16.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述多個(gè)互連線(xiàn)包括多個(gè)連線(xiàn)。
17.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述狀態(tài)轉(zhuǎn)換連通性控制邏輯包括多個(gè)開(kāi)關(guān)。
18.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述多個(gè)開(kāi)關(guān)中的開(kāi)關(guān)以邏輯門(mén)實(shí)現(xiàn)。
19.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述控制流圖包括M個(gè)節(jié)點(diǎn),M2條轉(zhuǎn)換弧和M2個(gè)評(píng)估符號(hào),其中M為整數(shù)。
20.根據(jù)權(quán)利要求19所述的狀態(tài)機(jī)架構(gòu),其中M為16和32組成的集合中的一個(gè)。
21.根據(jù)權(quán)利要求1所述的狀態(tài)機(jī)架構(gòu),其中所述控制流圖包括M個(gè)節(jié)點(diǎn),M2條轉(zhuǎn)換弧和M個(gè)評(píng)估符號(hào),其中M為整數(shù)。
22.根據(jù)權(quán)利要求20所述的狀態(tài)機(jī)架構(gòu),其中M為16和32組成的集合中的一個(gè)。
23.一種有限狀態(tài)自動(dòng)機(jī),包括多個(gè)節(jié)點(diǎn)元件;連接到所述多個(gè)節(jié)點(diǎn)元件的狀態(tài)轉(zhuǎn)換互連線(xiàn)和下一個(gè)狀態(tài)評(píng)估邏輯;連接到所述狀態(tài)轉(zhuǎn)換互連線(xiàn)和下一個(gè)狀態(tài)評(píng)估邏輯的狀態(tài)轉(zhuǎn)換連通性控制;多個(gè)狀態(tài)轉(zhuǎn)換評(píng)估符號(hào);以及接收輸入數(shù)據(jù)和狀態(tài)轉(zhuǎn)換評(píng)估符號(hào)輸出的狀態(tài)轉(zhuǎn)換動(dòng)態(tài)觸發(fā)器計(jì)算邏輯,用于產(chǎn)生連接到所述狀態(tài)轉(zhuǎn)換互連線(xiàn)和下一個(gè)狀態(tài)評(píng)估邏輯的多個(gè)計(jì)算輸出。
24.一種方法,包括對(duì)控制流圖的連通性控制和狀態(tài)轉(zhuǎn)換標(biāo)準(zhǔn)進(jìn)行編程;按照可編程的標(biāo)準(zhǔn)對(duì)輸入數(shù)據(jù)評(píng)估;以及響應(yīng)于對(duì)輸入數(shù)據(jù)的評(píng)估結(jié)果而控制所述控制流圖中節(jié)點(diǎn)元件之間的一個(gè)或多個(gè)狀態(tài)轉(zhuǎn)換。
25.一種狀態(tài)機(jī)架構(gòu),包括多個(gè)超節(jié)點(diǎn);多個(gè)互連線(xiàn),用于連接超節(jié)點(diǎn)元件;多個(gè)狀態(tài)轉(zhuǎn)換連通性控制邏輯,用于設(shè)置和取消所述多個(gè)互連線(xiàn)內(nèi)的連接,從而以所述多個(gè)節(jié)點(diǎn)元件形成第一控制流圖;以及連接到所述互連線(xiàn)并可按照標(biāo)準(zhǔn)對(duì)輸入數(shù)據(jù)進(jìn)行評(píng)估的多個(gè)狀態(tài)轉(zhuǎn)換評(píng)估邏輯,所述多個(gè)狀態(tài)轉(zhuǎn)換評(píng)估邏輯控制所述第一控制流圖中超節(jié)點(diǎn)元件之間的一個(gè)或多個(gè)狀態(tài)轉(zhuǎn)換,其中所述多個(gè)超節(jié)點(diǎn)中的一個(gè)包括一種狀態(tài)機(jī),所述狀態(tài)機(jī)具有多個(gè)節(jié)點(diǎn)元件,其中所述多個(gè)節(jié)點(diǎn)元件中的每一個(gè)表示第二控制流圖中的一個(gè)節(jié)點(diǎn);多個(gè)互連線(xiàn),用于連接節(jié)點(diǎn)元件;多個(gè)狀態(tài)轉(zhuǎn)換連通性控制邏輯,用于設(shè)置和取消所述多個(gè)互連線(xiàn)內(nèi)的連接,從而以所述多個(gè)節(jié)點(diǎn)元件形成第二控制流圖;以及連接到所述互連線(xiàn)并可按照標(biāo)準(zhǔn)對(duì)輸入數(shù)據(jù)進(jìn)行評(píng)估的多個(gè)狀態(tài)轉(zhuǎn)換評(píng)估邏輯,所述多個(gè)狀態(tài)轉(zhuǎn)換評(píng)估邏輯控制所述第二控制流圖中節(jié)點(diǎn)元件之間的一個(gè)或多個(gè)狀態(tài)轉(zhuǎn)換。
全文摘要
描述了一種用于高效實(shí)現(xiàn)和評(píng)估的狀態(tài)機(jī)和可編程有限狀態(tài)自動(dòng)機(jī)的方法和設(shè)備。在一個(gè)實(shí)施例中,一種狀態(tài)機(jī)架構(gòu)包括多個(gè)節(jié)點(diǎn)元件,其中所述多個(gè)節(jié)點(diǎn)元件中的每一個(gè)表示控制流圖中的一個(gè)節(jié)點(diǎn)。所述狀態(tài)機(jī)架構(gòu)還包括多個(gè)互連線(xiàn)用于連接節(jié)點(diǎn)元件,多個(gè)狀態(tài)轉(zhuǎn)換連通性控制邏輯用于設(shè)置和取消所述多個(gè)互連線(xiàn)內(nèi)的連接從而以所述多個(gè)節(jié)點(diǎn)元件形成控制流圖,以及連接到所述互連線(xiàn)并可以按照標(biāo)準(zhǔn)對(duì)輸入數(shù)據(jù)進(jìn)行評(píng)估的多個(gè)狀態(tài)轉(zhuǎn)換評(píng)估邏輯,所述多個(gè)狀態(tài)轉(zhuǎn)換評(píng)估邏輯用于控制所述控制流圖中節(jié)點(diǎn)元件之間的一個(gè)或多個(gè)狀態(tài)轉(zhuǎn)換。
文檔編號(hào)G06F9/44GK1886705SQ03824494
公開(kāi)日2006年12月27日 申請(qǐng)日期2003年8月28日 優(yōu)先權(quán)日2002年8月28日
發(fā)明者H·沙蘭帕尼 申請(qǐng)人:威哈娜有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
北宁市| 宿迁市| 台山市| 安图县| 当雄县| 韶关市| 昌宁县| 体育| 辉县市| 逊克县| 斗六市| 惠安县| 清远市| 齐河县| 湖口县| 丹东市| 陆河县| 大名县| 浦城县| 义马市| 云龙县| 建德市| 安陆市| 珠海市| 香河县| 上蔡县| 寻乌县| 绍兴市| 长兴县| 阿巴嘎旗| 新密市| 开鲁县| 北票市| 周宁县| 神木县| 万全县| 孝昌县| 武穴市| 溆浦县| 永宁县| 万荣县|