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