專利名稱::動態(tài)可重配置處理器的制作方法
技術(shù)領(lǐng)域:
:這里公開的實施例涉及邏輯電路開發(fā),更具體而言涉及用于設(shè)計、開發(fā)和制造專用定制LSI的技術(shù)。
背景技術(shù):
:在使用包括專用集成電路(ASIC)的定制LSI的領(lǐng)域,為了縮短改變規(guī)格或開發(fā)產(chǎn)品的周期,諸如現(xiàn)場可編程門陣列(FPGA)或可編程邏輯器件(PLD)等能夠自由改變處理器中的邏輯電路的配置的可編程邏輯電路已被廣泛使用。但是,由于定制LSI所需的邏輯電路的配置變得復(fù)雜并且其規(guī)模增大,出現(xiàn)了在FPGA或PLD中必須提供多個算術(shù)邏輯單元(ALU)的問題。在大規(guī)模邏輯電路中,考慮到所有組件不是總在工作,因此日本專利申請JP-ANo.2003-198362和JP-ANo.2003-029969中建議了可以動態(tài)重配置過程的邏輯電路的動態(tài)邏輯電路可重配置過程。在設(shè)計和開發(fā)定制LSI的系統(tǒng)時,必須確定哪些應(yīng)用由硬件實現(xiàn),哪些應(yīng)用由軟件實現(xiàn)。如果所有應(yīng)用都可由硬件實現(xiàn),則可以實現(xiàn)高操作速度和低功耗。但是,諸如與芯片制造、設(shè)計周期和硬件設(shè)計者等有關(guān)的設(shè)計和開發(fā)成本增加了。相反,如果在通用處理器上操作的軟件實現(xiàn)所有應(yīng)用,則很難達(dá)到所需的系統(tǒng)性能,但是設(shè)計和開發(fā)成本降低了。軟件開發(fā)者開發(fā)定制LSI時的一個問題是開發(fā)者通常使用諸如"Verilog-HDL"或"VHDL"等軟件開發(fā)者一般不熟悉的硬件描述語言(HDL)來描述定制LSI的規(guī)格。一般需要大量時間來準(zhǔn)備所述HDL的代碼,因為該代碼具有大量描述。此外,通常需要很長時間來執(zhí)行代碼的編譯或仿真。諸如C語言等高度抽象的高級語言或建模工具主要用于檢查應(yīng)用于LSI的算法。但是,如果邏輯電路是使用以高級語言創(chuàng)建的算法準(zhǔn)備的,則被檢查的算法應(yīng)當(dāng)用HDL重寫,從而準(zhǔn)備時間增加。此外,一個潛在問題在于一旦用HDL創(chuàng)建了邏輯電路配置,就很難改變算法。另一個問題在于軟件開發(fā)者通常必須考慮操作合成步驟中的特定硬件限制。
發(fā)明內(nèi)容本發(fā)明公開了從用高級語言描述的應(yīng)用程序生成用于執(zhí)行應(yīng)用程序的處理器的指令集體系結(jié)構(gòu)(此后稱為"ISA")和一系列邏輯電路配置信息的技術(shù)。本發(fā)明還涉及可以通過向動態(tài)邏輯電路可重配置處理器應(yīng)用所生成的ISA和邏輯電路配置信息來在短時間內(nèi)設(shè)計、開發(fā)和制造專用定制LSI的定制LSI開發(fā)平臺技術(shù)。此外,本發(fā)明還公開了一種動態(tài)可重配置處理器,其可使用所生成的邏輯電路配置信息而被重配置。本發(fā)明的目的在于提供定制LSI開發(fā)平臺,其中當(dāng)軟件開發(fā)者在用例如C語言這樣的高級語言準(zhǔn)備應(yīng)用程序時,指令集體系結(jié)構(gòu)(ISA)和邏輯電路配置信息被基于所創(chuàng)建的應(yīng)用程序自動生成。所生成的ISA和邏輯電路配置信息隨后被自動應(yīng)用于動態(tài)可重配置邏輯電路處理器。本發(fā)明的另一目的在于提供從用高級語言創(chuàng)建的應(yīng)用程序生成ISA和邏輯電路配置信息的軟件模塊,以及所生成的ISA和邏輯電路配置信息被自動應(yīng)用于的動態(tài)邏輯電路可重配置處理器。本發(fā)明的另一目的在于提供用于從用高級語言創(chuàng)建的應(yīng)用程序生成ISA和邏輯電路配置信息的程序。根據(jù)本發(fā)明的第一方面,提供了一種包括處理器和軟件模塊的定制LSI開發(fā)平臺。該處理器是動態(tài)邏輯電路可重配置處理器。軟件模塊包括ISA生成器,用于生成處理器的ISA;以及邏輯電路配置生成器,用于從構(gòu)成所述處理器的邏輯電路的可編程元件(PE)的布圖布置信息和所述ISA生成邏輯電路配置信息。所述ISA生成器包括用于提取用高級語言描述的程序的指令模式的裝置,以及用于將所提取的指令模式與存儲在庫中的定制指令的模式相比較的裝置。此外,所述ISA生成器包括用于將所提取的指令替換為所述定制指令和/或所述定制指令的組合的裝置。所述ISA生成器還包括作為用于調(diào)用所提取的定制指令的裝置的函數(shù)調(diào)用,以及用于生成包括處理器的控制指令的中間代碼的裝置。軟件模塊包括用于將中間代碼和定制指令轉(zhuǎn)換為目標(biāo)代碼的裝置。軟件模塊還包括用于從邏輯電路配置信息生成邏輯電路配置目標(biāo)代碼的裝置,以及用于仿真ISA的性能的仿真器。在該實施例中,軟件模塊還包括用于在將所提取的指令替換為定制指令的過程期間未被替換為定制指令的指令生成為新定制指令的創(chuàng)建器。所述處理器包括動態(tài)可重配置邏輯電路、用于存儲定制指令的邏輯電路配置信息的配置存儲器,以及用于存儲所提取的定制指令的存儲器。此外,處理器還包括用于臨時保存執(zhí)行所提取的定制指令的結(jié)果的寄存器文件,以及用于從配置存儲器讀取對應(yīng)于定制指令的邏輯電路配置信息并在執(zhí)行定制指令時重配置動態(tài)可重配置邏輯電路的控制器。此外,控制器還可以包括用于在訪問存儲器時存儲變址的變址寄存器,而處理器還可包括用于存儲變址寄存器的值的棧。根據(jù)本發(fā)明的第二方面,提供了一種用于生成處理器的ISA的方法,包括從用高級語言描述的程序提取指令模式;將所提取的指令模式與庫中存儲的定制指令的模式相比較;以及將所提取的指令替換為定制指令和/或定制指令的組合,以便生成ISA。在一些實施例中,提取被替換為定制指令的邏輯元件連接信息,并生成ISA以包括邏輯元件連接信息。此外,邏輯元件連接信息可被存儲在庫中以便與定制指令相關(guān)聯(lián)。程序指令中在用于將程序指令替換為定制指令和/或定制指令的組合的過程中未被替換為定制指令的指令被創(chuàng)建為新定制指令,并被添加到庫以便再次提取定制指根據(jù)本發(fā)明的第三方面,提供了一種用于生成處理器的邏輯電路配置信息的方法,包括提取用高級語言描述的程序的指令模式,將所提取的指令模式與定制指令的模數(shù)相比較,并將所提取的指令替換為定制指令和/或定制指令的組合。在該實施例中,該方法還包括從與定制指令相關(guān)聯(lián)的邏輯元件連接信息和處理器的可編程元件的布圖布置信息生成邏輯電路配置信息。在這些實施例中,邏輯元件連接信息可被存儲在庫中,處理器可以是動態(tài)邏輯電路可重配置處理器。根據(jù)本發(fā)明的第四方面,提供了一種包括可操作來接收多個程序指令的動態(tài)可重配置微處理器,其中程序指令包括至少第一和第二指令集。此外,處理器包括與程序棧電通信的可重配置邏輯電路,其中可重配置邏輯電路具有可互換的第一和第二數(shù)據(jù)路徑,其中要根據(jù)第一指令集操作的數(shù)據(jù)經(jīng)過第一數(shù)據(jù)路徑,要根據(jù)第二指令集操作的數(shù)據(jù)經(jīng)過第二數(shù)據(jù)路徑。在處理器的這些實施例中,可重配置邏輯電路可根據(jù)微處理器正在執(zhí)行與第一還是第二指令集相對應(yīng)的指令而被重配置。根據(jù)第五方面,本發(fā)明公開了動態(tài)重配置處理電路的方法。在一個實施例中,該方法包括接收要由處理電路執(zhí)行的多個程序指令,其中程序指令包括至少第一和第二指令集。該方法還包括當(dāng)根據(jù)第一指令集操作數(shù)據(jù)時將可重配置邏輯電路配置到第一數(shù)據(jù)路徑,當(dāng)根據(jù)第二指令集操作數(shù)據(jù)時將可重配置邏輯電路配置到第二數(shù)據(jù)路徑;根據(jù)本發(fā)明的第六方面,提供了一種動態(tài)邏輯電路可重配置處理器。該處理器可以包括動態(tài)可重配置邏輯電路、用于存儲用于構(gòu)成動態(tài)可重配置邏輯電路的可編程元件(PE)的每個指令的布圖布置信息的配置存儲器、用于臨時保存執(zhí)行指令的中間結(jié)果的寄存器文件、用于存儲指令的存儲器,以及用于管理處理器(包括指令的執(zhí)行順序)的控制。該控制器還包括用于在訪問存儲器時存儲變址的變址寄存器,而處理器還包括用于存儲變址寄存器的值的桟。根據(jù)本發(fā)明的第七方面,提供了包含在計算機中執(zhí)行的用于生成動態(tài)邏輯電路可重配置處理器的指令集體系結(jié)構(gòu)的一組指令的計算機可讀介質(zhì)。所述一組指令提供以下步驟從用高級語言描述的處理器的應(yīng)用程序中的指令提取指令模式;將所提取的指令模式與庫中存儲的一個或多個定制指令的模式相比較;以及將程序中的指令替換為一個或多個定制指令以便生成指令集體系結(jié)構(gòu)。在第八方面中,指令還包括從與指令集中包括的一個或多個定制指令相關(guān)聯(lián)的邏輯元件連接信息和從處理器的至少一個可編程元件的布圖布置信息生成邏輯電路配置信息的步驟。為了更完整地理解本公開、這里的系統(tǒng)和方法的優(yōu)點,現(xiàn)在結(jié)合附圖參考下面的描述,在附圖中圖1是示出了根據(jù)本發(fā)明的定制LSI開發(fā)平臺的一個實施例的整個結(jié)構(gòu)的框圖2是軟件模塊的一個實施例的詳細(xì)框圖;圖3是ISA生成器的一個實施例的詳細(xì)框圖4是根據(jù)本發(fā)明的動態(tài)邏輯電路可重配置處理器的一個實施例的框圖5是根據(jù)本發(fā)明的動態(tài)邏輯電路處理器的一個實施例的功能框圖;圖6是示出了指令格式的結(jié)構(gòu)的示意圖7是示出了根據(jù)本發(fā)明實施例的可重配置數(shù)據(jù)路徑的結(jié)構(gòu)的示意圖8是示出了根據(jù)所公開原理進行的AES加密過程的流程的示意圖9是AES加密過程的中間代碼的示例性描述;圖IO是AES加密過程的中間代碼的另一示例性描述;以及圖11是根據(jù)所公開的原理進行的DES加密過程的流程圖。具體實施例方式本發(fā)明公開了生成處理器的指令集體系結(jié)構(gòu)(此后稱為"ISA")和一系列邏輯電路配置信息以便從用高級語言描述的應(yīng)用程序執(zhí)行應(yīng)用程序的技術(shù)。此外,本發(fā)明還涉及可以通過將所生成的ISA和邏輯電路配置信息應(yīng)用于動態(tài)邏輯電路可重配置處理器來在短時間內(nèi)設(shè)計、開發(fā)和制造專用定制LSI的定制LSI開發(fā)平臺技術(shù)。根據(jù)所公開的原理,軟件開發(fā)者可以采用所公開的技術(shù)來開發(fā)應(yīng)用,而不考慮硬件特性。因此可減少開發(fā)所需的整個執(zhí)行周期數(shù),于是可以在短時間內(nèi)開發(fā)專用定制LSI。此外,可以實現(xiàn)用于開發(fā)定制LSI的屬性的共性(平臺),從而使設(shè)計和開發(fā)屬性標(biāo)準(zhǔn)化。在詳細(xì)描述所公開的技術(shù)之前,應(yīng)當(dāng)首先定義本公開全文中使用的一些術(shù)語。在本公開中,"動態(tài)邏輯電路可重配置處理器"是具有根據(jù)指令來動態(tài)重配置和處理處理器中的邏輯電路的處理器。"定制LSI"是包括根據(jù)需要被設(shè)計和制造的專用集成電路(ASIC)的LSI。"定制指令"是由過程執(zhí)行并由用戶定義的指令。"指令集"是處理器中包括的一系列指令代碼。"指令集體系結(jié)構(gòu)"(ISA)由生成處理器的邏輯電路配置信息所需的邏輯元件連接信息和指令集構(gòu)成。"邏輯元件連接信息"例如是定義以此順序排列的AND(與)電路、OR(或)電路和XOR(異或)電路的信息。相應(yīng)地,在動態(tài)邏輯電路可重配置處理器的邏輯電路中,不包括關(guān)于AND電路、OR電路或XOR電路位于何處或什么導(dǎo)線將AND電路、OR電路和XOR電路彼此連接的信息。"定制邏輯電路"是用于實現(xiàn)定制指令的邏輯電路,并且是由于性能需要而不能在通用處理器中實現(xiàn)的電路或功能。"平臺"是由可被用來實現(xiàn)不同的定制邏輯電路的公共硬件和軟件構(gòu)成的系統(tǒng)。"數(shù)據(jù)路徑"是用于執(zhí)行定制指令的處理器的邏輯電路。"可編程元件"是用于構(gòu)造諸如AND電路、OR電路、XOR電路或ALU電路等邏輯電路的元件?,F(xiàn)在依照這些定義參考圖1,其示出了根據(jù)本發(fā)明的定制LSI開發(fā)平臺1的一個實施例的整體結(jié)構(gòu)的框圖。定制LSI開發(fā)平臺1包括動態(tài)邏輯電路可重配置處理器20和軟件模塊10。軟件模塊10由一系列軟件構(gòu)成,所述一系列軟件用于針對每個定制指令生成用于動態(tài)改變動態(tài)邏輯電路可重配置處理器20中的ISA和動態(tài)邏輯電路可重配置處理器20中的可重配置邏輯電路24(可重配置數(shù)據(jù)路徑)的邏輯電路配置信息。如果軟件開發(fā)者用C語言描述源程序100,則ISA生成器110生成和編譯中間代碼111和ISA112以便生成程序目標(biāo)代碼141和邏輯電路配置目標(biāo)代碼142。動態(tài)邏輯電路可重配置處理器20處理輸入數(shù)據(jù)27的操作,同時基于程序目標(biāo)代碼141和邏輯電路配置目標(biāo)代碼142針對每個定制指令改變可重配置邏輯電路24,并且輸出數(shù)據(jù)28作為最終結(jié)果。圖2是圖l所示的軟件模塊10的詳細(xì)框圖。如果應(yīng)用C源程序100,則ISA生成器110啟動并分析C源程序100的指令結(jié)構(gòu)。此外,在定制指令庫160中存儲有事先定義的多個定制指令。ISA生成器110提取在C源程序100中正被使用或被重復(fù)使用的指令的模式,將其與庫160中的定制指令的模式相比較,將C源程序100中的指令替換為定制指令,并生成中間代碼111和ISA112。中間代碼111由定制指令的函數(shù)調(diào)用和控制指令構(gòu)成,ISA112由定制指令和邏輯元件連接信息構(gòu)成。中間代碼lll被編譯器120編譯成匯編代碼121,然后變?yōu)槌绦蚰繕?biāo)代碼141。此外,編譯器120將中間代碼111和ISA112的定制指令(例如將乘法定義成"X"的定制指令)編譯成匯編代碼121。ISA112的定制指令與中間代碼111一起被編譯器120轉(zhuǎn)換成匯編代碼121,然后被匯編器140變?yōu)槌绦蚰繕?biāo)代碼141。邏輯電路配置生成器130從ISA112的邏輯元件連接信息和可重配置邏輯電路24的可編程元件(PE)的布圖布置信息1310生成邏輯電路配置信息1311。然后,它通過匯編器140將其轉(zhuǎn)換為邏輯電路配置目標(biāo)代碼142。軟件模塊還包括用于仿真ISA112的性能(具體而言是程序目標(biāo)代碼141和邏輯電路配置目標(biāo)代碼142)的仿真器170。圖3是ISA生成器IIO的詳細(xì)框圖。如圖3所示,模式模塊1110參考庫160提取在C源程序100中正被使用或重復(fù)使用的指令,將所提取的指令的模式與存儲在庫160中的定制指令的模式相比較,并將相同指令替換為定制指令(1140)。未被模式模塊1110作為定制指令提取的(未作為定制指令被事先創(chuàng)建的)各個指令被創(chuàng)建器150新定義和創(chuàng)建,或者如果所述各個指令可以被合成為已有的定制指令,則它們被合成為己有的定制指令并被定義為新定制指令(1160)。庫160的定制指令總是通過定制指令(1160)的添加和合成而被更新。模式模塊1110將C源程序100的指令替換為定制指令,直到C源程序IOO可被執(zhí)行。這包括被覆蓋指令1120和未被覆蓋指令1130。此外,模式模塊1110參考邏輯元件連接信息(與定制指令相關(guān)聯(lián)并存儲在庫160中)和PE的布圖布置信息1150,針對每個定制指令生成可重配置邏輯電路24的邏輯電路配置信息。因此,ISA生成器110產(chǎn)生(1170)ISA112和中間代碼lll。圖4是示出了根據(jù)本發(fā)明實施例的動態(tài)邏輯電路可重配置處理器20的框圖。動態(tài)邏輯電路可重配置處理器20包括可重配置數(shù)據(jù)路徑(可重配置邏輯電路)24并通過順序控制執(zhí)行程序。動態(tài)邏輯電路可重配置處理頁器20執(zhí)行C源程序100的過程內(nèi)容,同時針對每個步驟重置邏輯電路配置。此外,步驟是執(zhí)行一個指令,包括設(shè)置邏輯電路配置和執(zhí)行操作,所需的時段。此外,邏輯電路配置信息是用于執(zhí)行定制指令的可重配置邏輯電路的配置信息。動態(tài)邏輯電路可重配置處理器20包括控制器21、棧22、配置存儲器23、可重配置數(shù)據(jù)路徑24、寄存器文件25和存儲器26。控制器21執(zhí)行動態(tài)邏輯電路可重配置處理器20的整個管理,例如配置數(shù)據(jù)加載和存儲器26中的數(shù)據(jù)的加載。控制器21包括形成于其中的7個22位變址寄存器211,并且可使用變址寄存器211的值來訪問存儲器26。此外,控制器21連接到用于存儲變址寄存器211的值的棧22。存儲器26是用于存儲動態(tài)邏輯電路可重配置處理器20的指令的存儲器件。圖5示出了圖4所示動態(tài)邏輯電路處理器20的功能框圖。該功能圖示出了根據(jù)所公開的原理,從高級語言源程序動態(tài)重配置邏輯電路。如上所述,ISA生成器分析高級源程序IOO的指令結(jié)構(gòu)。ISA生成器提取在C源程序100中正被使用或重復(fù)使用的指令的模式,并將其與庫中的定制指令的模式相比較。然后,ISA生成器將源程序100中的指令替換為定制指令,并生成中間代碼(見上文)和ISA112。ISA112由(一個或多個)定制指令和邏輯元件連接信息構(gòu)成。邏輯電路配置信息是從ISA112的邏輯元件連接信息和可重配置數(shù)據(jù)路徑24的PE的布圖布置信息生成的。然后,邏輯電路配置信息被轉(zhuǎn)換成邏輯電路配置目標(biāo)代碼142。這一般是由匯編器(例如上述匯編器140)完成的。根據(jù)一個實施例,可以創(chuàng)建多個邏輯電路配置信息目標(biāo)代碼142的集合。在圖5中,這些目標(biāo)代碼的示例被標(biāo)記為142a、142b、142c,但是對可以生成的各目標(biāo)代碼的數(shù)量沒有限制,并且在示例性實施例中,使用最合適的指令集。每個目標(biāo)代碼集l42a、142b、142c規(guī)定了動態(tài)可重配置邏輯電路24中的相應(yīng)配置。它們被分別標(biāo)記為24a、24b、24c,并代表包括邏輯電路24的可編程邏輯元件中的分別的配置。一旦創(chuàng)建了所需的邏輯電路24配置,該實施例中就使用64位寄存器來利用選定配置執(zhí)行所需代碼。這里公開的動態(tài)可重配置邏輯電路處理器20可被重配置來提供一般由多個專門處理單元提供的處理操作。例如,在一個時間點,處理器20可被配置為充當(dāng)計算機的中央處理單元,而在第二時間點,它被配置為充當(dāng)專用處理器,然后在第三時間點,它被配置為充當(dāng)數(shù)字信號處理器。通過利用單個處理器20提供這里公開的功能,所公開的原理縮小了整體器件大小和空間。此外,處理能力的靈活性增加而不增加制造成本。具體而言,處理器20中的邏輯元件被映射到要被執(zhí)行的特定應(yīng)用。因此,利用所公開的技術(shù),每個應(yīng)用被更高效地執(zhí)行,因為每個不同應(yīng)用是由針對每個應(yīng)用重配置的硬件執(zhí)行的。此外,處理器20的這種重配置是根據(jù)要被處理的應(yīng)用代碼自動實現(xiàn)的。圖6示出了存儲器26存儲的指令格式的結(jié)構(gòu)。在圖6中,在部分"Exe-Non"中,確定指令是通過可重配置數(shù)據(jù)路徑24的操作執(zhí)行,還是僅通過操縱變址寄存器211的值而不使用可重配置數(shù)據(jù)路徑24來執(zhí)行。如果指令是通過可重配置數(shù)據(jù)路徑24的操作執(zhí)行的,則其中存儲有足夠配置數(shù)據(jù)的配置存儲器23的地址被存儲,并且用于該操作的寄存器文件25被指定。如果指令是通過操縱變址寄存器211的值來執(zhí)行的,則操作內(nèi)容和用于操作的變址寄存器211被指定。如果在部分"ImData"中指定存儲器地址,則存儲器26和變址寄存器211之間的數(shù)據(jù)交換可被執(zhí)行。在部分"Flow-Code"中,程序的執(zhí)行順序控制可被指定,并且如果分支條件可被指定,則可使用可重配置數(shù)據(jù)路徑24處的操作結(jié)果來分支處理。部分"Dt—Adr"和"Rel一Adr"被用于指定相關(guān)地址。部分"Work—Rate"可被用于指定在可重配置數(shù)據(jù)路徑24根據(jù)過程內(nèi)容以1、2、4或8個時鐘周期執(zhí)行過程時的時鐘周期數(shù)。簡要回看圖4,配置存儲器23是用于存儲配置數(shù)據(jù)的存儲器。配置存儲器23可以存儲定制指令的128個配置數(shù)據(jù)。寄存器文件25是用于存儲可重配置數(shù)據(jù)路徑24的每個PE處的操作結(jié)果,并將它傳送到不同功能的寄存器。一個字具有256位寬度。寄存器文件25連接到可重配置數(shù)據(jù)路徑24的PE,存儲的寄存器文件25的位位置根據(jù)用于輸出數(shù)據(jù)的PE的位置確定。圖7示出了根據(jù)本發(fā)明的實施例的可重配置數(shù)據(jù)路徑24的結(jié)構(gòu)。在可重配置數(shù)據(jù)路徑24中,PE被布置在16行X8列中。PE具有6個輸入和兩個輸出,并且可以向輸入分配任意邏輯功能。PE通過垂直線路(VL)和水平線路(HL)彼此連接。VL連接到一列的各個PE,每個VL連接到HL。切換單元(SW)控制信號從VL到HL或從HL到VL的交換。VL具有64位寬度,其數(shù)量為8,HL具有64位寬度,其數(shù)量為7。此外,64位數(shù)據(jù)可一次從存儲器被加載到可重配置數(shù)據(jù)路徑24。在動態(tài)邏輯電路可重配置處理器20中,控制器21從存儲器26讀取程序,并確定指令使用可重配置數(shù)據(jù)路徑24還是僅操作變址寄存器211的值。在使用可重配置數(shù)據(jù)路徑24的情形下,控制器21從程序中指定的配置存儲器23的地址讀取足夠的配置數(shù)據(jù),并將該數(shù)據(jù)加載到可重配置數(shù)據(jù)路徑24。如果配置(邏輯電路配置)固定了,則可重配置數(shù)據(jù)路徑24執(zhí)行輸入數(shù)據(jù)的處理。在每個PE中執(zhí)行的操作結(jié)果可被輸出到VL并寫入寄存器文件25。作為中間結(jié)果,數(shù)據(jù)可被傳送到獨立的函數(shù)并且可被使用。通過使用寄存器文件25,大型過程可被劃分為多個函數(shù)并可被隨后執(zhí)行。在使用變址寄存器211的值的情形下,由于在變址寄存器211中準(zhǔn)備操作電路,因此在程序中指定的操作在操作電路中被執(zhí)行,并且被過渡到下一指令。實施例1:通過使用根據(jù)本發(fā)明實施例的軟件模塊10和動態(tài)邏輯電路可重配置處理器20,開發(fā)出增強加密標(biāo)準(zhǔn)(AES)的加密定制LSI。AES被選擇作為用于替換數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)的標(biāo)準(zhǔn)加密方法。ISA是從用C語言創(chuàng)建的AES的程序生成的,AES加密過程在動態(tài)邏輯電路可重配置處理器20中執(zhí)行,以便執(zhí)行性能評估。在AES中,明文的位數(shù)或密鑰的位數(shù)是可以選擇的。但是,在本實施例中,它們都被設(shè)置為128位。圖8示出了AES加密過程的流程。首先,稱為"State"的二維布置的數(shù)據(jù)格式明文被布置。輪轉(zhuǎn)密鑰(roundkey)被生成(SI),State和輪轉(zhuǎn)密鑰的異或被執(zhí)行(S2)。輪轉(zhuǎn)函數(shù)被執(zhí)行預(yù)定次數(shù)。在本實施例中,輪轉(zhuǎn)函數(shù)在以下條件下被執(zhí)行9次。通過以下4個轉(zhuǎn)換來執(zhí)行輪轉(zhuǎn)函數(shù)。首先,具有8位輸入和8位輸出(byte-sub)的s-box轉(zhuǎn)換過程被執(zhí)行(S3)。接下來,用于執(zhí)行關(guān)于行的字節(jié)單元的循環(huán)移位的Shift-Row被執(zhí)行(S4)。接下來,針對每列的矩陣操作Mix-Column被執(zhí)行(S5)。此外,State和輪轉(zhuǎn)密鑰的異或(Add-Round-Key)被執(zhí)行(S6)。步驟S3到S6被重復(fù)執(zhí)行9次。最后,Byte-sub(S7)、Shift-Row(S8)禾nAdd-Round-Key(S9)被執(zhí)行,并且獲得密文(Encrypted)(S10)。四個轉(zhuǎn)換過程Byte-sub、Shift-Row、Mix-Column和Add-Round-Key成為加密過程的核心。當(dāng)執(zhí)行這四個轉(zhuǎn)換過程時,用于實現(xiàn)每個轉(zhuǎn)換過程的定制指令被創(chuàng)建。在該實施例中,Byte-sub、Shift-Row、Mix-Column禾口Add-Round-Key被分別劃分成32位、128位、64位和128位的單元。因此,用于劃分和組合數(shù)據(jù)的指令被添加。圖9和圖10是用C語言描述的AES加密過程的中間代碼111的示例,包括Byte-sub、Shift-Row、Mix-Column和Add-Round-Key。如圖9和圖10所示,AES加密過程的主例程(mainroutine)是"encrypt"函數(shù)。在圖9的中間代碼中,定制指令的頭部被附著以"vul-"。因此,在整個過程中獲得309個周期,在加密過程中獲得79個周期。實施例2:DES是美國標(biāo)準(zhǔn)與技術(shù)研究院(NationalInstituteofStandardsandTechnology)規(guī)定的加密標(biāo)準(zhǔn)。通過輸入64位明文和56位密鑰作為在加密和解密中使用相同密鑰的公共密鑰加密,輸出64位密文。在DES加密過程中,64位的串被首先輸入并經(jīng)歷基于換位表的初始換位。經(jīng)換位的位串被按32位劃分。經(jīng)劃分的位串分別被利用密鑰和加密函數(shù)F被加密。密鑰使用從輸入的56位密鑰生成的48位輪轉(zhuǎn)密鑰。該過程被執(zhí)行16次,所創(chuàng)建的左和右位串被組合以執(zhí)行最終換位。因此,結(jié)果被輸出作為密文。圖11是DES加密過程的流程圖。在動態(tài)邏輯電路可重配置處理器20的DES加密過程中需要6個定制指令。表1示出了在DES加密過程中使用的定制指令及其內(nèi)容。表l<table>tableseeoriginaldocumentpage23</column></row><table>首先,通過指令0,56位密鑰被從存儲器輸入到可重配置數(shù)據(jù)路徑24,并且其換位被同時執(zhí)行。類似地,通過指令1,64位明文被輸入,并且其初始換位被同時執(zhí)行。接下來,根據(jù)輪轉(zhuǎn)號碼,通過指令2或3執(zhí)行密鑰的循環(huán)移位。在指令4中,密鑰的縮減換位和加密F函數(shù)通過一個指令被執(zhí)行。指令之間的數(shù)據(jù)交換是通過寄存器文件25執(zhí)行的。該輪轉(zhuǎn)過程被執(zhí)行16次。在圖11中,該重復(fù)過程被條件分支過程執(zhí)行,但是在本實施例中,該重復(fù)過程被展開并被順序執(zhí)行。這是為了減小設(shè)計電路規(guī)模,因為為了執(zhí)行條件分支過程,必須制造用于確定輪轉(zhuǎn)號碼的冗余電路。最后執(zhí)行初始換位的反轉(zhuǎn),64位密文在存儲器中輸出。表2示出了在由動態(tài)邏輯電路可重配置處理器20執(zhí)行DES加密過程時的操作頻率和吞吐量。在本實施例中,DES加密過程的操作頻率是6.25MHz。作為比較,表2示出了由IntelPentium4執(zhí)行DES加密過程的結(jié)果。'表2<table>tableseeoriginaldocumentpage23</column></row><table>Pentium4的DES加密過程是通過編譯C語言的DES加密過程的規(guī)范的說明來執(zhí)行的。在編譯選項中使用-02。從表2看,動態(tài)邏輯電路可重配置處理器20的DES加密過程表現(xiàn)出比IntelPentium(注冊商標(biāo))4的DES加密過程高3.8倍的性能。這是因為在DES加密過程中可以使用這樣的特性,即充當(dāng)動態(tài)邏輯電路可重配置處理器20的組件的PE可以以一位為單元向輸入分配任意邏輯功能。在DES加密過程中,一位單元的換位或替換被重復(fù)。在諸如IntelPentium4等32位微處理器中,在以一位為單元執(zhí)行過程時需要提取一位的過程。在以一位為單元的換位過程中,動態(tài)邏輯電路可重配置處理器20的PE將數(shù)據(jù)從寄存器文件25輸入到可重配置數(shù)據(jù)路徑24,將其移動到指定的位位置,并將其再次存儲在寄存器文件25中。因此,通過一個指令,可以執(zhí)行大量數(shù)據(jù)換位過程。另外,由于PE可以向輸入分配任意邏輯功能,所以依賴于數(shù)據(jù)的多個過程被一個指令合成和執(zhí)行,從而減少了所執(zhí)行的時鐘周期數(shù)。在可重配置數(shù)據(jù)路徑24的DES加密過程中,64位明文加密所需的時鐘周期數(shù)是70個周期??傊景l(fā)明提供了定制LSI開發(fā)平臺,其中當(dāng)軟件開發(fā)者用高級語言(例如C語言)準(zhǔn)備應(yīng)用程序時,ISA和邏輯電路配置信息被基于所創(chuàng)建的應(yīng)用程序自動生成。所生成的ISA和邏輯電路配置信息隨后被自動應(yīng)用到動態(tài)可重配置邏輯電路處理器。因此,所公開的原理可被用作為設(shè)計和開發(fā)定制LSI以及制造專用定制LSI的平臺。雖然上面已經(jīng)描述了所公開的原理的各種實施例,但是應(yīng)當(dāng)理解,它們僅是示例性而非限制性的。因此,本發(fā)明的精神和范圍不應(yīng)限于上述任意示例性實施例,而是僅根據(jù)本公開公布的任意權(quán)利要求及其等同物來限定。此外,所描述的實施例中提供了上述優(yōu)點和特征,但是它們不應(yīng)當(dāng)限制實現(xiàn)任意或全部上述優(yōu)點的過程和結(jié)構(gòu)的所公布的權(quán)利要求的應(yīng)用。此外,這里的各部分的標(biāo)題被提供以與37CFR1.77的建議相一致,或者提供組織提示。這些標(biāo)題不應(yīng)限制或限定本公開公布的任意權(quán)利要求中列出的發(fā)明。具體例如,雖然標(biāo)題是"
技術(shù)領(lǐng)域:
",但是這些權(quán)利要求不應(yīng)受限于在該標(biāo)題下選擇的用于描述所謂的
技術(shù)領(lǐng)域:
的語言。此外,"
背景技術(shù):
"中對技術(shù)的描述不應(yīng)被理解為承認(rèn)該技術(shù)是本公開中任意發(fā)明的現(xiàn)有技術(shù)。"技術(shù)內(nèi)容"也不應(yīng)被理解為在所公布的權(quán)利要求中列出的對發(fā)明的限定。此外,本公開中對"發(fā)明"的單數(shù)引用不應(yīng)被用來證明本公開中只有單個創(chuàng)新點。根據(jù)本公開公布的多個權(quán)利要求的限制,可以列舉多個發(fā)明,因此這些權(quán)利要求定義了受保護的發(fā)明及其等同物。在所有情形下,這些權(quán)利要求的范圍應(yīng)被理解為它們在本公開中體現(xiàn)出的本質(zhì),而不應(yīng)受限于這里列舉的標(biāo)題??梢栽诓幻撾x本發(fā)明的廣泛精神和范圍的情況下作出各種實施例和改變。上述實施例意在說明本發(fā)明,而非限制本發(fā)明的范圍。本發(fā)明的范圍由所附權(quán)利要求而非實施例示出。在本發(fā)明的權(quán)利要求的等同物的意義內(nèi)和權(quán)利要求范圍內(nèi)作出的各種修改應(yīng)被認(rèn)為落在本發(fā)明的范圍內(nèi)。本發(fā)明基于2004年11月30日提交的日本專利申請No.2004-345400、2005年11月24日提交的日本專利申請No.2005-338457和2005年11月4日提交的美國專利申請No.11/267,026,并且包括說明書、權(quán)利要求書、附圖和摘要。上述日本專利申請的全部公開內(nèi)容通過引用結(jié)合于此。權(quán)利要求1.一種動態(tài)可重配置微處理器,包括可操作來接收多個程序指令的程序棧,所述程序指令包括至少第一和第二指令集;以及與所述程序棧進行電通信的可重配置邏輯電路,所述可重配置邏輯電路具有可互換的第一和第二數(shù)據(jù)路徑,其中要根據(jù)所述第一指令集被操作的數(shù)據(jù)經(jīng)過所述第一數(shù)據(jù)路徑,要根據(jù)所述第二指令集被操作的數(shù)據(jù)經(jīng)過所述第二數(shù)據(jù)路徑,并且其中,所述可重配置邏輯電路可根據(jù)所述微處理器正在執(zhí)行與所述第一還是所述第二指令集相對應(yīng)的指令而被重配置。2.根據(jù)權(quán)利要求1所述的動態(tài)可重配置微處理器,其中所述程序棧是程序控制器的一部分,并且其中所述程序控制器提供從所述程序棧到所述可重配置邏輯電路的電通信。3.根據(jù)權(quán)利要求1所述的動態(tài)可重配置微處理器,其中所述第一指令集是通用指令集,并且其中所述第一數(shù)據(jù)路徑在功能上包括通用微處理器°4.根據(jù)權(quán)利要求3所述的動態(tài)可重配置微處理器,其中所述第二指令集是數(shù)字信號處理指令集,并且其中所述第二數(shù)據(jù)路徑在功能上包括數(shù)字信號處理器。5.根據(jù)權(quán)利要求4所述的動態(tài)可重配置微處理器,其中所述數(shù)字信號處理指令集針對數(shù)據(jù)加密或解密而被優(yōu)化。6.根據(jù)權(quán)利要求1所述的動態(tài)可重配置微處理器,其中在所述程序棧中接收的程序指令包括至少第三指令集,并且其中所述可重配置邏輯電路還包括第三數(shù)據(jù)路徑,其中要根據(jù)所述第三指令集被操作的數(shù)據(jù)經(jīng)過所述第三數(shù)據(jù)路徑,其中所述可重配置邏輯電路可操作來根據(jù)正在執(zhí)行與第一、第二還是第三指令集相對應(yīng)的指令而被重配置。7.根據(jù)權(quán)利要求1所述的動態(tài)可重配置微處理器,其中所述程序桟還與所述可重配置邏輯電路進行電通信。8.根據(jù)權(quán)利要求7所述的動態(tài)可重配置微處理器,其中從所述程序棧到所述可重配置邏輯電路的電通信經(jīng)過存儲所述可重配置邏輯的至少一種配置的配置存儲器。9.根據(jù)權(quán)利要求7所述的動態(tài)可重配置微處理器,其中所述可重配置邏輯電路包括可被互換地選擇的可編程元件的陣列,其中所述可編程元件的陣列的第一子集是所述第一數(shù)據(jù)路徑的一部分,并且其中所述可編程元件的陣列的第二子集是所述第二數(shù)據(jù)路徑的一部分。10.根據(jù)權(quán)利要求9所述的動態(tài)可重配置微處理器,其中所述可編程元件的陣列中的至少一些可編程元件是所述第一數(shù)據(jù)路徑和所述第二數(shù)據(jù)路徑二者的一部分。11.根據(jù)權(quán)利要求1所述的動態(tài)可重配置微處理器,其中所述第一和第二指令集中的至少一個和所述至少一個指令集在所述可重配置邏輯電路中的相應(yīng)數(shù)據(jù)路徑適應(yīng)于在所述微處理器體系結(jié)構(gòu)已根據(jù)未來的設(shè)計需耍被布圖之后被定義。12.根據(jù)權(quán)利要求11所述的動態(tài)可重配置微處理器,其中所述相應(yīng)數(shù)據(jù)路徑包括可根據(jù)制造掩膜選項而被選擇的邏輯元件。13.根據(jù)權(quán)利要求11所述的動態(tài)可重配置微處理器,其中所述相應(yīng)數(shù)據(jù)路徑包括可根據(jù)所述設(shè)計需要而被編程的可編程邏輯元件。14.根據(jù)權(quán)利要求13所述的動態(tài)可重配置微處理器,其中所述可編程邏輯元件包括現(xiàn)場可編程門陣列的門。15.根據(jù)權(quán)利要求13所述的動態(tài)可重配置微處理器,其中所述可編程邏輯元件包括可編程邏輯器件的門。16.根據(jù)權(quán)利要求1所述的動態(tài)可重配置微處理器,其中要根據(jù)所述第一或第二指令集操作的所述數(shù)據(jù)包括從源應(yīng)用代碼生成的目標(biāo)代碼。17.根據(jù)權(quán)利要求16所述的動態(tài)可重配置微處理器,其中所述可重配置邏輯電路可使用從所述源應(yīng)用代碼生成的配置信息,根據(jù)所述微處理器正在執(zhí)行與所述第一還是第二指令集相對應(yīng)的指令而被重配置。18.—種動態(tài)重配置處理電路的方法,所述方法包括接收要被所述處理電路執(zhí)行的多個程序指令,所述程序指令包括至少第一和第二指令集;當(dāng)根據(jù)所述第一指令集操作數(shù)據(jù)時,將可重配置邏輯電路配置到第一數(shù)據(jù)路徑中;以及當(dāng)根據(jù)所述第二指令集操作數(shù)據(jù)時,將可重配置邏輯電路配置到第二數(shù)據(jù)路徑中。19.根據(jù)權(quán)利要求18所述的方法,其中所述第一指令集是通用指令集,所述方法包括將可重配置邏輯電路配置到第一數(shù)據(jù)路徑中,所述第一數(shù)據(jù)路徑在功能上包括用于根據(jù)所述第一指令集來操作數(shù)據(jù)的通用微處理器o20.根據(jù)權(quán)利要求19所述的方法,其中所述第二指令集是數(shù)字信號處理指令集,所述方法還包括將可重配置邏輯電路配置到第二數(shù)據(jù)路徑中,所述第二數(shù)據(jù)路徑在功能上包括用于根據(jù)所述第二指令集來操作數(shù)據(jù)的數(shù)字信號處理器。21.根據(jù)權(quán)利要求20所述的方法,其中根據(jù)所述第二指令集來操作數(shù)據(jù)包括加密或解密數(shù)據(jù)。22.根據(jù)權(quán)利要求18所述的方法,其中接收多個程序指令還包括接收包括第三指令集的多個程序指令,其中所述方法還包括當(dāng)根據(jù)所述第三指令集來操作數(shù)據(jù)時,將可重配置邏輯電路配置到第三數(shù)據(jù)路徑中。23.根據(jù)權(quán)利要求18所述的方法,還包括在配置存儲器中存儲所述可重配置邏輯的至少一種配置。24.根據(jù)權(quán)利要求18所述的方法,其中將可重配置邏輯電路配置到第一或第二數(shù)據(jù)路徑中包括配置可被互換地選擇的可編程元件的陣列,其中所述可編程元件的陣列的第一子集是所述第一數(shù)據(jù)路徑的一部分,所述可編程元件的陣列的第二子集是所述第二數(shù)據(jù)路徑的一部分。25.根據(jù)權(quán)利要求24所述的方法,其中所述可編程元件的陣列中的至少一些可編程元件是所述第一數(shù)據(jù)路徑和所述第二數(shù)據(jù)路徑二者的一部分。26.根據(jù)權(quán)利要求18所述的方法,其中將可重配置邏輯電路配置到所述第一或第二數(shù)據(jù)路徑中包括在根據(jù)未來的設(shè)計需要對所述微處理器體系結(jié)構(gòu)進行布圖之后,將可重配置邏輯電路配置到第一或第二數(shù)據(jù)路徑中。27.根據(jù)權(quán)利要求26所述的方法,其中將可重配置邏輯電路配置到第一或第二數(shù)據(jù)路徑中包括根據(jù)制造掩膜選項來選擇可編程邏輯元件的陣列。28.根據(jù)權(quán)利要求26所述的方法,其中將可重配置邏輯電路配置到第一或第二數(shù)據(jù)路徑中包括根據(jù)所述設(shè)計需要來對所述邏輯元件編程。29.—種用于結(jié)構(gòu)和電路開發(fā)的定制LSI開發(fā)平臺,所述平臺包括指令集生成器,用于生成處理器的指令集,所述指令包括來自至少第一和第二指令集的指令;編譯器,用于根據(jù)所生成的指令集生成指令;以及邏輯電路配置生成器,所述邏輯電路配置生成器生成動態(tài)可重配置邏輯電路中的第一和第二數(shù)據(jù)路徑的邏輯電路配置信息,其中所述第一和第二數(shù)據(jù)路徑提供可操作來執(zhí)行分別從第一和第二指令集生成的指令的電路。30.根據(jù)權(quán)利要求29所述的定制LSI開發(fā)平臺,還包括根據(jù)邏輯電路配置信息被重配置并且可操作來執(zhí)行用于LSI開發(fā)目的生成的指令的動態(tài)可重配置處理器。31.根據(jù)權(quán)利要求30所述的定制LSI開發(fā)平臺,其中所述指令集生成器可操作來從用高級語言描述的程序中的指令提取指令模式;將所提取的指令模式與庫中存儲的一個或多個定制指令的模式相比較;以及用所述一個或多個定制指令替換所述程序中的指令模式。32.根據(jù)權(quán)利要求31所述的定制LSI開發(fā)平臺,其中所述指令集生成器還可操作來將其生成的指令集提供給所述編譯器,從而所述編譯器可操作來生成所述指令。33.根據(jù)權(quán)利要求32所述的定制LSI開發(fā)平臺,其中所生成的指令包括目標(biāo)代碼。34.根據(jù)權(quán)利要求31所述的定制LSI開發(fā)平臺,其中所述動態(tài)可重配置處理器還包括動態(tài)可重配置邏輯電路;配置存儲器,所述配置存儲器存儲所述一個或多個定制指令的邏輯電路配置信息;存儲器,所述存儲器保存所述一個或多個定制指令;寄存器文件,所述寄存器文件臨時保存執(zhí)行所述一個或多個定制指令的結(jié)果;以及控制器,所述控制器從所述配置存儲器讀取與所述一個或多個定制指令相對應(yīng)的邏輯電路配置信息,并在執(zhí)行所述一個或多個定制指令時重配置所述動態(tài)可重配置邏輯電路。35.根據(jù)權(quán)利要求34所述的定制LSI開發(fā)平臺,其中所述控制器還包括用于當(dāng)訪問所述存儲器時存儲變址的變址寄存器。36.根據(jù)權(quán)利要求35所述的定制LSI開發(fā)平臺,其中所述處理器還包括用于存儲所述變址寄存器的值的棧。37.根據(jù)權(quán)利要求31所述的定制LSI開發(fā)平臺,還包括創(chuàng)建器,所述創(chuàng)建器用于當(dāng)所述程序中的指令被所述一個或多個定制指令替換時,將未被所述一個或多個定制指令替換的程序中的指令生成為新定制指令。38.—種用于生成處理器的指令集體系結(jié)構(gòu)的方法,所述方法包括從用高級語言描述的程序中的指令提取指令模式;將所提取的指令模式與庫中存儲的一個或多個定制指令的模式相比較;以及用所述一個或多個定制指令替換所述程序中的指令,以便生成所述指令集體系結(jié)構(gòu)。39.根據(jù)權(quán)利要求38所述的方法,還包括提取與被所述定制指令替換的指令相關(guān)聯(lián)的邏輯元件連接信息,并從所述邏輯元件連接信息和所述定制指令生成所述指令集體系結(jié)構(gòu)。40.根據(jù)權(quán)利要求39所述的方法,還包括在所述庫中存儲所述邏輯元件連接信息以便與所述定制指令相關(guān)聯(lián)。41.根據(jù)權(quán)利要求40所述的方法,其中所述處理器是動態(tài)可重配置邏輯電路處理器。42.根據(jù)權(quán)利要求38所述的方法,還包括向一個或多個定制指令的庫添加新定制指令,所述新定制指令包括在所述替換期間未被所述一個或多個定制指令替換的程序中的指令。43.—種用于生成處理器的邏輯電路配置信息的方法,所述方法包括從用高級語言描述的程序中的指令提取指令模式;將所提取的指令模式與一個或多個定制指令的模式相比較;用所述一個或多個定制指令替換將所述程序中的指令;以及從與所述一個或多個定制指令相關(guān)聯(lián)的邏輯元件連接信息和從所述處理器的至少一個可編程元件的布圖布置信息,生成所述邏輯電路配置信44.根據(jù)權(quán)利要求43所述的方法,其中所述邏輯元件連接信息被存儲在庫中。45.根據(jù)權(quán)利要求43所述的方法,其中所述處理器是動態(tài)可重配置邏輯電路處理器。46.—種動態(tài)邏輯電路可重配置處理器,包括包括至少一個可編程元件的動態(tài)可重配置邏輯電路;配置存儲器,所述配置存儲器存儲用于所述至少一個可編程元件的每個指令的布圖布置信息;寄存器文件,所述寄存器文件臨時保存執(zhí)行所述至少一個可編程元件的指令的中間結(jié)果;存儲器,所述存儲器保存所述指令;以及管理所述處理器的控制器,所述控制器管理所述至少一個可編程元件的指令的執(zhí)行順序。47.根據(jù)權(quán)利要求46所述的動態(tài)邏輯電路可重配置處理器,其中所述指令包括至少第一和第二指令集,所述邏輯電路可根據(jù)所述處理器正在執(zhí)行與所述第一還是第二指令集相對應(yīng)的指令而被配置到第一或第二數(shù)據(jù)路徑中。48.根據(jù)權(quán)利要求47所述的動態(tài)邏輯電路可重配置處理器,其中所述第一指令集是用于指令集,并且其中所述第一數(shù)據(jù)路徑在功能上包括通用微處理器。49.根據(jù)權(quán)利要求48所述的動態(tài)邏輯電路可重配置處理器,其中所述第二指令集是數(shù)字信號處理指令集,并且其中所述第二數(shù)據(jù)路徑在功能上包括數(shù)字信號處理器。50.根據(jù)權(quán)利要求49所述的動態(tài)邏輯電路可重配置處理器,其中所述數(shù)字信號處理指令集針對數(shù)據(jù)加密或解密而被優(yōu)化。51.根據(jù)權(quán)利要求47所述的動態(tài)邏輯電路可重配置處理器,其中所述可重配置邏輯電路包括可被互換地選擇的可編程元件的陣列,其中所述可編程元件的陣列的第一子集是所述第一數(shù)據(jù)路徑的一部分,并且其中所述可編程元件的陣列的第二子集是所述第二數(shù)據(jù)路徑的一部分。52.根據(jù)權(quán)利要求51所述的動態(tài)邏輯電路可重配置處理器,其中所述可編程元件的陣列中的至少一些可編程元件是所述第一數(shù)據(jù)路徑和第二數(shù)據(jù)路徑二者的一部分。53.根據(jù)權(quán)利要求51所述的動態(tài)邏輯電路可重配置處理器,其中所述可編程邏輯元件包括現(xiàn)場可編程門陣列的門。54.根據(jù)權(quán)利要求51所述的動態(tài)邏輯電路可重配置處理器,其中所述可編程邏輯元件包括可編程邏輯器件的門。55.根據(jù)權(quán)利要求47所述的動態(tài)邏輯電路可重配置處理器,其中要根據(jù)所述第一或第二指令集操作的數(shù)據(jù)包括從源應(yīng)用代碼生成的目標(biāo)代碼。56.根據(jù)權(quán)利要求55所述的動態(tài)邏輯電路可重配置處理器,其中所述可重配置邏輯電路可使用從所述源應(yīng)用代碼生成的配置信息,根據(jù)所述處理器正在執(zhí)行與所述第一還是第二指令集相對應(yīng)的指令而被重配置。57.—種定制LSI開發(fā)平臺,包括動態(tài)邏輯電路可重配置處理器,所述動態(tài)邏輯電路可重配置處理器具有至少一個包括邏輯電路的可編程元件;以及軟件模塊,所述軟件模塊包括指令集體系結(jié)構(gòu)生成器,用于生成所述處理器的指令集體系結(jié)構(gòu);以及邏輯電路配置生成器,所述邏輯電路配置生成器從所述至少一個可編程元件的布圖布置信息和所述指令集體系結(jié)構(gòu)生成所述處理器的邏輯電路配置信息。58.根據(jù)權(quán)利要求57所述的定制LSI開發(fā)平臺,其中所述指令集體系結(jié)構(gòu)包括至少第一和第二指令集,所述邏輯電路配置生成器生成配置信息,以便根據(jù)所述處理器正在執(zhí)行與所述第一還是第二指令集相對應(yīng)的指令來將所述邏輯電路配置到第一或第二數(shù)據(jù)路徑中。59.根據(jù)權(quán)利要求58所述的定制LSI開發(fā)平臺,其中所述第一指令集是通用指令集,并且其中所述第一數(shù)據(jù)路徑在功能上包括通用微處理器。60.根據(jù)權(quán)利要求59所述的定制LSI開發(fā)平臺,其中所述第二指令集是數(shù)字信號處理指令集,并且其中所述第二數(shù)據(jù)路徑在功能上包括數(shù)字信號處理器。61.根據(jù)權(quán)利要求60所述的定制LSI開發(fā)平臺,其中所述數(shù)字信號處理指令集針對數(shù)據(jù)加密或解密而被優(yōu)化。62.根據(jù)權(quán)利要求58所述的定制LSI開發(fā)平臺,其中所述可重配置邏輯電路包括可被互換地選擇的可編程元件的陣列,其中所述可編程元件的陣列的第一子集是所述第一數(shù)據(jù)路徑的一部分,并且其中所述可編程元件的陣列的第二子集是所述第二數(shù)據(jù)路徑的一部分。63.根據(jù)權(quán)利要求62所述的定制LSI開發(fā)平臺,其中所述可編程元件的陣列中的至少一些可編程元件是所述第一數(shù)據(jù)路徑和所述第二數(shù)據(jù)路徑二者的一部分。64.根據(jù)權(quán)利要求58所述的定制LSI開發(fā)平臺,其中所述第一和第二指令集中的至少一個和所述至少一個指令集在所述可重配置邏輯電路中的相應(yīng)數(shù)據(jù)路徑適應(yīng)于在所述微處理器體系結(jié)構(gòu)已根據(jù)未來的設(shè)計需要被布圖之后被定義。65.根據(jù)權(quán)利要求64所述的定制LSI開發(fā)平臺,其中所述相應(yīng)數(shù)據(jù)9路徑包括可根據(jù)制造掩膜選項而被選擇的邏輯元件。66.根據(jù)權(quán)利要求64所述的定制LSI開發(fā)平臺,其中所述相應(yīng)數(shù)據(jù)路徑包括可根據(jù)所述設(shè)計需要而被編程的可編程邏輯元件。67.根據(jù)權(quán)利要求66所述的定制LSI開發(fā)平臺,其中所述可編程邏輯元件包括現(xiàn)場可編程門陣列的門。68.根據(jù)權(quán)利要求66所述的定制LSI開發(fā)平臺,其中所述可編程邏輯元件包括可編程邏輯器件的門。69.根據(jù)權(quán)利要求58所述的定制LSI開發(fā)平臺,其中所述要根據(jù)所述第一或第二指令集操作的數(shù)據(jù)包括從源應(yīng)用代碼生成的目標(biāo)代碼。70.根據(jù)權(quán)利要求69所述的定制LSI開發(fā)平臺,其中所述可重配置邏輯電路可使用從所述源應(yīng)用代碼生成的配置信息,根據(jù)所述微處理器正在執(zhí)行與所述第一還是第二指令集相對應(yīng)的指令而被重配置。71.根據(jù)權(quán)利要求57所述的定制LSI開發(fā)平臺,還包括連接到所述邏輯電路配置生成器的配置存儲器,所述配置存儲器存儲所述可重配置邏輯電路的至少一種配置。72.—種包含要在計算機中執(zhí)行的用于生成動態(tài)邏輯電路可重配置處理器的指令集體系結(jié)構(gòu)的一組指令的計算機可讀介質(zhì),所述一組指令包括從用高級語言描述的應(yīng)用程序中的指令提取指令模式;將所提取的指令模式與庫中存儲的一個或多個定制指令的模式相比較;以及用所述一個或多個定制指令替換所述程序中的指令,以便生成所述指令集。73.根據(jù)權(quán)利要求72所述的計算機可讀介質(zhì),其中所述一組指令還包括提取與被所述定制指令替換的指令相關(guān)聯(lián)的邏輯元件連接信息,并從所述邏輯元件連接信息和所述定制指令生成所述指令集體系結(jié)構(gòu)。74.根據(jù)權(quán)利要求73所述的計算機可讀介質(zhì),其中所述一組指令還包括在所述庫中存儲所述邏輯元件連接信息以便與所述定制指令相關(guān)聯(lián)。75.根據(jù)權(quán)利要求74所述的計算機可讀介質(zhì),其中所述處理器是動態(tài)可重配置邏輯電路處理器。76.根據(jù)權(quán)利要求72所述的計算機可讀介質(zhì),其中所述一組指令還包括向一個或多個定制指令的庫添加新定制指令,所述新定制指令包括在所述替換期間未被所述一個或多個定制指令替換的程序中的指令。77.—種包含要在計算機中執(zhí)行的用于生成動態(tài)邏輯電路可重配置處理器的邏輯電路配置信息的一組指令的計算機可讀介質(zhì),所述一組指令包括從用高級語言描述的程序中的指令提取指令模式;將所提取的指令模式與一個或多個定制指令的模式相比較;用所述一個或多個定制指令替換所述程序中的指令,以便生成指令集;以及從與所述指令集中包括的一個或多個定制指令相關(guān)聯(lián)的邏輯元件連接信息和從所述處理器的至少一個可編程元件的布圖布置信息,生成所述邏輯電路配置信息。78.根據(jù)權(quán)利要求77所述的計算機可讀介質(zhì),其中所述一組指令還包括提取與被所述定制指令替換的指令相關(guān)聯(lián)的邏輯元件連接信息,并從所述邏輯元件連接信息和所述定制指令生成所述指令集體系結(jié)構(gòu)。79.根據(jù)權(quán)利要求78所述的計算機可讀介質(zhì),其中所述一組指令還包括在所述庫中存儲所述邏輯元件連接信息,以便與所述定制指令相關(guān)聯(lián)。80.根據(jù)權(quán)利要求79所述的計算機可讀介質(zhì),其中所述處理器是動態(tài)可重配置邏輯電路處理器。81.根據(jù)權(quán)利要求77所述的計算機可讀介質(zhì),其中所述一組指令還包括向一個或多個定制指令的庫添加新定制指令,所述新定制指令包括在所述替換期間未被所述一個或多個定制指令替換的程序中的指令。全文摘要本發(fā)明提供了一種用于從用高級語言描述的應(yīng)用程序生成用于執(zhí)行應(yīng)用程序的處理器的指令集體系結(jié)構(gòu)(此后稱為“ISA”)和一系列邏輯電路配置信息的技術(shù)。本發(fā)明還涉及可以通過向動態(tài)邏輯電路可重配置處理器應(yīng)用所生成的ISA和邏輯電路配置信息來在短時間內(nèi)設(shè)計、開發(fā)和制造專用定制LSI的定制LSI開發(fā)平臺技術(shù)。此外,本發(fā)明還公開了一種動態(tài)可重配置處理器,其可使用所生成的邏輯電路配置信息而被重配置。本發(fā)明還公開了相關(guān)聯(lián)的方法。文檔編號G06F17/50GK101111834SQ20058004747公開日2008年1月23日申請日期2005年11月30日優(yōu)先權(quán)日2004年11月30日發(fā)明者村上和彰,松尾拓真,菊地修一,長谷部鐵也,首藤真,魯維克·高思爾申請人:東京毅力科創(chuàng)株式會社