專利名稱:處理器和半導體器件的制作方法
技術領域:
本發(fā)明涉及處理器和半導體器件,更具體地說涉及包括用于執(zhí)行預定處理的可重配置的處理電路的處理器和半導體器件。
背景技術:
傳統(tǒng)上已提出了一種處理器,其包含CPU(中央處理單元)和具有多個功能單元的可重配置復合單元。這一處理器分析例如以C語言描述的程序,并將該程序劃分成由該CPU處理的部分和由具有多個功能單元的復合單元處理的部分,從而高速執(zhí)行該程序。
VLIW(超長指令字)或超標量處理器包含多個功能單元,并使用這些功能單元來處理單個數(shù)據(jù)流。因此,這些處理器在所述功能單元之間的工作關系上是非常緊密的。與此相對比的是,可重配置處理器具有一組功能單元,它們連接成單個流水線或通過專用總線而連接,確保了一定程度的自由度,以可處理多個數(shù)據(jù)流。在可重配置處理器中,非常重要的是應該如何傳遞用于確定所述功能單元組的配置的配置數(shù)據(jù)以用于所述功能單元的操作。
切換具有多個功能單元的復合單元的配置的一種條件例如在下述時間處發(fā)生,即在該復合單元的功能單元執(zhí)行特定的計算,而該計算的結(jié)果與預定條件相匹配時。具有多個功能單元的復合單元的配置的切換受控于處理器的CPU。處理器具有多個區(qū)塊(緩存)用于存儲配置數(shù)據(jù),并通過在所述緩存之間進行切換來實現(xiàn)復合單元的配置的即時切換(例如參見國際公開No.WO01/016711(日本專利申請No.2001-520598)。
應注意,還提出了一種處理器,其能夠測量用于執(zhí)行各種處理的模塊的性能以及該處理器自身的性能,并能夠基于所述測量結(jié)果改變所述模塊或處理器的配置,從而設置適用于用戶指示執(zhí)行的程序的配置(例如參見日本未審查專利公開No.2002-263150)。
然而,在上述傳統(tǒng)的處理器中,緩存受控于CPU的中間件(例如CPU的一個功能),因此存在一個問題,即用戶必須在程序上預先進行設置以將配置數(shù)據(jù)存儲在緩存中。
發(fā)明內(nèi)容
在本發(fā)明的第一方面中,提供了一種處理器,其包括可重配置的處理電路,用于執(zhí)行預定處理。該處理器的特征在于包括緩存操作信息獲取部件,用于從當前選擇的配置數(shù)據(jù)獲取緩存操作信息,所述配置數(shù)據(jù)定義了所述處理電路的配置,所述緩存操作信息定義了緩存的操作,還包括緩存控制部件,其基于所述緩存操作信息來控制存儲所述配置數(shù)據(jù)的所述緩存的操作。
在本發(fā)明的第二方面中,提供了一種半導體器件,其包括可重配置處理電路,用于執(zhí)行預定處理。該半導體器件的特征在于包括緩存操作信息獲取部件,用于從當前選擇的配置數(shù)據(jù)獲取緩存操作信息,所述配置數(shù)據(jù)定義了所述處理電路的配置,所述緩存操作信息定義了緩存的操作,還包括緩存控制部件,其基于所述緩存操作信息來控制存儲所述配置數(shù)據(jù)的所述緩存的操作。
根據(jù)下面的描述,結(jié)合以示例方式描述本發(fā)明的附圖,本發(fā)明的上述及其他特征和優(yōu)點將變得很清楚。
圖1的方框圖用于說明根據(jù)本發(fā)明的處理器的原理;圖2的示意方框圖示出了所述處理器;圖3的方框圖示出了圖2所示的序列部件和處理電路組;圖4的方框圖示出了圖3所示的序列部件的細節(jié);圖5的方框圖示出了圖4中的序列部件的進一步細節(jié);圖6的方框圖示出了圖5所示的操作確定部件的細節(jié);圖7A和7B用于說明配置數(shù)據(jù),其中
圖7A示出了程序的示例;而圖7B示出了該程序的處理操作的流程;圖8A示出了配置數(shù)據(jù)的數(shù)據(jù)格式的示例;并且圖8B示出了所述數(shù)據(jù)的示例。
具體實施例方式
本發(fā)明提供了一種處理器和半導體器件,在其中編譯器能夠確定配置數(shù)據(jù)在緩存中的存儲。
下面將參考圖1詳細描述本發(fā)明的原理。
圖1的方框圖用于說明根據(jù)本發(fā)明的處理器的原理。
圖1所示的處理器包括可重配置處理電路2a、2b、2c、2d……,用于執(zhí)行預定處理,該處理器還執(zhí)行程序。所述處理器包括緩存操作信息獲取部件3、緩存控制部件4、緩存5和存儲設備6。應注意,存儲設備6可設置在處理器外部。而且,圖1還示出了配置數(shù)據(jù)1。
配置數(shù)據(jù)1包含定義了可重配置處理電路2a、2b、2c、2d……的配置的電路配置信息以及定義了緩存5的操作的緩存操作信息。
緩存操作信息獲取部件3從將執(zhí)行的配置數(shù)據(jù)1獲取緩存操作信息。
緩存控制部件4基于緩存操作信息獲取部件3獲取的緩存操作信息,控制存儲配置數(shù)據(jù)1的緩存5的操作。存儲設備6存儲配置數(shù)據(jù)1,因此,例如緩存控制部件4控制是從緩存5還是存儲設備6讀出配置數(shù)據(jù)1。而且,緩存控制部件4控制緩存5,以將從存儲設備6讀出的配置數(shù)據(jù)1存儲在緩存5中。
如上所述,根據(jù)本發(fā)明,所述配置數(shù)據(jù)被配置成包含緩存操作信息,并基于包含在配置數(shù)據(jù)中的緩存操作信息來控制緩存的操作。利用這一配置,編譯器能夠基于對程序的操作的預測,使得緩存操作信息被包含在配置數(shù)據(jù)中,并確定配置數(shù)據(jù)在緩存中的存儲。
下面參考附圖詳細描述本發(fā)明的優(yōu)選實施例。
圖2的示意方框圖示出了所述處理器。
如圖2所示,處理器10包括序列部件20、處理電路組30和CPU40。處理器10例如由片上半導體實現(xiàn)。應注意,圖2還示出了將由處理器10執(zhí)行的程序的存儲器映射50。
如存儲器映射50所示,所述程序被劃分為用于由CPU 40執(zhí)行的命令和數(shù)據(jù)的區(qū)域以及用于配置數(shù)據(jù)的區(qū)域,所述配置數(shù)據(jù)即由序列部件20執(zhí)行的與處理電路組30有關的配置數(shù)據(jù)。CPU 40執(zhí)行由存儲器映射50所示的命令和數(shù)據(jù)形成的程序,而序列部件20基于存儲器映射50所示的配置數(shù)據(jù),將處理電路組30的處理電路配置為預定方式,以用于所述程序的執(zhí)行。
下面詳細描述處理電路組30。
圖3的方框圖示出了圖2所示的序列部件20和處理電路組30。
如圖3所示,處理電路組30包括用于執(zhí)行預定處理的多個處理電路,即功能單元31a、31b……計數(shù)器32a、32b……外部接口33以及連接開關34。應注意,圖3所示的處理電路僅僅是示例性的,處理電路組30可包括存儲設備例如存儲器或寄存器。
序列部件20按照預定順序?qū)⒍x了處理電路組30的配置的配置數(shù)據(jù)輸出到處理電路組30。處理電路組30基于從序列部件20輸出的配置數(shù)據(jù),改變并固定所述處理電路的配置。處理電路組30的處理電路基于從序列部件20輸出的配置數(shù)據(jù)改變它們的操作和連接關系,從而改變并固定其配置。
例如,處理電路組30的功能單元31a、31b……計數(shù)器32a、32b……外部接口33和連接開關34基于所述配置數(shù)據(jù)改變它們的操作。而且,連接開關34基于配置數(shù)據(jù)改變功能單元31a、31b……計數(shù)器32a、32b和外部接口33之間的連接關系。
處理電路組30執(zhí)行程序的計算,并且在計算結(jié)果與預定條件匹配時,將切換條件信號輸出到序列部件20。假設處理電路組30對通過外部接口33輸入的數(shù)據(jù)重復執(zhí)行計算N次。功能單元31a、31b……重復計算輸入數(shù)據(jù),計數(shù)器32a對操作的次數(shù)計數(shù)。當計數(shù)器32a的計數(shù)到達N時,計數(shù)器32a向序列部件20輸出切換條件信號。
接收到切換條件信號時,序列部件20把將要執(zhí)行的配置數(shù)據(jù)輸出到處理電路組30,處理電路組30基于配置數(shù)據(jù)重配置所述處理電路。這樣,用于執(zhí)行用戶程序的處理電路在處理電路組30中進行配置,以高速執(zhí)行所述程序。
下面詳細描述序列部件20。
圖4的方框圖示出了圖3所示的序列部件的細節(jié)。
如圖4所示,序列部件20包括下一狀態(tài)確定部件21、操作確定部件22、地址產(chǎn)生部件23、RAM(隨機訪問存儲器)24和緩存部件25。
下一狀態(tài)確定部件21存儲表示下一步要執(zhí)行的配置數(shù)據(jù)(包括多個候選者)的號碼(狀態(tài)號)。這些狀態(tài)號包含在配置數(shù)據(jù)中,并且可以通過參考正在執(zhí)行的配置數(shù)據(jù)來獲知下一步要執(zhí)行的配置數(shù)據(jù)的狀態(tài)號。而且,下一狀態(tài)確定部件21接收來自圖3所示的處理電路組30的切換條件信號。響應于對切換條件信號所指示的切換條件的滿足,下一狀態(tài)確定部件21確定與下一步將要執(zhí)行的配置數(shù)據(jù)相關聯(lián)的下一狀態(tài)號。
操作確定部件22存儲正在執(zhí)行的配置數(shù)據(jù)的操作模式。操作確定部件22根據(jù)所述操作模式,控制緩存部件25的操作。操作模式例如包括簡單緩存模式和前瞻模式,在前者中使用以前緩存在緩存部件25中的配置數(shù)據(jù),在后者中預先讀取下一步將要執(zhí)行的具有下一狀態(tài)號的配置數(shù)據(jù),并存儲在緩存部件25中。
例如,在簡單緩存模式中,當響應于切換條件信號而確定將要執(zhí)行的配置數(shù)據(jù)的狀態(tài)號時,操作確定部件22確定與該狀態(tài)號相關聯(lián)的配置數(shù)據(jù)是否存儲在緩存部件25中(即是否發(fā)生緩存命中)。如果發(fā)生緩存命中,則操作確定部件22控制緩存部件25以使得從緩存部件25輸出配置數(shù)據(jù),而如果緩存未命中,則操作確定部件22控制地址產(chǎn)生部件23以使得從RAM 24輸出配置數(shù)據(jù)。從RAM 24輸出的配置數(shù)據(jù)被通過緩存部件25傳遞到處理電路組30。
在前瞻模式中,操作確定部件22讀出存儲在下一狀態(tài)確定部件21中的下一狀態(tài)號,并確定是否發(fā)生與下一狀態(tài)號相關聯(lián)的配置數(shù)據(jù)的緩存命中。如果緩存未命中,則操作確定部件22從RAM 24讀出配置數(shù)據(jù),并將其預先存儲在緩存部件25中,而如果發(fā)生緩存命中,則操作確定部件22控制緩存部件25以使得從緩存部件25輸出配置數(shù)據(jù)。在前瞻模式中,如果基于正在執(zhí)行的配置數(shù)據(jù)的程序的處理花費了很長時間,則在當前程序的執(zhí)行期間,將下一步要執(zhí)行的候選配置數(shù)據(jù)預先存儲在緩存部件25中,從而加快程序處理。
地址產(chǎn)生部件23接收從操作確定部件22輸出的狀態(tài)號,以及從緩存部件25輸出的就緒信號。地址產(chǎn)生部件23響應于來自緩存部件25的就緒信號,將與所述狀態(tài)號相關聯(lián)的配置數(shù)據(jù)的地址輸出到RAM 24。
RAM 24存儲定義了圖3中的處理電路組30的配置的配置數(shù)據(jù)。RAM 24將與接收自地址產(chǎn)生部件23的地址相關聯(lián)的配置數(shù)據(jù)輸出到緩存部件25、操作確定部件22和下一狀態(tài)確定部件21。應注意,配置數(shù)據(jù)包含與下一步將要執(zhí)行的配置數(shù)據(jù)相關聯(lián)的狀態(tài)號,如上所述。因此,當從RAM 24輸出配置數(shù)據(jù)時,將與下一步要執(zhí)行的配置數(shù)據(jù)相關聯(lián)的狀態(tài)號通知給下一狀態(tài)確定部件21。操作確定部件22知道正在執(zhí)行的配置數(shù)據(jù)的操作模式。
緩存部件25在操作確定部件22的控制下,存儲從RAM 24輸出的配置數(shù)據(jù)。而且,當操作確定部件22確定發(fā)生緩存命中時,緩存部件25將與該緩存命中相關聯(lián)的已緩存的配置數(shù)據(jù)輸出到處理電路組30。當緩存變?yōu)榭臻e時,緩存部件25將就緒信號傳遞給地址產(chǎn)生部件23,表明可在其中寫入從RAM 24輸出的配置數(shù)據(jù)。
下面將詳細描述簡單緩存模式和前瞻模式。首先描述簡單緩存模式。
圖5的方框圖示出了圖4中的序列部件的進一步細節(jié)。
在圖5中,將與圖4所示相同或等效的組成元件標識為相同的標號,并省略了其描述。如圖5所示,操作確定部件22包括標簽部件22a和判斷部件22b。緩存部件25包括緩存25aa到25ac、輸出部件25b和選擇器25c。
操作確定部件22的標簽部件22a存儲與存儲在緩存部件25的緩存25aa到25ac中的配置數(shù)據(jù)相關聯(lián)的狀態(tài)號。當從RAM 24輸出的配置數(shù)據(jù)被存儲在緩存25aa到25ac中的之一時,該配置數(shù)據(jù)的狀態(tài)號被存儲在標簽部件22a中。
判斷部件22b將與將要執(zhí)行的配置數(shù)據(jù)相關聯(lián)的狀態(tài)號(響應于切換條件信號而確定)和存儲在標簽部件22a中的每一個狀態(tài)號進行比較。當發(fā)生狀態(tài)號的匹配時(即當發(fā)生緩存命中時),判斷部件22b控制選擇器選擇器25c以使得輸出存儲在緩存25aa到25ac其中之一的,并與所述狀態(tài)號相關聯(lián)的配置數(shù)據(jù)。如果沒有狀態(tài)號的匹配,則判斷部件22b控制地址產(chǎn)生部件23來產(chǎn)生與所述狀態(tài)號相關聯(lián)的配置數(shù)據(jù)的地址,并控制選擇器25c以使得從RAM 24輸出配置數(shù)據(jù)。更具體地說,判斷部件22b確定是否發(fā)生將要執(zhí)行的配置數(shù)據(jù)的緩存命中,并且,如果發(fā)生緩存命中,則控制選擇器25c以使得從存儲所述數(shù)據(jù)的緩存25aa到25ac之一中輸出配置數(shù)據(jù),而如果沒有緩存命中,則控制選擇器25c以使得從RAM 24輸出配置數(shù)據(jù)。
緩存部件25的緩存25aa到25ac中的每一個都是一個寄存器,其具有的位寬度與配置數(shù)據(jù)相同,并由觸發(fā)器實現(xiàn)。例如,緩存25aa到25ac由n(配置數(shù)據(jù)的位寬度)×3(緩存數(shù)量)個觸發(fā)器形成。
輸出部件25b將從RAM 24輸出的配置數(shù)據(jù)傳遞給緩存25aa到25ac中之一和選擇器25c。
現(xiàn)在假設簡單緩存模式被進一步劃分為兩種模式。在這兩種模式之一中,當沒有發(fā)生緩存命中時,從RAM 24輸出的配置數(shù)據(jù)被存儲在緩存25aa到25ac之一中。在另一種模式中,當沒有緩存命中時,不將從RAM24輸出的配置數(shù)據(jù)存儲在緩存25aa到25ac的任意之一中。
在第一種模式中,輸出部件25b將從RAM 24輸出的配置數(shù)據(jù)存儲在緩存25aa到25ac之一中,并將之輸出到選擇器25c。在第二種模式中,輸出部件25b將從RAM 24輸出的配置數(shù)據(jù)輸出到選擇器25c,而不將其存儲在緩存25aa到25ac的任意之一中。通過將簡單緩存模式劃分為兩種模式,可以在緩存未命中時防止在緩存25aa到25ac中頻繁執(zhí)行數(shù)據(jù)重寫。
應注意,新配置數(shù)據(jù)被存儲在緩存25aa到25ac中的這樣一個中,其存儲最舊的配置數(shù)據(jù)或具有最低緩存命中率的配置數(shù)據(jù)。
選擇器25c在判斷部件的控制下,選擇性地輸出從緩存25aa到25ac輸出的配置數(shù)據(jù)和通過輸出部件25b從RAM 24輸出的配置數(shù)據(jù)。如上所述,緩存25aa到25ac是寄存器,其處于恒定地將配置數(shù)據(jù)輸出到選擇器25c的狀態(tài)中。選擇器25c選擇性地輸出從緩存25aa到25ac恒定地輸出的配置數(shù)據(jù)和從輸出部件25b輸出的配置數(shù)據(jù)當中的一種。選擇器25c輸出配置數(shù)據(jù)而不需要指定緩存地址,實現(xiàn)了配置數(shù)據(jù)的高速傳遞。
在圖5中,假設已響應于輸入到下一狀態(tài)確定部件21的切換條件信號而確定了將要執(zhí)行的配置數(shù)據(jù)的狀態(tài)號,并且假設具有所述狀態(tài)號的配置數(shù)據(jù)的操作模式是簡單緩存模式。
操作確定部件22的判斷部件22b比較存儲在標簽部件22a中的狀態(tài)號和由下一狀態(tài)確定部件21確定的狀態(tài)號。如果所存儲的狀態(tài)號之一與所確定的狀態(tài)號相匹配(即如果發(fā)生緩存命中),則控制選擇器25c輸出來自存儲所述數(shù)據(jù)的緩存25aa到25ac之一的具有匹配狀態(tài)號的配置數(shù)據(jù)。如果存儲在標簽部件22a中的狀態(tài)號都不匹配所確定的狀態(tài)號,則控制地址產(chǎn)生部件23輸出具有所確定的狀態(tài)號的配置數(shù)據(jù)的地址。
RAM 24將與從地址產(chǎn)生部件23輸出的地址相關聯(lián)的配置數(shù)據(jù)輸出到緩存部件25的輸出部件25b。如果當前的簡單緩存模式是前述第一種模式,則輸出部件25b將所述配置數(shù)據(jù)同時傳給緩存25aa到25ac之一和選擇器25c,而如果當前的簡單緩存模式是第二種模式,則輸出部件25b將所述配置數(shù)據(jù)只傳遞給選擇器25c。選擇器25c將從輸出部件25b輸出的配置數(shù)據(jù)傳遞給圖3所示的處理電路組30。這樣就執(zhí)行了簡單緩存模式中的配置數(shù)據(jù)緩存操作。
下面描述前瞻模式。
圖6的方框圖示出了圖5所示的操作確定部件的細節(jié)。
在執(zhí)行前瞻模式中的緩存操作時,操作確定部件22被配置成具有圖5所示的功能模塊(即標簽部件22a、判斷部件22b)以及操作模式設置部件22c。應注意,圖6還示出了圖5所示的下一狀態(tài)確定部件21。
如果正在執(zhí)行的配置數(shù)據(jù)的操作模式是前瞻模式,則操作模式設置部件22c輸出預取請求信號到下一狀態(tài)確定部件21,以請求下一狀態(tài)確定部件21將存儲在其處的用于下一步處理的下一狀態(tài)號傳遞給判斷部件22b。而且,操作模式設置部件22c指示判斷部件22b執(zhí)行預取操作。然后,當完成前瞻操作時,操作模式設置部件22c將下一狀態(tài)輸出完成信號輸出到判斷部件22b。
判斷部件22b比較存儲在標簽部件22a中的狀態(tài)號和用于前瞻的下一狀態(tài)號,從而確定用于前瞻的配置數(shù)據(jù)是否存儲在緩存25aa到25ac的任意之一中。如果存儲在標簽部件22a中的狀態(tài)號之一與用于前瞻的下一狀態(tài)號相匹配,則可以判斷出用于前瞻的配置數(shù)據(jù)已經(jīng)存儲在緩存25aa到25ac的之一中,因此操作模式設置部件22c不做任何事情。
如果存儲在標簽部件22a中的狀態(tài)號都不與用于前瞻的下一狀態(tài)號匹配,則可以判斷出用于前瞻的配置數(shù)據(jù)未存儲在緩存25aa到25ac的任意之一中。因此,操作模式設置部件22c獲取空閑的緩存號,并將預取操作獲取的緩存號輸出到輸出部件25b。判斷部件22b將下一狀態(tài)號輸出到地址產(chǎn)生部件23,而RAM 24將與下一狀態(tài)號相關聯(lián)的配置數(shù)據(jù)輸出到輸出部件25b。輸出部件25b將接收自RAM 24的配置數(shù)據(jù)存儲在緩存25aa到25ac當中與從操作模式設置部件22c接收的緩存號相關聯(lián)的一個緩存中。判斷部件22b將與預讀取的配置數(shù)據(jù)相關聯(lián)的下一狀態(tài)號存儲在標簽部件22a中。
應注意,當可以將用于前瞻的配置數(shù)據(jù)存儲在緩存25aa到25ac之一中時,輸出部件25b將就緒信號發(fā)送到地址產(chǎn)生部件23,響應于該就緒信號,地址產(chǎn)生部件23將與將要預取的配置數(shù)據(jù)的狀態(tài)號相關聯(lián)的地址輸出到RAM 24。
當響應于所述切換條件信號而確定與下一步將要執(zhí)行的配置數(shù)據(jù)相關聯(lián)的下一狀態(tài)號時,判斷部件22b確定與下一狀態(tài)號相關聯(lián)的配置數(shù)據(jù)是否存儲在緩存25aa到25ac的任意之一中。如果所述配置數(shù)據(jù)存儲在緩存25aa到25ac之一中,則將緩存號輸出到選擇器25c。選擇器25c將從緩存25aa到25ac當中與所述緩存號相關聯(lián)的一個緩存輸出的配置數(shù)據(jù)輸出到處理電路組30。
在圖6中,當正在執(zhí)行的配置數(shù)據(jù)的操作模式是前瞻模式時,操作模式設置部件22c將預取請求信號輸出到下一狀態(tài)確定部件21。下一狀態(tài)確定部件21將用于前瞻的下一狀態(tài)號輸出到判斷部件22b。而且,操作模式設置部件22c指示判斷部件22b執(zhí)行前瞻操作。
判斷部件22b比較存儲在標簽部件22a中的狀態(tài)號和用于前瞻的下一狀態(tài)號,以確定與用于前瞻的下一狀態(tài)號相關聯(lián)的配置數(shù)據(jù)是否存儲在緩存25aa到25ac的任意之一中。判斷部件22b將確定結(jié)果輸出到操作模式設置部件22c。
如果沒有緩存命中,則操作模式設置部件22c操作來使得將沒有緩存命中的配置數(shù)據(jù)預讀入到緩存25aa到25ac的之一中。這樣就執(zhí)行了前瞻模式中的配置數(shù)據(jù)緩存操作。
下面描述配置數(shù)據(jù)和所述操作模式。
圖7A和7B用于說明配置數(shù)據(jù),其中圖7A示出了程序的示例,而圖7B示出了該程序的處理流程。
圖7A所示的程序例如是用C語言編寫的,其中“for”語句安排成嵌套形式。每個“for”語句指示處理器在括號中指定的條件為真時重復后續(xù)指令。內(nèi)部“for”循環(huán)執(zhí)行“計算1”,直到滿足“條件2”。外部“for”循環(huán)在“條件1”為真時執(zhí)行內(nèi)部循環(huán)處理和“計算2”。
如圖7B的流程圖所示,首先,圖7A所示的程序在步驟S1中執(zhí)行關于條件1的確定,在步驟S2中確定條件S2,在步驟S3執(zhí)行計算1,在步驟S4中確定條件2,并在步驟S5中執(zhí)行計算1。然后,程序在步驟SN(N;正整數(shù))執(zhí)行關于條件2的確定,在步驟SN+1中執(zhí)行計算2,在步驟SN+2中確定條件1,并在步驟SN+3中確定條件2。在條件1和2為真期間重復執(zhí)行這一過程。
圖8A示出了配置數(shù)據(jù)的數(shù)據(jù)格式的示例,并且圖8B示出了配置數(shù)據(jù)的示例。
如圖8A所示,配置數(shù)據(jù)61被劃分為用于模式位的區(qū)域、用于電路配置信息的區(qū)域以及用于和下一步將要執(zhí)行的配置數(shù)據(jù)相關聯(lián)的下一狀態(tài)號的區(qū)域。
模式位區(qū)域存儲表示操作模式的信息。例如,每個操作模式由兩個位表示,如圖8B所示。用于緩存以前讀取的配置數(shù)據(jù)的簡單緩存模式由(0,1)表示,而用于預讀取配置數(shù)據(jù)并將之存儲在緩存25aa到25ac之一中的前瞻模式由(1,0)表示。應注意,所述兩種操作模式只是用作為示例,可以提供更多的操作模式。例如,可以提供一種用于連續(xù)對配置數(shù)據(jù)進行緩存的操作模式。
電路配置信息區(qū)域存儲定義了圖3所示的處理電路組30的處理電路的配置的信息。也就是說,處理電路組30的電路配置由配置數(shù)據(jù)61的電路配置信息所確定。
當執(zhí)行配置數(shù)據(jù)61時,下一狀態(tài)號區(qū)域存儲與下一步將要執(zhí)行的配置數(shù)據(jù)相關聯(lián)的下一狀態(tài)號。例如,根據(jù)圖7B所示的處理流程,可得知緊跟在確定條件1之后將要執(zhí)行的配置數(shù)據(jù)的狀態(tài)號是與條件2相關聯(lián)的狀態(tài)號。因此,如圖8B所示,與條件1相關聯(lián)的配置數(shù)據(jù)的模式位被設置為簡單緩存模式,并將與條件2相關聯(lián)的狀態(tài)號存儲在下一狀態(tài)號區(qū)域中。結(jié)果,如果與條件2的狀態(tài)號相關聯(lián)的配置數(shù)據(jù)存儲在緩存25aa到25ac之一中,則發(fā)生緩存命中。
根據(jù)圖7B所示的處理流程,可得知緊跟在確定條件2之后將要執(zhí)行的配置數(shù)據(jù)的狀態(tài)號是與計算1或2相關聯(lián)的狀態(tài)號。因此,如圖8B所示,與條件2相關聯(lián)的配置數(shù)據(jù)的模式位被設置為前瞻模式,并將與計算1和2相關聯(lián)的狀態(tài)號存儲在下一狀態(tài)號區(qū)域中。結(jié)果,對應于和計算1和2相關聯(lián)的狀態(tài)號的配置數(shù)據(jù)被預讀入到緩存25aa到25ac之一中。
然后,響應于切換條件信號而執(zhí)行計算1或2。在此情形下,由于與計算1和2相關聯(lián)的配置數(shù)據(jù)已被預讀入到緩存25aa到25ac當中相關聯(lián)的一個緩存中,因此不管條件2的結(jié)果是如何,無論是執(zhí)行計算1和2當中的哪一個,都可以高速地配置處理電路組30,而無需訪問RAM 24。
如上所述,將配置數(shù)據(jù)配置為存儲緩存的操作模式的信息,并根據(jù)操作模式來控制緩存操作。這使得編譯器可在多種可由編譯器分析的程序的操作預測中,確定配置數(shù)據(jù)在緩存中的存儲。
更具體地說,編譯器能夠通過分析程序來獲知將要執(zhí)行什么處理,因此能夠?qū)缤ㄟ^循環(huán)描述而重復執(zhí)行的預定處理自動執(zhí)行緩存判斷,從而向其添加操作模式。因此,用戶可以獲得最優(yōu)的性能,而無需主動指定操作模式。
不受控于編譯器的緩存判斷的部分可由用戶來控制。這例如可通過操作經(jīng)編譯的配置數(shù)據(jù)61的模式位來實現(xiàn)。
應注意,緩存操作可通過CPU 40的控制來強行鎖定和解鎖。而且,緩存操作的連續(xù)執(zhí)行可通過CPU 40的控制來停止。還可以對存儲在緩存25aa到25ac中的所有或只是一部分緩存中的配置數(shù)據(jù)進行鎖定和解鎖。而且,可以將配置數(shù)據(jù)強行存儲在緩存25aa到25ac中。
例如,在圖2所示的存儲器映射50的配置數(shù)據(jù)區(qū)域的一部分當中提供了一個控制區(qū)域,用于上述CPU 40的設置。當CPU 40將預定設置數(shù)據(jù)存儲在該控制區(qū)域中時,序列部件20根據(jù)該控制區(qū)域中的設置數(shù)據(jù)來控制緩存操作。例如,上述緩存25aa到25ac的所有或一部分緩存被鎖定。因此將緩存25aa到25ac配置為受控于CPU 40,從而可在調(diào)試期間檢查緩存25aa到25ac的內(nèi)容。
根據(jù)本發(fā)明的處理器,將配置數(shù)據(jù)配置為包含緩存操作信息,并基于包含在配置數(shù)據(jù)中的緩存操作信息來控制緩存操作。這使得編譯器可基于程序的操作預測來存儲配置數(shù)據(jù)中的緩存操作信息,并確定配置數(shù)據(jù)在緩存中的存儲。
前面的描述應只被看作為對本發(fā)明的原理的說明。而且,由于對于本領域內(nèi)的技術人員來說可有多種修改和改變,因此不應將本發(fā)明限制為所示出并描述的結(jié)構(gòu)和應用,相應地,可將所有適當?shù)男薷暮偷韧锟醋鳛槁湓谒綑?quán)利要求及其等同物的本發(fā)明的范圍中。
權(quán)利要求
1.一種處理器,其包括用于執(zhí)行預定處理的可重配置處理電路,該處理器包括緩存操作信息獲取部件,用于從當前選擇的配置數(shù)據(jù)獲取緩存操作信息,所述配置數(shù)據(jù)定義了所述處理電路的配置,所述緩存操作信息定義了緩存的操作;以及緩存控制部件,其基于所述緩存操作信息來控制存儲所述配置數(shù)據(jù)的所述緩存的操作。
2.如權(quán)利要求1所述的處理器,其中所述配置數(shù)據(jù)還包括下一狀態(tài)信息,用于表示下一步應選擇哪個配置數(shù)據(jù),并且其中當所述緩存操作信息表示前瞻操作時,所述緩存控制部件預讀取由所述下一狀態(tài)信息表示的配置數(shù)據(jù),并控制所述緩存的操作。
3.如權(quán)利要求1所述的處理器,其中所述緩存包括多個寄存器。
4.如權(quán)利要求3所述的處理器,包括選擇電路,其可在所述緩存控制部件的控制下進行操作,以從所述各個寄存器輸出的配置數(shù)據(jù)中選擇所述配置數(shù)據(jù),并將所選擇的配置數(shù)據(jù)傳遞到所述處理電路。
5.如權(quán)利要求3所述的處理器,其中所述寄存器包括觸發(fā)器。
6.如權(quán)利要求1所述的處理器,其中所述緩存控制部件在中央處理單元的控制下將所述配置數(shù)據(jù)存儲在所述緩存中。
7.如權(quán)利要求1所述的處理器,其中所述緩存操作信息包含表示是否應將未發(fā)生緩存命中的配置數(shù)據(jù)存儲在所述緩存中的信息。
8.一種半導體器件,其包括可重配置處理電路,用于執(zhí)行預定處理,該半導體器件包括緩存操作信息獲取部件,用于從當前選擇的配置數(shù)據(jù)獲取緩存操作信息,所述配置數(shù)據(jù)定義了所述處理電路的配置,所述緩存操作信息定義了緩存的操作;以及緩存控制部件,其基于所述緩存操作信息來控制存儲所述配置數(shù)據(jù)的所述緩存的操作。
9.如權(quán)利要求8所述的半導體器件,其中所述配置數(shù)據(jù)還包括下一狀態(tài)信息,用于表示下一步應選擇哪個配置數(shù)據(jù),并且其中當所述緩存操作信息表示前瞻操作時,所述緩存控制部件預讀取由所述下一狀態(tài)信息表示的配置數(shù)據(jù),并控制所述緩存的操作。
10.如權(quán)利要求8所述的半導體器件,其中所述緩存包括多個寄存器。
11.如權(quán)利要求10所述的半導體器件,包括選擇電路,其可在所述緩存控制部件的控制下進行操作,以從所述各個寄存器輸出的配置數(shù)據(jù)中選擇所述配置數(shù)據(jù),并將所選擇的配置數(shù)據(jù)傳遞到所述處理電路。
12.如權(quán)利要求10所述的半導體器件,其中所述寄存器包括觸發(fā)器。
13.如權(quán)利要求8所述的半導體器件,其中所述緩存控制部件在中央處理單元的控制下將所述配置數(shù)據(jù)存儲在所述緩存中。
14.如權(quán)利要求8所述的半導體器件,其中所述緩存操作信息包含表示是否應將未發(fā)生緩存命中的配置數(shù)據(jù)存儲在所述緩存中的信息。
全文摘要
處理器包括用于執(zhí)行預定處理的可重配置處理電路,其中編譯器能夠確定配置數(shù)據(jù)在緩存中的存儲。用于定義處理電路的配置的配置數(shù)據(jù)包含定義緩存操作的緩存操作信息。當選擇配置數(shù)據(jù)時,緩存操作信息獲取部件從配置數(shù)據(jù)獲取緩存操作信息。緩存控制部件基于緩存操作信息,控制存儲配置數(shù)據(jù)的緩存的操作。由于緩存操作信息包含在配置數(shù)據(jù)中,并且存儲配置數(shù)據(jù)的緩存的操作是基于緩存操作信息來控制的,因此編譯器能夠基于對程序的操作預測,將緩存操作信息存儲在配置數(shù)據(jù)中。
文檔編號G06F12/00GK1713135SQ20051000057
公開日2005年12月28日 申請日期2005年1月7日 優(yōu)先權(quán)日2004年6月24日
發(fā)明者笠間一郎 申請人:富士通株式會社