專利名稱:具有多硬件配置的可重構(gòu)硬件體系統(tǒng)結(jié)構(gòu)中的調(diào)度方法
背景技術(shù):
本發(fā)明涉及用于執(zhí)行一個算法的可重構(gòu)芯片。
用于可重構(gòu)芯片的一個軟件元素就是一個調(diào)度裝置。調(diào)度裝置解釋一個程序的各個部分,調(diào)度各項功能并將其載入到可重構(gòu)芯片的不同資源。在一實施例中,為可重構(gòu)芯片的使用來優(yōu)化這個功能,調(diào)度裝置決定功能配置的載入之處。
通過可重構(gòu)芯片的使用,可得到一個改進的調(diào)度裝置。
發(fā)明內(nèi)容
本發(fā)明的一個實施例包含利用多重可能配置在可重構(gòu)芯片上實現(xiàn)一個特定功能。不是采用一個單一功能的優(yōu)化執(zhí)行,而是決定使用具有不同時間和資源需求的多重配置。調(diào)度裝置可選擇把這些配置的一個來載入到可重構(gòu)芯片,該可重構(gòu)芯片是以這些配置的時間和資源需求,以及可重構(gòu)芯片的可用時間片和資源為基礎(chǔ)的。
可重構(gòu)芯片的可用資源在任何時候都是變化的。例如,在某些情況下,需要利用多種配置,這些配置使用大量資源,但是并不相當(dāng)長時間地使用這些資源。而在其它情況下,利用一種使用較少資源但卻占用更長時間的配置則更為有效。
調(diào)度裝置通過對多種配置的訪問,能夠以一種更有效的方式把功能分配給可重構(gòu)芯片,來加速芯片的操作,這是因為在任何時候已利用了全部資源。
本發(fā)明的系統(tǒng)優(yōu)選利用指示,提供配置的時間和資源需求的信息,以及時間片和資源調(diào)度的信息。調(diào)度需適合這些多重配置之一,這一調(diào)度是基于多重配置的時間和資源需求的指示。
隨著裝置操作的運行變化,調(diào)度裝置能夠是一個動態(tài)的調(diào)度裝置,或者能夠是在編譯過程中所產(chǎn)生的一個靜態(tài)調(diào)度裝置。
在一實施例中,該發(fā)明包含一個可重構(gòu)芯片的調(diào)度裝置。這個調(diào)度裝置適合從一組多重配置中選擇一個配置。每一個配置適合實現(xiàn)可重構(gòu)芯片的相同功能,這些配置有不同的時間和資源需求,其中,調(diào)度裝置利用可用資源,以及配置的時間和資源需求的調(diào)度指示來選擇載入到可重構(gòu)芯片上的配置。
圖1是一個可重構(gòu)芯片的示意圖。
圖2A和2B示意用于實現(xiàn)一個功能可重構(gòu)芯片的兩種不同配置所需要的資源和時間。
圖3A和3B示意分別完成圖2A和2B的功能的五種操作的調(diào)度。
圖4示意利用圖2A的配置或圖2B的配置的一個調(diào)度。
圖5是本發(fā)明一個實施例的方法流程圖。
圖6是一個示意本發(fā)明調(diào)度裝置的一個實施例操作的圖表。
圖7是圖6實例的一個調(diào)度的框圖。
具體實施例方式
圖1是一個可重構(gòu)芯片20的示意圖??芍貥?gòu)芯片20包括32、34、36、38等許多芯片,這些芯片包含可重構(gòu)的邏輯和存儲單元??芍貥?gòu)邏輯單元還可分成能夠?qū)崿F(xiàn)許多不同功能的可重構(gòu)邏輯塊。可重構(gòu)邏輯塊又包括一個運算邏輯單元(ALU)。各個芯片都有關(guān)聯(lián)的配置存儲器。該配置存儲器存儲這些芯片的不同配置。
術(shù)語“配置”對于本發(fā)明有兩種不同的可能含義。它可能指任何時候可重構(gòu)邏輯的配置,但對于一個給定的功能,也可能指隨著一個功能的實現(xiàn)所需要的配置組。
在一實施例中,通過一個配置緩沖器及系統(tǒng)數(shù)據(jù)線和系統(tǒng)地址線的一個接口來載入多種配置。這些配置存儲在一個外部存儲器中并且通過存儲控制器載入??芍貥?gòu)芯片還包括一個諸如ARC處理器的CPU。該CPU運行一個在可重構(gòu)結(jié)構(gòu)上不能有效運行的算法的各個部分。處于動態(tài)調(diào)度環(huán)境下的CPU也可運行一個調(diào)度裝置。
圖2A示意了為給定功能所產(chǎn)生的一個配置的實例。這個實例使用了三種資源但花費了一個時間塊。圖2B示意了另一種配置。這個配置使用一種資源但花費了四個時間塊。例如。這些資源可能是整個可重構(gòu)芯片,或者是可重構(gòu)芯片的一些下層資源。這里需要注意,對于不同的實施例資源時間塊的數(shù)量會是不同的。例如,圖2B的實施例同圖2A的實施例相比使用了更多的資源時間塊。先有技術(shù)可能選擇把圖2A的配置作為最佳配置的調(diào)度裝置。
圖3A示意了這樣一個系統(tǒng),把五種圖2A配置載入到可重構(gòu)芯片。
圖3B示意了一個僅使用圖2B配置的系統(tǒng)。在這個實例中,完成最后一個功能要花費八個時間周期。
圖4示意這樣一個系統(tǒng),為調(diào)度可重構(gòu)芯片,其中調(diào)度裝置可以在圖2A和圖2B兩個不同配置之間進行選擇。在這一實例中,利用圖2A的配置實現(xiàn)功能1、2、3、4,并且圖2B的實例完成配置5。在四個時間周期內(nèi)完成了所有五個功能。需要注意,圖4的調(diào)度比圖3A或3B的每一個調(diào)度更有利。即使圖2B的配置比圖2A的配置使用了更多資源時間塊,但在這一實例中,利用圖2B配置的能力提高了可重構(gòu)芯片的效率。
圖5示意本發(fā)明的一種方法。在這一實例中,分配一個算法的各個部分并把其置于可重構(gòu)結(jié)構(gòu)上。在一實施例中,一個計算機程序(諸如高級語言C所寫的程序)可分成許多部分被載入到可重構(gòu)芯片上。這一過程可以用手工或計算機程序來完成。在步驟62中,決定用于完成一部分算法的多重配置,這些配置隨著時間和資源的使用而不同。在一實施例中,提出了算法部分的硬件描述。把硬件描述映射到可重構(gòu)芯片的配置中。這些配置可存儲在配置庫中。
主要有兩種不同的使用本發(fā)明系統(tǒng)的調(diào)度裝置。在算法運行之前一個靜態(tài)調(diào)度裝置運行,并且不能考慮算法產(chǎn)生的數(shù)據(jù)。在運行過程中一個動態(tài)調(diào)度裝置運行,并且能夠考慮算法產(chǎn)生的數(shù)據(jù)。在步驟64的靜態(tài)調(diào)度裝置中,調(diào)度可重構(gòu)結(jié)構(gòu),選擇可用資源和時間的最佳配置。步驟66里,在可重構(gòu)芯片上運行算法,調(diào)度裝置根據(jù)資源可用性從配置組中選擇最佳配置。
圖6和7示意本發(fā)明系統(tǒng)的一個進一步實施例。圖7示意圖6的實例的一個調(diào)度。在這個實例中,需要完成功能1、2、3。這些功能中的每一個都與具有不同時間和資源值的多重配置相關(guān)聯(lián)。功能1可以使用一個芯片、三個時間單位的配置或三個芯片、兩個時間單位的配置來實現(xiàn)。功能2可以使用兩個芯片、五個時間單位的配置或一個芯片、十個時間單位的配置來實現(xiàn)。功能3可以使用兩個芯片、兩個時間單位的配置或一個芯片、六個時間單位的配置來實現(xiàn)。
在這個實例中,功能1使用一個芯片、三個時間單位的配置來實現(xiàn);功能2使用兩個芯片、五個時間單位的配置來實現(xiàn)。這樣使得功能3可以在兩個芯片、兩個時間單位或一個芯片、六個時間單位的配置之間進行選擇。
現(xiàn)在參看圖7,塊70完成功能1,塊72完成功能2。注意選擇的是一個芯片、六個時間單位,即使消耗了較多的芯片時間單位,但是為完成相應(yīng)的功能,實際上比兩個芯片、兩個時間單位運行地更好。如圖7所示,不是使用塊76而是使用塊74來完成功能3。
調(diào)度裝置可以是利用資源和時間指示使兩種配置之一適應(yīng)資源調(diào)度的軟件。需要注意,圖6和7所示的實例的配置都是矩形,這是因為在每個時間單位內(nèi)使用了全部資源。這并不是必需的情況。
為了操作,調(diào)度裝置考慮整個系統(tǒng)的效率問題。管理效率的一種方式就是減少一個特定算法所耗費的時間單位數(shù)量。通過給不同的調(diào)度配送不同的配置,該系統(tǒng)可以更有效地加速可重構(gòu)芯片的操作時間。與調(diào)度裝置有關(guān)的其它問題包括一些依賴。在其它功能完成之前,如果要完成特定功能,某些情況下通常選擇一個較快配置,這一配置甚至與使用較少資源時間塊的配置相對立。
該領(lǐng)域具有通常技能的人士將意識到,在不偏離其精神和實質(zhì)的情況下,本發(fā)明能夠以其它特定形式來實現(xiàn)。因此,本文提到的實施例從各方面來講都是例證性的而不是限制性的。所附的權(quán)利要求書闡明的是本發(fā)明的范圍,而不是前面所述,并且等同的含義和范圍之內(nèi)的所有變化都被包含在其內(nèi)。
權(quán)利要求
1.一種方法包括為可重構(gòu)芯片實現(xiàn)一個功能,提供多重可能的配置,這些配置有不同的時間和資源需求;在一個調(diào)度裝置中,利用這些配置的時間和資源需求,選擇一種配置在可重構(gòu)芯片中實現(xiàn)一個功能;在可重構(gòu)芯片中載入這個配置。
2.如權(quán)利要求1所述的方法,其中不同的配置存儲在一個配置庫中。
3.如權(quán)利要求1所述的方法,其中配置選擇為于加速一個算法的整個運行。
4.如權(quán)利要求1所述的方法,其中資源就是各個芯片。
5.如權(quán)利要求1所述的方法,其中為每一個配置存儲時間和資源需求的指示。
6.如權(quán)利要求1所述的方法,其中調(diào)度裝置是一個動態(tài)調(diào)度裝置。
7.如權(quán)利要求1所述的方法,其中調(diào)度裝置是一個靜態(tài)調(diào)度裝置。
8.如權(quán)利要求1所述的方法,其中調(diào)度被用來決定可重構(gòu)芯片的可用時間片和資源。
9.如權(quán)利要求1所述的方法,其中調(diào)度裝置檢查在調(diào)度中的可用資源和時間片。
10.如權(quán)利要求1所述的方法,其中可重構(gòu)芯片包括一個可重構(gòu)的結(jié)構(gòu)。
11.如權(quán)利要求1所述的方法,其中可重構(gòu)芯片包括多個芯片。
12.如權(quán)利要求1所述的方法,其中可重構(gòu)芯片包括一個處理器。
13.如權(quán)利要求12所述的方法,其中處理器運行一個動態(tài)調(diào)度裝置。
14.一個可重構(gòu)芯片的調(diào)度裝置,該調(diào)度裝置用于從多重配置組中選擇一個配置,每個多重配置適合在可重構(gòu)芯片上完成相同的功能,這些配置有不同的時間和資源需求,其中調(diào)度裝置利用配置的可用資源及時間和資源需求的調(diào)度指示來選擇可重構(gòu)芯片要載入的配置。
15.如權(quán)利要求14所述的調(diào)度裝置,其中調(diào)度裝置可以訪問為單一功能而包含多重配置的庫。
16.如權(quán)利要求14所述的調(diào)度裝置,其中調(diào)度裝置用于加速可重構(gòu)芯片的整個運行。
17.如權(quán)利要求14所述的調(diào)度裝置,其中資源就是可重構(gòu)芯片上的各個芯片。
18.如權(quán)利要求14所述的調(diào)度裝置,其中配置的時間和資源需求的指示被存儲。
19.如權(quán)利要求14所述的調(diào)度裝置,其中調(diào)度裝置是一個動態(tài)調(diào)度裝置。
20.如權(quán)利要求14所述的調(diào)度裝置,其中調(diào)度裝置是一個靜態(tài)調(diào)度裝置。
21.如權(quán)利要求14所述的調(diào)度裝置,其中調(diào)度裝置從這個調(diào)度中決定可用時間片和資源,并檢查可用資源和時間片。
22.如權(quán)利要求14所述的調(diào)度裝置,其中調(diào)度裝置作為可重構(gòu)芯片處理器上的一個動態(tài)調(diào)度裝置來運行。
全文摘要
本發(fā)明描述一個可重構(gòu)芯片的調(diào)度裝置,其中存儲了單一功能的多重配置。該調(diào)度裝置可以選擇任何一個配置。該系統(tǒng)提高了可重構(gòu)芯片運行的效率。
文檔編號G06F15/76GK1568460SQ02803322
公開日2005年1月19日 申請日期2002年9月16日 優(yōu)先權(quán)日2001年9月14日
發(fā)明者C·B·格林柏格 申請人:英特爾公司