本發(fā)明涉及嵌入式系統(tǒng)的技術(shù)領(lǐng)域,特別是涉及一種可重構(gòu)系統(tǒng)配置控制器及其流水調(diào)度方法。
背景技術(shù):
隨著科學(xué)技術(shù)的發(fā)展,人們對(duì)計(jì)算技術(shù)的速度和靈活性要求越來(lái)越高,可重構(gòu)技術(shù)由于其能夠利用軟件編程實(shí)現(xiàn)算法到計(jì)算引擎的空間映射,使得通用集成電路在制成后仍具有定制能力,及時(shí)滿足不同算法的需求,而得到越來(lái)越廣泛的應(yīng)用。
可重構(gòu)系統(tǒng)計(jì)算過(guò)程中需要根據(jù)數(shù)據(jù)流圖對(duì)可重構(gòu)計(jì)算陣列進(jìn)行配置。隨著可重構(gòu)系統(tǒng)面向應(yīng)用的計(jì)算復(fù)雜日益提高,導(dǎo)致計(jì)算數(shù)據(jù)量和配置量大幅增加,如何壓縮配置信息量,減少配置信息切換產(chǎn)生的功耗,提高運(yùn)算速度成為可重構(gòu)系統(tǒng)調(diào)度方法研究的重要內(nèi)容。
在配置功耗方面,配置信息存儲(chǔ)模塊訪問(wèn)產(chǎn)生的功耗在可重構(gòu)系統(tǒng)總功耗中占有較大比重。由于不同時(shí)段可重構(gòu)系統(tǒng)計(jì)算陣列執(zhí)行不同的計(jì)算,導(dǎo)致其配置信息及其配置量也不同?,F(xiàn)有設(shè)計(jì)采用相同數(shù)據(jù)位寬讀取不等長(zhǎng)配置信息,導(dǎo)致配置信息無(wú)效讀取,即讀取的配置信息中包含無(wú)效內(nèi)容,產(chǎn)生不必要的配置存儲(chǔ)器訪問(wèn)功耗。
在配置性能方面,配置信息調(diào)度分為靜態(tài)流水和動(dòng)態(tài)流水兩種方式。在靜態(tài)流水調(diào)度中,等整個(gè)可重構(gòu)計(jì)算陣列完成配置包解析及配置組重構(gòu)后,才開(kāi)始輸入數(shù)據(jù)進(jìn)行計(jì)算,配置包解析和配置組重構(gòu)的延時(shí)對(duì)性能造成影響。在動(dòng)態(tài)流水調(diào)度中,等部分可重構(gòu)計(jì)算陣列(如一個(gè)計(jì)算單元行)完成配置組重構(gòu)后,就開(kāi)始輸入數(shù)據(jù)執(zhí)行計(jì)算,相比靜態(tài)流水方式能夠部分隱藏配置組重構(gòu)的時(shí)間從而提高性能。但即使如此,配置包解析過(guò)程仍然等待上一輪計(jì)算完成之后才開(kāi)始進(jìn)行,配置包解析導(dǎo)致的延時(shí)仍然存在。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的:本發(fā)明的目的是提供一種能夠解決現(xiàn)有技術(shù)中存在的缺陷的可重構(gòu)系統(tǒng)配置控制器及其流水調(diào)度方法。
技術(shù)方案:為達(dá)到此目的,本發(fā)明采用以下技術(shù)方案:
本發(fā)明所述的可重構(gòu)系統(tǒng)配置控制器,包括:
配置存儲(chǔ)模塊:包括配置包存儲(chǔ)器和配置組存儲(chǔ)器,其中,配置包存儲(chǔ)器用于存儲(chǔ)配置包,配置組存儲(chǔ)器用于存儲(chǔ)配置組;
配置包解析模塊:用于對(duì)配置包進(jìn)行解析,解析生成配置組索引和配置組有效標(biāo)志位,輸出至配置組讀取模塊;
配置組讀取模塊:用于根據(jù)配置組索引和配置組有效標(biāo)志位,從配置組存儲(chǔ)器讀取有效的配置組;
配置組重構(gòu)模塊:用于根據(jù)配置組的就位與否以及輸入數(shù)據(jù)的就位與否,啟動(dòng)或停止計(jì)算陣列的重構(gòu)過(guò)程和流水執(zhí)行過(guò)程。
進(jìn)一步,所述配置組中的每套配置信息包含多個(gè)算子的操作碼,不同算子操作碼根據(jù)該算子在計(jì)算過(guò)程中的重構(gòu)概率的高低進(jìn)行組織排序。
進(jìn)一步,所述配置組存儲(chǔ)器包括多個(gè)存儲(chǔ)器,不同算子的操作碼根據(jù)排序存儲(chǔ)到多個(gè)存儲(chǔ)器中;配置組讀取模塊在讀取配置組過(guò)程中,根據(jù)配置組索引定位待讀取的配置組存儲(chǔ)器,只讀取標(biāo)志位有效的配置組存儲(chǔ)器中的配置組。
本發(fā)明所述的可重構(gòu)系統(tǒng)配置控制器的流水調(diào)度方法,包括以下步驟:
s1:配置控制器上電,重置;
s2:配置包解析模塊對(duì)讀取自配置包存儲(chǔ)器的配置包進(jìn)行解析,生成配置組索引和配置組有效標(biāo)志位;
s3:配置組讀取模塊根據(jù)配置組索引和配置組有效標(biāo)志位,從配置組存儲(chǔ)器讀取有效的配置組;
s4:配置組重構(gòu)模塊判斷是否開(kāi)始數(shù)據(jù)輸入:如果是,則執(zhí)行步驟s5;否則,則重新執(zhí)行步驟s4;
s5:配置組重構(gòu)模塊對(duì)首級(jí)流水線進(jìn)行配置組重構(gòu):如果完成首級(jí)流水線配置組重構(gòu),則執(zhí)行步驟s6;否則,則重新執(zhí)行步驟s5;
s6:配置組重構(gòu)模塊對(duì)首級(jí)流水線進(jìn)行使能陣列的計(jì)算:如果開(kāi)始數(shù)據(jù)輸出或者已完成數(shù)據(jù)輸入,則執(zhí)行步驟s7;否則,則重新執(zhí)行步驟s6;
s7:配置包解析模塊判斷是否還有后續(xù)數(shù)據(jù)流圖的配置信息:如果有,則返回步驟s2;否則,則執(zhí)行步驟s8;
s8:配置組重構(gòu)模塊判斷是否完成數(shù)據(jù)輸出:如果是,則結(jié)束;否則,則重新執(zhí)行步驟s8。
有益效果:與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
1)降低了可重構(gòu)系統(tǒng)功耗。配置組信息中的算子操作碼在存儲(chǔ)過(guò)程中按重構(gòu)概率的高低進(jìn)行組織排序,重構(gòu)過(guò)程中根據(jù)任務(wù)的實(shí)際需求選擇性的讀取配置信息的有效部分。通過(guò)這種方式避免了配置信息讀取中的無(wú)效操作,減小了可重構(gòu)系統(tǒng)中配置信息讀取導(dǎo)致的功耗開(kāi)銷。
2)提高了可重構(gòu)系統(tǒng)的計(jì)算性能。在動(dòng)態(tài)流水調(diào)度過(guò)程中,將配置包解析和配置組重構(gòu)過(guò)程均隱藏于數(shù)據(jù)流圖的計(jì)算過(guò)程當(dāng)中,減少了數(shù)據(jù)流水空閑時(shí)間,提高了系統(tǒng)的計(jì)算性能。
附圖說(shuō)明
圖1為本發(fā)明具體實(shí)施方式中可重構(gòu)系統(tǒng)配置控制器的示意圖;
圖2為本發(fā)明具體實(shí)施方式中可重構(gòu)系統(tǒng)配置控制器的流水調(diào)度方法的工作流程圖;
圖3為本發(fā)明具體實(shí)施方式中某一輪運(yùn)算中最后一個(gè)待計(jì)算數(shù)據(jù)輸入計(jì)算陣列結(jié)束的時(shí)間早于該輪第一個(gè)待輸出數(shù)據(jù)開(kāi)始輸出時(shí)間時(shí)的流水調(diào)度方法的示意圖;
圖4為本發(fā)明具體實(shí)施方式中某一輪運(yùn)算中最后一個(gè)待計(jì)算數(shù)據(jù)輸入計(jì)算陣列結(jié)束的時(shí)間晚于該輪第一個(gè)待輸出數(shù)據(jù)開(kāi)始輸出時(shí)間時(shí)的流水調(diào)度方法的示意圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施方式和附圖對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步的介紹。
本具體實(shí)施方式公開(kāi)了一種可重構(gòu)系統(tǒng)配置控制器,如圖1所示,包括:
配置存儲(chǔ)模塊:包括配置包存儲(chǔ)器和配置組存儲(chǔ)器,其中,配置包存儲(chǔ)器用于存儲(chǔ)配置包,配置組存儲(chǔ)器用于存儲(chǔ)配置組;
配置包解析模塊:用于對(duì)配置包進(jìn)行解析,解析生成配置組索引和配置組有效標(biāo)志位,輸出至配置組讀取模塊;
配置組讀取模塊:用于根據(jù)配置組索引和配置組有效標(biāo)志位,從配置組存儲(chǔ)器讀取有效的配置組;
配置組重構(gòu)模塊:用于根據(jù)配置組的就位與否以及輸入數(shù)據(jù)的就位與否,啟動(dòng)或停止計(jì)算陣列的重構(gòu)過(guò)程和流水執(zhí)行過(guò)程。
其中,配置組中的每套配置信息包含多個(gè)算子的操作碼,不同算子操作碼根據(jù)該算子在計(jì)算過(guò)程中的重構(gòu)概率的高低進(jìn)行組織排序。
如圖1所示,假設(shè)某配置組存儲(chǔ)模塊由m個(gè)存儲(chǔ)器組成,總位寬為n比特,(其中,第i個(gè)存儲(chǔ)器的位寬為ni比特,
配置組存儲(chǔ)器包括多個(gè)存儲(chǔ)器,不同算子的操作碼根據(jù)排序存儲(chǔ)到多個(gè)存儲(chǔ)器中;配置組讀取模塊在讀取配置組過(guò)程中,根據(jù)配置組索引定位待讀取的配置組存儲(chǔ)器,只讀取標(biāo)志位有效的配置組存儲(chǔ)器中的配置組。
圖2為本具體實(shí)施方式的可重構(gòu)系統(tǒng)配置控制器的流水調(diào)度方法的工作流程圖。可重構(gòu)系統(tǒng)的流水調(diào)度方法,其計(jì)算時(shí)數(shù)據(jù)在計(jì)算陣列中流水執(zhí)行,整個(gè)計(jì)算陣列在每一輪運(yùn)算中都依次經(jīng)歷配置信息切換、數(shù)據(jù)輸入并進(jìn)行運(yùn)算以及數(shù)據(jù)輸出三個(gè)階段。配置信息在切換的過(guò)程中包括兩個(gè)步驟,配置包的解析和配置組的重構(gòu),并且兩者分別隱藏于不同的數(shù)據(jù)流圖當(dāng)中,實(shí)現(xiàn)流水調(diào)度,具體包括如下步驟:
s1:配置控制器上電,重置;
s2:配置包解析模塊對(duì)讀取自配置包存儲(chǔ)器的配置包進(jìn)行解析,生成配置組索引和配置組有效標(biāo)志位;
s3:配置組讀取模塊根據(jù)配置組索引和配置組有效標(biāo)志位,從配置組存儲(chǔ)器讀取標(biāo)志位有效的配置組;
s4:配置組重構(gòu)模塊判斷是否開(kāi)始數(shù)據(jù)輸入:如果是,則執(zhí)行步驟s5;否則,則重新執(zhí)行步驟s4;
s5:配置組重構(gòu)模塊對(duì)首級(jí)流水線進(jìn)行配置組重構(gòu):如果完成首級(jí)流水線配置組重構(gòu),則執(zhí)行步驟s6;否則,則重新執(zhí)行步驟s5;
s6:配置組重構(gòu)模塊對(duì)首級(jí)流水線進(jìn)行使能陣列的計(jì)算:如果開(kāi)始數(shù)據(jù)輸出或者已完成數(shù)據(jù)輸入,則執(zhí)行步驟s7;否則,則重新執(zhí)行步驟s6;
s7:配置包解析模塊判斷是否還有后續(xù)數(shù)據(jù)流圖的配置信息:如果有,則返回步驟s2;否則,則執(zhí)行步驟s8;
s8:配置組重構(gòu)模塊判斷是否完成數(shù)據(jù)輸出:如果是,則結(jié)束;否則,則重新執(zhí)行步驟s8。
具體的,步驟s6為:當(dāng)前一個(gè)數(shù)據(jù)流圖的完成數(shù)據(jù)輸入時(shí)間早于數(shù)據(jù)開(kāi)始輸出的時(shí)間,則在前一個(gè)數(shù)據(jù)流圖的完成數(shù)據(jù)輸入時(shí)開(kāi)始下一個(gè)數(shù)據(jù)流圖的配置,執(zhí)行步驟s7;當(dāng)前一個(gè)數(shù)據(jù)流圖的完成數(shù)據(jù)輸入時(shí)間晚于數(shù)據(jù)開(kāi)始輸出的時(shí)間,則在前一個(gè)數(shù)據(jù)流圖的開(kāi)始數(shù)據(jù)輸出時(shí)開(kāi)始下一個(gè)數(shù)據(jù)流圖的配置,執(zhí)行步驟s7;否則,則重新執(zhí)行步驟s6。
步驟s6中,當(dāng)陣列首級(jí)完成配置時(shí),配置控制器發(fā)出計(jì)算使能并同時(shí)配置下一級(jí)流水線。每一級(jí)流水線完成配置后使能陣列的計(jì)算,通過(guò)動(dòng)態(tài)流水調(diào)度,將配置組重構(gòu)時(shí)間隱藏于當(dāng)前數(shù)據(jù)流圖的計(jì)算中。
步驟s7中,當(dāng)當(dāng)前任務(wù)還有后續(xù)未完成數(shù)據(jù)流圖時(shí),通過(guò)動(dòng)態(tài)流水調(diào)度,將下一個(gè)配置包的解析時(shí)間隱藏于當(dāng)前數(shù)據(jù)流圖的計(jì)算中。
圖3為本發(fā)明中當(dāng)某一輪運(yùn)算中步驟s6的判斷條件中前一個(gè)數(shù)據(jù)流圖的完成數(shù)據(jù)輸入時(shí)間早于數(shù)據(jù)開(kāi)始輸出的時(shí)間時(shí)的流水調(diào)度方法的示意圖。其中,cpm,cm,dfg-in,dfg-out分別代表配置包解析,配置組重構(gòu),待計(jì)算數(shù)據(jù)的輸入和輸出過(guò)程。如圖假設(shè)第k張數(shù)據(jù)流圖的最后一個(gè)待計(jì)算數(shù)據(jù)輸入計(jì)算陣列結(jié)束的時(shí)間t1早于該數(shù)據(jù)流圖第一個(gè)待輸出數(shù)據(jù)開(kāi)始輸出的時(shí)間t2,則第k+1張數(shù)據(jù)流圖的配置包解析開(kāi)始時(shí)間為t1。
圖4為本發(fā)明中當(dāng)某一輪運(yùn)算中步驟s6的判斷條件中前一個(gè)數(shù)據(jù)流圖的完成數(shù)據(jù)輸入時(shí)間晚于數(shù)據(jù)開(kāi)始輸出的時(shí)間時(shí)的流水調(diào)度方法的示意圖。如圖假設(shè)第k張數(shù)據(jù)流圖的第一個(gè)待輸出數(shù)據(jù)開(kāi)始輸出的時(shí)間t2早于該數(shù)據(jù)流圖最后一個(gè)待計(jì)算數(shù)據(jù)輸入計(jì)算陣列結(jié)束的時(shí)間t1,則第k+1張數(shù)據(jù)流圖的配置包解析開(kāi)始時(shí)間為t2。