專利名稱:計(jì)算系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種硬件可根據(jù)程序直接執(zhí)行計(jì)算的計(jì)算系統(tǒng),更具體的,本發(fā)明涉及一種適合于根據(jù)大型程序執(zhí)行計(jì)算的計(jì)算系統(tǒng)。
背景技術(shù):
在目前的通用計(jì)算機(jī)中,進(jìn)行計(jì)算的同時(shí),CPU(中央處理單元)順序地解釋存儲(chǔ)于存儲(chǔ)器的程序中的指令。CPU借助于軟件來(lái)執(zhí)行作為執(zhí)行目標(biāo)的計(jì)算。這樣,CPU的硬件結(jié)構(gòu)不一定最適合用于作為執(zhí)行目標(biāo)的計(jì)算。結(jié)果是,在獲得最終的計(jì)算結(jié)果之前會(huì)招致很多額外開銷。
相反,作為直接利用硬件執(zhí)行用程序來(lái)表示的計(jì)算的一種技術(shù),使用可現(xiàn)場(chǎng)編程門陣列(FPGA)的計(jì)算系統(tǒng)已經(jīng)廣為人知。日本專利公開No.H8-504285(國(guó)際公開No.WO94/10627)和日本專利公開No.2000-516418(國(guó)際公開No.WO98/08306)公開了使用FPGA的計(jì)算系統(tǒng)。
FPGA的硬件結(jié)構(gòu)可通過(guò)邏輯數(shù)據(jù)而改變。通過(guò)使用這樣的FPGA,硬件可以直接執(zhí)行由程序表示的計(jì)算。因此,就能夠以比CPU執(zhí)行計(jì)算的情況下更快的速度獲得計(jì)算結(jié)果。
另一方面,由目前的通用計(jì)算機(jī)執(zhí)行的大型程序由多個(gè)程序模塊組成。在進(jìn)行由大型程序表示的計(jì)算的同時(shí),一個(gè)程序模塊調(diào)用另一個(gè)程序模塊。
但是,上述常規(guī)的使用FPGA的計(jì)算系統(tǒng)只能執(zhí)行由實(shí)質(zhì)上只包含一個(gè)程序模塊的程序所表示的計(jì)算。換句話說(shuō),常規(guī)的使用FPGA的計(jì)算系統(tǒng)無(wú)法執(zhí)行由包含多個(gè)程序模塊的大型程序所表示的大型計(jì)算。因此,就存在著這樣一個(gè)問(wèn)題,即使用FPGA的常規(guī)計(jì)算系統(tǒng)不能在不同方式下應(yīng)用。
日本專利公開No.H8-504285(國(guó)際公開No.WO94/10627)和日本專利公開No.2000-516418(國(guó)際公開No.WO98/08306)在此并入作為參考。
發(fā)明內(nèi)容
本發(fā)明旨在克服上述現(xiàn)有技術(shù)的問(wèn)題,本發(fā)明的目的是提供一種硬件能夠直接執(zhí)行由包含多個(gè)程序模塊的大型程序所表示的計(jì)算的計(jì)算系統(tǒng)。
為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明第一方面的一種計(jì)算系統(tǒng)包括一計(jì)算單元(42),具有與作為執(zhí)行目標(biāo)的計(jì)算相對(duì)應(yīng)的硬件結(jié)構(gòu),并執(zhí)行作為執(zhí)行目標(biāo)的計(jì)算;一狀態(tài)存儲(chǔ)器(44),存儲(chǔ)所述計(jì)算單元的內(nèi)部狀態(tài);和一控制器(46、46’),控制所述計(jì)算單元的內(nèi)部狀態(tài),其中所述計(jì)算單元(42)在一第一計(jì)算的中間執(zhí)行一第二計(jì)算;以及當(dāng)將由所述計(jì)算單元(42)執(zhí)行的計(jì)算從第一計(jì)算切換至第二計(jì)算時(shí),所述控制器(46、46’)存儲(chǔ)所述狀態(tài)存儲(chǔ)器(44)中的內(nèi)部狀態(tài),并且當(dāng)將由所述計(jì)算單元(42)執(zhí)行的計(jì)算從第二計(jì)算返回至第一計(jì)算時(shí),所述控制器(46、46’)通過(guò)將存儲(chǔ)在所述狀態(tài)存儲(chǔ)器(44)中的內(nèi)部狀態(tài)返回給所述計(jì)算單元(42),來(lái)控制所述計(jì)算單元(42)再開始執(zhí)行第一計(jì)算,
而且所述計(jì)算系統(tǒng)可以被連接至另一個(gè)計(jì)算系統(tǒng),該另一個(gè)計(jì)算系統(tǒng)具有可根據(jù)由被提供的數(shù)據(jù)模塊所表示的硬件結(jié)構(gòu)而改變的硬件結(jié)構(gòu),并執(zhí)行一預(yù)定的計(jì)算,及所述計(jì)算系統(tǒng)進(jìn)一步包括一結(jié)果獲得單元(7),該結(jié)果獲得單元在所述計(jì)算系統(tǒng)與另一個(gè)計(jì)算系統(tǒng)連接的情況下,向另一個(gè)計(jì)算系統(tǒng)提供被載入的第二數(shù)據(jù)模塊,以控制另一個(gè)計(jì)算系統(tǒng)執(zhí)行第二計(jì)算,并從另一個(gè)計(jì)算系統(tǒng)獲得第二計(jì)算的執(zhí)行結(jié)果。。
根據(jù)這一發(fā)明,由包含多個(gè)程序模塊的大型程序所表示的計(jì)算可以直接被硬件執(zhí)行,而無(wú)須使用通用CPU。
所述狀態(tài)存儲(chǔ)器(44)可以按照先進(jìn)后出的方法存儲(chǔ)所述內(nèi)部狀態(tài)。
所述計(jì)算單元(42)可以包括多個(gè)門電路。
所述多個(gè)門電路之間的連接可以根據(jù)作為執(zhí)行目標(biāo)的計(jì)算而被切換。
根據(jù)本發(fā)明第二方面的一種計(jì)算系統(tǒng)包括一載入器(3),逐各模塊地(by each module)載入多個(gè)數(shù)據(jù)模塊,所述多個(gè)數(shù)據(jù)模塊中的每一個(gè)表示適合于執(zhí)行一預(yù)定計(jì)算的硬件結(jié)構(gòu);一計(jì)算單元(42),具有可根據(jù)由被載入的數(shù)據(jù)模塊所表示的硬件結(jié)構(gòu)而被改變的硬件結(jié)構(gòu),并執(zhí)行一預(yù)定的計(jì)算;和一結(jié)果保存單元(44),其在所述計(jì)算單元(42)的硬件結(jié)構(gòu)改變時(shí)保存由所述計(jì)算單元(42)執(zhí)行的計(jì)算的中間結(jié)果,并在所述計(jì)算單元(42)的硬件結(jié)構(gòu)返回初始狀態(tài)時(shí)將該保存的中間結(jié)果返回給所述計(jì)算單元(42),其中,所述計(jì)算系統(tǒng)可以被連接至另一個(gè)計(jì)算系統(tǒng),該另一個(gè)計(jì)算系統(tǒng)具有可根據(jù)由被提供的數(shù)據(jù)模塊所表示的硬件結(jié)構(gòu)而改變的硬件結(jié)構(gòu),并執(zhí)行一預(yù)定的計(jì)算,及所述計(jì)算系統(tǒng)進(jìn)一步包括一結(jié)果獲得單元(7),該結(jié)果獲得單元在所述計(jì)算系統(tǒng)與另一個(gè)計(jì)算系統(tǒng)連接的情況下,向另一個(gè)計(jì)算系統(tǒng)提供被載入的第二數(shù)據(jù)模塊,以控制另一個(gè)計(jì)算系統(tǒng)執(zhí)行第二計(jì)算,并從另一個(gè)計(jì)算系統(tǒng)獲得第二計(jì)算的執(zhí)行結(jié)果。。
所述多個(gè)數(shù)據(jù)模塊可以包括第一數(shù)據(jù)模塊和第二數(shù)據(jù)模塊,其中第一數(shù)據(jù)模塊表示用于執(zhí)行第一計(jì)算的第一硬件結(jié)構(gòu),第二數(shù)據(jù)模塊表示用于執(zhí)行第二計(jì)算的第二硬件結(jié)構(gòu),第二計(jì)算在第一計(jì)算期間被執(zhí)行。
第一數(shù)據(jù)模塊可以包含調(diào)用數(shù)據(jù),該調(diào)用數(shù)據(jù)用于在第一計(jì)算的中間調(diào)用第二數(shù)據(jù)模塊。
該計(jì)算系統(tǒng)可以進(jìn)一步包括一檢測(cè)單元(43),檢測(cè)包含在被載入的第一數(shù)據(jù)模塊中的所述調(diào)用數(shù)據(jù);和一控制器(46),將所述計(jì)算單元(42)執(zhí)行的第一計(jì)算的中間結(jié)果存儲(chǔ)在所述結(jié)果保存單元(44)中,并在所述檢測(cè)單元(43)檢測(cè)到調(diào)用數(shù)據(jù)時(shí)控制所述載入器(3)載入第二數(shù)據(jù)模塊。
在所述計(jì)算單元(42)完成第二計(jì)算的情況下,所述控制器(46)可以控制所述載入器(3)載入第一數(shù)據(jù)模塊,并可以通過(guò)將存儲(chǔ)在所述結(jié)果保存單元(44)中的所述中間結(jié)果返回給所述計(jì)算單元(42),來(lái)控制所述計(jì)算單元(42)再開始第一計(jì)算。
該計(jì)算系統(tǒng)可以進(jìn)一步包括一變?cè)峁﹩卧?45),其向所述計(jì)算單元(42)提供一部分第一計(jì)算的中間結(jié)果作為用于執(zhí)行第二計(jì)算的變?cè)?,并向所述?jì)算單元(42)提供第二計(jì)算的執(zhí)行結(jié)果作為用于再開始第一計(jì)算的變?cè)?br>
所述結(jié)果保存單元(44)可以包括一存儲(chǔ)器,該存儲(chǔ)器按照先進(jìn)后出的方法存儲(chǔ)中間結(jié)果。
所述計(jì)算單元(42)可以包括多個(gè)門電路。
所述多個(gè)門電路之間的連接可以根據(jù)載入的數(shù)據(jù)模塊而被切換。
所述計(jì)算單元(42)在所述計(jì)算系統(tǒng)連接至另一計(jì)算系統(tǒng)時(shí)可以提供被載入的第二數(shù)據(jù)模塊給所述結(jié)果獲得單元(7),并停止執(zhí)行第一計(jì)算。
所述結(jié)果獲得單元(7)可以通過(guò)為所述計(jì)算單元提供所獲得的第二計(jì)算的執(zhí)行結(jié)果作為再開始第一計(jì)算的變?cè)?,控制所述?jì)算單元(42)再開始第一計(jì)算。
圖1是顯示根據(jù)第一實(shí)施例的計(jì)算系統(tǒng)的結(jié)構(gòu)的示意圖。
圖2是顯示由圖1所示計(jì)算系統(tǒng)執(zhí)行的計(jì)算的示例的圖。
圖3是顯示根據(jù)第二實(shí)施例的計(jì)算系統(tǒng)的結(jié)構(gòu)示意圖。
圖4是顯示計(jì)算系統(tǒng)的結(jié)構(gòu)的另一示例的圖。
圖5是顯示圖4所述計(jì)算系統(tǒng)連接至另一計(jì)算系統(tǒng)的示例的圖。
圖6是顯示計(jì)算系統(tǒng)結(jié)構(gòu)的另一示例的圖。
具體實(shí)施例方式
第一實(shí)施例下面參照
根據(jù)本發(fā)明第一實(shí)施例的計(jì)算系統(tǒng)。
如圖1所示,根據(jù)第一實(shí)施例的計(jì)算系統(tǒng)1包括FPGA數(shù)據(jù)存儲(chǔ)單元2、載入器3和FPGA裝置4。
FPGA數(shù)據(jù)存儲(chǔ)單元2存儲(chǔ)了多個(gè)數(shù)據(jù)模塊(FPGA數(shù)據(jù)21至2N)。
編譯器6編譯多個(gè)程序模塊(源程序51至5N),并由此產(chǎn)生FPGA數(shù)據(jù)21至2N。源程序51至5N中的每一個(gè)用可表達(dá)硬件結(jié)構(gòu)的程序語(yǔ)言來(lái)描述,并代表將被計(jì)算系統(tǒng)1所執(zhí)行的計(jì)算。FPGA數(shù)據(jù)21至2N表示最適于執(zhí)行由源程序51至5N所代表的計(jì)算的硬件結(jié)構(gòu)。
源程序51至5N中的至少一個(gè)包含用于調(diào)用其它程序模塊的函數(shù)。也就是說(shuō),F(xiàn)PGA數(shù)據(jù)21至2N中的至少一個(gè)包含用于調(diào)用其它數(shù)據(jù)模塊的調(diào)用數(shù)據(jù)。
載入器3包括邏輯電路等,并在正確的定時(shí)以模塊為單位將存儲(chǔ)在FPGA數(shù)據(jù)存儲(chǔ)單元2中的FPGA數(shù)據(jù)21至2N載入FPGA裝置4中。具體地,載入器3將由一程序模塊產(chǎn)生的數(shù)據(jù)模塊載入FPGA裝置4中,該程序模塊則表示作為執(zhí)行目標(biāo)的計(jì)算,即,該程序模塊對(duì)應(yīng)于作為執(zhí)行目標(biāo)的計(jì)算。在計(jì)算開始時(shí),從外界給出載入數(shù)據(jù)模塊的指令,除此之外,這一指令也可根據(jù)由FPGA裝置4對(duì)計(jì)算的執(zhí)行而給出。
FPGA裝置4具有由載入器3載入的數(shù)據(jù)模塊所表示的硬件結(jié)構(gòu),并將與載入的數(shù)據(jù)模塊相對(duì)應(yīng)的計(jì)算應(yīng)用于外界所提供的輸入數(shù)據(jù)。然后,F(xiàn)PGA裝置4向外界輸出計(jì)算結(jié)果作為輸出數(shù)據(jù)。
具體地,F(xiàn)PGA裝置4包括FPGA數(shù)據(jù)存儲(chǔ)器41、門陣列42、調(diào)用檢測(cè)單元43、保存堆棧44、變?cè)獋鬟f單元45和控制單元46。調(diào)用檢測(cè)單元43、保存堆棧44、變?cè)獋鬟f單元45和控制單元46由邏輯電路或類似裝置構(gòu)成。
FPGA數(shù)據(jù)存儲(chǔ)器41由RAM(隨機(jī)存取存儲(chǔ)器)構(gòu)成,并存儲(chǔ)由載入器3所載入的數(shù)據(jù)模塊。
門陣列42包括由多個(gè)門電路(例如AND、OR和NOT)構(gòu)成的計(jì)算單元42A和由多個(gè)觸發(fā)電路(FF)構(gòu)成的狀態(tài)保存單元42B。
計(jì)算單元42A具有由載入的數(shù)據(jù)模塊所表示的硬件結(jié)構(gòu),即,最適合于執(zhí)行作為執(zhí)行目標(biāo)的計(jì)算的硬件結(jié)構(gòu)。具體地,構(gòu)成計(jì)算單元42A的這些門電路之間的連接可根據(jù)載入的數(shù)據(jù)模塊而被切換。因此,計(jì)算單元42A的硬件結(jié)構(gòu)就變成了由載入的數(shù)據(jù)模塊所指定的結(jié)構(gòu)。而通過(guò)具有這種由載入的數(shù)據(jù)模塊所指定的硬件結(jié)構(gòu),計(jì)算單元42A就能夠以高速執(zhí)行與載入的數(shù)據(jù)模塊相對(duì)應(yīng)的計(jì)算。
狀態(tài)保存單元42B保存由計(jì)算單元42A所執(zhí)行的計(jì)算的中間結(jié)果(內(nèi)部狀態(tài))。構(gòu)成狀態(tài)保存單元42B的每個(gè)觸發(fā)器能夠接受從外界寫入的數(shù)據(jù)。
調(diào)用檢測(cè)單元43檢測(cè)包含在載入的數(shù)據(jù)模塊中的、用于調(diào)用另一數(shù)據(jù)模塊的調(diào)用數(shù)據(jù)。
保存堆棧44用于在調(diào)用檢測(cè)單元43檢測(cè)到調(diào)用數(shù)據(jù)的情況下,根據(jù)先進(jìn)后出(FILOFirst-In-Last-Out)的方法保存由狀態(tài)保存單元42B所保存的數(shù)據(jù)(中間結(jié)果),以及用于識(shí)別調(diào)用另一數(shù)據(jù)模塊的那個(gè)數(shù)據(jù)模塊(即,包含調(diào)用數(shù)據(jù)的數(shù)據(jù)模塊)的識(shí)別數(shù)據(jù)。
當(dāng)將被調(diào)用的數(shù)據(jù)模塊被實(shí)際調(diào)用時(shí),以及當(dāng)調(diào)用另一數(shù)據(jù)模塊的數(shù)據(jù)模塊(稱為調(diào)用器(caller)數(shù)據(jù)模塊)返回FPGA數(shù)據(jù)存儲(chǔ)器41時(shí),變?cè)獋鬟f單元45在調(diào)用器數(shù)據(jù)模塊和被調(diào)用的數(shù)據(jù)模塊之間傳遞變?cè)?br>
具體地,當(dāng)一數(shù)據(jù)模塊被調(diào)用時(shí),在由狀態(tài)保存單元42B的多個(gè)觸發(fā)器所保存的數(shù)據(jù)當(dāng)中,變?cè)獋鬟f單元45保存用于執(zhí)行與該被調(diào)用的數(shù)據(jù)模塊相對(duì)應(yīng)的計(jì)算的數(shù)據(jù)。然后,變?cè)獋鬟f單元45將該保存的數(shù)據(jù)傳送給門陣列42作為對(duì)應(yīng)被調(diào)用的數(shù)據(jù)模塊的計(jì)算的輸入值(變?cè)?。而當(dāng)調(diào)用器數(shù)據(jù)模塊再次被載入時(shí),變?cè)獋鬟f單元45保存由狀態(tài)保存單元42B的多個(gè)觸發(fā)器所保存的數(shù)據(jù),即,與被調(diào)用的數(shù)據(jù)模塊相對(duì)應(yīng)的計(jì)算的結(jié)果(返回值)。然后,變?cè)獋鬟f單元45將被保存的結(jié)果寫入至構(gòu)成狀態(tài)保存單元42B的一預(yù)定的觸發(fā)器。
當(dāng)一數(shù)據(jù)模塊被調(diào)用器數(shù)據(jù)模塊調(diào)用時(shí),控制單元46控制在保存堆棧44中保存的對(duì)應(yīng)于一調(diào)用器數(shù)據(jù)模塊的計(jì)算的中間結(jié)果以及該調(diào)用器數(shù)據(jù)模塊的識(shí)別信息。同時(shí),控制單元46臨時(shí)地將狀態(tài)保存單元42B所保存的數(shù)據(jù)中在執(zhí)行對(duì)應(yīng)于被調(diào)用的數(shù)據(jù)模塊的計(jì)算時(shí)所使用的數(shù)據(jù),存儲(chǔ)在變?cè)獋鬟f單元45中。然后,控制單元46控制載入器3將被調(diào)用的數(shù)據(jù)模塊載入FPGA數(shù)據(jù)存儲(chǔ)器41中。隨后,控制單元46將存儲(chǔ)在變?cè)獋鬟f單元45中的數(shù)據(jù)傳送給門陣列42作為輸入數(shù)據(jù)。
當(dāng)對(duì)應(yīng)于被調(diào)用數(shù)據(jù)模塊的計(jì)算被完成時(shí),控制單元46將計(jì)算的結(jié)果(輸出數(shù)據(jù))存儲(chǔ)在變?cè)獋鬟f單元45中。然后,控制單元46控制載入器3將由保存堆棧44中保存的識(shí)別信息所識(shí)別的調(diào)用器數(shù)據(jù)模塊載入FPGA數(shù)據(jù)存儲(chǔ)器41中。隨后,控制單元46控制已被保存在保存堆棧44中的數(shù)據(jù)(中間結(jié)果)返回至狀態(tài)保存單元42B,并將臨時(shí)存儲(chǔ)在變?cè)獋鬟f單元45中的結(jié)果(輸出數(shù)據(jù))寫入至構(gòu)成狀態(tài)保存單元42B的一預(yù)定觸發(fā)器。
從外界輸入至FPGA裝置4的輸入數(shù)據(jù)可以是通過(guò)輸入裝置例如鍵盤輸入的數(shù)據(jù),也可以是從外部存儲(chǔ)裝置例如磁盤裝置讀出的數(shù)據(jù)。從FPGA裝置4輸出給外界的輸出數(shù)據(jù)可以通過(guò)諸如顯示裝置等輸出裝置輸出,也可以被寫入到外部存儲(chǔ)裝置中,其還可以是用于控制外圍設(shè)備的控制數(shù)據(jù)。
下面解釋根據(jù)第一實(shí)施例的該計(jì)算系統(tǒng)1的操作。
下面將以該計(jì)算系統(tǒng)1執(zhí)行如圖2所示的計(jì)算作為示例進(jìn)行說(shuō)明。
如圖2所示,首先載入FPGA數(shù)據(jù)21,然后,F(xiàn)PGA數(shù)據(jù)21調(diào)用FPGA數(shù)據(jù)2N,隨后,F(xiàn)PGA數(shù)據(jù)21返回。
如圖2所示,整個(gè)計(jì)算過(guò)程由計(jì)算A、計(jì)算B和計(jì)算C組成。計(jì)算A對(duì)應(yīng)于FPGA數(shù)據(jù)21,并構(gòu)成了計(jì)算B成為必須之前的一部分,而計(jì)算B則對(duì)應(yīng)于FPGA數(shù)據(jù)2N。計(jì)算C對(duì)應(yīng)于FPGA數(shù)據(jù)21,其構(gòu)成了利用計(jì)算B的結(jié)果來(lái)執(zhí)行的一部分。
首先,載入器3根據(jù)由外界提供的載入指令將FPGA數(shù)據(jù)21載入到FPGA數(shù)據(jù)存儲(chǔ)器41中。由此,具有與FPGA數(shù)據(jù)21相對(duì)應(yīng)的電平(level)的信號(hào)被輸入給計(jì)算單元42A。
構(gòu)成計(jì)算單元42A的門電路之間的連接根據(jù)這些輸入信號(hào)被切換,使得計(jì)算單元42A的硬件結(jié)構(gòu)變?yōu)橛蒄PGA數(shù)據(jù)21所指定的結(jié)構(gòu)。由此,計(jì)算單元42A變?yōu)榭梢詧?zhí)行對(duì)應(yīng)于FPGA數(shù)據(jù)21的計(jì)算A。
當(dāng)輸入數(shù)據(jù)被從外界提供給門陣列42時(shí),計(jì)算單元42A將計(jì)算A應(yīng)用至提供的輸入數(shù)據(jù)。
調(diào)用檢測(cè)單元43檢測(cè)在被載入的FPGA數(shù)據(jù)21中包含的調(diào)用數(shù)據(jù),并將表示檢測(cè)到調(diào)用數(shù)據(jù)的檢測(cè)信號(hào)輸出給控制單元46。
控制單元46響應(yīng)于由調(diào)用檢測(cè)單元43提供的檢測(cè)信號(hào),控制被保存在保存堆棧44中的在計(jì)算A完成時(shí)所獲得的計(jì)算結(jié)果(中間結(jié)果)。具體地,控制單元46控制待被保存堆棧44的最上層中的由狀態(tài)保存單元42B所保存的數(shù)據(jù)(門陣列42的內(nèi)部狀態(tài)),以及作為調(diào)用器數(shù)據(jù)模塊的FPGA數(shù)據(jù)21的識(shí)別數(shù)據(jù)。
而且,控制單元46臨時(shí)地將狀態(tài)保存單元42B所保存的數(shù)據(jù)當(dāng)中的在計(jì)算B中使用的數(shù)據(jù)存儲(chǔ)在變?cè)獋鬟f單元45中。
此后,控制單元46控制載入器3將作為被調(diào)用的數(shù)據(jù)模塊的FPGA數(shù)據(jù)2N載入到FPGA數(shù)據(jù)存儲(chǔ)器41中。這樣,具有與FPGA數(shù)據(jù)2N相對(duì)應(yīng)的電平的信號(hào)被輸入給計(jì)算單元42A。
構(gòu)成計(jì)算單元42A的門電路之間的連接根據(jù)輸入信號(hào)被切換,使得計(jì)算單元42A的硬件結(jié)構(gòu)變?yōu)橛蒄PGA數(shù)據(jù)2N所指定的結(jié)構(gòu)。由此,計(jì)算單元42A變?yōu)榭梢詧?zhí)行對(duì)應(yīng)于FPGA數(shù)據(jù)2N的計(jì)算B。
控制單元46將臨時(shí)保存在變?cè)獋鬟f單元45中的數(shù)據(jù)輸入給門陣列42作為輸入數(shù)據(jù)。這樣,計(jì)算單元42A執(zhí)行計(jì)算B。
當(dāng)計(jì)算B完成時(shí),控制單元46臨時(shí)地將來(lái)自門陣列42的輸出數(shù)據(jù)存儲(chǔ)在變?cè)獋鬟f單元45中,作為將被傳遞給調(diào)用器FPGA數(shù)據(jù)21的變?cè)?br>
然后,控制單元46參照在保存堆棧44的最上層中保存的識(shí)別信息,并識(shí)別出作為調(diào)用器數(shù)據(jù)的FPGA數(shù)據(jù)21。
控制單元46控制載入器3將FPGA數(shù)據(jù)21重新載入至FPGA數(shù)據(jù)存儲(chǔ)器41。這樣,計(jì)算單元42A的硬件結(jié)構(gòu)以如上所述類似的方式,從由FPGA數(shù)據(jù)2N所指定的結(jié)構(gòu),切換為由FPGA數(shù)據(jù)21所指定的結(jié)構(gòu)。
當(dāng)調(diào)用器FPGA數(shù)據(jù)21被重新載入時(shí),控制單元46將位于保存堆棧44的最上層中的數(shù)據(jù)(內(nèi)部狀態(tài))寫回至狀態(tài)保存單元42B的每個(gè)觸發(fā)器。這樣,門陣列42的內(nèi)部狀態(tài)就返回初始狀態(tài)。
進(jìn)一步,控制單元46將臨時(shí)保存在變?cè)獋鬟f單元45中的數(shù)據(jù)寫入至構(gòu)成狀態(tài)保存單元42B的一預(yù)定觸發(fā)器。
在這種狀態(tài)下,計(jì)算單元42A開始對(duì)應(yīng)于FPGA數(shù)據(jù)21的計(jì)算C,并將最終計(jì)算結(jié)果輸出作為輸出數(shù)據(jù)。
被FPGA數(shù)據(jù)21所調(diào)用的FPGA數(shù)據(jù)2N可以調(diào)用其它的數(shù)據(jù)模塊。這時(shí),調(diào)用檢測(cè)單元43可以檢測(cè)包含在FPGA數(shù)據(jù)2N中包含的調(diào)用數(shù)據(jù),并以與上述類似的方式輸出表示檢測(cè)到調(diào)用數(shù)據(jù)的檢測(cè)信號(hào)至控制單元46。然后,控制單元46可以根據(jù)所提供的檢測(cè)信號(hào)執(zhí)行如上所述相同的控制。通過(guò)該操作,可以執(zhí)行由三個(gè)或更多程序模塊表示的大型計(jì)算。
如前面所解釋的,計(jì)算單元42A的硬件結(jié)構(gòu)切換為由載入的數(shù)據(jù)模塊所指定的結(jié)構(gòu),即最適合于執(zhí)行作為執(zhí)行目標(biāo)的計(jì)算的結(jié)構(gòu)。由此,與CPU讀取程序并執(zhí)行計(jì)算的情形相比,可以在更高的速度下執(zhí)行計(jì)算。
而且,通過(guò)在保存堆棧種保存對(duì)應(yīng)于調(diào)用器數(shù)據(jù)模塊的計(jì)算的中間結(jié)果,即使在與被調(diào)用的數(shù)據(jù)模塊相對(duì)應(yīng)的計(jì)算完成之后也可以再開始對(duì)應(yīng)于調(diào)用器數(shù)據(jù)模塊的計(jì)算。由此,可以執(zhí)行由多個(gè)程序模塊所表示的大型計(jì)算。
計(jì)算系統(tǒng)1能夠執(zhí)行由多個(gè)程序模塊構(gòu)成的大型程序所表示的計(jì)算。因此,可將程序分為多個(gè)程序模塊,以便按每個(gè)程序模塊創(chuàng)建一程序,或者每個(gè)程序模塊也可以被用作為創(chuàng)建其它程序時(shí)的一部分。其結(jié)果是,程序的創(chuàng)建可以在較短時(shí)間內(nèi)實(shí)現(xiàn)。
第二實(shí)施例下面將參照
根據(jù)本發(fā)明第二實(shí)施例的計(jì)算系統(tǒng)。
圖3顯示了根據(jù)第二實(shí)施例的計(jì)算系統(tǒng)的結(jié)構(gòu)。
根據(jù)第二實(shí)施例的計(jì)算系統(tǒng)并不編譯多個(gè)程序模塊(源程序51至5N),但可將這些程序模塊直接載入FPGA裝置4’。
如圖3所示,根據(jù)第二實(shí)施例的計(jì)算系統(tǒng)包括載入器3’、FPGA裝置4’和程序儲(chǔ)存單元5。
載入器3’根據(jù)控制單元46’的指令,在預(yù)定的時(shí)序逐各模塊地存儲(chǔ)在程序儲(chǔ)存單元5中的源程序51至5N載入至FPGA裝置4’中。
如圖3所示,F(xiàn)PGA裝置4’包括存儲(chǔ)器41’、門陣列42、保存堆棧44、變?cè)獋鬟f單元45、控制單元46’和解釋器47。
存儲(chǔ)器41’由RAM構(gòu)成,并存儲(chǔ)了由載入器3’載入的一程序模塊。
解釋器47一個(gè)一個(gè)地順序解釋被載入存儲(chǔ)器41’中的程序模塊中所包含的指令。然后,解釋器47根據(jù)解釋結(jié)果,向門陣列42的計(jì)算單元42A輸出用于實(shí)現(xiàn)一最適合于執(zhí)行由載入的程序模塊所指定的計(jì)算的硬件結(jié)構(gòu)的信號(hào)。
構(gòu)成計(jì)算單元42A的門電路之間的連接根據(jù)解釋器47提供的信號(hào)被切換。由此,計(jì)算單元42A的硬件結(jié)構(gòu)變?yōu)樽钸m合于執(zhí)行由載入的程序模塊所指定的計(jì)算的結(jié)構(gòu),即,與作為執(zhí)行目標(biāo)的計(jì)算相對(duì)應(yīng)的結(jié)構(gòu)。
而在被解釋的指令為用于調(diào)用另一程序模塊的指令的情況下,解釋器47向控制單元46’輸出表示另一程序模塊應(yīng)該被調(diào)用的調(diào)用信號(hào)。
當(dāng)解釋器47提供了一調(diào)用信號(hào)時(shí),控制單元46’控制待在保存堆棧44中保存的門陣列42的內(nèi)部狀態(tài)以及用于識(shí)別調(diào)用器程序模塊的識(shí)別數(shù)據(jù)。
然后,控制單元46’臨時(shí)地將狀態(tài)保存單元42B的觸發(fā)器所存儲(chǔ)的數(shù)據(jù)當(dāng)中,在執(zhí)行由被調(diào)用的程序模塊所表示的計(jì)算時(shí)使用的數(shù)據(jù)存儲(chǔ)在變?cè)獋鬟f單元45中。
隨后,控制單元46’控制載入器3’載入被調(diào)用的程序模塊。
然后,控制單元46’將臨時(shí)存儲(chǔ)在變?cè)獋鬟f單元45中的數(shù)據(jù)傳送給門陣列42作為輸入數(shù)據(jù)。
當(dāng)與被調(diào)用的程序模塊相對(duì)應(yīng)的計(jì)算完成時(shí),控制單元46’臨時(shí)地將計(jì)算結(jié)果(輸出數(shù)據(jù))保存在變?cè)獋鬟f單元45中。
然后,控制單元46’控制載入器3’將由保存在保存堆棧44中的識(shí)別數(shù)據(jù)所識(shí)別的調(diào)用器程序模塊載入存儲(chǔ)器41’中。
隨后,控制單元46’將保存在保存堆棧44中的內(nèi)部狀態(tài)返回狀態(tài)保存單元42B,并將臨時(shí)存儲(chǔ)在變?cè)獋鬟f單元45中的輸出數(shù)據(jù)(變?cè)?,寫入至構(gòu)成狀態(tài)保存單元42B的一預(yù)定觸發(fā)器。這樣,由調(diào)用器程序模塊所表示的計(jì)算再開始。
解釋器47可以由多個(gè)門電路構(gòu)成。通過(guò)這樣的結(jié)構(gòu),解釋器47能夠高速輸出具有與載入的程序模塊的解釋結(jié)果相對(duì)應(yīng)電平的信號(hào)。結(jié)果是,計(jì)算單元42A的硬件結(jié)構(gòu)的切換可以在高速下進(jìn)行,幾乎不會(huì)影響執(zhí)行計(jì)算的速度。
由于FPGA裝置4’包括上述解釋器47,因此源程序51至5N能夠以每個(gè)模塊為單位載入FPGA裝置4’之中。由此,即使沒(méi)有適合于FPGA裝置4’結(jié)構(gòu)的編譯器,也可以在高速下執(zhí)行由多個(gè)程序模塊表示的大型計(jì)算。
執(zhí)行由一個(gè)程序模塊表示的計(jì)算可能需要多個(gè)硬件結(jié)構(gòu)。這時(shí),如上文所述,控制單元46’控制待在保存堆棧44中保存的在硬件結(jié)構(gòu)被切換之前的一刻所獲得的數(shù)據(jù)(中間結(jié)果)。此后,解釋器47向計(jì)算單元42A輸入具有預(yù)定電平的信號(hào),而計(jì)算單元42A的硬件結(jié)構(gòu)借此能夠在計(jì)算過(guò)程中間被切換。
如圖4所示,例如,在第一實(shí)施例中所示的計(jì)算系統(tǒng)的結(jié)構(gòu)中可以加入由邏輯電路等構(gòu)成的輔助計(jì)算控制單元。具有這樣一個(gè)結(jié)構(gòu)的計(jì)算系統(tǒng)1A可以與另一個(gè)計(jì)算系統(tǒng)連接。
例如,在具有如圖1或圖4所示結(jié)構(gòu)的另一個(gè)計(jì)算系統(tǒng)被連接至計(jì)算系統(tǒng)1A的情況下,該輔助計(jì)算控制單元7可拆地(detachably)連接至另一個(gè)計(jì)算系統(tǒng)的載入器3、門陣列42和變?cè)獋鬟f單元45。
進(jìn)一步,例如圖5中所示,兩個(gè)計(jì)算系統(tǒng)1B和1C可以連接至計(jì)算系統(tǒng)1A。計(jì)算系統(tǒng)1B和1C具有例如與圖1所示結(jié)構(gòu)實(shí)質(zhì)上相同的結(jié)構(gòu)。這時(shí),計(jì)算系統(tǒng)1A的輔助計(jì)算控制單元7分別連接至計(jì)算系統(tǒng)1B和1C的載入器3、門陣列42和變?cè)獋鬟f單元45。但是,計(jì)算系統(tǒng)1B和1C不一定需要FPGA數(shù)據(jù)存儲(chǔ)單元2。
下面,說(shuō)明計(jì)算系統(tǒng)1A控制計(jì)算系統(tǒng)1B和1C以執(zhí)行并行操作時(shí)所執(zhí)行的操作。
假設(shè)首先載入FPGA數(shù)據(jù)21,且FPGA數(shù)據(jù)21調(diào)用FPGA數(shù)據(jù)2X。并假設(shè)計(jì)算系統(tǒng)1A控制計(jì)算系統(tǒng)1B和1C載入FPGA數(shù)據(jù)2X。
首先,計(jì)算系統(tǒng)1A的載入器3將FPGA數(shù)據(jù)21載入FPGA數(shù)據(jù)存儲(chǔ)器41。這樣,計(jì)算單元42A的硬件結(jié)構(gòu)就以在第一實(shí)施例中所述的相同方式變?yōu)橛蒄PGA數(shù)據(jù)21所指定的結(jié)構(gòu)。
然后,當(dāng)從外界向計(jì)算系統(tǒng)1A的門陣列42輸入輸入數(shù)據(jù),計(jì)算系統(tǒng)1A的計(jì)算單元42A執(zhí)行對(duì)應(yīng)于FPGA數(shù)據(jù)21的計(jì)算。
計(jì)算系統(tǒng)1A的調(diào)用檢測(cè)單元43檢測(cè)包含在載入的FPGA數(shù)據(jù)21中、指示調(diào)用FPGA數(shù)據(jù)2X的調(diào)用數(shù)據(jù)。隨后,調(diào)用檢測(cè)單元43向控制單元46輸出表示檢測(cè)到調(diào)用數(shù)據(jù)的檢測(cè)信號(hào)。
在調(diào)用檢測(cè)單元43提供了檢測(cè)信號(hào)時(shí),計(jì)算系統(tǒng)1A的控制單元46控制計(jì)算系統(tǒng)1A的載入器3將作為被調(diào)用數(shù)據(jù)模塊的FPGA數(shù)據(jù)2X載入至FPGA數(shù)據(jù)存儲(chǔ)器41中。
當(dāng)載入FPGA數(shù)據(jù)2X時(shí),計(jì)算系統(tǒng)1A的門陣列42獲得被載入的FPGA數(shù)據(jù)2X,作為對(duì)應(yīng)于FPGA數(shù)據(jù)21的部分處理(計(jì)算)。
然后,門陣列42向輔助計(jì)算控制單元7提供所獲得的FPGA數(shù)據(jù)2X,并停止執(zhí)行與FPGA數(shù)據(jù)21相對(duì)應(yīng)的計(jì)算。
計(jì)算系統(tǒng)1A的控制單元46將計(jì)算系統(tǒng)1A的狀態(tài)保存單元42B所保存的數(shù)據(jù)當(dāng)中,執(zhí)行與FPGA數(shù)據(jù)2X相對(duì)應(yīng)的計(jì)算所必須的數(shù)據(jù)(變?cè)?提供給輔助計(jì)算控制單元7。
輔助計(jì)算控制單元7控制計(jì)算系統(tǒng)1B和1C的載入器3將所提供的FPGA數(shù)據(jù)2X載入計(jì)算系統(tǒng)1B和1C的FPGA數(shù)據(jù)存儲(chǔ)器41中。其結(jié)果是,計(jì)算系統(tǒng)1B和1C的計(jì)算單元42A的硬件結(jié)構(gòu)變?yōu)橛蒄PGA數(shù)據(jù)2X指定的結(jié)構(gòu)。
然后,計(jì)算系統(tǒng)1A的輔助計(jì)算控制單元7將所提供的變?cè)?dāng)中,要提供給計(jì)算系統(tǒng)1B的變?cè)?,輸入至?jì)算系統(tǒng)1B的門陣列42作為輸入數(shù)據(jù),并將要提供給計(jì)算系統(tǒng)1C的變?cè)斎胫劣?jì)算系統(tǒng)1C的門陣列42作為輸入數(shù)據(jù)。其結(jié)果是,計(jì)算系統(tǒng)1B和1C的門陣列42分別執(zhí)行對(duì)應(yīng)于FPGA數(shù)據(jù)2X的計(jì)算。
當(dāng)對(duì)應(yīng)于FPGA數(shù)據(jù)2X的計(jì)算完成時(shí),計(jì)算系統(tǒng)1B(或1C)的控制單元46臨時(shí)地將來(lái)自計(jì)算系統(tǒng)1B(或1C)的門陣列42的輸出數(shù)據(jù)存儲(chǔ)在計(jì)算系統(tǒng)1B(或1C)的變?cè)獋鬟f單元45中,作為將用于再開始對(duì)應(yīng)作為調(diào)用器數(shù)據(jù)模塊的FPGA數(shù)據(jù)21的計(jì)算的變?cè)?br>
計(jì)算系統(tǒng)1A的輔助計(jì)算控制單元7控制計(jì)算系統(tǒng)1B和1C的變?cè)獋鬟f單元45,且當(dāng)檢測(cè)到輸出數(shù)據(jù)被臨時(shí)存儲(chǔ)在這些變?cè)獋鬟f單元45中時(shí),從上述變?cè)獋鬟f單元45中獲得存儲(chǔ)的輸出數(shù)據(jù)。
接著,計(jì)算系統(tǒng)1A的輔助計(jì)算控制單元7將所獲得的輸出數(shù)據(jù)寫入至構(gòu)成計(jì)算系統(tǒng)1A的狀態(tài)保存單元42B的預(yù)定觸發(fā)器中。
在這一狀態(tài)下,計(jì)算系統(tǒng)1A的門陣列42再開始對(duì)應(yīng)于FPGA數(shù)據(jù)21的計(jì)算。其結(jié)果是,最終的計(jì)算結(jié)果作為輸出數(shù)據(jù)被輸出。
如上所述,如果計(jì)算系統(tǒng)具有如圖4所示的結(jié)構(gòu),則必要時(shí)可以增加另一個(gè)計(jì)算系統(tǒng)。由此,通過(guò)單獨(dú)一個(gè)計(jì)算系統(tǒng)在短時(shí)間內(nèi)無(wú)法完成的復(fù)雜計(jì)算和需要并行操作的計(jì)算就能夠在短時(shí)間內(nèi)完成。
而在具有如圖4所示的結(jié)構(gòu)的計(jì)算系統(tǒng)連接至另一個(gè)計(jì)算系統(tǒng)的情況下,該“另一個(gè)”計(jì)算系統(tǒng)可以連接又一個(gè)計(jì)算系統(tǒng)。由此,該“另一個(gè)”計(jì)算系統(tǒng)可以再如上所述相同的方式下,控制與其相聯(lián)的該“又一個(gè)”計(jì)算系統(tǒng)執(zhí)行計(jì)算,并能夠獲得計(jì)算結(jié)果。
進(jìn)一步,例如圖6所示的,上述輔助計(jì)算控制單元7可以被添加至圖3所示的計(jì)算系統(tǒng)。然后,圖6所示的計(jì)算系統(tǒng)1D可以控制另一個(gè)連接至該計(jì)算系統(tǒng)1D的計(jì)算系統(tǒng)來(lái)執(zhí)行由載入的程序模塊所表示的計(jì)算。
這時(shí),如果計(jì)算系統(tǒng)1D的解釋器47所解釋的指令為用于調(diào)用另一個(gè)程序模塊的指令,則解釋器47可以向輔助計(jì)算控制單元7提供所載入的被調(diào)用的程序模塊。輔助計(jì)算控制單元7可將該被提供的程序模塊提供給另一計(jì)算系統(tǒng),并可控制另一計(jì)算系統(tǒng)執(zhí)行一計(jì)算。然后,輔助計(jì)算控制單元7可以從另一個(gè)計(jì)算系統(tǒng)獲得計(jì)算結(jié)果,并可以將該計(jì)算結(jié)果提供給門陣列42,使得由調(diào)用器程序模塊所表示的計(jì)算能夠開始。
但是,在這種情況下,連接到計(jì)算系統(tǒng)1D的另一個(gè)計(jì)算系統(tǒng)應(yīng)該具有例如圖3所示的結(jié)構(gòu)。
在上述實(shí)施例中,載入器3將FPGA數(shù)據(jù)存儲(chǔ)單元2中存儲(chǔ)的FPGA數(shù)據(jù)21至2N中的一個(gè)直接載入FPGA數(shù)據(jù)存儲(chǔ)器41。相反,F(xiàn)PGA數(shù)據(jù)21至2N可以包括一宏數(shù)據(jù)(macro)。FPGA數(shù)據(jù)存儲(chǔ)單元2可以存儲(chǔ)宏數(shù)據(jù),且載入器3可以在將FPGA數(shù)據(jù)21至2N載入FPGA數(shù)據(jù)存儲(chǔ)器41中時(shí),在FPGA數(shù)據(jù)21至2N之上執(zhí)行宏調(diào)用。
在不背離本發(fā)明的精神和范圍的情況下可以做出各種實(shí)施例和改變。上述實(shí)施例用于說(shuō)明本發(fā)明,而并未限定本發(fā)明的范圍。本發(fā)明的范圍由權(quán)利要求書而非實(shí)施例來(lái)表示。在本發(fā)明的權(quán)利要求的等效意義之內(nèi)做出的各種變型應(yīng)被認(rèn)為是處于本發(fā)明的范圍之內(nèi)。
本申請(qǐng)包括說(shuō)明書、權(quán)利要求書、附圖和說(shuō)明書摘要,是基于2001年5月10日提交的日本專利申請(qǐng)No.2001-139951和2002年3月6日提交的日本專利申請(qǐng)No.2002-60515。上述日本專利申請(qǐng)?jiān)诖巳坎⑷胱鳛閰⒖肌?br>
權(quán)利要求
1.一種計(jì)算系統(tǒng),包括一計(jì)算單元(42),具有與作為執(zhí)行目標(biāo)的計(jì)算相對(duì)應(yīng)的硬件結(jié)構(gòu),并執(zhí)行作為執(zhí)行目標(biāo)的計(jì)算;一狀態(tài)存儲(chǔ)器(44),存儲(chǔ)所述計(jì)算單元的內(nèi)部狀態(tài);和一控制器(46、46’),控制所述計(jì)算單元的內(nèi)部狀態(tài),其中所述計(jì)算單元(42)在一第一計(jì)算的中間執(zhí)行一第二計(jì)算;以及當(dāng)將由所述計(jì)算單元(42)執(zhí)行的計(jì)算從第一計(jì)算切換至第二計(jì)算時(shí),所述控制器(46、46’)存儲(chǔ)所述狀態(tài)存儲(chǔ)器(44)中的內(nèi)部狀態(tài),并且當(dāng)將由所述計(jì)算單元(42)執(zhí)行的計(jì)算從第二計(jì)算返回至第一計(jì)算時(shí),所述控制器(46、46’)通過(guò)將存儲(chǔ)在所述狀態(tài)存儲(chǔ)器(44)中的內(nèi)部狀態(tài)返回給所述計(jì)算單元(42)來(lái)控制所述計(jì)算單元(42)以再開始執(zhí)行第一計(jì)算,而且所述計(jì)算系統(tǒng)可以被連接至另一個(gè)計(jì)算系統(tǒng),該另一個(gè)計(jì)算系統(tǒng)具有可根據(jù)由被提供的數(shù)據(jù)模塊所表示的硬件結(jié)構(gòu)而改變的硬件結(jié)構(gòu),并執(zhí)行一預(yù)定的計(jì)算,且所述計(jì)算系統(tǒng)進(jìn)一步包括一結(jié)果獲得單元(7),該結(jié)果獲得單元在所述計(jì)算系統(tǒng)與另一個(gè)計(jì)算系統(tǒng)連接的情況下,向另一個(gè)計(jì)算系統(tǒng)提供被載入的第二數(shù)據(jù)模塊,以控制另一個(gè)計(jì)算系統(tǒng)執(zhí)行第二計(jì)算,并從另一個(gè)計(jì)算系統(tǒng)獲得第二計(jì)算的執(zhí)行結(jié)果。
2.根據(jù)權(quán)利要求1所述的計(jì)算系統(tǒng),其中所述狀態(tài)存儲(chǔ)器(44)按照先進(jìn)后出的方法存儲(chǔ)內(nèi)部狀態(tài)。
3.根據(jù)權(quán)利要求1所述的計(jì)算系統(tǒng),其中所述計(jì)算單元(42)包括多個(gè)門電路;以及所述多個(gè)門電路之間的連接根據(jù)作為執(zhí)行目標(biāo)的計(jì)算而被切換。
4.一種計(jì)算系統(tǒng),包括一載入器(3),逐各模塊地載入多個(gè)數(shù)據(jù)模塊,該多個(gè)數(shù)據(jù)模塊中的每一個(gè)表示適合于執(zhí)行一預(yù)定計(jì)算的硬件結(jié)構(gòu);一計(jì)算單元(42),具有可根據(jù)被載入的數(shù)據(jù)模塊所表示的硬件結(jié)構(gòu)而被改變的硬件結(jié)構(gòu),并執(zhí)行一預(yù)定的計(jì)算;和一結(jié)果保存單元(44),其在所述計(jì)算單元(42)的硬件結(jié)構(gòu)改變時(shí)保存由所述計(jì)算單元(42)執(zhí)行的計(jì)算的中間結(jié)果,并在所述計(jì)算單元(42)的硬件結(jié)構(gòu)返回初始狀態(tài)時(shí)將該保存的中間結(jié)果返回給所述計(jì)算單元(42),其中,所述計(jì)算系統(tǒng)可以被連接至另一個(gè)計(jì)算系統(tǒng),該另一個(gè)計(jì)算系統(tǒng)具有可根據(jù)由被提供的數(shù)據(jù)模塊所表示的硬件結(jié)構(gòu)而改變的硬件結(jié)構(gòu),并執(zhí)行一預(yù)定的計(jì)算;所述計(jì)算系統(tǒng)進(jìn)一步包括一結(jié)果獲得單元(7),該結(jié)果獲得單元在所述計(jì)算系統(tǒng)與另一個(gè)計(jì)算系統(tǒng)連接的情況下,向另一個(gè)計(jì)算系統(tǒng)提供被載入的第二數(shù)據(jù)模塊,以控制另一個(gè)計(jì)算系統(tǒng)執(zhí)行第二計(jì)算,并從另一個(gè)計(jì)算系統(tǒng)獲得第二計(jì)算的執(zhí)行結(jié)果。
5.根據(jù)權(quán)利要求4所述的計(jì)算系統(tǒng),其中多個(gè)數(shù)據(jù)模塊包括第一數(shù)據(jù)模塊和第二數(shù)據(jù)模塊,其中第一數(shù)據(jù)模塊表示用于執(zhí)行第一計(jì)算的第一硬件結(jié)構(gòu),第二數(shù)據(jù)模塊表示用于執(zhí)行第二計(jì)算的第二硬件結(jié)構(gòu),第二計(jì)算在第一計(jì)算期間被執(zhí)行。第一數(shù)據(jù)模塊包含調(diào)用數(shù)據(jù),該調(diào)用數(shù)據(jù)用于在第一計(jì)算的中間調(diào)用第二數(shù)據(jù)模塊。所述計(jì)算系統(tǒng)進(jìn)一步包括一檢測(cè)單元(43),檢測(cè)包含在被載入的第一模塊中的調(diào)用數(shù)據(jù);和一控制器(46),在所述檢測(cè)單元(43)檢測(cè)到調(diào)用數(shù)據(jù)時(shí),將所述計(jì)算單元(42)執(zhí)行的第一計(jì)算的中間結(jié)果存儲(chǔ)在所述結(jié)果保存單元(44)中,并控制所述載入器(3)載入第二數(shù)據(jù)模塊。
6.根據(jù)權(quán)利要求5所述的計(jì)算系統(tǒng),其中在所述計(jì)算單元(42)完成第二計(jì)算的情況下,所述控制器(46)控制所述載入器(3)載入第一數(shù)據(jù)模塊,并通過(guò)將存儲(chǔ)在所述結(jié)果保存單元(44)中的中間結(jié)果返回給所述計(jì)算單元(42),控制所述計(jì)算單元(42)再開始第一計(jì)算。
7.根據(jù)權(quán)利要求6所述的計(jì)算系統(tǒng),進(jìn)一步包括一變?cè)峁﹩卧?45),其向所述計(jì)算單元(42)提供一部分第一計(jì)算的中間結(jié)果作為用于執(zhí)行第二計(jì)算的變?cè)⑾蛩鲇?jì)算單元(42)提供第二計(jì)算的執(zhí)行結(jié)果作為用于再開始第一計(jì)算的變?cè)?br>
8.根據(jù)權(quán)利要求7所述的計(jì)算系統(tǒng),其中所述結(jié)果保存單元(44)包括一存儲(chǔ)器,該存儲(chǔ)器按照先進(jìn)后出的方法存儲(chǔ)中間結(jié)果。
9.根據(jù)權(quán)利要求7所述的計(jì)算系統(tǒng),其中所述計(jì)算單元(42)包括多個(gè)門電路;以及所述多個(gè)門電路之間的連接根據(jù)載入的數(shù)據(jù)模塊而被切換。
10.根據(jù)權(quán)利要求4所述的計(jì)算系統(tǒng),其中所述計(jì)算單元(42)在所述計(jì)算系統(tǒng)連接至另一計(jì)算系統(tǒng)的情況下,向所述結(jié)果獲得單元(7)提供被載入的第二數(shù)據(jù)模塊,并停止執(zhí)行第一計(jì)算;以及所述結(jié)果獲得單元(7)通過(guò)為所述計(jì)算單元提供所獲得的第二計(jì)算的執(zhí)行結(jié)果作為再開始第一計(jì)算的變?cè)?,控制所述?jì)算單元(42)再開始第一計(jì)算。
全文摘要
計(jì)算單元(42)在第一計(jì)算的中間執(zhí)行第二計(jì)算。此時(shí),計(jì)算單元(42)的硬件結(jié)構(gòu)根據(jù)作為執(zhí)行目標(biāo)的計(jì)算而被切換??刂破?46)在對(duì)第二計(jì)算進(jìn)行計(jì)算時(shí)將計(jì)算單元(42)的內(nèi)部狀態(tài)存儲(chǔ)在存儲(chǔ)器(44)中。而且當(dāng)將被計(jì)算單元(42)執(zhí)行的計(jì)算從第二計(jì)算返回第一計(jì)算時(shí),控制器(46)通過(guò)將存儲(chǔ)在存儲(chǔ)器(44)中的內(nèi)部狀態(tài)返回給計(jì)算單元(42)控制將繼續(xù)進(jìn)行第一計(jì)算。
文檔編號(hào)H03K19/173GK101025731SQ20071000213
公開日2007年8月29日 申請(qǐng)日期2002年5月8日 優(yōu)先權(quán)日2001年5月10日
發(fā)明者西原明法, 長(zhǎng)谷部鐵也, 林博昭, 三田高司 申請(qǐng)人:東京毅力科創(chuàng)株式會(huì)社