專利名稱:動(dòng)態(tài)可重構(gòu)裝置以及用該裝置進(jìn)行動(dòng)態(tài)可重構(gòu)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種動(dòng)態(tài)可重構(gòu)裝置,特別是細(xì)粒度動(dòng)態(tài)可重構(gòu)裝置。還涉及用這種動(dòng)態(tài)可 重構(gòu)裝置進(jìn)行動(dòng)態(tài)可重構(gòu)的方法。
背景技術(shù):
文獻(xiàn)l"專利號為US20070162529的美國專利"公開了一種動(dòng)態(tài)可重構(gòu)電路。該裝置由多 片F(xiàn)PGA、存儲(chǔ)模塊、互聯(lián)模塊、磁盤陣列構(gòu)成。其中存儲(chǔ)模塊及磁盤陣列模塊負(fù)責(zé)數(shù)據(jù)存 儲(chǔ),F(xiàn)PGA負(fù)責(zé)電路的重構(gòu)、計(jì)算任務(wù),互聯(lián)模塊負(fù)責(zé)各個(gè)模塊之間的連接。存在一個(gè)控制 模塊,該控制模塊向FPGA提供電能并控制FPGA配置,配置信息包包括FPGA的配置文件、 連接開關(guān)部件的初始化信息以及描述每個(gè)FPGA反饋信號的腳本。該裝置可以實(shí)現(xiàn)大規(guī)模的 動(dòng)態(tài)可重構(gòu)系統(tǒng),對特殊計(jì)算需求的任務(wù)進(jìn)行加速。但是該裝置的FPGA配置策略比較簡單, 無法對重構(gòu)的電路進(jìn)行復(fù)用。
文獻(xiàn)2"專利號為US20090106341的美國專利"公開了一種動(dòng)態(tài)可重構(gòu)的基帶處理裝置。 該裝置由PN碼生成部件、旋轉(zhuǎn)因子生成部件、系數(shù)存儲(chǔ)器、輸入數(shù)據(jù)存儲(chǔ)器、輸出數(shù)據(jù)存 儲(chǔ)器、延遲部件、復(fù)雜乘法部件、復(fù)雜加法部件、復(fù)雜減法部件及控制部件組成。該控制部 件通過控制各個(gè)部件之間的互聯(lián)關(guān)系達(dá)到電路的動(dòng)態(tài)可重構(gòu)。通過控制可重構(gòu)處理模塊,可 以選擇性地實(shí)現(xiàn)基2蝶形運(yùn)算核、PN相關(guān)器、自動(dòng)相關(guān)器及復(fù)雜加法器。該動(dòng)態(tài)可重構(gòu)裝置 采用了粗粒度的可重構(gòu),各個(gè)重構(gòu)電路的結(jié)構(gòu)不同,因此無法達(dá)到電路復(fù)用,導(dǎo)致該動(dòng)態(tài)可 重構(gòu)電路的資源利用率較低,無法靈活地實(shí)現(xiàn)任務(wù)的動(dòng)態(tài)可重構(gòu)。
文獻(xiàn)3"專利號為US20070113054的美國專利"公開了一種大粒度的動(dòng)態(tài)可重構(gòu)系統(tǒng)。該裝 置中,處理單元采用行的形式相互連接,通過設(shè)置行模式,可以實(shí)現(xiàn)流水或者并行的處理模 式。由于選擇了合適的粒度、有限的互聯(lián)資源、數(shù)據(jù)分布電路,可以在一個(gè)周期內(nèi)實(shí)現(xiàn)局部 或者常規(guī)的組件重構(gòu)。該發(fā)明實(shí)現(xiàn)了一種同構(gòu)、快速的動(dòng)態(tài)可重構(gòu),為可重構(gòu)資源的管理、 重構(gòu)優(yōu)化帶來了可能。但是,該裝置的重構(gòu)結(jié)構(gòu)比較簡單,無法有效提高面向?qū)S妙I(lǐng)域的大 規(guī)模電路重構(gòu)的電路計(jì)算能力。
參照圖6,公知的動(dòng)態(tài)可重構(gòu)裝置包括主處理器、部分可重構(gòu)單元及存儲(chǔ)器。部分可重構(gòu) 單元是一種結(jié)構(gòu)可配置的芯片,能夠通過重構(gòu)配置實(shí)現(xiàn)多種電路結(jié)構(gòu), 一般采用FPGA實(shí)現(xiàn)。 部分可重構(gòu)單元的特點(diǎn)為可配置芯片內(nèi)的某一區(qū)域可以在其它區(qū)域工作的同時(shí),重構(gòu)為不 同的電路結(jié)構(gòu), 一般將芯片上重構(gòu)的電路稱為任務(wù)。部分可重構(gòu)單元的任務(wù)重構(gòu)及工作由主 處理器管理。主處理器對部分可重構(gòu)單元的資源做出規(guī)劃,管理可重構(gòu)單元中任務(wù)的布局、重構(gòu)及釋放。任務(wù)的重構(gòu)包括處理器將配置信息從存儲(chǔ)器中加載到可重構(gòu)單元,可重構(gòu)單 元根據(jù)配置信息對其相關(guān)資源做出配置。重構(gòu)好的任務(wù)可進(jìn)行具體的計(jì)算。該動(dòng)態(tài)可重構(gòu)裝 置的性能由任務(wù)重構(gòu)時(shí)間及運(yùn)行速度兩方面決定。
發(fā)明內(nèi)容
為了減少傳統(tǒng)動(dòng)態(tài)可重構(gòu)裝置的平均重構(gòu)時(shí)間,提高可重構(gòu)電路的性能,本發(fā)明提供一
種動(dòng)態(tài)可重構(gòu)裝置,在可重構(gòu)電路中構(gòu)建了回收Cache,回收Cache對部分可重構(gòu)單元上任 務(wù)的歷史信息自動(dòng)進(jìn)行記錄,主處理器借助回收Cache對部分可重構(gòu)單元的任務(wù)進(jìn)行重復(fù)使 用,可以減少任務(wù)的重構(gòu)次數(shù),降低任務(wù)的平均重構(gòu)時(shí)間。
本發(fā)明還提供用這種動(dòng)態(tài)可重構(gòu)裝置進(jìn)行動(dòng)態(tài)可重構(gòu)的方法。在新的任務(wù)到來之后,主 處理器在回收Cache中檢査是否有已經(jīng)重構(gòu)好的任務(wù),如果有則不需要重構(gòu),直接利用該任 務(wù)進(jìn)行計(jì)算;如果沒有則需要在可重構(gòu)單元中重構(gòu)該任務(wù),回收Cache記錄該任務(wù)。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案 一種動(dòng)態(tài)可重構(gòu)裝置,包括主處理器、存儲(chǔ) 器、部分可重構(gòu)單元,其特點(diǎn)還包括回收Cache,所述回收Cache中包含一個(gè)任務(wù)存儲(chǔ)單元、 一個(gè)輸出接口及一個(gè)輸入監(jiān)控接口,輸入監(jiān)控接口自動(dòng)記錄部分可重構(gòu)單元增加的任務(wù),輸 出接口在任務(wù)存儲(chǔ)單元中對主處理器提供的任務(wù)進(jìn)行査詢,有匹配的任務(wù)則輸出到主處理器;
任務(wù)存儲(chǔ)單元滿,則輸入監(jiān)控接口利用最近最久未使用算法淘汰一個(gè)任務(wù),然后記錄該任務(wù);
新增加的任務(wù)在部分可重構(gòu)單元中占據(jù)了已有任務(wù)的部分電路,造成以后任務(wù)的污染,則輸 入監(jiān)控接口自動(dòng)將被污染的任務(wù)淘汰。
一種利用上述動(dòng)態(tài)可重構(gòu)裝置進(jìn)行動(dòng)態(tài)可重構(gòu)的方法,其特點(diǎn)是包括以下步驟
(a) 主處理器將新的任務(wù)詳細(xì)信息傳輸給回收Cache,回收Cache查詢其任務(wù)存儲(chǔ)單元 中是否有相同的任務(wù);
(b) 回收Cache中有相同任務(wù)時(shí),回收Cache將該任務(wù)的詳細(xì)信息傳輸給主處理器,主 處理器利用已有的任務(wù)進(jìn)行計(jì)算;
(c) 回收Cache中無相同任務(wù)時(shí),主處理器在部分可重構(gòu)單元中重構(gòu)該任務(wù);
(d) 回收Cache監(jiān)控主處理器的任務(wù)重構(gòu)結(jié)果,重構(gòu)的任務(wù)在部分可重構(gòu)單元中占據(jù)了 其它任務(wù)的部分電路,則將被占據(jù)的任務(wù)記錄從回收Cache中刪除;
(e) 回收Cache記錄任務(wù)重構(gòu)結(jié)果,回收Cache中任務(wù)存儲(chǔ)單元滿,則替換掉一個(gè)任務(wù) 記錄,將該任務(wù)重構(gòu)結(jié)果記錄在任務(wù)存儲(chǔ)單元中,否則直接記錄到任務(wù)存儲(chǔ)單元。
本發(fā)明的有益效果是由于采用回收Cache自動(dòng)監(jiān)測、記錄部分可重構(gòu)單元中的任務(wù)并 維護(hù)任務(wù)的完整性,主處理器可以借助回收Cache對部分可重構(gòu)單元的任務(wù)進(jìn)行多次重復(fù)使 用,減少了任務(wù)的重構(gòu)次數(shù)及任務(wù)重構(gòu)時(shí)間,提高了動(dòng)態(tài)可重構(gòu)系統(tǒng)的計(jì)算能力。下面結(jié)合附圖和實(shí)施例對本發(fā)明做詳細(xì)說明。
圖1是本發(fā)明動(dòng)態(tài)可重構(gòu)裝置的結(jié)構(gòu)框圖。 圖2是圖1中回收Cache的詳圖。 圖3是圖2中存儲(chǔ)單元的詳圖。 圖4是圖2中輸出接口的詳圖。 圖5是圖2中輸入監(jiān)控接口的詳圖。 圖6是公知的動(dòng)態(tài)可重構(gòu)裝置結(jié)構(gòu)框圖。
具體實(shí)施例方式
參照圖1~5,本發(fā)明在構(gòu)造上采用了與回收Cache結(jié)合的動(dòng)態(tài)可重構(gòu)裝置。整個(gè)裝置由主 處理器、存儲(chǔ)器、部分可重構(gòu)單元及回收Cache四大部分組成。主處理器負(fù)責(zé)動(dòng)態(tài)可重構(gòu)裝 置的管理,具體包括部分可重構(gòu)單元的資源規(guī)劃、重構(gòu)控制,存儲(chǔ)器管理,回收Cache的査 詢。存儲(chǔ)單元負(fù)責(zé)向主處理器及部分可重構(gòu)單元提供數(shù)據(jù),向主處理器提供的數(shù)據(jù)有指令及 數(shù)據(jù),向部分可重構(gòu)單元提供的數(shù)據(jù)有計(jì)算數(shù)據(jù)、配置信息。部分可重構(gòu)單元在主處理器的 控制下,從存儲(chǔ)單元加載配置信息,對任務(wù)進(jìn)行重構(gòu),重構(gòu)完成后相應(yīng)的任務(wù)開始計(jì)算?;?收Cache監(jiān)控部分可重構(gòu)單元中任務(wù)的變化請求,自動(dòng)記錄新增的任務(wù),淘汰被污染的任務(wù), 主處理器通過査詢回收Cache,可以獲得部分可重構(gòu)單元中的任務(wù)歷史記錄信息。新的任務(wù) 到來,主處理器査詢回收Cache中是否存在該任務(wù),如果存在,則不需要對該任務(wù)進(jìn)行重構(gòu), 直接利用匹配的任務(wù)進(jìn)行計(jì)算,如果不存在,則需要在部分可重構(gòu)單元中重構(gòu)該任務(wù),然后 才能計(jì)算。
整個(gè)電路的信息流向?yàn)樾碌娜蝿?wù)到來,主處理器查詢回收Cache中是否有該任務(wù)的記 錄,如果有,則利用記錄的任務(wù)直接計(jì)算,如果沒有,則需要在部分可重構(gòu)單元中重構(gòu)該任 務(wù),重構(gòu)完成后進(jìn)行計(jì)算?;厥誄ache記錄部分可重構(gòu)單元內(nèi)所有重構(gòu)的任務(wù)信息。
動(dòng)態(tài)可重構(gòu)裝置進(jìn)行動(dòng)態(tài)可重構(gòu)計(jì)算的方法具體如下 (1)動(dòng)態(tài)可重構(gòu)裝置初始化。
(a) 新的任務(wù)到來,主處理器將該任務(wù)的詳細(xì)信息傳輸給回收Cache,回收Cache査詢 其任務(wù)存儲(chǔ)單元中是否有相同的任務(wù)。
(b) 如果回收Cache中有相同任務(wù),回收Cache將該任務(wù)的詳細(xì)信息傳輸給主處理器, 主處理器利用己有的任務(wù)進(jìn)行計(jì)算。
(c) 如果回收Cache中無相同任務(wù),主處理器在部分可重構(gòu)單元中重構(gòu)該任務(wù)。
(d) 回收Cache監(jiān)控主處理器的任務(wù)重構(gòu)結(jié)果。如果重構(gòu)的任務(wù)在部分可重構(gòu)單元中占據(jù)了其它任務(wù)的部分電路,則將被占據(jù)的任務(wù)記錄從回收Cache中刪除。
(e)回收Cache記錄任務(wù)重構(gòu)結(jié)果。如果回收Cache中任務(wù)存儲(chǔ)單元滿,則替換掉一個(gè) 任務(wù)記錄,將該任務(wù)重構(gòu)結(jié)果記錄在任務(wù)存儲(chǔ)單元中,否則直接記錄到任務(wù)存儲(chǔ)單元。
從執(zhí)行流程上可以看出,該裝置有以下幾個(gè)特點(diǎn)首先,在進(jìn)行任務(wù)重構(gòu)之前,主處理 器先在回收Cache中檢查是否存在該任務(wù),如果存在該任務(wù)則不需要任務(wù)的哦重構(gòu),否則才 進(jìn)行重構(gòu),減少了系統(tǒng)運(yùn)行中任務(wù)的哦重構(gòu)次數(shù),降低了總的任務(wù)重構(gòu)時(shí)間,提高了動(dòng)態(tài)可 重構(gòu)裝置的計(jì)算能力?;厥誄ache檢查任務(wù)的重構(gòu)、執(zhí)行情況,自動(dòng)記錄部分可重構(gòu)單元的 任務(wù)信息,因此不會(huì)影響主處理器及部分可重構(gòu)單元的運(yùn)行。
權(quán)利要求
1、一種動(dòng)態(tài)可重構(gòu)裝置,包括主處理器、存儲(chǔ)器、部分可重構(gòu)單元,其特征在于還包括回收Cache,所述回收Cache中包含一個(gè)任務(wù)存儲(chǔ)單元、一個(gè)輸出接口及一個(gè)輸入監(jiān)控接口,輸入監(jiān)控接口自動(dòng)記錄部分可重構(gòu)單元增加的任務(wù),輸出接口在任務(wù)存儲(chǔ)單元中對主處理器提供的任務(wù)進(jìn)行查詢,有匹配的任務(wù)則輸出到主處理器;任務(wù)存儲(chǔ)單元滿,則輸入監(jiān)控接口利用最近最久未使用算法淘汰一個(gè)任務(wù),然后記錄該任務(wù);新增加的任務(wù)在部分可重構(gòu)單元中占據(jù)了已有任務(wù)的部分電路,造成以后任務(wù)的污染,則輸入監(jiān)控接口自動(dòng)將被污染的任務(wù)淘汰。
2、 一種利用權(quán)利要求1所述動(dòng)態(tài)可重構(gòu)裝置進(jìn)行動(dòng)態(tài)可重構(gòu)的方法,其特征在于包括以下步驟(a) 主處理器將新的任務(wù)詳細(xì)信息傳輸給回收Cache,回收Cache査詢其任務(wù)存儲(chǔ)單元中是否有相同的任務(wù);(b) 回收Cache中有相同任務(wù)時(shí),回收Cache將該任務(wù)的詳細(xì)信息傳輸給主處理器,主處理器利用已有的任務(wù)進(jìn)行計(jì)算;(c) 回收Cache中無相同任務(wù)時(shí),主處理器在部分可重構(gòu)單元中重構(gòu)該任務(wù);(d) 回收Cache監(jiān)控主處理器的任務(wù)重構(gòu)結(jié)果,重構(gòu)的任務(wù)在部分可重構(gòu)單元中占據(jù)了其它任務(wù)的部分電路,則將被占據(jù)的任務(wù)記錄從回收Cache中刪除;(e) 回收Cache記錄任務(wù)重構(gòu)結(jié)果,回收Cache中任務(wù)存儲(chǔ)單元滿,則替換掉一個(gè)任務(wù)記錄,將該任務(wù)重構(gòu)結(jié)果記錄在任務(wù)存儲(chǔ)單元中,否則直接記錄到任務(wù)存儲(chǔ)單元。
全文摘要
本發(fā)明公開了一種動(dòng)態(tài)可重構(gòu)裝置以及用用這種動(dòng)態(tài)可重構(gòu)裝置進(jìn)行動(dòng)態(tài)可重構(gòu)的方法,裝置包括主處理器、存儲(chǔ)器、部分可重構(gòu)單元,其特點(diǎn)還包括回收Cache,所述回收Cache中包含一個(gè)任務(wù)存儲(chǔ)單元、一個(gè)輸出接口及一個(gè)輸入監(jiān)控接口,輸入監(jiān)控接口自動(dòng)記錄部分可重構(gòu)單元增加的任務(wù),輸出接口在任務(wù)存儲(chǔ)單元中對主處理器提供的任務(wù)進(jìn)行查詢,有匹配的任務(wù)則輸出到主處理器;任務(wù)存儲(chǔ)單元滿,則輸入監(jiān)控接口利用最近最久未使用算法淘汰一個(gè)任務(wù);新增加的任務(wù)在部分可重構(gòu)單元中占據(jù)了已有任務(wù)的部分電路,造成以后任務(wù)的污染,則輸入監(jiān)控接口自動(dòng)將被污染的任務(wù)淘汰。由于采用回收Cache自動(dòng)監(jiān)測、記錄部分可重構(gòu)單元中的任務(wù),提高了動(dòng)態(tài)可重構(gòu)系統(tǒng)的計(jì)算能力。
文檔編號G06F15/76GK101630306SQ20091002358
公開日2010年1月20日 申請日期2009年8月14日 優(yōu)先權(quán)日2009年8月14日
發(fā)明者萌 張, 張盛兵, 樊曉椏, 王黨輝, 田杭沛, 然 鄭, 高德遠(yuǎn), 魏廷存, 黃小平 申請人:西北工業(yè)大學(xué)