两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于FPGA的動態(tài)可重構(gòu)硬件加速方法及系統(tǒng)與流程

文檔序號:11154631閱讀:244來源:國知局
基于 FPGA 的動態(tài)可重構(gòu)硬件加速方法及系統(tǒng)與制造工藝
本發(fā)明涉及FPGA重構(gòu)領(lǐng)域,特別涉及基于FPGA的動態(tài)可重構(gòu)硬件加速方法及系統(tǒng)。
背景技術(shù)
:邏輯可編程陣列(Field-ProgrammableGateArray,簡稱FPGA)是一種生產(chǎn)后可編程的集成電路芯片。在芯片中,電路提供可編程節(jié)點,可根據(jù)用戶設(shè)定重新定義電路邏輯。相比于傳統(tǒng)處理芯片CPU,F(xiàn)PGA可提供針對特定問題的高度優(yōu)化電路,提升百倍級別計算性能;相比于傳統(tǒng)集成電路芯片ASIC,F(xiàn)PGA可提供更加靈活的計算方案。然而,傳統(tǒng)CPU計算架構(gòu)中不同計算程序可復(fù)用相同的計算硬件資源,從而提高資源使用率以及靈活性,邏輯可編程陣列卻不能。FPGA提供的高度優(yōu)化電路由于其定制特性,無法支持不同計算程序間的復(fù)用,從而限制了硬件電路的靈活性等性能。例如,為支持同一應(yīng)用中的不同函數(shù)功能,硬件電路需要支持兩個優(yōu)化電路模塊,然而由于數(shù)據(jù)依賴,兩個電路模塊并不能同時運行,造成效率降低。技術(shù)實現(xiàn)要素:鑒于以上所述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供基于FPGA的動態(tài)可重構(gòu)硬件加速方法及系統(tǒng),用于解決現(xiàn)有技術(shù)中FPGA不能復(fù)用相同的計算硬件資源從而導(dǎo)致靈活性較低的問題。為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種基于FPGA的動態(tài)可重構(gòu)硬件加速方法,包括:提取應(yīng)用程序的可重構(gòu)數(shù)據(jù)流圖,所述可重構(gòu)數(shù)據(jù)流圖包括:含有多個函數(shù)節(jié)點的函數(shù)層數(shù)據(jù)流圖、及每個所述函數(shù)節(jié)點的含有多個運算節(jié)點的電路層數(shù)據(jù)流圖;對于每個函數(shù)節(jié)點,從其中的起始運算節(jié)點起,計算其余各個運算節(jié)點的運算起始時間和運算結(jié)束時間,據(jù)以計算每個函數(shù)節(jié)點的運算起始時間和運算結(jié)束時間;在不改變各函數(shù)節(jié)點間原本的數(shù)據(jù)依賴的基礎(chǔ)上,將所述函數(shù)層數(shù)據(jù)流圖重新分層,每層包括按照函數(shù)節(jié)點內(nèi)運算時間分開排序時在同一等級的電路;將擁有相同函數(shù)功能的函數(shù)層合并為同一函數(shù)層,合并后的各函數(shù)層依照預(yù)設(shè)規(guī)則結(jié)合,每個結(jié)合后的函數(shù)層成為一個獨立的配置層,同一配置層中的函數(shù)并行運行。于本發(fā)明一實施例中,所述依照預(yù)設(shè)規(guī)則結(jié)合,包括:依照排序順序從低層到高層逐一結(jié)合。于本發(fā)明一實施例中,所述計算每個函數(shù)節(jié)點的運算起始時間和運算結(jié)束時間,包括:取各起始運算節(jié)點的運算起始時間作為各函數(shù)節(jié)點的運算起始時間;取各運算節(jié)點中最大的運算結(jié)束時間作為各函數(shù)節(jié)點的運算結(jié)束時間。于本發(fā)明一實施例中,所述方法還包括方案層生成步驟,從而使同一應(yīng)用能采用不同配置層的組合來完成整個函數(shù)的執(zhí)行,包括:每個配置層根據(jù)配置中排序最高的函數(shù)層級尋找包含下一函數(shù)層級的配置層;包含相同函數(shù)的配置層不能結(jié)合;每個結(jié)合形成的方案包含所述應(yīng)用的所有函數(shù)。于本發(fā)明一實施例中,所述方法還包括運行時管理步驟,包括:提取分層優(yōu)化后的各函數(shù)層的函數(shù)性能模型;根據(jù)生成的各配置層和各所述函數(shù)性能模型提取每個配置層的性能模型;根據(jù)各所述配置層的性能模型提取各方案的性能模型;根據(jù)各所述方案的性能模型及數(shù)據(jù)處理量計算每個所述方案的運行時間;根據(jù)所述數(shù)據(jù)處理量及每個所述方案的重構(gòu)次數(shù)估算重構(gòu)成本。于本發(fā)明一實施例中,所述性能模型包括:表示并行計算能力的并行度。于本發(fā)明一實施例中,所述還包括應(yīng)用步驟,包括:提取各階段需要處理的數(shù)據(jù)量;讀取每個應(yīng)用的所有方案;預(yù)測每個方案的運行時間以及重構(gòu)成本;根據(jù)重構(gòu)成本,選取運行時間最少的方案予以執(zhí)行,其中,執(zhí)行方案在每個配置層運行時進行重構(gòu)操作。為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種基于FPGA的動態(tài)可重構(gòu)硬件加速系統(tǒng),包括:提取模塊,用于提取應(yīng)用程序的可重構(gòu)數(shù)據(jù)流圖,所述可重構(gòu)數(shù)據(jù)流圖包括:含有多個函數(shù)節(jié)點的函數(shù)層數(shù)據(jù)流圖、及每個所述函數(shù)節(jié)點的含有多個運算節(jié)點的電路層數(shù)據(jù)流圖;計算模塊,用于對于每個函數(shù)節(jié)點,從其中的起始運算節(jié)點起,計算其余各個運算節(jié)點的運算起始時間和運算結(jié)束時間,據(jù)以計算每個函數(shù)節(jié)點的運算起始時間和運算結(jié)束時間;分層模塊,用于在不改變各函數(shù)節(jié)點間原本的數(shù)據(jù)依賴的基礎(chǔ)上,將所述函數(shù)層數(shù)據(jù)流圖重新分層,每層包括按照函數(shù)節(jié)點內(nèi)運算時間分開排序時在同一等級的電路;合并模塊,用于將擁有相同函數(shù)功能的函數(shù)層合并為同一函數(shù)層,合并后的各函數(shù)層依照預(yù)設(shè)規(guī)則結(jié)合,每個結(jié)合后的函數(shù)層成為一個獨立的配置層,同一配置層中的函數(shù)并行運行。如上所述,本發(fā)明的基于FPGA的動態(tài)可重構(gòu)硬件加速方法及系統(tǒng),避免了傳統(tǒng)的FPGA不能復(fù)用相同的計算硬件資源的問題,大大提高了FPGA的靈活性以及運算速度。附圖說明圖1a顯示為本發(fā)明一實施例的應(yīng)用程序所需函數(shù)及其數(shù)據(jù)依賴圖。圖1b顯示了傳統(tǒng)硬件電路對圖1a的解決方案圖。圖1c顯示了動態(tài)可重構(gòu)硬件對圖1a的解決方案圖。圖2顯示為本發(fā)明一實施例的基于FPGA的動態(tài)可重構(gòu)硬件加速方法流程圖。圖3顯示為本發(fā)明一實施例的某一應(yīng)用的可重構(gòu)數(shù)據(jù)流圖。圖4a~4e顯示為優(yōu)化函數(shù)層生成配置層、方案層的過程分解圖。圖5顯示為本發(fā)明一實施例的對不同電路配置進行運行時管理的方法流程圖。圖6a~6c顯示為本發(fā)明三種應(yīng)用的可重構(gòu)數(shù)據(jù)流圖。圖7顯示為本發(fā)明一實施例的對不同電路配置進行應(yīng)用的方法流程圖。圖8顯示為本發(fā)明一實施例的基于FPGA的動態(tài)可重構(gòu)硬件加速系統(tǒng)模塊圖。具體實施方式以下通過特定的具體實例說明本發(fā)明的實施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可以通過另外不同的具體實施方式加以實施或應(yīng)用,本說明書中的各項細節(jié)也可以基于不同觀點與應(yīng)用,在沒有背離本發(fā)明的精神下進行各種修飾或改變。需說明的是,在不沖突的情況下,以下實施例及實施例中的特征可以相互組合。需要說明的是,以下實施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實際實施時的組件數(shù)目、形狀及尺寸繪制,其實際實施時各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。圖1a~1b顯示了邏輯可編程陣列在通常應(yīng)用中的效率及理論解決方案,具體的:圖1a顯示了應(yīng)用程序所需函數(shù)A、B、C、D及其數(shù)據(jù)依賴。邏輯可編程陣列器件能夠支持4個優(yōu)化電路模塊,每個模塊能夠支持A、B、C、D中的一個函數(shù)。假設(shè):每個函數(shù)需要處理n個數(shù)據(jù),每個硬件模塊可在一個時鐘處理一個數(shù)據(jù),并且,多個并行硬件模塊可支持數(shù)據(jù)并行處理,例如:2個A的硬件優(yōu)化模塊可在n/2個時鐘周期內(nèi)處理完n個數(shù)據(jù)。圖1b顯示了傳統(tǒng)硬件電路的解決方案:邏輯可編程陣列器件支持對應(yīng)于A、B、C、D的四個硬件優(yōu)化模塊。圖1a所包含的函數(shù)按照數(shù)據(jù)依賴順序執(zhí)行:第一列的A、C函數(shù)首先運行,第二列的A、B函數(shù)在第一列函數(shù)執(zhí)行完畢后運行,第三列的A、D函數(shù)在此之后運行,最后是第四列的C函數(shù)。在每一列函數(shù)運行時,邏輯可編程陣列器件上的四個硬件模塊只有部分得到執(zhí)行(執(zhí)行的硬件模塊標黑)。對于每一列數(shù)據(jù)的處理都需要n個時鐘周期,所有的函數(shù)在4n個時鐘周期內(nèi)處理完成。圖1c示例了動態(tài)可重構(gòu)硬件的解決方案,對應(yīng)每一列硬件函數(shù)硬件重構(gòu)為不同的硬件結(jié)構(gòu):對第一列函數(shù),邏輯可編程陣列器件里可以支持兩個A模塊和兩個C模塊,由于每個模塊每個時鐘周期可以完成一個數(shù)據(jù)處理,n個數(shù)據(jù)在n/2個時鐘周期內(nèi)完成,對第二列函數(shù),兩個C模塊重構(gòu)為兩個B模塊,同樣在n/2個周期內(nèi)完成數(shù)據(jù)處理,對第三列函數(shù),B模塊重構(gòu)為D模塊,最后,所有模塊重構(gòu)為C模塊,所有函數(shù)在7n/4個時鐘周期內(nèi)完成?;谶壿嬁删幊剃嚵械挠布铀俜椒?,可利用動態(tài)可重構(gòu)實時調(diào)整硬件結(jié)構(gòu),從而加速硬件處理速度。請參閱圖2,本申請?zhí)岢隽艘环N基于FPGA的動態(tài)可重構(gòu)硬件加速方法,通過提取應(yīng)用程序的可重構(gòu)數(shù)據(jù)流圖,并經(jīng)過函數(shù)層分析、配置層優(yōu)化、方案層生成等步驟產(chǎn)生動態(tài)可重構(gòu)電路,以供下載至FPGA中執(zhí)行,包括如下步驟:步驟S201:提取應(yīng)用程序的可重構(gòu)數(shù)據(jù)流圖,所述可重構(gòu)數(shù)據(jù)流圖包括:含有多個函數(shù)節(jié)點的函數(shù)層數(shù)據(jù)流圖、及每個所述函數(shù)節(jié)點的含有多個運算節(jié)點的電路層數(shù)據(jù)流圖;函數(shù)層分析集中于每個函數(shù)層節(jié)點內(nèi)的電路層數(shù)據(jù)流圖,主要包括步驟S202和S203:步驟S202:對于每個函數(shù)節(jié)點,從其中的起始運算節(jié)點起,計算其他各個運算節(jié)點的運算起始時間和運算結(jié)束時間;步驟S203:根據(jù)各運算節(jié)點的運算起始時間和運算結(jié)束時間,計算整個函數(shù)節(jié)點的運算起始時間和運算結(jié)束時間,其中,取起始運算節(jié)點的運算起始時間作為整個函數(shù)節(jié)點的運算起始時間,取各運算節(jié)點中最大的運算結(jié)束時間作為整個函數(shù)節(jié)點的運算結(jié)束時間;步驟S204:在不改變函數(shù)節(jié)點間原本的數(shù)據(jù)依賴的基礎(chǔ)上,將函數(shù)層數(shù)據(jù)流圖重新分層,每層包括按照函數(shù)層節(jié)點內(nèi)運算時間分開排序時在同一等級的電路;步驟S205:將擁有相同函數(shù)功能的函數(shù)層合并為同一函數(shù)層,合并后的各函數(shù)層依照排序順序從低層到高層逐一結(jié)合,每個結(jié)合后的函數(shù)層成為一個獨立的電路配置,同一電路配置中的函數(shù)可并行運行。以下將以一個具體的實例說明上述方法的實現(xiàn)過程:某一應(yīng)用的可重構(gòu)數(shù)據(jù)流圖如圖3所示,其包含了函數(shù)層數(shù)據(jù)流圖、及各個函數(shù)節(jié)點的電路層數(shù)據(jù)流圖(圖中僅顯示了G0的電路層數(shù)據(jù)流圖),其中,函數(shù)層數(shù)據(jù)流圖的每個節(jié)點代表應(yīng)用中的函數(shù),連接線代表了函數(shù)間的數(shù)據(jù)依賴關(guān)系;每個函數(shù)節(jié)點內(nèi)部包含該函數(shù)的電路層數(shù)據(jù)流圖,電路層數(shù)據(jù)流圖中的每個節(jié)點代表了函數(shù)的運算節(jié)點(加減乘除等),節(jié)點間的連接關(guān)系代表了運算節(jié)點間的數(shù)據(jù)依賴。這里,函數(shù)節(jié)點G0的電路層數(shù)據(jù)流圖表示的運算關(guān)系是:y=[(x+1)*C1+(x+2)*C2]+[(x+3)*C3+(x+4)*C4]。假設(shè):加法器的運算起始時間為a,運算時間為b,則加法器的運算結(jié)束時間就為a+b,對于連接到此加法器的乘法器,其運算起始時間就為a+b,以此類推。假設(shè):函數(shù)節(jié)點G0~G8的各運算起始時間和內(nèi)部運算延續(xù)時間如下表所示:節(jié)點運算起始時間(ALAP)運算內(nèi)部延時(ATAP)G02NG10NG21MG32NG430G53NG63NG740G85M則依據(jù)步驟S204重新分層后的函數(shù)層數(shù)據(jù)流圖可如圖4a~4b所示:圖4a中第四層C節(jié)點(G4)與上層節(jié)點AB(G0、G3)具有相同運算開始時間(C節(jié)點內(nèi)部延時為0),經(jīng)過排序移動至上一層,其運算起始時間與運算內(nèi)部延時視為與其上一級節(jié)點同步(同等級)。同理,可將節(jié)點G7與節(jié)點G5、G6劃為同層,由此得到圖4b。在圖4b的基礎(chǔ)上,根據(jù)步驟S205將具有相同ABC函數(shù)功能的函數(shù)層進一步合并得到圖4c。在圖4c中顯示了四個從低層到高層逐一結(jié)合生成的電路配置,分別為:C<0,0>、C<0,1>、C<0,2>、C<0,3>,其中,C<0,0>包括函數(shù)層“segment0”,C<0,1>包括函數(shù)層“segment0”和“segment1”,C<0,2>包括函數(shù)層“segment0”、“segment1”和“segment2”,C<0,3>包括函數(shù)層“segment0”、“segment1”、“segment2”和“segment3”,每個配置層中的函數(shù)可以平行運算。以此類推,可以得到圖4c所示的函數(shù)數(shù)據(jù)流圖中所有的電路配置,并形成如圖4d所示的配置層圖表,其中,水平方向的箭頭標識了各函數(shù)層由上到下的順序,豎直方向的箭頭標識了各配置層的順序。由于同一應(yīng)用還可以采用不同電路配置完成函數(shù)的執(zhí)行,所以在一實施例中,所述方法還可以包括方案層生成步驟:1)每個配置層根據(jù)配置中排序最高的函數(shù)層級尋找包含下一函數(shù)層級的配置層;2)為保證硬件性能最優(yōu)化,包含相同函數(shù)的配置層不能結(jié)合;3)每個結(jié)合的方案必須包含該應(yīng)用的所有函數(shù),以保證應(yīng)用可以順利執(zhí)行。請參閱圖4e,需要計算的8個運算方案分別為P0~P7,以P6方案為例:配置C<0,2>包含函數(shù)層0,1,2,其需要尋找從函數(shù)層3開始的配置,則便找到C<3,3>(C<3,3>中僅包含“segment3”)。在一實施例中,所述方法還包括:對上述方法得到的不同電路配置進行運行時管理,具體步驟如下:步驟S501:根據(jù)上述函數(shù)層優(yōu)化的結(jié)果提取函數(shù)性能模型;步驟S502:根據(jù)上述配置層優(yōu)化的結(jié)果和函數(shù)性能模型提取每個電路配置的性能模型;步驟S503:根據(jù)電路配置性能模型提取方案性能模型;步驟S504:動態(tài)運行時,根據(jù)方案性能模型及數(shù)據(jù)大小計算每個方案的運行時間;步驟S505:根據(jù)數(shù)據(jù)大小及每個方案的重構(gòu)次數(shù)估算重構(gòu)成本。閾值期權(quán)定價是一種廣泛應(yīng)用的金融期權(quán)定價算法,其在市場價格達到某個閾值后采用不同的定價方案,其可重構(gòu)數(shù)據(jù)流圖如圖6a所示,其方案包含兩個電路配置,其中,第一個配置包含合并后的函數(shù)層A,第二個配置包含合并后的函數(shù)層B。在市場價格達到閾值后,執(zhí)行函數(shù)從A變成B。以下將以該閾值期權(quán)定價應(yīng)用為例,說明上述運行時管理方法的實現(xiàn)過程:1)計算每個函數(shù)模型的并行計算能力,對于預(yù)支期權(quán)定價,如圖6a所示,包含A、B兩個函數(shù),通過函數(shù)層內(nèi)部模型分析每個函數(shù)在硬件中占用的硬件資源,目標硬件芯片可支持24個A函數(shù)模塊及24個B函數(shù)模塊;2)對應(yīng)閾值期權(quán)定價,其擁有三個可能的配置層:只包含A函數(shù)模塊的配置A、只包含B函數(shù)模塊的配置B,以及包含函數(shù)AB模塊的配置AB,三個配置可支持的模塊并行度分別為48、48、及24;3)對應(yīng)閾值期權(quán)定價的三個配置,其性能分別為每個時鐘周期處理48、48、及24個數(shù)據(jù),電路配置組合可形成2個方案:①運行配置A,重構(gòu)為配置B后運行配置B;②使用配置AB運行兩個函數(shù)階段,其中,方案①每個階段的并行度為48,方案②每個階段的并行度為24;4)假設(shè)每個階段有n個數(shù)據(jù)處理,方案①的運行時間為n/48+重構(gòu)成本+n/48,方案②的運行時間為n/24+n/24;5)對于閾值期權(quán)定價,其重構(gòu)成本為將配置A重構(gòu)為配置B,包括重構(gòu)時間及數(shù)據(jù)傳輸時間。表1閾值期權(quán)定價的實測性能比對表從表1中可以看出,方案①的應(yīng)用性能是方案②的1.95倍(注:1.95=(111.84+0.79)/(27.94+28.2+1.53)),由于更高的重構(gòu)成本,實現(xiàn)了其略低于于2倍的理論性能提升(方案并行度由24提升至48)。需要說明的是,除了閾值期權(quán)定價,本方法還可以應(yīng)用于粒子濾波器、地質(zhì)成像逆時結(jié)合等領(lǐng)域。粒子濾波器是一種在機器人領(lǐng)域的定位系統(tǒng),每個定位階段包含粒子生成、權(quán)重更新、采樣、以及粒子檢驗四步來分析現(xiàn)在機器人所在的方位。圖6b展示了這四個步驟對應(yīng)的函數(shù)A、B、C、D的可重構(gòu)數(shù)據(jù)流圖,電路配置組合可形成2個方案,其中,方案①包含兩個電路配置:包含合并后的函數(shù)層ABC的配置ABC,以及包含函數(shù)層D的配置D?;诤瘮?shù)層模型,這兩個電路配置的并行度分別為10和5。方案②包含配置ABCD,并行度為4。表2粒子濾波器的實測性能比對表從表2中可以看出,方案①的應(yīng)用性能是方案②的2.19倍。地質(zhì)成像逆時結(jié)合是一種常用的地質(zhì)成像算法,其根據(jù)地質(zhì)的反射聲波與模擬的反射聲波互相驗證逐漸接近地底的地質(zhì)結(jié)構(gòu)成像,從而為石油采集等提供信息。如圖6c,在地址成像逆時結(jié)合的可重構(gòu)數(shù)據(jù)流圖中,A與B代表了對于地址聲波的正向與反向仿真,C代表了對于雙向仿真結(jié)果的驗證,電路配置組合可形成2個方案,其中,方案①包含兩個電路配置:第一個包含合并后的函數(shù)層A,第二個配置包含合并后的函數(shù)層ABC,兩個配置的并行度分別為12和6。階段一運行函數(shù)A,階段二運行函數(shù)ABC,方案②包含配置ABC,并行度為6。表3地質(zhì)成像逆時結(jié)合的實測性能比對表從表3中可以看出,方案①的應(yīng)用性能是方案②的1.33倍。綜合表1-3的內(nèi)容可以看出,動態(tài)可重構(gòu)的方案對應(yīng)的硬件電路可以提供1.33-2.2倍的性能提升。以閾值期權(quán)定價為例,傳統(tǒng)靜態(tài)硬件電路包含AB兩個函數(shù),同一時刻只有一半電路工作。本發(fā)明的動態(tài)可重構(gòu)方案中第一個配置只包含A函數(shù),在市場價格超過閾值后,執(zhí)行只包含B函數(shù)的配置。同一時刻并行電路增加一倍,總體應(yīng)用性能提升1.95倍。如圖7所示,在一實施例中,所述方法還包括:對上述方法得到的不同電路配置進行應(yīng)用,具體步驟如下:步驟S701:動態(tài)提取各階段需要處理的數(shù)據(jù)量;步驟S702:讀取每個應(yīng)用的所有方案;步驟S703:對于每個方案預(yù)測方案運行時間以及重構(gòu)成本;步驟S704:選取綜合運行時間與重構(gòu)成本最低的方案執(zhí)行,其中,執(zhí)行方案在每個配置運行時進行重構(gòu)操作,數(shù)據(jù)保存。仍以閾值期權(quán)定價應(yīng)用為例,以下將詳細說明對不同電路配置進行應(yīng)用的實現(xiàn)過程:1)假設(shè)運行時兩個階段各需要處理n個數(shù)據(jù);2)其讀取上述兩個方案,包括:方案①、方案②;3)得到相應(yīng)的運行時間為:方案①的運行時間為n/48+重構(gòu)成本+n/48,方案②的運行時間為n/24+n/24;4)若重構(gòu)成本小于n/24,則選用方案①;若重構(gòu)成本大于n/24,則選用方案②;5)以取值期權(quán)定價為例,若選用方案①,則先運行配置A,第一階段結(jié)束后重構(gòu)硬件芯片,運行配置B。請參閱圖8,與上述方法實施例原理相似的是,本發(fā)明提供一種基于FPGA的動態(tài)可重構(gòu)硬件加速系統(tǒng)8,作為一種軟件實現(xiàn),包括:提取模塊801、計算模塊802、分層模塊803、合并模塊804。由于前述方法實施例中的技術(shù)特征可以應(yīng)用于本系統(tǒng)實施例,因而不再重復(fù)贅述。提取模塊801提取應(yīng)用程序的可重構(gòu)數(shù)據(jù)流圖,所述可重構(gòu)數(shù)據(jù)流圖包括:含有多個函數(shù)節(jié)點的函數(shù)層數(shù)據(jù)流圖、及每個所述函數(shù)節(jié)點的含有多個運算節(jié)點的電路層數(shù)據(jù)流圖。計算模塊802對于每個函數(shù)節(jié)點,從其中的起始運算節(jié)點起,計算其余各個運算節(jié)點的運算起始時間和運算結(jié)束時間,據(jù)以計算每個函數(shù)節(jié)點的運算起始時間和運算結(jié)束時間。分層模塊803在不改變各函數(shù)節(jié)點間原本的數(shù)據(jù)依賴的基礎(chǔ)上,將所述函數(shù)層數(shù)據(jù)流圖重新分層,每層包括按照函數(shù)節(jié)點內(nèi)運算時間分開排序時在同一等級的電路。合并模塊804將擁有相同函數(shù)功能的函數(shù)層合并為同一函數(shù)層,合并后的各函數(shù)層依照預(yù)設(shè)規(guī)則結(jié)合,每個結(jié)合后的函數(shù)層成為一個獨立的配置層,同一配置層中的函數(shù)并行運行。綜上所述,本發(fā)明的基于FPGA的動態(tài)可重構(gòu)硬件加速方法及系統(tǒng),有效克服了現(xiàn)有技術(shù)中的種種缺點而具高度產(chǎn)業(yè)利用價值。上述實施例僅例示性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟悉此技術(shù)的人士皆可在不違背本發(fā)明的精神及范疇下,對上述實施例進行修飾或改變。因此,舉凡所屬
技術(shù)領(lǐng)域
中具有通常知識者在未脫離本發(fā)明所揭示的精神與技術(shù)思想下所完成的一切等效修飾或改變,仍應(yīng)由本發(fā)明的權(quán)利要求所涵蓋。當前第1頁1 2 3 
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宾阳县| 玉门市| 石屏县| 嘉禾县| 杭州市| 新巴尔虎左旗| 上蔡县| 寻乌县| 兴化市| 宜宾市| 射洪县| 兴城市| 塔河县| 湛江市| 临安市| 于田县| 时尚| 德安县| 类乌齐县| 樟树市| 古浪县| 象州县| 广河县| 嘉义县| 敖汉旗| 嘉定区| 安义县| 沈丘县| 新昌县| 边坝县| 龙州县| 崇州市| 江安县| 高台县| 建宁县| 喀喇| 富平县| 镇赉县| 浙江省| 新和县| 台安县|