專利名稱:可配置邏輯陣列的配置管理器和配置方法
技術(shù)領(lǐng)域:
本發(fā)明涉及可重新配置的(reconf igurable)計算,更具體來i兌,本發(fā)明涉及對分布式計算網(wǎng)絡(luò)中的可重新配置邏輯陣列的動態(tài)配置。
背景技術(shù):
執(zhí)行專門算法通常有兩種主要方式。 一種是硬件方式,即用硬連接的電路,例如用專用集成電路(ASIC)實現(xiàn)算法。另一種是軟件方式,例如采用軟件可編程的通用微處理器執(zhí)行算法。
可重新配置的計算,介于硬件方式與軟件方式之間,能獲得比軟件更高的性能,同時保持比硬件更高的靈活性。用于可重新配置的計算的裝置,也可稱作"可配置計算裝置,,, 一般包含一個或多個可配置邏輯陣列,例如現(xiàn)場可編程門陣列(FPGA)。
可以將可配置計算裝置與通用計算裝置一起,構(gòu)成分布式計算網(wǎng)絡(luò)。在這樣的計算網(wǎng)絡(luò)中,通用計算裝置(例如個人電腦PC)可以利用通用計算裝置為其執(zhí)行專門的功能??膳渲糜嬎阊b置中的可配置邏輯陣列一旦被配置,就執(zhí)行專門的功能。然而,有的時候,通用計算裝置需要同一個可配置邏輯陣列改變其所執(zhí)行的功能,為此,要求可配置邏輯陣列能在不同的功能之間切換。在通用計算裝置與可配置邏輯陣列遠(yuǎn)程相連的分布式計算網(wǎng)絡(luò)中,如果用通用計算裝置像常規(guī)的配置控制器那樣直接對可配置邏輯陣列進(jìn)行重新配置,將會產(chǎn)生顯著的延遲,因而耗費(fèi)時間。
發(fā)明內(nèi)容
本發(fā)明的目的之一是改進(jìn)分布式計算網(wǎng)絡(luò)中的可配置邏輯陣列的配置方式。
一方面,本發(fā)明提供一種用于多個可配置邏輯陣列RLA的配置管理器,包括
配置存儲器,用于存儲多個配置數(shù)據(jù)和與配置數(shù)據(jù)相對應(yīng)的功能標(biāo)識;
配置控制器,用于從配置存儲器中選擇一個配置數(shù)據(jù),并將其發(fā)送到RLA,其中,配置控制器響應(yīng)來自一個通用計算裝置的對RLA進(jìn)行配置的請求,根據(jù)該請求中的功能標(biāo)識,從配置存儲器中選擇要傳送的對應(yīng)配置數(shù)據(jù)。
另一方面,本發(fā)明提供一種相應(yīng)的用于多個可配置邏輯陣列RLA的配置方法。
再一方面,本發(fā)明提供一種包含上述配置管理器和多個可配置邏輯陣列RLA的可配置計算裝置。
為了更好地理解本發(fā)明,將參考附圖對本發(fā)明及其實施例進(jìn)行描述,其中
圖1示意性表示應(yīng)用本發(fā)明的一個分布式計算網(wǎng)絡(luò)的例子;
圖2表示配置FPGA的一種現(xiàn)有技術(shù)的方式;
圖3示意性地表示按照本發(fā)明實施例的配置FPGA的方式;圖4是表示按照本發(fā)明一個實施例的配置RLA的方法的流程圖;圖5示意性地表示按照本發(fā)明一個實施例的可配置計算裝置。
具體實施例方式
以下結(jié)合附圖,詳細(xì)說明本發(fā)明的各種實施方式。
參看圖1 ,該圖示意性表示按照本發(fā)明的一個分布式計算網(wǎng)絡(luò)的實施例。如圖l所示的分布式計算網(wǎng)絡(luò)中,有兩種分布式計算節(jié)點。
一種計算節(jié)點是通用計算節(jié)點(GPN)(也稱作"通用計算裝置"或簡稱"計算裝置,,),另一種計算節(jié)點是可配置計算節(jié)點(也稱"可重新配置計算裝置,本文中也將其稱作"可配置計算裝置"或"RCD")。圖1示意性地顯示有兩個通用計算節(jié)點GPN1和GPM以及兩個可配置計算裝置RCD1、 RCD2。當(dāng)然,在實際的分布式計算網(wǎng)絡(luò)中,GPN和RCD的個數(shù)可以更多。通用計算節(jié)點GPN1和GPN2與可配置計算裝置RCD1、 RCDZ通過網(wǎng)絡(luò)遠(yuǎn)程相連并互相通信。
GPN是一種通用的計算裝置,例如個人電腦(PC)。
RCD中包含可配置邏輯陣列(RLA),例如現(xiàn)場可編程門陣列(FPGA)。所屬技術(shù)領(lǐng)域的技術(shù)人員知道,RLA在被配置后,可以執(zhí)行專門的功能。RLA可以用不同的方式配置,可以被反復(fù)地配置,以執(zhí)行不同的功能,因此,可配置邏輯有時也被稱作"可重新配置邏輯"(本說明書中有時不加區(qū)分地使用修飾語"可配置"與"可重新配置,,)。現(xiàn)有技術(shù)中存在不同的配置方式。RCD有輸入端口,用于接收來自其它相鄰計算節(jié)點的通信;輸出端口,用于向其它計算節(jié)點發(fā)送通信。
按照本發(fā)明一個實施例,RCD中除了RLA,還包含一個配置管理器C-Mgr,用于配置RLA。 GPN可以向RCD發(fā)送請求,請求對RCD進(jìn)行配置,或者說請求對RCD中的RLA進(jìn)行配置,以執(zhí)行特定的功能。本發(fā)明的配置管理器C-Mgr可以響應(yīng)該請求,對RLA進(jìn)行配置。
關(guān)于本發(fā)明的配置管理器的詳細(xì)說明,將在下文結(jié)合圖3-4所示的實施例中給出。
在進(jìn)一步說明本發(fā)明的配置管理器之前,以FGPA為例,簡單地介紹現(xiàn)有技術(shù)中對可配置邏輯陣列RLA的配置方式。需要指出的,還有其它的RLA,例如CPLD (復(fù)雜可編程邏輯器件)
作為一種可配置邏輯陣列,F(xiàn)PGA是可編程的數(shù)字邏輯芯片,采用了邏輯單元陣列,內(nèi)部包括可配置邏輯模塊、輸出輸入模塊和內(nèi)部連線(Interconnect )三個部分。
可以對FPGA進(jìn)行程序設(shè)置,使其執(zhí)行任何數(shù)字功能。FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的,工作時需要對片內(nèi)的RAM進(jìn)行編程。同一片F(xiàn)PGA,用不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。FPGA的配置模式一般包括
并行模式,即一片F(xiàn)PGA加一片EPR0M的方式。加電時,F(xiàn)PGA芯片將EPR0M中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。當(dāng)需要修改FPGA功能時,需要更換EPR0M或者更新EPR0M的內(nèi)容。這種模式不適合分布式計算網(wǎng)絡(luò)的環(huán)境。
主從模式,即一片PR0M編程多片F(xiàn)PGA。 PR0M由FPGA供應(yīng)商提供,并提供控制邏輯來控制配置過程。這種模式雖然比并行模式靈活,但是所能提供的功能有限,如果需要動態(tài)地修改FPGA功能,也需要更換PR0M或者更新PR0M的內(nèi)容。因此這種方式也不適合經(jīng)常需要動態(tài)配置的分布式計算網(wǎng)絡(luò)中的可配置計算裝置。
外設(shè)模式,可以將FPGA作為微處理器的外設(shè),由微處理器對其編程。
圖2示意地表示一種采用外設(shè)模式配置可重新配置邏輯陣列、例如 FPGA的例子。
圖2中, 一個微處理器(例如PC)通過一個電纜與FPGA相連。所屬 技術(shù)領(lǐng)域的技術(shù)人員知道,現(xiàn)有技術(shù)中一般采用丌AG電纜,通過可重 新配置邏輯陣列的配置接口與可重新配置邏輯陣列連接,例如,通過 FPGA芯片的引腳與FPGA芯片連接。
如圖2所示,如果要配置FPGA, PC從所存儲的配置文件中加載配 置數(shù)據(jù)(也稱配置位C-bits,即由"0"和"1"組成的位流),通過電 纜把配置數(shù)據(jù)發(fā)送到FPGA中,這樣就完成了對FPGA的配置。
在本發(fā)明的分布式計算網(wǎng)絡(luò)環(huán)境中,由可重新配置邏輯陣列(例如 FPGAs)構(gòu)成的可配置計算裝置與其它計算節(jié)點是遠(yuǎn)程連接的,沒有本地 控制器(例如PC )來配置可重新配置邏輯陣列(例如FPGAs)。配置文件 也存儲在處于遠(yuǎn)程位置的遠(yuǎn)程計算節(jié)點中,在這種情況下,通過網(wǎng)絡(luò)向 FPGA發(fā)送配置數(shù)據(jù)非常耗費(fèi)時間。
因此,常規(guī)的外設(shè)模式,也不適合經(jīng)常需要動態(tài)配置的分布式計算 網(wǎng)絡(luò)中的可配置計算裝置。
如上文結(jié)合圖1所述的那樣,按照本發(fā)明,在分布式計算網(wǎng)絡(luò)中, GPN可以向RCD發(fā)送請求,要求對RCD進(jìn)行配置,或者說請求對RCD中 的RLA進(jìn)行配置,以執(zhí)行特定的功能。但是,本發(fā)明的配置方式并不同 于圖2所示的外設(shè)方式。
本發(fā)明的配置方式,采用了一種配置管理器,包括配置存儲器,用于存儲多個配置數(shù)據(jù)和與配置數(shù)據(jù)相對應(yīng)的功能
標(biāo)識;
配置控制器,用于從配置存儲器中選擇一個配置數(shù)據(jù),并將其發(fā) 送到一個可配置邏輯陣列RLA,其中,配置控制器響應(yīng)來自一個通用 計算裝置的對RLA進(jìn)行配置的請求,根據(jù)該請求中的功能標(biāo)識,從配 置存儲器中選擇要傳送的對應(yīng)配置數(shù)據(jù)。
在一個實施例中,通用計算裝置是分布式計算網(wǎng)絡(luò)中的遠(yuǎn)程通用 計算裝置。
在 一 個實施例中,功能標(biāo)識對所有通用計算裝置來說是全局的。 在一個實施例中,通用計算裝置的配置請求中可以包含指定一個
RLA的信息,相應(yīng)地,配置控制器可以將配置數(shù)據(jù)到配置請求所指定
的RLA。
按照本發(fā)明的一個實施例,RLA可以是現(xiàn)場可編程門陣列FPGA, 配置數(shù)據(jù)是用于配置FPGA的一組數(shù)據(jù)位;按照本發(fā)明的一個實施例, RLA可以是復(fù)雜可編程邏輯器件CPLD,配置數(shù)據(jù)是用于配置CPLD的一 組數(shù)據(jù)位。
可選地,配置存儲器可以是RAM,也可以是PR0M、閃存等非易失 性存儲器。配置存儲器中的存儲數(shù)據(jù)等信息,可以預(yù)先裝入,也可以 隨時更新,例如可以用來自通用計算裝置的數(shù)據(jù)進(jìn)行預(yù)先裝入或更新。
以下參照圖3和圖4,進(jìn)一步說明配置管理器的操作。 圖3表示按照本發(fā)明一個實施例對可配置邏輯陣列進(jìn)行配置的方 式,其中,仍然以FPGA來代表可配置邏輯陣列。
在如圖3所示的實施例中,與圖2中PC與FPGA的連接方式不同
10的是,PC通過一個本發(fā)明的配置管理器C-Mgr與FPGA相連。按照圖3 所示的配置方式,配置FPGA時,配置數(shù)據(jù)并不是由PC直接發(fā)送到FPGA 中,而是由配置管理器C-Mgr把配置數(shù)據(jù)發(fā)送到FPGA中,完成對FPGA
的配置。
如圖3a中的虛框所示,本發(fā)明的配置管理器主要包含兩個部分 第一部分是配置存儲器C-Mem,其中存儲有配置數(shù)據(jù)C-bits,在 本例中,C-bits就是將要注入FPGA的RAM中的配置位流或一組配置 位。C-Mem中可以存儲多個不同的配置數(shù)據(jù),以便能夠?qū)PGA的功能 進(jìn)行不同的配置;相應(yīng)地,C-Mem中還可以存儲有功能標(biāo)識F-ID,每 個F-ID與 一個配置數(shù)據(jù)對應(yīng),以表示該配置數(shù)據(jù)發(fā)送到FPGA后,F(xiàn)PGA 所具有的功能。
第二部分是配置控制器C-Ctr 1,其主要作用與常規(guī)的配置控制器 類似,即把一組配置位C-bits發(fā)送到FPGA,完成對FPGA的配置。 C-Ctrl的操作步驟,可以用圖4中表示的流程圖來概括。
一開始,配置控制器C-Ctrl接收一個配置請求。(步驟S"0)
配置請求是要求對一個RLA進(jìn)行配置的請求,在圖3所示的例子 中,該請求來自PC。該P(yáng)C可以是來自分布式計算網(wǎng)絡(luò)中的任何一個 可以請求對RLA進(jìn)行配置的通用計算裝置。由于配置存儲器可以存儲 多個配置數(shù)據(jù),配置請求可以包含一個功能標(biāo)識,用于指示要FPGA 執(zhí)行什么樣的功能。
然后,配置控制器C-Ctrl從配置存儲器選擇配置數(shù)據(jù)。(步驟 S420)
如果配置控制器C-Ctrl發(fā)現(xiàn)配置請求中包含了功能標(biāo)識,則從 配置存儲器中選擇與功能標(biāo)識對應(yīng)的配置數(shù)據(jù)。然后,將配置數(shù)據(jù)發(fā)送到RLA。(步驟S430)
圖3中只示意性地顯示了一個FPGA。實際上,可以有多個FPGA 可供配置,盡管通常情況下提出配置請求的PC無需關(guān)心要配置哪個 FPGA, PC仍然可以選l奪要配置的一個FPGA。按照本發(fā)明的一個實施 例,PC可以在配置請求包含指定所要配置的FPGA的標(biāo)識,C-Ctrl可 以根據(jù)該標(biāo)識,將配置數(shù)據(jù)發(fā)送到該請求所指定的FPGA。
所屬技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)知道,C-C t r 1本身可以是硬件方式 或者是軟件方式實現(xiàn)的邏輯操作模塊,甚至可以是一個可配置的邏輯 模塊。這不在本發(fā)明的范圍之內(nèi),因此無需在此贅述。
所屬技術(shù)領(lǐng)域的技術(shù)人員知道,F(xiàn)PGA提供的是串行配置接口 。如 果將來的RLA例如FPGA提供并行的端口 ,例如提供用于數(shù)據(jù)、控制 信號和地址的并行接口 ,則可以將本發(fā)明的配置管理器中的配置控制 器C-Ctrl與控制信號接口和地址接口相連,將配置存儲器的輸出與 數(shù)據(jù)接口鏈路,通過并行傳輸節(jié)省時間。
參看圖5,該圖示意性地表示按照本發(fā)明一個實施例的可配置計算 裝置RCD。圖5所示的RCD,實際上可以看作是對圖1中所示的RCD更 i羊纟田的^^。
圖中可見,可配置計算裝置RCD,包括多個可配置邏輯陣列RLA1、 RLA2…RLA3和如上文所述的配置管理器C-Mgr。
如上文所述的那樣,C-Mgr包括配置存儲器C-Mem和配置控制器 C-Ctrl,其中C-Mem用于存儲多個配置數(shù)據(jù)和與配置數(shù)據(jù)相對應(yīng)的功 能標(biāo)識;C-Ctrl用于從配置存儲器中選擇一個配置數(shù)據(jù),并將其發(fā)送 到一個RU,其中,配置控制器響應(yīng)來自一個通用計算裝置(例如PC) 的對RLA進(jìn)行配置的請求,根據(jù)該請求中的功能標(biāo)識,從配置存儲器中選擇要傳送的對應(yīng)配置數(shù)據(jù)。
按照的實施例,通用計算裝置是分布式計算網(wǎng)絡(luò)中的遠(yuǎn)程通用計
算裝置。
在一個實施例中,功能標(biāo)識對所有通用計算裝置來說是全局的。 其好處是,各個通用計算裝置只要知道功能標(biāo)識,就能以統(tǒng)一的方式
請求對RLA進(jìn)行配置。
按照本發(fā)明的 一 個實施例,通用計算裝置的配置請求中可以包含
指定一個RLA的信息,相應(yīng)地,配置控制器可以將配置數(shù)據(jù)到配置請 求所指定的RLA。
所屬技術(shù)領(lǐng)域的技術(shù)人員知道,圖5中的C-Mgr與RLA1、 RLA2… RLAn之間例如可以通過總線連接,連接方式甚至也是可設(shè)置的。在實 際應(yīng)用中,C-Mgr可以有不同的方式選擇一個RLA。例如,C-Mgr可以 事先記錄各個RLA的標(biāo)識,并且由于所有的RLA都是通過單一的一個 C-Mgr i殳置的,C-Mgr可以記錄各個RLA的狀態(tài),知道<壬<可哪個RLA 是空閑的,可以用于配置。 一旦選擇了選定了一個RLA, C-Mgr只需 要提供該RLA的標(biāo)識,配置數(shù)據(jù)可以經(jīng)由多個RLA之間的內(nèi)部連線被 3各由到相應(yīng)的RLA。
以上結(jié)合具體實施例對本發(fā)明的用于多個可配置邏輯陣列RLA的 配置管理器和配置方法進(jìn)行了詳細(xì)描述,但本發(fā)明并不限于此,本領(lǐng)域 普通技術(shù)人員能夠理解,在不偏離本發(fā)明的精神和范圍的情況下,可以 對本發(fā)明進(jìn)行多種變換、替換和修改。
權(quán)利要求
1.一種用于多個可配置邏輯陣列RLA的配置管理器,包括配置存儲器,用于存儲多個配置數(shù)據(jù)和與配置數(shù)據(jù)相對應(yīng)的功能標(biāo)識;配置控制器,用于從配置存儲器中選擇一個配置數(shù)據(jù),并將其發(fā)送到RLA,其中,配置控制器響應(yīng)來自一個通用計算裝置的對RLA進(jìn)行配置的請求,根據(jù)該請求中的功能標(biāo)識,從配置存儲器中選擇要傳送的對應(yīng)配置數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的配置管理器,其中,通用計算裝置是 分布式計算網(wǎng)絡(luò)中的遠(yuǎn)程通用計算裝置,功能標(biāo)識對所有通用計算裝 置來說是全局的。
3. 根據(jù)權(quán)利要求1所述的配置管理器,其中,功能標(biāo)識對所有 通用計算裝置來說是全局的。
4. 根據(jù)權(quán)利要求1所述的配置管理器,其中,配置控制器用于 將配置數(shù)據(jù)發(fā)送到配置請求中所指定的RLA。
5. 根據(jù)權(quán)利要求1至4其中之一所述的配置管理器,其中,可 配置邏輯陣列RLA選自現(xiàn)場可編程門陣列FPGA或CPLD復(fù)雜可編程邏 輯器件或者其他可編程集成電路元件,配置數(shù)據(jù)是用于配置RLA的一 組配置位。
6. —種用于多個可配置邏輯陣列RLA的配置方法,包括接收來自 一 個通用計算裝置的對R L A進(jìn)行配置的請求,該請求包 含一個功能標(biāo)識;根據(jù)請求中的功能標(biāo)識,從配置存儲器中選擇對應(yīng)的配置數(shù)據(jù),將配置數(shù)據(jù)發(fā)送到RLA。
7. 根據(jù)權(quán)利要求6所述的配置方法,其中,請求中包含指定所 要配置的RLA的標(biāo)識,該方法進(jìn)一步包括才艮據(jù)該標(biāo)識將配置數(shù)據(jù)發(fā) 送到該請求所指定的RLA
8. 根據(jù)權(quán)利要求6所述的配置方法,其中,通用計算裝置是分 布式計算網(wǎng)絡(luò)中的遠(yuǎn)程通用計算裝置,功能標(biāo)識對所有通用計算裝置 來說是全局的。
9. 根據(jù)權(quán)利要求6所述的配置方法,其中,功能標(biāo)識對所有通 用計算裝置來說是全局的。
10. 根據(jù)權(quán)利要求6-9中任何一個的配置方法,其中,可配置邏 輯陣列RLA選自現(xiàn)場可編程門陣列FPGA或CPLD復(fù)雜可編程邏輯器件 或者其他可編程集成電路元件,配置數(shù)據(jù)是用于配置RLA的一組配置 位。
11. 一種可配置計算裝置,包括 多個可配置邏輯陣列RLA; 配置管理器,包括配置存儲器,用于存儲多個配置數(shù)據(jù)和與配置數(shù)據(jù)相對應(yīng)的 功能標(biāo)識;配置控制器,用于從配置存儲器中選擇一個配置數(shù)據(jù),并將 其發(fā)送到一個RLA,其中,配置控制器響應(yīng)來自一個通用計算裝置的 對RLA進(jìn)行配置的請求,根據(jù)該請求中的功能標(biāo)識,從配置存儲器中 選擇要傳送的對應(yīng)配置數(shù)據(jù)。
12. 根據(jù)權(quán)利要求11所述的可配置計算裝置,其中,通用計算 裝置是分布式計算網(wǎng)絡(luò)中的遠(yuǎn)程通用計算裝置,
13. 根據(jù)權(quán)利要求12所述的可配置計算裝置,其中,功能標(biāo)識 對所有通用計算裝置來說是全局的。
14. 根據(jù)權(quán)利要求13所述的可配置計算裝置,其中,配置控制 器用于將配置數(shù)據(jù)發(fā)送到配置請求中所指定的RLA。
15. 根據(jù)權(quán)利要求11至14任何之一所述的可配置計算裝置,其 中,可配置邏輯陣列RLA選自現(xiàn)場可編程門陣列FPGA或CPLD復(fù)雜可 編程邏輯器件或者其他可編程集成電路元件,配置數(shù)據(jù)是用于配置RLA。
16. 根據(jù)權(quán)利要求11至14任何之一所述的可配置計算裝置,其 中,配置存儲器中的配置數(shù)據(jù),是從可配置計算裝置以外的源預(yù)先存儲的。
全文摘要
一種用于多個可配置邏輯陣列RLA的配置方法和配置管理器,以及包含該配置管理器和多個可配置邏輯陣列RLA的可配置計算裝置。配置管理器包括配置存儲器,用于存儲多個配置數(shù)據(jù)和與配置數(shù)據(jù)相對應(yīng)的功能標(biāo)識;配置控制器,用于響應(yīng)來自一個通用計算裝置的對RLA進(jìn)行配置的請求,從配置存儲器中選擇一個配置數(shù)據(jù),并將其發(fā)送到RLA。本發(fā)明尤其適合于分布式計算網(wǎng)絡(luò)中可配置邏輯陣列的配置。
文檔編號G06F15/76GK101593169SQ20081010819
公開日2009年12月2日 申請日期2008年5月30日 優(yōu)先權(quán)日2008年5月30日
發(fā)明者強(qiáng) 劉, 彧 李, 誠 楊, 楊雨東, 林詠華, 沈文博, 王艷琦, 鵬 邵 申請人:國際商業(yè)機(jī)器公司