專利名稱:基于fpga的動(dòng)態(tài)可重構(gòu)系統(tǒng)的分片配置方法
技術(shù)領(lǐng)域:
本發(fā)明屬于基于FPGA的動(dòng)態(tài)可重構(gòu)系統(tǒng)的配置過(guò)程設(shè)計(jì)領(lǐng)域,尤其涉及 一種基于FPGA的動(dòng)態(tài)可重構(gòu)系統(tǒng)的分片配置方法。
背景技術(shù):
20世紀(jì)人類的杰出成果之一是計(jì)算機(jī)技術(shù)把人類社會(huì)帶入了信息化時(shí) 代。多核處理器己經(jīng)進(jìn)入了我們的視野,于此同時(shí),可重構(gòu)技術(shù)也隨著半導(dǎo)體 工藝的不斷提高而愈發(fā)成熟,動(dòng)態(tài)可重構(gòu)系統(tǒng)從系統(tǒng)定制與再適應(yīng)的角度,使 系統(tǒng)的性能成倍增長(zhǎng)。當(dāng)前使用最多的動(dòng)態(tài)可重構(gòu)硬件是現(xiàn)場(chǎng)可編程門(mén)陣列, 由于硬件工藝原因,該類可重構(gòu)硬件的配置過(guò)程需要一定時(shí)間,如何減少配置 過(guò)程帶來(lái)的系統(tǒng)開(kāi)銷,正成為突破動(dòng)態(tài)可重構(gòu)系統(tǒng)應(yīng)用瓶頸的研究熱點(diǎn)。
動(dòng)態(tài)可重構(gòu)系統(tǒng),是隨著動(dòng)態(tài)可重構(gòu)硬件器件的發(fā)展而出現(xiàn)的新型平臺(tái), 該類平臺(tái)的特點(diǎn),就是可以根據(jù)不同應(yīng)用的需要,進(jìn)行硬件模塊的重配置,從 而達(dá)到應(yīng)用定制系統(tǒng)的性能,減小了開(kāi)發(fā)和使用的成本。英特爾公司的集成加 速器技術(shù)QuickAssist就是該類系統(tǒng)。該類系統(tǒng)的核心器件,就是現(xiàn)場(chǎng)可編程 門(mén)陣列FPGA。隨著半導(dǎo)體工藝的飛速發(fā)展,現(xiàn)場(chǎng)可編程門(mén)陣列的規(guī)模越來(lái)越 大,同時(shí),性能也愈發(fā)提高,加上其固有的靈活性以及可定制性,使得動(dòng)態(tài)可 重構(gòu)系統(tǒng)愈發(fā)強(qiáng)大,在當(dāng)今多核領(lǐng)域開(kāi)啟了一個(gè)新的研究方向,有著巨大的發(fā) 展?jié)摿εc市場(chǎng)前景。
由于現(xiàn)場(chǎng)可編程門(mén)陣列的工藝特點(diǎn),決定了重配置完整的一塊FPGA,需 要花費(fèi)一定時(shí)間,根據(jù)該器件的容量不同而不同,越大容量的器件需要更長(zhǎng)時(shí) 間的配置過(guò)程,通常需要達(dá)到毫秒級(jí)。這樣的配置開(kāi)銷成為了阻礙動(dòng)態(tài)可重構(gòu) 系統(tǒng)的瓶頸,研宄如何減少重配置代價(jià),成為了該技術(shù)領(lǐng)域內(nèi)的一大研究熱點(diǎn)。 目前的研究成果中,減少重配置代價(jià)的方法,主要是通過(guò)配置數(shù)據(jù)的預(yù)取 以及增加配置數(shù)據(jù)緩存的方法,前者利用了提前配置過(guò)程的方法,在運(yùn)行前配 置現(xiàn)場(chǎng)可編程門(mén)陣列,這種方法依賴于對(duì)于配置需求的準(zhǔn)確預(yù)測(cè)。后者使用了加速配置數(shù)據(jù)傳送到方法,將配置數(shù)據(jù)預(yù)先放入快速緩存中,這種方法依賴于 緩存的性能。
發(fā)明內(nèi)容
為克服現(xiàn)有技術(shù)的上述缺陷,本發(fā)明的目的在于提供一種基于FPGA的動(dòng) 態(tài)可重構(gòu)系統(tǒng)的分片配置方法。
本發(fā)明解決技術(shù)問(wèn)題所采用的技術(shù)方案是
1) 硬件代碼的分片
為了能夠?qū)PGA的配置過(guò)程分割成多個(gè)配置片,需要對(duì)硬件代碼部分進(jìn)
行分片。每個(gè)硬件代碼段將分別生成各個(gè)配置片的配置數(shù)據(jù),每個(gè)代碼段與一 個(gè)配置片對(duì)應(yīng)。在硬件代碼分割時(shí),保證數(shù)據(jù)處理的完整性,即每個(gè)代碼段的 包括數(shù)據(jù)的輸入,處理與輸出三個(gè)部分。配置片之間的先后順序,反映了成個(gè) 程序的數(shù)據(jù)流。
2) 配置過(guò)程的分片
硬件代碼段經(jīng)過(guò)綜合工具,整合成為二進(jìn)制配置數(shù)據(jù),即可進(jìn)行對(duì)FPGA 的重構(gòu)配置。配置過(guò)程按照配置片的先后順序進(jìn)行配置,當(dāng)前一個(gè)配置片完成 配置工作之后,后一個(gè)配置片開(kāi)始迸行配置。這一過(guò)程中,原本作為FPGA整 體重構(gòu)配置的過(guò)程,被分成了多個(gè)配置片的配置過(guò)程。
3) 流水化的配置過(guò)程
由于FPGA的特點(diǎn),同一時(shí)間,只能進(jìn)行一個(gè)配置任務(wù),因此,各個(gè)配置 片必須按照先后順序進(jìn)行配置。當(dāng)一個(gè)配置片完成配置工作之后,就可以開(kāi)始 進(jìn)入到運(yùn)行狀態(tài),而后續(xù)的配置片同時(shí)開(kāi)始進(jìn)行配置過(guò)程。整個(gè)配置過(guò)程實(shí)現(xiàn) 流水化。流水化的配置過(guò)程可以隱藏配置代價(jià)。
4) 每個(gè)配置片之間插入緩存
完成配置過(guò)程后,進(jìn)入運(yùn)行狀態(tài)的配置片將輸入進(jìn)行處理,并輸出中間結(jié) 構(gòu),這些中間結(jié)果由于下一級(jí)配置片還未完成配置過(guò)程而無(wú)法得到處理,因此, 必須在每個(gè)配置片之間,插入緩存。緩存的作用即存放中間結(jié)果,等待下一級(jí) 配置片完成配置并進(jìn)入運(yùn)行狀態(tài)后,為其提供待處理的輸入數(shù)據(jù)。
5) 配置片與緩存之間根據(jù)外部協(xié)議通過(guò)附加電路進(jìn)行控制
4由于緩存是由硬件構(gòu)成,需要占用FPGA的硬件資源,因此,其容量有限。 配置片與緩存之間需要定義外部協(xié)議以達(dá)到狀態(tài)傳遞的作用,當(dāng)緩存有剩余空 間時(shí),通過(guò)外部電路告知上一級(jí)配置片可以進(jìn)行數(shù)據(jù)處理,并將中間結(jié)果存放 其中。如果在緩存滿時(shí),下一級(jí)配置片尚未完成配置過(guò)程,則緩存通過(guò)外部電 路告知上一級(jí)配置片,使其進(jìn)入停滯狀態(tài),待下一級(jí)配置片完成配置工作進(jìn)入 運(yùn)行狀態(tài)時(shí),通知上一級(jí)處理器恢復(fù)到運(yùn)行狀態(tài)。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是
該設(shè)計(jì)是一種基于FPGA的動(dòng)態(tài)可重構(gòu)系統(tǒng)的分片配置方法,利用將配置
過(guò)程分片的方法,實(shí)現(xiàn)流水化配置過(guò)程,達(dá)到隱藏配置時(shí)間的方法,減小配置
開(kāi)銷,提高硬件利用率
(1) 優(yōu)化配置過(guò)程,不依賴于硬件支持,不需要預(yù)測(cè)技術(shù),不需要改變 原程序結(jié)構(gòu)。
(2) 流水化配置過(guò)程,隱藏配置時(shí)間。由于配置過(guò)程改變成為了配置片 流水,原本完整的配置過(guò)程被劃分為多個(gè)片,當(dāng)前配置片不需要等到下一片完 成配置工作即可運(yùn)行,重疊了配置與運(yùn)行的時(shí)間,從而隱藏配置時(shí)間,減少系 統(tǒng)開(kāi)銷。
(3) 由于系統(tǒng)的運(yùn)行不需要等到整個(gè)硬件完成配置過(guò)程就可以開(kāi)始運(yùn)行,
則己經(jīng)完成處理工作的配置片也無(wú)需等待整個(gè)硬件完成工作,就可以進(jìn)入下一
個(gè)配置過(guò)程,提高了 FPGA的利用率。
圖1是本發(fā)明一種基于FPGA的動(dòng)態(tài)可重構(gòu)系統(tǒng)的分片配置方法實(shí)施例的 流程示意圖2是本發(fā)明一種實(shí)施例的非分片配置過(guò)程與分片配置過(guò)程對(duì)比示意圖; 圖3是本發(fā)明一種實(shí)施例的配置片與緩存關(guān)系示意圖; 圖4是本發(fā)明一種實(shí)施例的配置片狀態(tài)轉(zhuǎn)換示意圖。
具體實(shí)施方法
技術(shù)領(lǐng)域:
本發(fā)明的基于FPGA的動(dòng)態(tài)可重構(gòu)系統(tǒng)的分片配置方法,利用了流水化配置過(guò)程的特點(diǎn),隱藏了配置時(shí)間。本實(shí)施例的分片配置過(guò)程,如圖1所示。圖 2為采用了分片配置方法與非分片方法對(duì)比圖,與非分片配置方法相比較,圖 中陰影部分,為配置代價(jià)隱藏部分,該部分時(shí)間將被已經(jīng)完成配置過(guò)程的配置 片1所利用,進(jìn)行其實(shí)際的運(yùn)行。
由于需要存放配置片所輸出的中間結(jié)果,緩存被加入到各個(gè)配置片之間, 如圖3所示。每個(gè)配置片有四種狀態(tài),即空閑狀態(tài),配置狀態(tài),運(yùn)行狀態(tài)以及
停滯狀態(tài),如圖4所示。
本實(shí)施例分片配置過(guò)程的運(yùn)行關(guān)鍵步驟如下
1) 硬件代碼的分片
為了能夠?qū)PGA的配置過(guò)程分割成多個(gè)配置片,需要對(duì)硬件代碼部分進(jìn) 行分片。每個(gè)硬件代碼段將分別生成各個(gè)配置片的配置數(shù)據(jù),每個(gè)代碼段與一 個(gè)配置片對(duì)應(yīng)。在硬件代碼分割時(shí),保證數(shù)據(jù)處理的完整性,即每個(gè)代碼段的 包括數(shù)據(jù)的輸入,處理與輸出三個(gè)部分。配置片之間的先后順序,反映了整個(gè) 程序的數(shù)據(jù)流。硬件代碼段的分割依據(jù)為根據(jù)數(shù)據(jù)流圖,將程序按照工作量 進(jìn)行分割,每個(gè)程序段之間,僅僅包括單向的數(shù)據(jù)傳遞。等工作量的分割是為 了讓每個(gè)配置片的配置時(shí)間一致,以減少由于配置時(shí)間差異引起的配置片停滯 狀態(tài),提高系統(tǒng)的效率。程序段經(jīng)過(guò)綜合工具生成二進(jìn)制配置數(shù)據(jù)。
2) 配置過(guò)程的分片
硬件代碼段經(jīng)過(guò)綜合工具,整合成為二進(jìn)制配置數(shù)據(jù),即可進(jìn)行對(duì)FPGA
的重構(gòu)配置。配置過(guò)程按照配置片的先后順序進(jìn)行配置,當(dāng)前一個(gè)配置片完成
配置工作之后,后一個(gè)配置片開(kāi)始進(jìn)行配置。這一過(guò)程中,原本作為FPGA整 體重構(gòu)配置的過(guò)程,被分成了多個(gè)配置片的配置過(guò)程。
3) 流水化的配置過(guò)程
由于FPGA的特點(diǎn),同一時(shí)間,只能進(jìn)行一個(gè)配置任務(wù),因此,各個(gè)配置 片必須按照先后順序進(jìn)行配置。當(dāng)一個(gè)配置片完成配置工作之后,就可以開(kāi)始 進(jìn)入到運(yùn)行狀態(tài),而后續(xù)的配置片同時(shí)開(kāi)始進(jìn)行配置過(guò)程。整個(gè)配置過(guò)程實(shí)現(xiàn) 流水化。流水化的配置過(guò)程可以隱藏配置代價(jià)??芍嘏渲糜布﨔PGA—開(kāi)始處 于空閑狀態(tài)。當(dāng)重配置任務(wù)開(kāi)始運(yùn)行,第一個(gè)配置片開(kāi)始進(jìn)入配置狀態(tài),配置 控制器讀入配置數(shù)據(jù)開(kāi)始進(jìn)行配置過(guò)程。當(dāng)配置片完成配置,其就從配置狀態(tài)轉(zhuǎn)變?yōu)楣ぷ鳡顟B(tài),開(kāi)始處理輸入數(shù)據(jù),同時(shí),下一個(gè)配置片開(kāi)始迸入配置狀態(tài)。 運(yùn)行產(chǎn)生的中間結(jié)果,存入兩者之間的緩存中。若緩存滿且下一個(gè)配置片的配 置過(guò)程尚未完成,則前一個(gè)配置片需要進(jìn)入停滯狀態(tài),待下一個(gè)配置片進(jìn)入運(yùn) 行狀態(tài)并開(kāi)始處理緩存中的數(shù)據(jù)后,才恢復(fù)到運(yùn)行狀態(tài)繼續(xù)處理輸入數(shù)據(jù)。當(dāng) 配置片完成了其所有的工作,則進(jìn)入到空閑狀態(tài)。此時(shí),代表該配置片的工作 己經(jīng)完成,可以進(jìn)行下一次的重配置任務(wù)。
4) 每個(gè)配置片之間插入緩存
完成配置過(guò)程后,進(jìn)入運(yùn)行狀態(tài)的配置片將輸入進(jìn)行處理,并輸出中間結(jié) 構(gòu),這些中間結(jié)果由于下一級(jí)配置片還未完成配置過(guò)程而無(wú)法得到處理,因此, 必須在每個(gè)配置片之間,插入緩存。緩存的作用即存放中間結(jié)果,等待下一級(jí) 配置片完成配置并進(jìn)入運(yùn)行狀態(tài)后,為其提供待處理的輸入數(shù)據(jù)。
5) 配置片與緩存之間根據(jù)外部協(xié)議通過(guò)附加電路進(jìn)行控制
由于緩存是由硬件構(gòu)成,需要占用FPGA的硬件資源,因此,其容量有限。 配置片與緩存之間需要定義外部協(xié)議以達(dá)到狀態(tài)傳遞的作用,當(dāng)緩存有剩余空 間時(shí),通過(guò)外部電路告知上一級(jí)配置片可以進(jìn)行數(shù)據(jù)處理,并將中間結(jié)果存放 其中。如果在緩存滿時(shí),下一級(jí)配置片尚未完成配置過(guò)程,則緩存通過(guò)外部電 路告知上一級(jí)配置片,使其進(jìn)入停滯狀態(tài),待下一級(jí)配置片完成配置工作進(jìn)入 運(yùn)行狀態(tài)時(shí),通知上一級(jí)處理器恢復(fù)到運(yùn)行狀態(tài)。
權(quán)利要求
1. 一種基于FPGA的動(dòng)態(tài)可重構(gòu)系統(tǒng)的分片配置方法,其特征在于包括1)硬件代碼的分片為了能夠?qū)PGA的配置過(guò)程分割成多個(gè)配置片,需要對(duì)硬件代碼部分進(jìn)行分片每個(gè)硬件代碼段將分別生成各個(gè)配置片的配置數(shù)據(jù),每個(gè)代碼段與一個(gè)配置片對(duì)應(yīng);在硬件代碼分割時(shí),保證數(shù)據(jù)處理的完整性,即每個(gè)代碼段包括數(shù)據(jù)的輸入、處理與輸出三個(gè)部分;2)配置過(guò)程的分片硬件代碼段經(jīng)過(guò)綜合工具,整合成為二進(jìn)制配置數(shù)據(jù),即可進(jìn)行對(duì)FPGA的重構(gòu)配置配置過(guò)程按照配置片的先后順序進(jìn)行配置,當(dāng)前一個(gè)配置片完成配置工作之后,后一個(gè)配置片開(kāi)始進(jìn)行配置,這一過(guò)程中,原本作為FPGA整體重構(gòu)配置的過(guò)程,被分成多個(gè)配置片的配置過(guò)程;3)流水化的配置過(guò)程各個(gè)配置片必須按照先后順序進(jìn)行配置當(dāng)一個(gè)配置片完成配置工作之后,就可以開(kāi)始進(jìn)入到運(yùn)行狀態(tài),而后續(xù)的配置片同時(shí)開(kāi)始進(jìn)行配置過(guò)程,整個(gè)配置過(guò)程實(shí)現(xiàn)流水化;4)每個(gè)配置片之間插入緩存完成配置過(guò)程后,必須在每個(gè)配置片之間,插入緩存,用于存放中間結(jié)果,等待下一級(jí)配置片完成配置并進(jìn)入運(yùn)行狀態(tài)后,為其提供待處理的輸入數(shù)據(jù);5)配置片與緩存之間根據(jù)外部協(xié)議通過(guò)附加電路進(jìn)行控制配置片與緩存之間需要定義外部協(xié)議以達(dá)到狀態(tài)傳遞的作用,當(dāng)緩存有剩余空間時(shí),通過(guò)外部電路告知上一級(jí)配置片可以進(jìn)行數(shù)據(jù)處理,并將中間結(jié)果存放其中;如果在緩存滿時(shí),下一級(jí)配置片尚未完成配置過(guò)程,則緩存通過(guò)外部電路告知上一級(jí)配置片,使其進(jìn)入停滯狀態(tài),待下一級(jí)配置片完成配置工作進(jìn)入運(yùn)行狀態(tài)時(shí),通知上一級(jí)處理器恢復(fù)到運(yùn)行狀態(tài)。
全文摘要
本發(fā)明公開(kāi)了一種基于FPGA的動(dòng)態(tài)可重構(gòu)系統(tǒng)的分片配置方法,它通過(guò)將FPGA的配置過(guò)程進(jìn)行分割,形成配置片,配置過(guò)程以片為單位進(jìn)行FPGA的重構(gòu)配置。本發(fā)明的有益效果是配置片完成配置工作后即可開(kāi)始運(yùn)行,使得任務(wù)的運(yùn)行無(wú)需等待FPGA全部的重構(gòu)配置過(guò)程完成,以達(dá)到減少重構(gòu)配置延時(shí),提高FPGA利用率;優(yōu)化配置過(guò)程,不依賴于硬件支持,不需要預(yù)測(cè)技術(shù),不需要改變?cè)绦蚪Y(jié)構(gòu);采用流水化配置過(guò)程,從而隱藏配置時(shí)間,減少系統(tǒng)開(kāi)銷。本發(fā)明對(duì)于基于FPGA的動(dòng)態(tài)可重構(gòu)系統(tǒng)具有重大意義。
文檔編號(hào)G06F17/50GK101441674SQ200810163209
公開(kāi)日2009年5月27日 申請(qǐng)日期2008年12月15日 優(yōu)先權(quán)日2008年12月15日
發(fā)明者馮德貴, 劉敬偉, 吳斌斌, 罡 王, 度 陳, 陳天洲 申請(qǐng)人:浙江大學(xué)