用于元件利用的狀態(tài)分組的制作方法
【專利摘要】揭示一種系統(tǒng)及方法的實(shí)施例,所述系統(tǒng)及方法用于從源代碼產(chǎn)生經(jīng)配置以編程并行機(jī)的映像。一種此類并行機(jī)包括分組成對的多個(gè)狀態(tài)機(jī)元件SME,使得一對中的SME具有共同輸出。一種此類方法包括:將源代碼轉(zhuǎn)換成包含多個(gè)互連狀態(tài)的自動機(jī);及將所述自動機(jī)轉(zhuǎn)換成包含實(shí)例的網(wǎng)表,所述實(shí)例對應(yīng)于所述自動機(jī)中的狀態(tài),其中轉(zhuǎn)換包括基于一對中的SME具有共同輸出的事實(shí)而使對應(yīng)于SME對的狀態(tài)成對??蓪⑺鼍W(wǎng)表轉(zhuǎn)換成所述映像并加以發(fā)布。
【專利說明】用于元件利用的狀態(tài)分組
[0001]優(yōu)先權(quán)主張
[0002]本專利申請案主張2011年I月25日申請的題為“用于元件利用的狀態(tài)分組(STATE GROUPING FOR ELEMENT UTILIZATION) ”的第 61/436,075 號美國臨時(shí)專利申請案的優(yōu)先權(quán)的利益,所述美國臨時(shí)專利申請案的全文以引用方式特此并入本文中。
【技術(shù)領(lǐng)域】【背景技術(shù)】
[0003]用于并行機(jī)的編譯程序?qū)⒃创a轉(zhuǎn)換成用于配置(例如,編程)所述并行機(jī)的機(jī)器代碼(例如,映像)。所述機(jī)器代碼可在所述并行機(jī)上實(shí)施有限狀態(tài)機(jī)。將源代碼轉(zhuǎn)換成機(jī)器代碼的過程的一個(gè)階段包括形成網(wǎng)表。網(wǎng)表描述所述并行機(jī)的硬件元件的實(shí)例之間的連接性。所述網(wǎng)表可描述所述硬件元件之間的連接,使得所述硬件元件實(shí)施所述源代碼的功能性。
【發(fā)明內(nèi)容】
【專利附圖】
【附圖說明】
[0004]圖1說明根據(jù)本發(fā)明的各種實(shí)施例的并行機(jī)的實(shí)例。
[0005]圖2說明根據(jù)本發(fā)明的各種實(shí)施例的實(shí)施為有限狀態(tài)機(jī)引擎的圖1的并行機(jī)的實(shí)例。
[0006]圖3說明根據(jù)本發(fā)明的各種實(shí)施例的圖2的有限狀態(tài)機(jī)引擎的塊的實(shí)例。
[0007]圖4說明根據(jù)本發(fā)明的各種實(shí)施例的圖3的塊的行的實(shí)例。
[0008]圖5說明根據(jù)本發(fā)明的各種實(shí)施例的圖4的行的成對群組的實(shí)例。
[0009]圖6說明根據(jù)本發(fā)明的各種實(shí)施例的供編譯程序用以將源代碼轉(zhuǎn)換成經(jīng)配置以編程圖1的并行機(jī)的映像的方法的實(shí)例。
[0010]圖7A及圖7B說明根據(jù)本發(fā)明的各種實(shí)施例的實(shí)例自動機(jī)。
[0011]圖8A及圖8B說明根據(jù)本發(fā)明的各種實(shí)施例的實(shí)例網(wǎng)表。
[0012]圖9說明根據(jù)本發(fā)明的各種實(shí)施例的用于執(zhí)行圖6的編譯程序的實(shí)例計(jì)算機(jī)。
【具體實(shí)施方式】
[0013]以下描述及圖式充分地說明使所屬領(lǐng)域的技術(shù)人員能夠?qū)嵺`的特定實(shí)施例。其它實(shí)施例可并入有結(jié)構(gòu)、邏輯、電、過程及其它改變。一些實(shí)施例的部分及特征可包括于其它實(shí)施例中或可替代其它實(shí)施例的部分及特征。權(quán)利要求書中所陳述的實(shí)施例涵蓋那些權(quán)利要求的所有可用等效物。
[0014]本文件尤其描述基于并行機(jī)的物理設(shè)計(jì)產(chǎn)生網(wǎng)表的編譯程序。在一實(shí)例中,所述并行機(jī)的物理設(shè)計(jì)可包括所述并行機(jī)的狀態(tài)機(jī)元件之間的連接性限制。舉例來說,所述并行機(jī)中的狀態(tài)機(jī)元件可分組成共享一共同輸出的對。因此,所述編譯程序可基于一物理設(shè)計(jì)產(chǎn)生網(wǎng)表,在所述物理設(shè)計(jì)中,SME對共享一共同輸出。
[0015]圖1說明實(shí)例并行機(jī)100。并行機(jī)100可接收輸入數(shù)據(jù)并基于所述輸入數(shù)據(jù)提供一輸出。并行機(jī)100可包括用于接收輸入數(shù)據(jù)的數(shù)據(jù)輸入端口 110及用于將輸出提供到另一裝置的輸出端口 114。數(shù)據(jù)輸入端口 110提供用于將輸入到所述并行機(jī)100的數(shù)據(jù)的接□。
[0016]并行機(jī)100包括多個(gè)可編程元件,包括通用元件102及專用元件112。通用元件102可包括一個(gè)或一個(gè)以上輸入104及一個(gè)或一個(gè)以上輸出106??蓪⑼ㄓ迷?02編程為多個(gè)狀態(tài)中的一者。通用元件102的狀態(tài)確定所述通用元件102將基于給定輸入提供哪一(些)輸出。也就是說,通用元件102的狀態(tài)確定可編程元件將基于給定輸入如何起反應(yīng)。輸入到數(shù)據(jù)輸入端口 110的數(shù)據(jù)可提供到所述多個(gè)通用元件102以使所述通用元件102對其采取行動。通用元件102的實(shí)例可包括下文詳細(xì)論述的狀態(tài)機(jī)元件(SME)及一可配置邏輯塊。在一實(shí)例中,SME可設(shè)定為給定狀態(tài)以當(dāng)在數(shù)據(jù)輸入端口 110處接收到給定輸入時(shí)提供某一輸出(例如,高或“I”信號)。當(dāng)在數(shù)據(jù)輸入端口 110處接收到不同于所述給定輸入的輸入時(shí),所述SME可提供不同輸出(例如,低或“O”信號)。在一實(shí)例中,一可配置邏輯塊可經(jīng)設(shè)定以基于在數(shù)據(jù)輸入端口 110處接收到的輸入來執(zhí)行布爾邏輯函數(shù)(例如,“與(AND) ”、“或(OR) ”、“或非(NOR) ”等)。
[0017]并行機(jī)100還可包括編程接口 111以將程序(例如,映像)加載到并行機(jī)100上。所述映像可編程(例如,設(shè)定)通用元件102的狀態(tài)。也就是說,所述映像可配置通用元件102以按某一方式對給定輸入起反應(yīng)。舉例來說,一通用元件102可經(jīng)設(shè)定,以當(dāng)在數(shù)據(jù)輸入端口 Iio處接收到字符“a”時(shí)輸出高信號。在一些實(shí)例中,并行機(jī)100可使用時(shí)鐘信號來控制通用元件102的操作的時(shí)序。在某些實(shí)例中,并行機(jī)100可包括用于與通用元件102互動及用于執(zhí)行專用功能的專用元件112(例如,RAM、邏輯門、計(jì)數(shù)器、查找表等)。在一些實(shí)施例中,在數(shù)據(jù)輸入端口 110處接收到的數(shù)據(jù)可包括隨時(shí)間過去或一齊接收到的一組固定的數(shù)據(jù)或隨時(shí)間過去而接收到的數(shù)據(jù)串流。數(shù)據(jù)可從耦合到并行機(jī)100的任何來源接收或通過耦合到并行機(jī)100的任何來源產(chǎn)生,所述任何來源例如數(shù)據(jù)庫、傳感器、網(wǎng)絡(luò)等。
[0018]并行機(jī)100還包括用于將并行機(jī)100的不同元件(例如,通用元件102、數(shù)據(jù)輸入端口 110、輸出端口 114、編程接口 111及專用元件112)選擇性地耦合在一起的多個(gè)可編程開關(guān)108。因此,并行機(jī)100包含在所述元件間形成的可編程矩陣。在一實(shí)例中,可編程開關(guān)108可將兩個(gè)或兩個(gè)以上元件選擇性地耦合到彼此,使得通用元件102的輸入104、數(shù)據(jù)輸入端口 110、編程接口 111或?qū)S迷?12可經(jīng)由一個(gè)或一個(gè)以上可編程開關(guān)108而耦合到通用元件102的輸出106、輸出端口 114、編程接口 111或?qū)S迷?12。因此,所述元件之間的信號的路由可通過設(shè)定可編程開關(guān)108來控制。盡管圖1說明給定元件與可編程開關(guān)108之間的某一數(shù)目的導(dǎo)體(例如,電線),但應(yīng)理解,在其它實(shí)例中,可使用不同數(shù)目的導(dǎo)體。而且,盡管圖1說明每一通用元件102個(gè)別地耦合到一可編程開關(guān)108,但在其它實(shí)例中,多個(gè)通用元件102可作為一群組(例如,塊802,如圖8中所說明)而耦合到一可編程開關(guān)108。在一實(shí)例中,數(shù)據(jù)輸入端口 110、數(shù)據(jù)輸出端口 114及/或編程接口 111可實(shí)施為寄存器,以使得到寄存器的寫入將數(shù)據(jù)提供到相應(yīng)元件或從相應(yīng)元件提供數(shù)據(jù)。
[0019]在一實(shí)例中,單一并行機(jī)100實(shí)施于物理裝置上,然而,在其它實(shí)例中,兩個(gè)或兩個(gè)以上并行機(jī)100可實(shí)施于單一物理裝置(例如,物理芯片)上。在一實(shí)例中,多個(gè)并行機(jī)100中的每一者可包括一不同的數(shù)據(jù)輸入端口 110、一不同的輸出端口 114、一不同的編程接口 111,及一組不同的通用元件102。此外,每一組通用元件102可對其對應(yīng)輸入數(shù)據(jù)端口 110處的數(shù)據(jù)起反應(yīng)(例如,輸出高或低信號)。舉例來說,對應(yīng)于第一并行機(jī)100的第一組通用元件102可對對應(yīng)于第一并行機(jī)100的第一數(shù)據(jù)輸入端口 110處的數(shù)據(jù)起反應(yīng)。對應(yīng)于第二并行機(jī)100的第二組通用元件102可對對應(yīng)于第二并行機(jī)100的第二數(shù)據(jù)輸入端口 110起反應(yīng)。因此,每一并行機(jī)100包括一組通用元件102,其中通用元件102的不同集合可對不同輸入數(shù)據(jù)起反應(yīng)。類似地,每一并行機(jī)100及每一組對應(yīng)的通用元件102可提供一不同輸出。在一些實(shí)例中,來自第一并行機(jī)100的輸出端口 114可耦合到第二并行機(jī)100的輸入端口 110,使得用于第二并行機(jī)100的輸入數(shù)據(jù)可包括來自第一并行機(jī)100的輸出數(shù)據(jù)。
[0020]在一實(shí)例中,用于加載到并行機(jī)100上的映像包含用于在并行機(jī)100內(nèi)設(shè)定通用元件102的狀態(tài)、編程可編程開關(guān)108及配置專用元件112的多個(gè)信息位。在一實(shí)例中,所述映像可加載到并行機(jī)100上以編程所述并行機(jī)100以基于某些輸入而提供所要輸出。輸出端口 114可基于通用元件102對數(shù)據(jù)輸入端口 110處的數(shù)據(jù)所起的反應(yīng)來提供來自并行機(jī)100的輸出。來自輸出端口 114的輸出可包括指示給定模式的匹配的單一位、包含指示與多個(gè)模式的匹配及不匹配的多個(gè)位的字,及對應(yīng)于在給定時(shí)刻所有或某些通用元件102的狀態(tài)的狀態(tài)向量。
[0021]并行機(jī)100的實(shí)例用途包括模式識別(例如,語音識別、圖像識別等)、信號處理、成像、計(jì)算機(jī)視覺、密碼學(xué)及其它。在某些實(shí)例中,并行機(jī)100可包含有限狀態(tài)機(jī)(FSM)引擎、現(xiàn)場可編程門陣列(FPGA)及其變體。此外,并行機(jī)100可為較大裝置中的一組件,所述較大裝置例如計(jì)算機(jī)、尋呼機(jī)、蜂窩式電話、個(gè)人管理器、便攜型音頻播放器、網(wǎng)絡(luò)裝置(例如,路由器、防火墻、交換機(jī)或其任何組合)、控制電路、照相機(jī)等。
[0022]圖2至5說明實(shí)施為有限狀態(tài)機(jī)(FSM)引擎200的另一并行機(jī)。在一實(shí)例中,F(xiàn)SM引擎200包含有限狀態(tài)機(jī)的硬件實(shí)施方案。因此,F(xiàn)SM引擎200實(shí)施對應(yīng)于FSM中的多個(gè)狀態(tài)的多個(gè)可選擇性地耦合的硬件元件(例如,可編程元件)。類似于FSM中的狀態(tài),硬件元件可分析輸入串流且基于所述輸入串流來激活下游硬件元件。
[0023]FSM引擎200包括多個(gè)可編程元件,包括通用元件及專用元件。通用元件可經(jīng)編程以實(shí)施許多不同功能。這些通用元件包括SME204、205(展示于圖5中),所述SME204、205階層式組織成行206 (展示于圖3及4中)及塊202 (展示于圖2及3中)。為了在經(jīng)階層式組織的SME204、205之間路由信號,使用可編程開關(guān)的階層,所述階層包括塊間開關(guān)203 (展示于圖2及3中)、塊內(nèi)開關(guān)208 (展示于圖3及4中)及行內(nèi)開關(guān)212 (展示于圖4中)。SME204、205可對應(yīng)于通過FSM引擎200實(shí)施的FSM的狀態(tài)。如下文所描述,可通過使用可編程開關(guān)將SME204、205耦合在一起。因此,可通過編程SME204、205以對應(yīng)于狀態(tài)的功能及通過將SME204、205選擇性地耦合在一起以對應(yīng)于FSM中的狀態(tài)之間的轉(zhuǎn)變來在FSM引擎200上實(shí)施FSM。
[0024]圖2說明實(shí)例FSM引擎200的全圖。FSM引擎200包括多個(gè)塊202,所述塊可與可編程塊間開關(guān)203選擇性地耦合在一起。另外,塊202可選擇性地耦合到用于接收信號(例如,數(shù)據(jù))及將數(shù)據(jù)提供到塊202的輸入塊209 (例如,數(shù)據(jù)輸入端口)。塊202還可選擇性地耦合到用于將來自塊202的信號提供到外部裝置(例如,另一 FSM引擎200)的輸出塊213 (例如,輸出端口)。FSM引擎200還可包括用于將程序(例如,映像)加載到FSM引擎200上的編程接口 211。所述映像可編程(例如,設(shè)定)SME204、205的狀態(tài)。也就是說,所述映像可配置SME204、205以按某一方式來對輸入塊209處的給定輸入起反應(yīng)。舉例來說,SME204可經(jīng)設(shè)定,以當(dāng)在輸入塊209處接收到字符“a”時(shí)輸出高信號。
[0025]在一實(shí)例中,輸入塊209、輸出塊213及/或編程接口 211可實(shí)施為寄存器,以使得到寄存器的寫入將數(shù)據(jù)提供到相應(yīng)元件或從相應(yīng)元件提供數(shù)據(jù)。因此,來自存儲于對應(yīng)于編程接口 211的寄存器中的映像的位可加載于SME204、205上。盡管圖2說明塊202、輸入塊209、輸出塊213及塊間開關(guān)203之間的某一數(shù)目的導(dǎo)體(例如,電線、跡線),但應(yīng)理解,在其它實(shí)例中,可使用更少或更多的導(dǎo)體。
[0026]圖3說明塊202的實(shí)例。塊202可包括多個(gè)行206,所述行可與可編程塊內(nèi)開關(guān)208選擇性地耦合在一起。另外,行206可通過塊間開關(guān)203而選擇性地耦合到另一塊202內(nèi)的另一行206。在一實(shí)例中,包括緩沖器201以控制去往/來自塊間開關(guān)203的信號的時(shí)序。行206包括多個(gè)SME204、205,所述多個(gè)SME204、205組織成本文中被稱作成對群組(group of two ;G0T)210的元件對。在一實(shí)例中,塊202包含十六(16)個(gè)行206。
[0027]圖4說明行206的實(shí)例。G0T210可通過可編程行內(nèi)開關(guān)212而選擇性地耦合到其它G0T210及行206內(nèi)的任何其它元件224。G0T210也可通過塊內(nèi)開關(guān)208而耦合到其它行206中的其它G0T210,或通過塊間開關(guān)203而耦合到其它塊202中的其它G0T210。在一實(shí)例中,G0T210具有第一輸入214及第二輸入216以及一輸出218。第一輸入214 I禹合到G0T210的第一 SME204,且第二輸入214耦合到G0T210的第二 SME204。
[0028]在一實(shí)例中,行206包括第一多個(gè)行互連導(dǎo)體220及第二多個(gè)行互連導(dǎo)體222。在一實(shí)例中,G0T210的輸入214、216可耦合到一個(gè)或一個(gè)以上行互連導(dǎo)體220、222,且輸出218可耦合到一個(gè)行互連導(dǎo)體220、222。在一實(shí)例中,第一多個(gè)行互連導(dǎo)體220可耦合到行206內(nèi)的每一 G0T210的每一 SME204。第二多個(gè)行互連導(dǎo)體222可耦合到行206內(nèi)的每
一G0T210的一 SME204,但不可耦合到G0T210的另一 SME204。在一實(shí)例中,所述第二多個(gè)行互連導(dǎo)體222的前一半可耦合到一行206內(nèi)的SME204的前一半(來自每一 G0T210的一SME204),且所述第二多個(gè)行互連導(dǎo)體222的后一半可耦合到一行206內(nèi)的SME204的后一半(來自每一 G0T210的另一 SME204)。所述第二多個(gè)行互連導(dǎo)體222與SME204、205之間的有限連接性在本文中被稱作“對等性”。
[0029]在一實(shí)例中,行206還可包括專用元件224,例如計(jì)數(shù)器、可編程布爾邏輯元件、現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)、可編程處理器(例如,微處理器)及其它元件。另外,在一實(shí)例中,所述專用元件224在不同行206中為不同的。舉例來說,一塊202中的行206中的四個(gè)可包括布爾邏輯作為專用元件224,且一塊202中的其它八個(gè)行206可包括計(jì)數(shù)器作為專用元件224。
[0030]在一實(shí)例中,專用元件224包括計(jì)數(shù)器(本文中也被稱作計(jì)數(shù)器224)。在一實(shí)例中,計(jì)數(shù)器224包含12位可編程遞減計(jì)數(shù)器。所述12位可編程計(jì)數(shù)器224具有計(jì)數(shù)輸入、復(fù)位輸入,及零計(jì)數(shù)輸出。所述計(jì)數(shù)輸入在被斷言時(shí)使計(jì)數(shù)器224的值遞減一。所述復(fù)位輸入在被斷言時(shí)使計(jì)數(shù)器224加載來自相關(guān)聯(lián)的寄存器的初始值。對于所述12位計(jì)數(shù)器224,可加載高達(dá)12位的數(shù)目作為初始值。當(dāng)計(jì)數(shù)器224的值遞減到零(O)時(shí),斷言所述零計(jì)數(shù)輸出。計(jì)數(shù)器224還具有至少兩種模式,脈沖及保持。當(dāng)將計(jì)數(shù)器224設(shè)定為脈沖模式時(shí),在計(jì)數(shù)器224遞減到零時(shí)的第一頻率循環(huán)期間斷言零計(jì)數(shù)輸出,且在接下來的頻率循環(huán)處,即使斷言了計(jì)數(shù)輸入,仍不再斷言零計(jì)數(shù)輸出。此狀態(tài)繼續(xù),直到通過復(fù)位輸入被斷言而復(fù)位計(jì)數(shù)器224為止。當(dāng)將計(jì)數(shù)器224設(shè)定為保持模式時(shí),在計(jì)數(shù)器224遞減到零時(shí)的第一頻率循環(huán)期間斷言零計(jì)數(shù)輸出,且在斷言了計(jì)數(shù)輸入時(shí)保持為經(jīng)斷言的,直到通過復(fù)位輸入被斷言而復(fù)位計(jì)數(shù)器224為止。
[0031]圖5說明G0T210的實(shí)例。G0T210包括第一 SME204及第二SME205,其具有輸入214、216且具有其耦合到OR門230及3比I多路復(fù)用器242的輸出226、228。所述3比I多路復(fù)用器242可經(jīng)設(shè)定以將G0T210的輸出218耦合到第一 SME204、第二 SME205或OR門230??墒褂肙R門230將輸出226、228耦合在一起以形成G0T210的共同輸出218。在一實(shí)例中,如上文所論述,第一 SME204及第二 SME205展現(xiàn)對等性,其中第一 SME204的輸入214可耦合到行互連導(dǎo)體222中的一些,且第二 SME205的輸入216可耦合到其它行互連導(dǎo)體222。在一實(shí)例中,可通過設(shè)定開關(guān)240中的任一者或兩者來使G0T210內(nèi)的兩個(gè)SME204、205級聯(lián)及/或循環(huán)回到其自身??赏ㄟ^將SME204、205的輸出226、228耦合到另一 SME204、205的輸入214、216而使SME204、205級聯(lián)??赏ㄟ^將輸出226、228耦合到其自身的輸入214、216而使SME204、205循環(huán)回到其自身。因此,第一 SME204的輸出226可不耦合到第一 SME204的輸入214及第二 SME205的輸入216中的任一者,或可耦合到所述輸入中的一者或兩者。
[0032]在一實(shí)例中,一狀態(tài)機(jī)元件204、205包含與檢測線234并聯(lián)耦合的多個(gè)存儲器單元232,例如動態(tài)隨機(jī)存取存儲器(DRAM)中所常用的那些存儲器單元。一種此類存儲器單元232包含可設(shè)定為一數(shù)據(jù)狀態(tài)的存儲器單元,所述數(shù)據(jù)狀態(tài)例如對應(yīng)于高或低值(例如,I或O)的狀態(tài)。存儲器單元232的輸出耦合到檢測線234,且存儲器單元232的輸入基于數(shù)據(jù)串流線236上的數(shù)據(jù)而接收信號。在一實(shí)例中,解碼數(shù)據(jù)串流線236上的輸入以選擇所述存儲器單元232中的一者。選定的存儲器單元232將其所存儲的數(shù)據(jù)狀態(tài)作為輸出提供到檢測線234上。舉例來說,在數(shù)據(jù)輸入端口 209處接收到的數(shù)據(jù)可提供到解碼器(未圖示),且所述解碼器可選擇所述數(shù)據(jù)串流線236中的一者。在一實(shí)例中,所述解碼器可將ACSII字符轉(zhuǎn)換成256位的I。
[0033]因此,當(dāng)存儲器單元232設(shè)定成高值且數(shù)據(jù)串流線236上的數(shù)據(jù)對應(yīng)于存儲器單元232時(shí),存儲器單元232輸出高信號到檢測線234。當(dāng)數(shù)據(jù)串流線236上的數(shù)據(jù)對應(yīng)于存儲器單元232且存儲器單元232設(shè)定成低值時(shí),存儲器單元232輸出低信號到檢測線234。在檢測線234上的來自存儲器單元232的輸出通過檢測電路238來感測。在一實(shí)例中,輸入線214、216上的信號將相應(yīng)檢測電路238設(shè)定成作用中或非作用中狀態(tài)。當(dāng)設(shè)定成非作用中狀態(tài)時(shí),檢測電路238在相應(yīng)輸出226、228上輸出低信號,而不管相應(yīng)檢測線234上的信號。當(dāng)設(shè)定成作用中狀態(tài)時(shí),當(dāng)檢測到來自相應(yīng)SME204、205的存儲器單元234中的一者的高信號時(shí),檢測電路238在相應(yīng)輸出線226、228上輸出高信號。當(dāng)在作用中狀態(tài)時(shí),當(dāng)來自相應(yīng)SME204、205的所有存儲器單元234的信號為低時(shí),檢測電路238在相應(yīng)輸出線226、228上輸出低信號。
[0034]在一實(shí)例中,SME204、205包括256個(gè)存儲器單元232,且每一存儲器單元232耦合到一不同的數(shù)據(jù)串流線236。因此,SME204、205可經(jīng)編程以當(dāng)數(shù)據(jù)串流線236中的選定的一者或一者以上上面具有高信號時(shí)輸出高信號。舉例來說,SME204可使第一存儲器單兀232(例如,位O)設(shè)定為高且使所有其它存儲器單元232 (例如,位1-255)設(shè)定為低。當(dāng)相應(yīng)檢測電路238處于作用中狀態(tài)時(shí),當(dāng)對應(yīng)于位O的數(shù)據(jù)串流線236上面具有高信號時(shí),SME204在輸出226上輸出高信號。在其它實(shí)例中,SME204可經(jīng)設(shè)定,以當(dāng)通過將適當(dāng)?shù)拇鎯ζ鲉卧?32設(shè)定成高值而使多個(gè)數(shù)據(jù)串流線236中的一者上面具有高信號時(shí)輸出高信號。
[0035]在一實(shí)例中,可通過從相關(guān)聯(lián)的寄存器讀取位來將存儲器單元232設(shè)定成高值或低值。因此,可通過將由編譯程序產(chǎn)生的映像存儲到寄存器中且將寄存器中的位加載到相關(guān)聯(lián)的存儲器單元232中來編程SME204。在一實(shí)例中,由所述編譯程序產(chǎn)生的映像包括高及低(例如,I及O)位的二進(jìn)制映像。所述映像可通過將SME204、205級聯(lián)而編程FSM引擎200以作為FSM操作。舉例來說,可通過將檢測電路238設(shè)定成作用中狀態(tài)而將第一 SME204設(shè)定成作用中狀態(tài)。第一 SME204可經(jīng)設(shè)定,以當(dāng)對應(yīng)于位O的數(shù)據(jù)串流線236上面具有高信號時(shí)輸出高信號。第二 SME205最初可設(shè)定成非作用中狀態(tài),但可經(jīng)設(shè)定以在作用中時(shí)當(dāng)對應(yīng)于位I的數(shù)據(jù)串流線236上面具有高信號時(shí)輸出高信號??赏ㄟ^設(shè)定第一 SME204的輸出226以耦合到第二 SME205的輸入216來將第一 SME204與第二 SME205級聯(lián)。因此,當(dāng)在對應(yīng)于位O的數(shù)據(jù)串流線236上感測到高信號時(shí),第一 SME204在輸出226上輸出高信號且將第二 SME205的檢測電路238設(shè)定成作用中狀態(tài)。當(dāng)在對應(yīng)于位I的數(shù)據(jù)串流線236上感測到高信號時(shí),第二 SME205在輸出228上輸出高信號以激活另一 SME205或用于來自FSM引擎200的輸出。
[0036]圖6說明供編譯程序用以將源代碼轉(zhuǎn)換成經(jīng)配置以編程并行機(jī)的映像的方法600的實(shí)例。方法600包括:將所述源代碼剖析成語法樹(框602);將所述語法樹轉(zhuǎn)換成自動機(jī)(框604);最佳化所述自動機(jī)(框606);將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表(框608);將所述網(wǎng)表放置于硬件上(框610);對所述網(wǎng)表進(jìn)行布線(框612);及發(fā)布所得映像(框614)。
[0037]在一實(shí)例中,所述編譯程序包括應(yīng)用編程接口(API),所述API允許軟件開發(fā)者產(chǎn)生用于在FSM引擎600上實(shí)施FSM的映像。所述編譯程序提供用以將所述源代碼中的一組輸入的正規(guī)表達(dá)式轉(zhuǎn)換成經(jīng)配置以編程FSM引擎600的映像的方法。所述編譯程序可通過用于具有馮諾依曼架構(gòu)的計(jì)算機(jī)的指令來實(shí)施。這些指令可使所述計(jì)算機(jī)上的處理器實(shí)施所述編譯程序的功能。舉例來說,所述指令在通過所述處理器執(zhí)行時(shí)可使所述處理器對可由所述處理器存取的源代碼執(zhí)行如框602、604、606、608、610、612及614中所描述的動作。具有馮諾依曼架構(gòu)的實(shí)例計(jì)算機(jī)展示于圖9中且在下文描述。
[0038]在一實(shí)例中,源代碼描述用于識別一群符號內(nèi)的符號的模式的搜索字符串。為了描述所述搜索字符串,所述源代碼可包括多個(gè)正規(guī)表達(dá)式(regex)。正規(guī)表達(dá)式可為用于描述符號搜索模式的字符串。正規(guī)表達(dá)式廣泛用在各種計(jì)算機(jī)領(lǐng)域中,例如編程語言、文字編輯器、網(wǎng)絡(luò)安全及其它領(lǐng)域。在一實(shí)例中,由編譯程序支持的正規(guī)表達(dá)式包括用于無結(jié)構(gòu)數(shù)據(jù)的搜索的搜索準(zhǔn)則。無結(jié)構(gòu)數(shù)據(jù)可包括以下數(shù)據(jù),其為自由形式的且無索引施加于數(shù)據(jù)內(nèi)的字。字可包括數(shù)據(jù)內(nèi)的任何字節(jié)組合,可打印及不可打印的。在一實(shí)例中,編譯程序可支持用于實(shí)施正規(guī)表達(dá)式的多種不同的源代碼語言,包括Perl(例如,Perl兼容正規(guī)表達(dá)式(PCRE))、PHP、Java 及.NET 語言。
[0039]返回參看圖6,在框602處,編譯程序可剖析源代碼以形成有關(guān)系連接的運(yùn)算符的布置,其中不同類型的運(yùn)算符對應(yīng)于通過源代碼實(shí)施的不同功能(例如,通過源代碼中的正規(guī)表達(dá)式實(shí)施的不同功能)。剖析源代碼可產(chǎn)生所述源代碼的一般表示。在一實(shí)例中,所述一般表示包含所述源代碼中的呈被稱為語法樹的樹形圖形式的正規(guī)表達(dá)式的經(jīng)編碼表示。本文中所描述的實(shí)例將所述布置稱為語法樹(也被稱為“抽象語法樹”)。然而,在其它實(shí)例中,可使用具體語法樹或其它布置。
[0040]由于如上文所提及,編譯程序可支持多種語言的源代碼,因此,不管是何種語言,剖析將所述源代碼轉(zhuǎn)換成非語言特定表示,例如語法樹。因此,通過編譯程序進(jìn)行的其它處理(框604、606、608、610)可從共同輸入結(jié)構(gòu)來起作用,而不管源代碼的語言。
[0041]如上所述,所述語法樹包括有關(guān)系連接的多個(gè)運(yùn)算符。語法樹可包括多種不同類型的運(yùn)算符。也就是說,不同運(yùn)算符可對應(yīng)于通過源代碼中的正規(guī)表達(dá)式實(shí)施的不同功能。
[0042]在框604處,將所述語法樹轉(zhuǎn)換成自動機(jī)。自動機(jī)(也被稱作有限狀態(tài)自動機(jī)、有限狀態(tài)機(jī)(FSM)或簡稱為狀態(tài)機(jī))為狀態(tài)、狀態(tài)之間的轉(zhuǎn)變及動作的表示,且可分為確定性或非確定性的。確定性自動機(jī)在給定時(shí)間具有單一執(zhí)行路徑,而非確定性自動機(jī)具有多個(gè)同時(shí)的執(zhí)行路徑。所述自動機(jī)包含多個(gè)狀態(tài)。為了將語法樹轉(zhuǎn)換成自動機(jī),將語法樹中的運(yùn)算符及運(yùn)算符之間的關(guān)系轉(zhuǎn)換成狀態(tài)及狀態(tài)之間的轉(zhuǎn)變。在一實(shí)例中,可部分基于FSM引擎200的硬件來轉(zhuǎn)換所述自動機(jī)。
[0043]在一實(shí)例中,用于自動機(jī)的輸入符號包括字母、數(shù)字0-9及其它可打印字符的符號。在一實(shí)例中,所述輸入符號通過字節(jié)值O至255(包括在內(nèi))來表示。在一實(shí)例中,自動機(jī)可表示為有向圖,其中所述圖的節(jié)點(diǎn)對應(yīng)于狀態(tài)集合。在一實(shí)例中,在輸入符號α?xí)r從狀態(tài)P到狀態(tài)q的轉(zhuǎn)變(即,S (ρ,α))通過從節(jié)點(diǎn)P到節(jié)點(diǎn)q的有向連接展示。在一實(shí)例中,被自動機(jī)接受(例如,匹配)的語言為在按順序地輸入到所述自動機(jī)中時(shí)將達(dá)到最終狀態(tài)的所有可能字符字符串的集合。被所述自動機(jī)接受的語言中的每一字符串沿從開始狀態(tài)到一個(gè)或一個(gè)以上最終狀態(tài)的路徑而行。
[0044]在一實(shí)例中,在所述自動機(jī)中可使用輸入符號范圍外的特殊轉(zhuǎn)變符號。這些特殊轉(zhuǎn)變符號可用以(例如)使得能夠使用專用元件224。此外,特殊轉(zhuǎn)變符號可用以提供在不同于輸入符號的其它者上發(fā)生的轉(zhuǎn)變。舉例來說,一特殊轉(zhuǎn)變符號可指示當(dāng)啟用第二狀態(tài)及第三狀態(tài)時(shí)將啟用(例如,轉(zhuǎn)變到)第一狀態(tài)。因此,當(dāng)激活第二狀態(tài)及第三狀態(tài)時(shí)激活第一狀態(tài),且到所述第一狀態(tài)的轉(zhuǎn)變并非直接取決于輸入符號。顯著地,指示在啟用第二狀態(tài)及第三狀態(tài)時(shí)將啟用第一狀態(tài)的特殊轉(zhuǎn)變符號可用以將(例如)通過布爾邏輯執(zhí)行的布爾AND函數(shù)表示為專用元件224。在一實(shí)例中,可使用特殊轉(zhuǎn)變符號來指示計(jì)數(shù)器狀態(tài)已達(dá)到零,且因此轉(zhuǎn)變成下游狀態(tài)。
[0045]在一實(shí)例中,所述自動機(jī)包含通用狀態(tài)以及專用狀態(tài)。所述通用狀態(tài)及專用狀態(tài)對應(yīng)于通過目標(biāo)裝置支持的通用元件及專用元件,編譯程序?yàn)樗瞿繕?biāo)裝置產(chǎn)生機(jī)器代碼。不同類型的目標(biāo)裝置可支持不同類型的通用元件以及一種或一種以上不同類型的專用元件。通用元件通??捎靡詫?shí)施廣泛范圍的功能,而專用元件通??捎靡詫?shí)施更窄范圍的功能。然而,在一實(shí)例中,專用元件可在其窄范圍的功能內(nèi)實(shí)現(xiàn)(例如)較大效率。因此,專用元件可用以(例如)減少在目標(biāo)裝置中實(shí)施某些功能所需的機(jī)器循環(huán)或機(jī)器資源。在一些實(shí)例中,所述目標(biāo)裝置僅支持專用元件,其中支持多種不同類型的專用元件。
[0046]在編譯程序產(chǎn)生用于FSM引擎200的機(jī)器代碼的實(shí)例中,通用狀態(tài)可對應(yīng)于SME204、205,且通用狀態(tài)因此在本文中被稱作“SME狀態(tài)”。此外,當(dāng)編譯程序產(chǎn)生用于FSM引擎200的機(jī)器代碼時(shí),專用狀態(tài)的實(shí)例可對應(yīng)于計(jì)數(shù)器224且因此在本文中被稱作“計(jì)數(shù)器狀態(tài)”。專用狀態(tài)的另一實(shí)例可對應(yīng)于一邏輯元件(例如,可編程邏輯、布爾邏輯)且因此在本文中被稱作“邏輯狀態(tài)”。在一實(shí)例中,自動機(jī)中的SME狀態(tài)1:1映射到FSM引擎200中的SME(例如,SME204、205),不映射到SME的自動機(jī)的開始狀態(tài)除外。專用元件224可或可不1:1映射到專用狀態(tài)。
[0047]在一實(shí)例中,可使用例如Glushkov的方法的標(biāo)準(zhǔn)技術(shù)中的一者來建構(gòu)自動機(jī)。在一實(shí)例中,所述自動機(jī)可為無ε的均齊自動機(jī)(homogeneous automaton)。均齊自動機(jī)為對一般自動機(jī)定義的限制。所述限制要求進(jìn)入一狀態(tài)的所有轉(zhuǎn)變必須發(fā)生在同一(些)輸入符號上。均齊自動機(jī)滿足以下條件:對于任何兩個(gè)狀態(tài),1及%,如果
r e δ (q) Π δ (q2),則表示 S1 = {a | a e Σ , r e δ (q1; a)} > S2 = {a | a e Σ , r e δ (q2,
a)}。S1為允許qi轉(zhuǎn)變成r的符號的集合;且S2為允許q2轉(zhuǎn)變成r的符號的集合。在此,S1=S2,即,如果狀態(tài)Q1及狀態(tài)q2均轉(zhuǎn)變成狀態(tài)r,則均齊限制為轉(zhuǎn)變必須發(fā)生在同一(些)符號上。
[0048]圖7A及7B說明從語法樹產(chǎn)生的實(shí)例自動機(jī)。圖7A說明均齊自動機(jī)700,且圖7B說明非均齊自動機(jī)702。
[0049]均齊自動機(jī)700在開始狀態(tài)704處開始,開始狀態(tài)704在輸入符號“a”時(shí)轉(zhuǎn)變成狀態(tài)706。在輸入符號“b”時(shí)狀態(tài)706轉(zhuǎn)變成狀態(tài)708,且在輸入符號“b”時(shí),狀態(tài)708轉(zhuǎn)變成狀態(tài)710。在輸入符號“c”時(shí),狀態(tài)710轉(zhuǎn)變成狀態(tài)712。狀態(tài)712在輸入符號“b”時(shí)轉(zhuǎn)變成狀態(tài)710,且在輸入符號“d”時(shí)轉(zhuǎn)變成狀態(tài)714。狀態(tài)714為最終狀態(tài)且通過雙圓來識別為最終狀態(tài)。在一實(shí)例中,最終狀態(tài)可為重要的,因?yàn)樽罱K狀態(tài)的激活指示對應(yīng)于所述自動機(jī)的正規(guī)表達(dá)式的匹配。自動機(jī)700為均齊自動機(jī),因?yàn)榻o定狀態(tài)的所有內(nèi)轉(zhuǎn)變(例如,到狀態(tài)的轉(zhuǎn)變)發(fā)生在同一(些)符號上。顯著地,狀態(tài)710具有兩個(gè)內(nèi)轉(zhuǎn)變(從狀態(tài)708及狀態(tài)712),且所述兩個(gè)內(nèi)轉(zhuǎn)變均發(fā)生在同一符號“b”上。
[0050]非均齊自動機(jī)702包括與均齊自動機(jī)700相同的狀態(tài)704、706、708、710、712及714,然而,狀態(tài)712在輸入符號“e”時(shí)轉(zhuǎn)變成狀態(tài)710。因此,自動機(jī)702為非均齊的,因?yàn)闋顟B(tài)710在兩個(gè)不同符號時(shí)具有內(nèi)轉(zhuǎn)變;符號“b”時(shí)從狀態(tài)708且符號“e”時(shí)從狀態(tài)712。
[0051]在框606處,在建構(gòu)了自動機(jī)之后,最佳化所述自動機(jī)以尤其減少其復(fù)雜性及大小。可通過組合冗余狀態(tài)來最佳化所述自動機(jī)。
[0052]在框608處,將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表。將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表將所述自動機(jī)的狀態(tài)映射到FSM引擎200的硬件元件(例如,SME204、205、G0T210、專用元件224)的實(shí)例,且確定所述實(shí)例之間的連接。在一實(shí)例中,所述網(wǎng)表包含多個(gè)實(shí)例,每一實(shí)例對應(yīng)于(例如,表示)FSM引擎200的一硬件元件。每一實(shí)例可具有用于連接到另一實(shí)例的一個(gè)或一個(gè)以上連接點(diǎn)(本文中也被稱作“端口”)。所述網(wǎng)表還包含所述實(shí)例的端口之間的多個(gè)連接,所述多個(gè)連接對應(yīng)于(例如,表示)用以耦合對應(yīng)于所述實(shí)例的硬件元件的導(dǎo)體。在一實(shí)例中,所述網(wǎng)表包含對應(yīng)于不同類型的硬件元件的不同類型的實(shí)例。舉例來說,所述網(wǎng)表可包括對應(yīng)于通用硬件元件的通用實(shí)例及對應(yīng)于專用硬件元件的專用實(shí)例。作為一實(shí)例,通用狀態(tài)可轉(zhuǎn)換成通用實(shí)例,且專用狀態(tài)可轉(zhuǎn)換成專用實(shí)例。在一實(shí)例中,所述通用實(shí)例可包括用于一 SME204、205的一 SME實(shí)例及用于包含一群SME的硬件元件的一 SME群組實(shí)例。在一實(shí)例中,所述SME群組實(shí)例包括對應(yīng)于G0T210的GOT實(shí)例;然而,在其它實(shí)例中,所述SME群組實(shí)例可對應(yīng)于包含一群三個(gè)或三個(gè)以上SME的硬件元件。專用實(shí)例可包括用于計(jì)數(shù)器224的計(jì)數(shù)器實(shí)例及用于邏輯元件224的邏輯實(shí)例。由于G0T210包括兩個(gè)SME204、205,因此GOT實(shí)例含有兩個(gè)SME實(shí)例。
[0053]為產(chǎn)生網(wǎng)表,將自動機(jī)中的狀態(tài)轉(zhuǎn)換成網(wǎng)表中的實(shí)例,除了開始狀態(tài)不具有對應(yīng)實(shí)例之外。將SME狀態(tài)轉(zhuǎn)換成GOT實(shí)例,且將計(jì)數(shù)器狀態(tài)轉(zhuǎn)換成計(jì)數(shù)器實(shí)例。另外,針對從對應(yīng)于第一實(shí)例的狀態(tài)到對應(yīng)于第二實(shí)例的狀態(tài)的轉(zhuǎn)變產(chǎn)生從第一實(shí)例到第二實(shí)例的對應(yīng)連接。由于FSM引擎200中的SME204、205分組到被稱作G0T210的對中,因此編譯程序可將SME狀態(tài)分組到GOT實(shí)例中的對中。歸因于G0T210的物理設(shè)計(jì),并非所有SME實(shí)例可一起成對以形成G0T210。因此,編譯程序確定可將哪些SME狀態(tài)一起映射在G0T210中,且接著基于所述確定將SME狀態(tài)成對到GOT實(shí)例中。
[0054]如圖5中所示,G0T210具有對SME204、205的輸出限制。確切地說,G0T210具有由兩個(gè)SME204、205共享的單一輸出218。因此,G0T210中的每一 SME204、205不可獨(dú)立地驅(qū)動輸出218。此輸出限制限制了在GOT實(shí)例中哪些SME狀態(tài)可一起成對。顯著地,驅(qū)動(例如,轉(zhuǎn)變到、激活)外部SME狀態(tài)(例如,對應(yīng)于GOT實(shí)例外的SME的SME狀態(tài))的不同集合的兩個(gè)SME狀態(tài)在一 GOT實(shí)例中不可一起成對。然而,此限制不限制所述兩個(gè)SME狀態(tài)是否驅(qū)動彼此或自循環(huán),因?yàn)镚0T210可在內(nèi)部通過開關(guān)240提供此功能性。盡管將FSM引擎200描述為具有對應(yīng)于SME204、205的某一物理設(shè)計(jì),但在其它實(shí)例中,SME204、205可具有其它物理設(shè)計(jì)。舉例來說,SME204、205可一起分組到SME204、205的三個(gè)或三個(gè)以上集合中。另外,在一些實(shí)例中,可存在對到SME204、205的輸入214、216的限制,對來自SME204、205的輸出226、228可具有或不具有限制。
[0055]然而,在任一種情況下,編譯程序基于FSM引擎200的物理設(shè)計(jì)來確定哪些SME狀態(tài)可一起分組。因此,對于GOT實(shí)例,編譯程序基于G0T210中的SME204、205的輸出限制來確定哪些SME狀態(tài)可一起成對。在一實(shí)例中,存在五種情形,其中兩個(gè)SME狀態(tài)可基于G0T210的物理設(shè)計(jì)而一起成對以形成G0T210。
[0056]在第一 SME狀態(tài)及第二 SME狀態(tài)可在G0T210中一起成對時(shí)的第一種情形出現(xiàn)在第一 SME狀態(tài)或第二 SME狀態(tài)均非最終狀態(tài)時(shí),及出現(xiàn)在第一 SME狀態(tài)及第二 SME狀態(tài)中的一者不驅(qū)動不同于第一 SME狀態(tài)或第二 SME狀態(tài)的任何狀態(tài)時(shí)。作為一實(shí)例,當(dāng)?shù)谝粻顟B(tài)轉(zhuǎn)變成第二狀態(tài)時(shí),認(rèn)為所述第一狀態(tài)驅(qū)動所述第二狀態(tài)。當(dāng)此第一種情形出現(xiàn)時(shí),至多第一SME狀態(tài)及第二 SME狀態(tài)中的一者驅(qū)動一(些)外部狀態(tài)。因此,第一 SME狀態(tài)及第二 SME狀態(tài)可一起成對,而不受G0T210的輸出限制影響。然而,歸因于G0T210在內(nèi)部將SME204、205耦合到彼此的能力,允許第一 SME狀態(tài)及第二 SME狀態(tài)驅(qū)動彼此及自循環(huán)以驅(qū)動自身。在自動機(jī)項(xiàng)中,當(dāng)Q1或均非最終狀態(tài),且δ (q^-1q^qal為空時(shí),或當(dāng)δ (q^-jq^qj為空時(shí),第一 SME狀態(tài)(對應(yīng)于狀態(tài)qi)及第二 SME狀態(tài)(對應(yīng)于狀態(tài)q2)可一起成對。
[0057]在第一 SME狀態(tài)及第二 SME狀態(tài)可在G0T210中一起成對時(shí)的第二種情形出現(xiàn)在第一或第二 SME狀態(tài)均非自動機(jī)中的最終狀態(tài)時(shí),及出現(xiàn)在第一 SME狀態(tài)及第二 SME狀態(tài)驅(qū)動相同的外部狀態(tài)時(shí)。如本文中所使用,外部狀態(tài)對應(yīng)于GOT實(shí)例外部的狀態(tài),例如,不管GOT實(shí)例中的第一 SME狀態(tài)及第二 SME狀態(tài)是否驅(qū)動彼此或自循環(huán)。再次,G0T210的輸出限制不影響第一 SME狀態(tài)及第二 SME狀態(tài),因?yàn)榈谝?SME狀態(tài)及第二 SME狀態(tài)驅(qū)動相同的外部狀態(tài)。而且,歸因于G0T210在內(nèi)部將SME204、205耦合到彼此的能力,對驅(qū)動相同狀態(tài)的限制不包括第一狀態(tài)及第二狀態(tài)是否驅(qū)動彼此或自循環(huán)。使用自動機(jī)項(xiàng),當(dāng)Q1或q2均非最終狀態(tài),且S (qi)-{qi,q2} = δ (q2)-{qi,q2}時(shí),第一 SME狀態(tài)(對應(yīng)于狀態(tài)qj及第
二SME狀態(tài)(對應(yīng)于狀態(tài)q2)可一起成對。
[0058]第一 SME狀態(tài)及第二 SME狀態(tài)可在G0T210中一起成對的第三及第四種情形出現(xiàn)在第一 SME狀態(tài)及第二 SME狀態(tài)中的一者為最終狀態(tài)且第一 SME狀態(tài)及第二 SME狀態(tài)中的另一者并不驅(qū)動任一外部狀態(tài)時(shí)。也就是說,當(dāng)Q1為最終狀態(tài)且δ (q2)-{qi, q2}為空時(shí),或當(dāng)q2對應(yīng)于最終狀態(tài)且S (Q1)-1q1, q2}為空時(shí),第一 SME狀態(tài)(對應(yīng)于狀態(tài)qj及第二SME狀態(tài)(對應(yīng)于狀態(tài)q2)可一起成對。由于最終狀態(tài)輸出與正規(guī)表達(dá)式匹配的指示,因此對應(yīng)于最終狀態(tài)的SME狀態(tài)應(yīng)能夠獨(dú)立使用G0T210的輸出218以便指示所述匹配。因此,不允許G0T210中的另一 SME狀態(tài)使用輸出218。
[0059]在第一 SME狀態(tài)及第二 SME狀態(tài)可在G0T210中一起成對時(shí)的第五種情形出現(xiàn)在第一 SME狀態(tài)及第二 SME狀態(tài)均對應(yīng)于一自動機(jī)中的最終狀態(tài)且第一 SME狀態(tài)及第二 SME狀態(tài)均驅(qū)動相同的外部狀態(tài)時(shí)。使用自動機(jī)項(xiàng),當(dāng)Q1及92均為最終狀態(tài),且δ (q^-tq^qj=δ (q2)-{qi,q2}時(shí),第一狀態(tài)(對應(yīng)于狀態(tài)qj及第二 SME狀態(tài)(對應(yīng)于狀態(tài)q2)可一起成對。
[0060]一旦編譯程序確定一個(gè)或一個(gè)以上SME狀態(tài)是否可一起成對,編譯程序便將所述SME狀態(tài)成對為GOT實(shí)例。在一實(shí)例中,編譯程序按SME狀態(tài)被確定為能夠成對以形成GOT實(shí)例的次序來將SME狀態(tài)成對為GOT實(shí)例。也就是說,一旦兩個(gè)特定SME狀態(tài)被確定為能夠一起成對,此兩個(gè)SME狀態(tài)便可成對為一 GOT實(shí)例。一旦兩個(gè)SME狀態(tài)已成對以形成GOT實(shí)例,這些成對的SME狀態(tài)不可用于與其它SME狀態(tài)成對。此過程可繼續(xù),直到不再有任何SME狀態(tài)留待成對為止。
[0061]在一實(shí)例中,編譯程序使用圖論來確定哪些SME—起成對為GOT實(shí)例。由于僅某些SME可一起成對,因此一些SME成對可導(dǎo)致其它SME必須在其自身的GOT實(shí)例中實(shí)施,以致GOT實(shí)例中的其它SME位置 未用且因此被浪費(fèi)??墒褂脠D論來通過減少網(wǎng)表的GOT實(shí)例中的未用SME實(shí)例的數(shù)目來最佳化G0T210中的SME利用(例如,減少未用SME的數(shù)目)。為了使用圖論,編譯程序首先根據(jù)上文所論述的FSM引擎200的物理設(shè)計(jì)來確定SME狀態(tài)之間的所有可能成對。編譯程序接著產(chǎn)生一圖,其中所述圖的頂點(diǎn)對應(yīng)于SME狀態(tài),且所述圖的邊對應(yīng)于SME狀態(tài)的可能成對。也就是說,如果確定兩個(gè)SME狀態(tài)能夠在GOT實(shí)例中一起成對,則用一條邊連接兩個(gè)對應(yīng)的頂點(diǎn)。因此,所述圖含有SME狀態(tài)的所有可能成對。
[0062]編譯程序可接著找出所述圖的匹配頂點(diǎn)以識別哪些SME狀態(tài)在G0T210中一起成對。也就是說,編譯程序識別邊(且因此識別頂點(diǎn)對),使得所述圖的匹配頂點(diǎn)之間的兩條邊不會共享一個(gè)共同頂點(diǎn)。在一實(shí)例中,編譯程序可找出所述圖的最大匹配。在另一實(shí)例中,編譯程序可找出所述圖的最大匹配。最大匹配為含有最大的可能數(shù)目的邊的匹配??纱嬖谠S多最大匹配??梢远囗?xiàng)式時(shí)間來解決找出一般圖的最大匹配的問題。
[0063]一旦已識別了所有匹配頂點(diǎn)(例如,作為最大匹配),則將對應(yīng)于匹配頂點(diǎn)的每一對SME狀態(tài)映射到一 GOT實(shí)例。將對應(yīng)于未匹配頂點(diǎn)的SME狀態(tài)映射到其自身的GOT實(shí)例。也就是說,將對應(yīng)于未匹配頂點(diǎn)的SME狀態(tài)映射到GOT實(shí)例中的SME位置中的一者中,且GOT實(shí)例中的其它SME位置未用。因此,假定網(wǎng)表N及其匹配頂點(diǎn)M的對應(yīng)集合,所使用的N的GOT實(shí)例的數(shù)目等于I Q1-1-1MI,其中Q為自動機(jī)的狀態(tài)集合,且“-1 ”是因?yàn)樵诖藢?shí)例中自動機(jī)的開始狀態(tài)并不對應(yīng)于SME狀態(tài)。[0064]在一實(shí)例中,網(wǎng)表N是使用最少數(shù)目的GOT實(shí)例由G的最大匹配M來建構(gòu)。此可通過以下事例證明:如果存在使用更少數(shù)目的GOT實(shí)例的另一網(wǎng)表N',則將所述對應(yīng)匹配表示為M'。由于N'的got實(shí)例的數(shù)目等于Iq1-1-1m' I,因此我們得到|m| < |m' I。此與M為最大匹配的事實(shí)沖突。因此,網(wǎng)表N使用最少數(shù)目的GOT實(shí)例。
[0065]一旦SME狀態(tài)成對為GOT實(shí)例,便根據(jù)自動機(jī)中的狀態(tài)之間的轉(zhuǎn)變來連接GOT實(shí)例、計(jì)數(shù)器實(shí)例及邏輯實(shí)例。由于每一 G0T210具有單一輸出,因此網(wǎng)表中的每一 GOT實(shí)例具有單一輸出端口以供連接到其它實(shí)例。因此,如果第一 GOT實(shí)例中的任一 SME狀態(tài)驅(qū)動第二 GOT實(shí)例中的一 SME狀態(tài),則第一 GOT實(shí)例的輸出端口耦合到第二 GOT實(shí)例的輸入。
[0066]圖8A及8B說明從圖7A的均齊自動機(jī)700產(chǎn)生的實(shí)例網(wǎng)表800、802。SME實(shí)例806、808、810、812及814對應(yīng)于自動機(jī)700中的狀態(tài)706、708、710、712及714。如上文所論述,所述自動機(jī)的開始狀態(tài)704不對應(yīng)于一實(shí)例。
[0067]網(wǎng)表800為非最佳網(wǎng)表的一實(shí)例。網(wǎng)表800使用四個(gè)GOT實(shí)例816,同時(shí)留下三個(gè)SME實(shí)例818未用。然而,網(wǎng)表802為使用圖論識別最大匹配而產(chǎn)生的最佳網(wǎng)表的實(shí)例。網(wǎng)表802使用三個(gè)GOT實(shí)例816且具有單一未用SME實(shí)例818。在網(wǎng)表802中,可通過GOT實(shí)例內(nèi)部的連接(例如,經(jīng)由開關(guān)240)將實(shí)例810連接到實(shí)例812。
[0068]在框610處,一旦已產(chǎn)生網(wǎng)表,便放置所述網(wǎng)表以針對所述網(wǎng)表的每一實(shí)例選擇所述目標(biāo)裝置的特定硬件元件(例如,SME204、205、其它元件224)。根據(jù)本發(fā)明的一實(shí)施例,放置基于針對硬件元件的一般輸入及輸出約束來選擇硬件元件。
[0069]在框612處,對經(jīng)全局放置的網(wǎng)表進(jìn)行布線以確定可編程開關(guān)(例如,塊間開關(guān)203、塊內(nèi)開關(guān)208及行內(nèi)開關(guān)212)的設(shè)定以便將選定硬件元件耦合在一起以實(shí)現(xiàn)網(wǎng)表所描述的連接。在一實(shí)例中,所述可編程開關(guān)的設(shè)定通過確定FSM引擎200的將用以連接選定的硬件元件的特定導(dǎo)體及所述可編程開關(guān)的設(shè)定來確定。布線可調(diào)整在放置期間針對網(wǎng)表實(shí)例中的一些選擇的特定硬件元件,例如以便耦合硬件元件,給定FSM引擎200上的導(dǎo)體及/或開關(guān)的物理設(shè)計(jì)。
[0070]一旦對網(wǎng)表進(jìn)行放置及布線,便可將所放置及經(jīng)布線的網(wǎng)表轉(zhuǎn)換成用于編程FSM引擎200的多個(gè)位。所述多個(gè)位在本文中被稱作映像。
[0071]在框614處,通過編譯程序發(fā)布映像。所述映像包含用于編程FSM引擎200的特定硬件元件及/或可編程開關(guān)的多個(gè)位。在所述映像包含多個(gè)位(例如,O及I)的實(shí)施例中,所述映像可被稱作二進(jìn)制映像。所述位可加載到FSM引擎200上以編程SME204、205、專用元件224及可編程開關(guān)的狀態(tài),以使得經(jīng)編程的FSM引擎200實(shí)施具有通過源代碼描述的功能性的FSM。放置(框610)及布線(框612)可將在FSM引擎200中的特定位置處的特定硬件元件映像到自動機(jī)中的特定狀態(tài)。因此,所述映像中的位可編程所述特定硬件元件及/或可編程開關(guān)以實(shí)施所要功能。在一實(shí)例中,可通過將機(jī)器代碼存儲到計(jì)算機(jī)可讀媒體來發(fā)布所述映像。在另一實(shí)例中,可通過在顯示裝置上顯示所述映像來發(fā)布映像。在又一實(shí)例中,可通過將所述映像發(fā)送到另一裝置(例如,用于將所述映像加載到FSM引擎200上的編程裝置)來發(fā)布映像。在再一實(shí)例中,可通過將所述映像加載到并行機(jī)(例如,F(xiàn)SM引擎200)上來發(fā)布映像。
[0072]在一實(shí)例中,可通過將來自映像的位值直接加載到SME204、205及其它硬件元件224或通過將映像加載到一個(gè)或一個(gè)以上寄存器中且接著將來自寄存器的位值寫入到SME204、205及其它硬件元件224來將映像加載到FSM引擎200上。在一實(shí)例中,可編程開關(guān)(例如,塊間開關(guān)203、塊內(nèi)開關(guān)208及行內(nèi)開關(guān)212)的狀態(tài)。在一實(shí)例中,F(xiàn)SM引擎200的硬件元件(例如,SME204、205、其它元件224、可編程開關(guān)203、208、212)經(jīng)存儲器映射,以使得編程裝置及/或計(jì)算機(jī)可通過將映像寫入到一個(gè)或一個(gè)以上存儲器地址而將映像加載到FSM引擎200上。
[0073]本文中所描述的方法實(shí)例可至少部分為機(jī)器或計(jì)算機(jī)實(shí)施的。一些實(shí)例可包括編碼有指令的計(jì)算機(jī)可讀媒體或機(jī)器可讀媒體,所述指令可操作以配置電子裝置以執(zhí)行如上述實(shí)例中所描述的方法。這些方法的實(shí)施方案可包括代碼,例如微碼、匯編語言代碼、高級語言代碼或其類似者。此類代碼可包括用于執(zhí)行各種方法的計(jì)算機(jī)可讀指令。代碼可形成計(jì)算機(jī)程序產(chǎn)品的部分。另外,代碼在執(zhí)行期間或在其它時(shí)間時(shí)可有形地存儲于一個(gè)或一個(gè)以上易失性或非易失性計(jì)算機(jī)可讀媒體上。這些計(jì)算機(jī)可讀媒體可包括(但不限于)硬盤、可裝卸磁盤、可裝卸光盤(例如,壓縮光盤及數(shù)字視頻光盤)、磁帶、存儲器卡或存儲器棒、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)及其類似者。
[0074]圖9大體上說明具有馮諾依曼架構(gòu)的計(jì)算機(jī)900的實(shí)例。在閱讀及理解了本發(fā)明的內(nèi)容之后,一般所屬領(lǐng)域的技術(shù)人員將理解,在基于計(jì)算機(jī)的系統(tǒng)中可從計(jì)算機(jī)可讀媒體加載軟件程序以使其執(zhí)行以軟件程序定義的功能的方式。一般所屬領(lǐng)域的技術(shù)人員將進(jìn)一步理解,可使用各種編程語言來產(chǎn)生經(jīng)設(shè)計(jì)以實(shí)施并執(zhí)行本文所揭示的方法的一個(gè)或一個(gè)以上軟件程序??墒褂妹嫦?qū)ο蟮恼Z言(例如,Java、C++或一種或一種以上其它語言)以面向?qū)ο蟮母袷絹斫Y(jié)構(gòu)化所述程序?;蛘?,可使用程序語言(例如,匯編語言、C等)以面向程序的格式來結(jié)構(gòu)化所述程序。軟件組件可使用一般所屬領(lǐng)域的技術(shù)人員所眾所周知的許多方案中的任一者來通信,例如應(yīng)用編程接口或過程間通信技術(shù),包括遠(yuǎn)程過程調(diào)用或其它。各個(gè)實(shí)施例的教示不限于任何特定編程語言或環(huán)境。
[0075]因此,可實(shí)現(xiàn)其它實(shí)施例。舉例來說,一制造對象(例如,計(jì)算機(jī)、存儲器系統(tǒng)、磁盤或光盤、某其它存儲裝置,或任何類型的電子裝置或系統(tǒng))可包括一個(gè)或一個(gè)以上處理器902,所述一個(gè)或一個(gè)以上處理器902耦合到上面存儲有指令924 (例如,計(jì)算機(jī)程序指令)的計(jì)算機(jī)可讀媒體922,例如存儲器(例如,可裝卸存儲媒體,以及包括電、光或電磁導(dǎo)體的任何存儲器),所述指令在通過所述一個(gè)或一個(gè)以上處理器902執(zhí)行時(shí)導(dǎo)致執(zhí)行相對于上述方法所描述的動作中的任一者。
[0076]計(jì)算機(jī)900可采取具有處理器902的計(jì)算機(jī)系統(tǒng)的形式,所述處理器908直接及/或使用總線908來耦合到許多元件。這些元件可包括主存儲器904、靜態(tài)或非易失性存儲器906及大容量存儲裝置916。耦合到處理器902的其它元件可包括輸出裝置910 (例如,視頻顯示器)、輸入裝置912 (例如,鍵盤)及光標(biāo)控制裝置914 (例如,鼠標(biāo))。用以將處理器902及其它元件耦合到網(wǎng)絡(luò)926的網(wǎng)絡(luò)接口裝置920還可耦合到總線908。指令924可利用許多眾所周知的傳送協(xié)議(例如,HTTP)中的任一者經(jīng)由網(wǎng)絡(luò)接口裝置920跨越網(wǎng)絡(luò)926來進(jìn)一步傳輸或接收。耦合到總線908的這些元件中的任一者可不存在,單獨(dú)地存在,或以復(fù)數(shù)形式存在,此取決于待實(shí)現(xiàn)的特定實(shí)施例。
[0077]在一實(shí)例中,處理器902、存儲器904、906或存儲裝置916中的一者或一者以上可各自包括指令924,所述指令924在執(zhí)行時(shí)可使計(jì)算機(jī)900執(zhí)行本文所描述的方法中的任何一者或一者以上。在替代實(shí)施例中,計(jì)算機(jī)900作為單獨(dú)裝置操作或可連接(例如,網(wǎng)絡(luò)連接)到其它裝置。在網(wǎng)絡(luò)環(huán)境中,計(jì)算機(jī)900可以服務(wù)器-客戶端網(wǎng)絡(luò)環(huán)境中的服務(wù)器或客戶端裝置的能力來操作,或操作為對等(或分布式)網(wǎng)絡(luò)環(huán)境中的對等裝置。計(jì)算機(jī)900可包括個(gè)人計(jì)算機(jī)(PC)、平板PC、機(jī)頂盒(STB)、個(gè)人數(shù)字助理(PDA)、蜂窩式電話、web器具、網(wǎng)絡(luò)路由器、交換機(jī)或橋接器,或能夠執(zhí)行一組指令(順序的或其它)的任何裝置,所述組指令指定將由所述裝置采取的行動。另外,雖然僅說明了單一計(jì)算機(jī)900,但術(shù)語“計(jì)算機(jī)”還應(yīng)被視為包括個(gè)別地或共同地執(zhí)行一組(或多組)指令以執(zhí)行本文中所論述的方法中的任何一者或一者以上的裝置的任何集合。
[0078]計(jì)算機(jī)900還可包括用于使用一個(gè)或一個(gè)以上通信協(xié)議(例如,通用串行總線(USB)、IEEE1394等)與外圍裝置通信的輸出控制器928。輸出控制器928可(例如)將映像提供到通信地耦合到計(jì)算機(jī)900的編程裝置930。編程裝置930可經(jīng)配置以編程并行機(jī)(例如,并行機(jī)100、FSM引擎200)。在其它實(shí)例中,編程裝置930可與計(jì)算機(jī)900集成且耦合到總線908或可經(jīng)由網(wǎng)絡(luò)接口裝置920或另一裝置與計(jì)算機(jī)900通信。
[0079]雖然計(jì)算機(jī)可讀媒體924展示為單一媒體,但術(shù)語“計(jì)算機(jī)可讀媒體”應(yīng)被視為包括存儲所述一組或一組以上指令924的單一媒體或多個(gè)媒體(例如,集中式或分布式數(shù)據(jù)庫,或相關(guān)聯(lián)的高速緩存及服務(wù)器,及或各種存儲媒體,例如處理器902寄存器、存儲器904,906及存儲裝置916)。術(shù)語“計(jì)算機(jī)可讀媒體”還應(yīng)被視為包括以下任何媒體,其能夠存儲、編碼或載運(yùn)供計(jì)算機(jī)執(zhí)行的一組指令且使所述計(jì)算機(jī)執(zhí)行本發(fā)明的方法中的任何一者或一者以上,或能夠存儲、編碼或載運(yùn)供此組指令利用或與此組指令相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)。術(shù)語“計(jì)算機(jī)可讀媒體”因此應(yīng)被視為包括(但不限于)有形媒體,例如固態(tài)存儲器、光媒體及磁性媒體。
[0080]提供摘要以遵照需要摘要的37C.F.R.章節(jié)1.72 (b),此將允許讀者確定技術(shù)揭示內(nèi)容的性質(zhì)及要旨。在理解到摘要將不用以限制或解釋權(quán)利要求書的范疇或涵義的情況下提交摘要。以下權(quán)利要求書借此并入詳細(xì)描述中,其中每一權(quán)利要求依賴于其自身而作為一單獨(dú)實(shí)施例。
[0081]實(shí)例實(shí)施例
[0082]實(shí)例I包括一種計(jì)算機(jī)實(shí)施方法,其用于從源代碼產(chǎn)生經(jīng)配置以編程并行機(jī)的映像。所述方法包括:將源代碼轉(zhuǎn)換成包含多個(gè)互連狀態(tài)的自動機(jī);將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表,所述網(wǎng)表包含對應(yīng)于所述自動機(jī)的狀態(tài)的實(shí)例,其中所述實(shí)例對應(yīng)于所述并行機(jī)的硬件元件,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括基于所述并行機(jī)的物理設(shè)計(jì)來對狀態(tài)一起分組;及將所述網(wǎng)表轉(zhuǎn)換成所述映像。
[0083]實(shí)例2包括一種計(jì)算機(jī)可讀媒體,其包括指令,所述指令在由所述計(jì)算機(jī)執(zhí)行時(shí)使所述計(jì)算機(jī)執(zhí)行操作。所述操作包括:將源代碼轉(zhuǎn)換成包含多個(gè)互連狀態(tài)的自動機(jī);將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表,所述網(wǎng)表包含對應(yīng)于所述自動機(jī)的狀態(tài)的實(shí)例,其中所述實(shí)例對應(yīng)于所述并行機(jī)的硬件元件,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括基于所述并行機(jī)的物理設(shè)計(jì)來對狀態(tài)一起分組;及將所述網(wǎng)表轉(zhuǎn)換成所述映像。
[0084]實(shí)例3包括一種計(jì)算機(jī),其包括:存儲器,其上面存儲有軟件;及處理器,其通信地耦合到所述存儲器。其中所述軟件在由所述處理器執(zhí)行時(shí)使所述處理器:將源代碼轉(zhuǎn)換成包含多個(gè)互連狀態(tài)的自動機(jī);將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表,所述網(wǎng)表包含對應(yīng)于所述自動機(jī)的狀態(tài)的實(shí)例,其中所述實(shí)例對應(yīng)于所述并行機(jī)的硬件元件,其中所述實(shí)例包括多個(gè)第一實(shí)例及含有兩個(gè)或兩個(gè)以上第一實(shí)例的一群組實(shí)例,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括基于許多未用的第一實(shí)例來將狀態(tài)一起分組在一群組實(shí)例中;及將所述網(wǎng)表轉(zhuǎn)換成所述映像。
[0085]實(shí)例4包括一種系統(tǒng),其包括計(jì)算機(jī),所述計(jì)算機(jī)經(jīng)配置以:將源代碼轉(zhuǎn)換成包含多個(gè)互連狀態(tài)的自動機(jī);將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表,所述網(wǎng)表包含對應(yīng)于所述自動機(jī)的狀態(tài)的實(shí)例,其中所述實(shí)例對應(yīng)于所述并行機(jī)的硬件元件,其中所述實(shí)例包括多個(gè)第一實(shí)例及含有兩個(gè)或兩個(gè)以上第一實(shí)例的一群組實(shí)例,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括基于許多未用的第一實(shí)例來將狀態(tài)一起分組在一群組實(shí)例中;及將所述網(wǎng)表轉(zhuǎn)換成所述映像。所述系統(tǒng)還包括經(jīng)配置以將所述映像加載到并行機(jī)上的裝置。
[0086]在實(shí)例5中,實(shí)例I至4中任一者的主題可任選地包括,其中所述實(shí)例包括對應(yīng)于狀態(tài)機(jī)元件(SME)硬件元件的SME實(shí)例及對應(yīng)于包含一群SME的硬件元件的SME群組實(shí)例,且其中分組包括將狀態(tài)分組到SME群組實(shí)例中。
[0087]在實(shí)例6中,實(shí)例I至5中任一者的主題可任選地包括,其中所述物理設(shè)計(jì)包括包含一群SME的所述硬件元件的物理設(shè)計(jì)。
[0088]在實(shí)例7中,實(shí)例I至6中任一者的主題可任選地包括,其中所述物理設(shè)計(jì)包括對包含一群SME的所述硬件元件中的所述SME的輸入或輸出限制中的一者。
[0089]在實(shí)例8中,實(shí)例I至7中任一者的主題可任選地包括,其中所述物理設(shè)計(jì)包括包含一群SME的所述硬件元件中的所述SME共享輸出的限制。
[0090]在實(shí)例9中,實(shí)例I至8中任一者的主題可任選地包括,其中SME群組實(shí)例包括含有兩個(gè)SME實(shí)例的成對群組(GOT)實(shí)例,且其中所述物理設(shè)計(jì)包括每一 GOT中的所述SME耦合到共同輸出。
[0091]在實(shí)例10中,實(shí)例I至9中任一者的主題可任選地包括,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包含:確定所述狀態(tài)中的哪些可一起分組在GOT實(shí)例中;及基于所述確定來使所述狀態(tài)成對。
[0092]在實(shí)例11中,實(shí)例I至10中任一者的主題可任選地包括,其中當(dāng)?shù)谝粻顟B(tài)或第二狀態(tài)均非所述自動機(jī)的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)中的一者不驅(qū)動不同于所述第一狀態(tài)或所述第二狀態(tài)的任何狀態(tài)時(shí),所述第一狀態(tài)及所述第二狀態(tài)可在GOT實(shí)例中一起成對。
[0093]在實(shí)例12中,實(shí)例I至11中任一者的主題可任選地包括,其中當(dāng)?shù)谝粻顟B(tài)或第二狀態(tài)均非所述自動機(jī)的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)均驅(qū)動相同的外部狀態(tài)時(shí),所述第一狀態(tài)及所述第二狀態(tài)可在GOT實(shí)例中一起成對。
[0094]在實(shí)例13中,實(shí)例I至12中任一者的主題可任選地包括,其中當(dāng)?shù)谝粻顟B(tài)及第二狀態(tài)中的一者為所述自動機(jī)的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)中的另一者不驅(qū)動任何外部狀態(tài)時(shí),所述第一狀態(tài)及所述第二狀態(tài)可在GOT實(shí)例中一起成對。
[0095]在實(shí)例14中,實(shí)例I至13中任一者的主題可任選地包括,其中當(dāng)?shù)谝粻顟B(tài)及第二狀態(tài)均為所述自動機(jī)的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)均驅(qū)動相同的外部狀態(tài)時(shí),所述第一狀態(tài)及所述第二狀態(tài)可在GOT實(shí)例中一起成對。
[0096]在實(shí)例15中,實(shí)例I至14中任一者的主題可任選地包括,其中確定所述狀態(tài)中的哪些可一起分組在GOT實(shí)例中包含使用圖論來確定所述狀態(tài)中的哪些可一起分組在GOT實(shí)例中。
[0097]在實(shí)例16中,實(shí)例I至15中任一者的主題可任選地包括,其中使用圖論來確定所述狀態(tài)中的哪些可一起分組在GOT實(shí)例中包含使用圖論識別最大匹配來確定所述狀態(tài)中的哪些可一起分組在GOT實(shí)例中。
[0098]在實(shí)例17中,實(shí)例I至16中任一者的主題可任選地包括發(fā)布所述映像。
[0099]在實(shí)例18中,實(shí)例I至17中任一者的主題可任選地包括,其中所述實(shí)例包含通用實(shí)例及專用實(shí)例,其中所述通用實(shí)例對應(yīng)于所述自動機(jī)的通用狀態(tài),且所述專用實(shí)例對應(yīng)于所述自動機(jī)的專用狀態(tài)。
[0100]在實(shí)例19中,實(shí)例I至18中任一者的主題可任選地包括,其中對應(yīng)于所述通用實(shí)例的所述硬件元件包括狀態(tài)機(jī)元件(SME)及成對群組(G0T),且其中對應(yīng)于所述專用實(shí)例的所述硬件元件包括計(jì)數(shù)器及邏輯元件。
[0101]在實(shí)例20中,實(shí)例I至19中任一者的主題可任選地包括,其中所述自動機(jī)為均齊自動機(jī)。
[0102]在實(shí)例21中,實(shí)例I至20中任一者的主題可任選地包括,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包含將所述自動機(jī)的所述狀態(tài)中的每一者映像到對應(yīng)于所述硬件元件的實(shí)例及確定所述實(shí)例之間的連接性。
[0103]在實(shí)例22中,實(shí)例I至21中任一者的主題可任選地包括,其中所述網(wǎng)表進(jìn)一步包含表示所述硬件元件之間的導(dǎo)體的所述實(shí)例之間的多個(gè)連接。
[0104]在實(shí)例23中,實(shí)例I至22中任一者的主題可任選地包括,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包含將所述自動機(jī)轉(zhuǎn)換成包含實(shí)例的網(wǎng)表,所述實(shí)例對應(yīng)于所述自動機(jī)的除了開始狀態(tài)之外的狀態(tài)。
[0105]在實(shí)例24中,實(shí)例I至23中任一者的主題可任選地包括確定對應(yīng)于所述網(wǎng)表的實(shí)例的所述硬件元件在所述并行機(jī)中的位置。
[0106]在實(shí)例25中,實(shí)例I至24中任一者的主題可任選地包括,其中對狀態(tài)一起分組包括基于包含一群通用元件的硬件元件的物理設(shè)計(jì)來對狀態(tài)一起分組。
[0107]在實(shí)例26中,實(shí)例I至25中任一者的主題可任選地包括確定將使用所述并行機(jī)的哪些導(dǎo)體來連接所述硬件元件;及確定所述并行機(jī)的可編程開關(guān)的設(shè)定,其中所述可編程開關(guān)經(jīng)配置以選擇性地將所述硬件元件耦合在一起。
[0108]在實(shí)例27中,實(shí)例I至26中任一者的主題可任選地包括,其中所述群組實(shí)例包括成對群組(GOT)實(shí)例,且其中分組狀態(tài)包括根據(jù)成對的狀態(tài)驅(qū)動哪些狀態(tài)來使?fàn)顟B(tài)成對。
[0109]在實(shí)例28中,實(shí)例I至27中任一者的主題可任選地包括,其中基于許多未用的第一實(shí)例將狀態(tài)分組在群組實(shí)例中包括:基于以下條件確定第一狀態(tài)與第二狀態(tài)是否可成對:所述第一狀態(tài)或所述第二狀態(tài)均非所述自動機(jī)中的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)中的一者不驅(qū)動不同于所述第一狀態(tài)或所述第二狀態(tài)的任何狀態(tài);所述第一狀態(tài)或所述第二狀態(tài)均非所述自動機(jī)中的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)均驅(qū)動相同的外部狀態(tài);所述第一狀態(tài)或所述第二狀態(tài)中的任一者為最終狀態(tài),且并非最終狀態(tài)的所述第一狀態(tài)或所述第二狀態(tài)不驅(qū)動除了所述第一狀態(tài)或所述第二狀態(tài)的外的任何狀態(tài);及所述第一狀態(tài)及所述第二狀態(tài)均為最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)均驅(qū)動相同的外部狀態(tài)。[0110]在實(shí)例29中,實(shí)例I至28中任一者的主題可任選地包括,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括:將所述狀態(tài)模型化為一圖,其中所述圖的頂點(diǎn)對應(yīng)于狀態(tài),且所述圖的邊對應(yīng)于所述狀態(tài)的可能成對;確定所述圖的匹配頂點(diǎn);及使對應(yīng)于所述匹配頂點(diǎn)的狀態(tài)成對。
[0111]在實(shí)例30中,實(shí)例I至29中任一者的主題可任選地包括,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括:確定所述圖的最大匹配。
[0112]在實(shí)例31中,實(shí)例I至30中任一者的主題可任選地包括,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括:使對應(yīng)于匹配頂點(diǎn)的每一組狀態(tài)成對;及將對應(yīng)于未匹配頂點(diǎn)的每一狀態(tài)映像到GOT實(shí)例,其中所述GOT實(shí)例中的SME實(shí)例將為未用的。
[0113]在實(shí)例32中,實(shí)例I至31中任一者的主題可任選地包括,其中對狀態(tài)一起分組包括:根據(jù)成對的狀態(tài)驅(qū)動哪些狀態(tài)來使?fàn)顟B(tài)成對。
[0114]在實(shí)例33中,實(shí)例I至32中任一者的主題可任選地包括,其中基于許多未用的第一實(shí)例將狀態(tài)一起分組在群組實(shí)例中包括:基于以下條件確定第一狀態(tài)與第二狀態(tài)是否可成對:所述第一狀態(tài)或所述第二狀態(tài)均非所述自動機(jī)中的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)中的一者不驅(qū)動不同于所述第一狀態(tài)或所述第二狀態(tài)的任何狀態(tài);所述第一狀態(tài)或所述第二狀態(tài)均非所述自動機(jī)中的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)均驅(qū)動相同的外部狀態(tài);所述第一狀態(tài)或所述第二狀態(tài)中的任一者為最終狀態(tài),且并非最終狀態(tài)的所述第一狀態(tài)或所述第二狀態(tài)不驅(qū)動除了所述第一狀態(tài)或所述第二狀態(tài)之外的任何狀態(tài);及所述第一狀態(tài)及所述第二狀態(tài)均為最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)均驅(qū)動相同的外部狀態(tài)。
[0115]在實(shí)例34中,實(shí)例I至33中任一者的主題可任選地包括,其中基于許多未用的第一實(shí)例將狀態(tài)一起分組在群組實(shí)例中包括:將所述狀態(tài)模型化為一圖,其中所述圖的頂點(diǎn)對應(yīng)于狀態(tài),且所述圖的邊對應(yīng)于所述狀態(tài)的可能成對;確定所述圖的匹配頂點(diǎn);及使對應(yīng)于所述匹配頂點(diǎn)的狀態(tài)成對。
[0116]在實(shí)例35中,實(shí)例I至34中任一者的主題可任選地包括,其中基于許多未用的第一實(shí)例將狀態(tài)一起分組在群組實(shí)例中:確定所述圖的最大匹配。
[0117]在實(shí)例36中,實(shí)例I至35中任一者的主題可任選地包括,其中基于許多未用的第一實(shí)例將狀態(tài)一起分組在群組實(shí)例中包括:使對應(yīng)于匹配頂點(diǎn)的每一組狀態(tài)成對;及將對應(yīng)于未匹配頂點(diǎn)的每一狀態(tài)映射到一 GOT實(shí)例,其中所述GOT實(shí)例中的SME實(shí)例將為未用的。
[0118]在實(shí)例37中,實(shí)例I至36中任一者的主題可任選地包括,其中裝置經(jīng)配置以將每一對狀態(tài)實(shí)施為所述并行機(jī)中的兩個(gè)硬件元件的一群組。
[0119]實(shí)例38包括通過用實(shí)例I至37中任一者的過程產(chǎn)生的映像來編程的并行機(jī)。
【權(quán)利要求】
1.一種計(jì)算機(jī)實(shí)施的方法,其用于從源代碼產(chǎn)生經(jīng)配置以編程并行機(jī)的映像,所述方法包含: 將源代碼轉(zhuǎn)換成包含多個(gè)互連狀態(tài)的自動機(jī); 將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表,所述網(wǎng)表包含對應(yīng)于所述自動機(jī)的狀態(tài)的實(shí)例,其中所述實(shí)例對應(yīng)于所述并行機(jī)的硬件元件,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括基于所述并行機(jī)的物理設(shè)計(jì)來對狀態(tài)一起分組;及 將所述網(wǎng)表轉(zhuǎn)換成所述映像。
2.根據(jù)權(quán)利要求1所述的方法,其中所述實(shí)例包括對應(yīng)于狀態(tài)機(jī)元件SME硬件元件的SME實(shí)例及對應(yīng)于包含一群SME的硬件元件的SME群組實(shí)例,且其中分組包括將狀態(tài)分組到SME群組實(shí)例中。
3.根據(jù)權(quán)利要求2所述的方法,其中所述物理設(shè)計(jì)包括包含一群SME的所述硬件元件的物理設(shè)計(jì)。
4.根據(jù)權(quán)利要求3所述的方法,其中所述物理設(shè)計(jì)包括對包含一群SME的所述硬件元件中的所述SME的輸入或輸出限制中的一者。
5.根據(jù)權(quán)利要求4所述的方法,其中所述物理設(shè)計(jì)包括包含一群SME的所述硬件元件中的所述SME共享輸出的限制。
6.根據(jù)權(quán)利要求2所述的方法,其中SME群組實(shí)例包括含有兩個(gè)SME實(shí)例的成對群組GOT實(shí)例,且其中所述物理設(shè)計(jì)包括每一 GOT中的所述SME耦合到共同輸出。
7.根據(jù)權(quán)利要求6所述的方法,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包含:` 確定所述狀態(tài)中的哪些可一起分組在GOT實(shí)例中;及 基于所述確定使所述狀態(tài)成對。
8.根據(jù)權(quán)利要求7所述的方法,其中當(dāng)?shù)谝粻顟B(tài)或第二狀態(tài)均非所述自動機(jī)的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)中的一者不驅(qū)動不同于所述第一狀態(tài)或所述第二狀態(tài)的任何狀態(tài)時(shí),所述第一狀態(tài)及所述第二狀態(tài)可在GOT實(shí)例中一起成對。
9.根據(jù)權(quán)利要求7所述的方法,其中當(dāng)?shù)谝粻顟B(tài)或第二狀態(tài)均非所述自動機(jī)的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)均驅(qū)動相同的外部狀態(tài)時(shí),所述第一狀態(tài)及所述第二狀態(tài)可在GOT實(shí)例中一起成對。
10.根據(jù)權(quán)利要求7所述的方法,其中當(dāng)?shù)谝粻顟B(tài)及第二狀態(tài)中的一者為所述自動機(jī)的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)中的另一者不驅(qū)動任何外部狀態(tài)時(shí),所述第一狀態(tài)及所述第二狀態(tài)可在GOT實(shí)例中一起成對。
11.根據(jù)權(quán)利要求7所述的方法,其中當(dāng)?shù)谝粻顟B(tài)及第二狀態(tài)均為所述自動機(jī)的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)均驅(qū)動相同的外部狀態(tài)時(shí),所述第一狀態(tài)及所述第二狀態(tài)可在GOT實(shí)例中一起成對。
12.根據(jù)權(quán)利要求7所述的方法,其中確定所述狀態(tài)中的哪些可一起分組在GOT實(shí)例中包含:使用圖論來確定所述狀態(tài)中的哪些可一起分組在GOT實(shí)例中。
13.根據(jù)權(quán)利要求12所述的方法,其中使用圖論來確定所述狀態(tài)中的哪些可一起分組在GOT實(shí)例中包含:使用圖論識別最大匹配來確定所述狀態(tài)中的哪些可一起分組在GOT實(shí)例中。
14.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含:發(fā)布所述映像。
15.根據(jù)權(quán)利要求1所述的方法,其中所述實(shí)例包含通用實(shí)例及專用實(shí)例,其中所述通用實(shí)例對應(yīng)于所述自動機(jī)的通用狀態(tài),且所述專用實(shí)例對應(yīng)于所述自動機(jī)的專用狀態(tài)。
16.根據(jù)權(quán)利要求15所述的方法,其中對應(yīng)于所述通用實(shí)例的所述硬件元件包括狀態(tài)機(jī)元件SME及成對群組GOT,且其中對應(yīng)于所述專用實(shí)例的所述硬件元件包括計(jì)數(shù)器及邏輯元件。
17.一種計(jì)算機(jī)可讀媒體,其包括指令,所述指令在由所述計(jì)算機(jī)執(zhí)行時(shí)使所述計(jì)算機(jī)執(zhí)行包含以下各者的操作: 將源代碼轉(zhuǎn)換成包含多個(gè)互連狀態(tài)的自動機(jī); 將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表,所述網(wǎng)表包含對應(yīng)于所述自動機(jī)的狀態(tài)的實(shí)例,其中所述實(shí)例對應(yīng)于并行機(jī)的硬件元件,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括基于所述并行機(jī)的物理設(shè)計(jì)來對狀態(tài)一起分組 '及 將所述網(wǎng)表轉(zhuǎn)換成所述映像。
18.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀媒體,其中所述自動機(jī)為均齊自動機(jī)。
19.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀媒體,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包含:將所述自動機(jī)的所述狀態(tài)中的每一者映射到對應(yīng)于所述硬件元件的實(shí)例及確定所述實(shí)例之間的連接性。
20.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀媒體,其中所述網(wǎng)表進(jìn)一步包含所述實(shí)例之間的表示所述硬件元件之間的導(dǎo)體的多個(gè)連接。
21.根據(jù)權(quán)利要求17 所述的計(jì)算機(jī)可讀媒體,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包含:將所述自動機(jī)轉(zhuǎn)換成包含實(shí)例的網(wǎng)表,所述實(shí)例對應(yīng)于所述自動機(jī)的除了開始狀態(tài)之外的狀態(tài)。
22.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀媒體,其中所述指令使所述計(jì)算機(jī)執(zhí)行包含以下各者的操作: 確定對應(yīng)于所述網(wǎng)表的所述實(shí)例的所述硬件元件在所述并行機(jī)中的位置。
23.根據(jù)權(quán)利要求22所述的計(jì)算機(jī)可讀媒體,其中對狀態(tài)一起分組包括:基于包含一群通用元件的硬件元件的物理設(shè)計(jì)來對狀態(tài)一起分組。
24.根據(jù)權(quán)利要求22所述的計(jì)算機(jī)可讀媒體,其中所述指令使所述計(jì)算機(jī)執(zhí)行包含以下各者的操作: 確定將使用所述并行機(jī)的哪些導(dǎo)體來連接所述硬件元件;及 確定所述并行機(jī)的可編程開關(guān)的設(shè)定,其中所述可編程開關(guān)經(jīng)配置以選擇性地將所述硬件元件稱合在一起。
25.一種計(jì)算機(jī),其包含: 存儲器,其上面存儲有軟件 '及 處理器,其通信地耦合到所述存儲器,其中所述軟件在由所述處理器執(zhí)行時(shí)使所述處理器: 將源代碼轉(zhuǎn)換成包含多個(gè)互連狀態(tài)的自動機(jī); 將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表,所述網(wǎng)表包含對應(yīng)于所述自動機(jī)的狀態(tài)的實(shí)例,其中所述實(shí)例對應(yīng)于所述并行機(jī)的硬件元件,其中所述實(shí)例包括多個(gè)第一實(shí)例及含有兩個(gè)或兩個(gè)以上第一實(shí)例的群組實(shí)例,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括基于許多未用的第一實(shí)例來將狀態(tài)一起分組在群組實(shí)例中;及將所述網(wǎng)表轉(zhuǎn)換成所述映像。
26.根據(jù)權(quán)利要求25所述的計(jì)算機(jī),其中所述群組實(shí)例包括成對群組GOT實(shí)例,且其中分組狀態(tài)包括根據(jù)成對的狀態(tài)驅(qū)動哪些狀態(tài)來使?fàn)顟B(tài)成對。
27.根據(jù)權(quán)利要求26所述的計(jì)算機(jī),其中基于許多未用的第一實(shí)例將狀態(tài)分組在群組實(shí)例中包括: 基于以下條件確定第一狀態(tài)與第二狀態(tài)是否可成對: 所述第一狀態(tài)或所述第二狀態(tài)均非所述自動機(jī)中的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)中的一者不驅(qū)動不同于所述第一狀態(tài)或所述第二狀態(tài)的任何狀態(tài); 所述第一狀態(tài)或所述第二狀態(tài)均非所述自動機(jī)中的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)均驅(qū)動相同的外部狀態(tài); 所述第一狀態(tài)或所述第二狀態(tài)中的任一者為最終狀態(tài),且并非最終狀態(tài)的所述第一狀態(tài)或所述第二狀態(tài)不驅(qū)動除了所述第一狀態(tài)或所述第二狀態(tài)之外的任何狀態(tài);及 所述第一狀態(tài)及所述第二狀態(tài)均為最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)均驅(qū)動相同的外部狀態(tài)?!?br>
28.根據(jù)權(quán)利要求25所述的計(jì)算機(jī),其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括: 將所述狀態(tài)模型化為圖,其中所述圖的頂點(diǎn)對應(yīng)于狀態(tài),且所述圖的邊對應(yīng)于所述狀態(tài)的可能成對; 確定所述圖的匹配頂點(diǎn);及 使對應(yīng)于所述匹配頂點(diǎn)的狀態(tài)成對。
29.根據(jù)權(quán)利要求28所述的計(jì)算機(jī),其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括: 確定所述圖的最大匹配。
30.根據(jù)權(quán)利要求29所述的計(jì)算機(jī),其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括: 使對應(yīng)于匹配頂點(diǎn)的每一組狀態(tài)成對;及 將對應(yīng)于未匹配頂點(diǎn)的每一狀態(tài)映射到一 GOT實(shí)例,其中所述GOT實(shí)例中的一個(gè)SME實(shí)例將為未用的。
31.一種系統(tǒng),其包含: 計(jì)算機(jī),其經(jīng)配置以: 將源代碼轉(zhuǎn)換成包含多個(gè)互連狀態(tài)的自動機(jī); 將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表,所述網(wǎng)表包含對應(yīng)于所述自動機(jī)的狀態(tài)的實(shí)例,其中所述實(shí)例對應(yīng)于所述并行機(jī)的硬件元件,其中所述實(shí)例包括多個(gè)第一實(shí)例及含有兩個(gè)或兩個(gè)以上第一實(shí)例的群組實(shí)例,其中將所述自動機(jī)轉(zhuǎn)換成網(wǎng)表包括基于許多未用的第一實(shí)例來將狀態(tài)一起分組在群組實(shí)例中;及將所述網(wǎng)表轉(zhuǎn)換成映像;及裝置,其經(jīng)配置以將所述映像加載到并行機(jī)上。
32.根據(jù)權(quán)利要求31所述的系統(tǒng),其中對狀態(tài)一起分組包括: 根據(jù)成對的狀態(tài)驅(qū)動哪些狀態(tài)來使?fàn)顟B(tài)成對。
33.根據(jù)權(quán)利要求31所述的系統(tǒng),其中基于許多未用的第一實(shí)例將狀態(tài)一起分組在群組實(shí)例中包括: 基于以下條件確定第一狀態(tài)與第二狀態(tài)是否可成對: 所述第一狀態(tài)或所述第二狀態(tài)均非所述自動機(jī)中的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)中的一者不驅(qū)動不同于所述第一狀態(tài)或所述第二狀態(tài)的任何狀態(tài); 所述第一狀態(tài)或所述第二狀態(tài)均非所述自動機(jī)中的最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)均驅(qū)動相同的外部狀態(tài); 所述第一狀態(tài)或所述第二狀態(tài)中的任一者為最終狀態(tài),且并非最終狀態(tài)的所述第一狀態(tài)或所述第二狀態(tài)不驅(qū)動除了所述第一狀態(tài)或所述第二狀態(tài)之外的任何狀態(tài);及 所述第一狀態(tài)及所述第二狀態(tài)均為最終狀態(tài),且所述第一狀態(tài)及所述第二狀態(tài)均驅(qū)動相同的外部狀態(tài)。
34.根據(jù)權(quán)利要求31所述的系統(tǒng),其中基于許多未用的第一實(shí)例將狀態(tài)一起分組在群組實(shí)例中包括: 將所述狀態(tài)模型化為圖,其中所述圖的頂點(diǎn)對應(yīng)于狀態(tài),且所述圖的邊對應(yīng)于所述狀態(tài)的可能成對; 確定所述圖的匹配頂點(diǎn);及 使對應(yīng)于所述匹配頂點(diǎn)的狀態(tài)成對。
35.根據(jù)權(quán)利要求34所述的系統(tǒng),其中基于許多未用的第一實(shí)例將狀態(tài)一起分組在群組實(shí)例中: 確定所述圖的最大匹 配。
36.根據(jù)權(quán)利要求35所述的系統(tǒng),其中基于許多未用的第一實(shí)例將狀態(tài)一起分組在群組實(shí)例中包括: 使對應(yīng)于匹配頂點(diǎn)的每一組狀態(tài)成對;及 將對應(yīng)于未匹配頂點(diǎn)的每一狀態(tài)映射到一 GOT實(shí)例,其中所述GOT實(shí)例中的一個(gè)SME頭例將為未用的。
37.根據(jù)權(quán)利要求31所述的系統(tǒng),其中所述裝置經(jīng)配置以將每一對狀態(tài)實(shí)施為所述并行機(jī)中的兩個(gè)硬件元件的群組。
38.一種通過用根據(jù)權(quán)利要求1所述的過程產(chǎn)生的映像編程的并行機(jī)。
【文檔編號】G06F9/45GK103430148SQ201280013903
【公開日】2013年12月4日 申請日期:2012年1月24日 優(yōu)先權(quán)日:2011年1月25日
【發(fā)明者】許郡君, 保羅·格倫迪寧 申請人:美光科技公司