本發(fā)明涉及嵌入式可重構(gòu)設(shè)計(jì)領(lǐng)域,具體地,涉及一種用于動(dòng)態(tài)可重構(gòu)陣列計(jì)算系統(tǒng)的自適硬件預(yù)配置控制器。
背景技術(shù):
隨著微電子技術(shù)的迅速發(fā)展,各個(gè)應(yīng)用領(lǐng)域?qū)τ?jì)算平臺(tái)的要求也不斷提高。傳統(tǒng)的專用集成電路計(jì)算雖然具有很高的能效比,但高度的定制性使得其靈活性不足。DSP處理器雖然具有很強(qiáng)的靈活性,但由于有限的運(yùn)算單元個(gè)數(shù)使其性能無法滿足要求??芍貥?gòu)計(jì)算作為一種新型的計(jì)算模式,獲得了越來越廣泛的關(guān)注,其主要的應(yīng)用領(lǐng)域包括多媒體處理、移動(dòng)通信、數(shù)字信號(hào)處理、數(shù)據(jù)加解密等??芍貥?gòu)計(jì)算實(shí)質(zhì)上是通過利用對(duì)硬件資源進(jìn)行多次重復(fù)配置的特性,在運(yùn)行時(shí)動(dòng)態(tài)地改變系統(tǒng)的電路結(jié)構(gòu),再加之大量的計(jì)算資源,使其兼顧高性能、靈活、硬件資源可復(fù)用等優(yōu)點(diǎn)??芍貥?gòu)系統(tǒng)大多由可重構(gòu)計(jì)算資源、存儲(chǔ)資源和具有硬件管理功能的配置控制單元構(gòu)成的。配置控制單元可通過動(dòng)態(tài)調(diào)度和更新配置信息,將不同應(yīng)用領(lǐng)域上的不同計(jì)算任務(wù)映射到可重構(gòu)計(jì)算單元上。
由于可重構(gòu)陣列內(nèi)部具有多個(gè)計(jì)算單元,只有充分挖掘算法的并行度,在有限的陣列規(guī)模和路由結(jié)構(gòu)上完成算法的映射才能不影響硬件的加速比。由于不同算法計(jì)算特征的差異,單一的可重構(gòu)計(jì)算結(jié)構(gòu)不能滿足不同算法的需求,從而導(dǎo)致陣列內(nèi)部計(jì)算單元的執(zhí)行效率較低,其主要原因是陣列路由及規(guī)模等方面,無法滿足算法的特征,導(dǎo)致陣列利用率低。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的:針對(duì)現(xiàn)有技術(shù)中存在的問題與不足,本發(fā)明提供一種用于動(dòng)態(tài)可重構(gòu)陣列計(jì)算系統(tǒng)的自適硬件預(yù)配置控制器,通過對(duì)陣列的規(guī)模和路由結(jié)構(gòu)進(jìn)行預(yù)配置,選擇最優(yōu)陣列架構(gòu),大大提高系統(tǒng)的靈活性和性能。
技術(shù)方案:一種用于動(dòng)態(tài)可重構(gòu)陣列計(jì)算系統(tǒng)的自適硬件預(yù)配置控制器,通過多個(gè)計(jì)算邏輯共同組成一個(gè)完整的最優(yōu)架構(gòu)選擇器,并向陣列發(fā)送相應(yīng)的預(yù)配置信息,對(duì)陣列的規(guī)模和路由結(jié)構(gòu)進(jìn)行預(yù)配置,使得可重構(gòu)陣列計(jì)算架構(gòu)在靈活度和專用性能上達(dá)到更好的平衡。
基于傳統(tǒng)動(dòng)態(tài)可重構(gòu)陣列計(jì)算系統(tǒng)中的動(dòng)態(tài)可重構(gòu)計(jì)算陣列和陣列配置信息控制器,增加了一個(gè)用于預(yù)先配置陣列規(guī)模和路由結(jié)構(gòu)的自適硬件預(yù)配置控制器。所述的自適硬件預(yù)配置控制器可以根據(jù)主控控制器輸入的應(yīng)用類型和參數(shù),通過陣列規(guī)模計(jì)算邏輯將動(dòng)態(tài)可重構(gòu)計(jì)算陣列配置為四種不同的規(guī)模模式,通過路由結(jié)構(gòu)計(jì)算邏輯將動(dòng)態(tài)可重構(gòu)計(jì)算陣列配置為四種不同的路由模式。通過不同的預(yù)配置,使動(dòng)態(tài)可重構(gòu)陣列計(jì)算系統(tǒng)在不同應(yīng)用場(chǎng)景下均可以高效運(yùn)行。
所述的自適硬件預(yù)配置控制器,其結(jié)構(gòu)包括:陣列規(guī)模計(jì)算邏輯,路由結(jié)構(gòu)計(jì)算邏輯,預(yù)配置信息緩存單元,預(yù)配置信息發(fā)送控制單元和預(yù)配置信息輸出接口;
所述的陣列規(guī)模計(jì)算邏輯:用于計(jì)算特定應(yīng)用場(chǎng)景在不同陣列規(guī)模模式下的計(jì)算周期數(shù),并選取性能最優(yōu)的陣列規(guī)模;
所述的路由結(jié)構(gòu)計(jì)算邏輯:用于計(jì)算特定應(yīng)用場(chǎng)景在不同陣列路由模式下的流水線氣泡周期數(shù),并選取性能最優(yōu)的路由結(jié)構(gòu);
所述的預(yù)配置信息緩存單元:用于存儲(chǔ)不同陣列規(guī)模模式和路由模式組合下的陣列架構(gòu)對(duì)應(yīng)的預(yù)配置信息;
所述的預(yù)配置信息發(fā)送控制單元:用于根據(jù)陣列規(guī)模計(jì)算邏輯和路由結(jié)構(gòu)計(jì)算邏輯的選擇結(jié)果控制預(yù)配置信息輸出接口將預(yù)配置信息緩存單元中最優(yōu)陣列規(guī)模模式和最優(yōu)路由模式組合而成的最優(yōu)陣列架構(gòu)所對(duì)應(yīng)的預(yù)配置信息發(fā)送到某個(gè)或某幾個(gè)動(dòng)態(tài)可重構(gòu)計(jì)算陣列;
所述的預(yù)配置信息輸出接口:用于輸出所選取的預(yù)配置信息緩存單元中的預(yù)配置信息。
所述的自適硬件預(yù)配置控制器應(yīng)用于可重構(gòu)陣列計(jì)算系統(tǒng)中,可重構(gòu)陣列計(jì)算系統(tǒng)包括主控控制器、片上存儲(chǔ)器、系統(tǒng)總線、N(N>=1,N為正整數(shù))個(gè)動(dòng)態(tài)可重構(gòu)計(jì)算陣列、陣列配置信息控制器和自適硬件預(yù)配置控制器。
所述的主控控制器,用作系統(tǒng)的主控核,通過系統(tǒng)總線分別與動(dòng)態(tài)可重構(gòu)計(jì)算陣列、陣列配置信息控制器和自適硬件預(yù)配置控制器相連,發(fā)送指令控制動(dòng)態(tài)可重構(gòu)陣列計(jì)算系統(tǒng)的運(yùn)行;
所述的片上存儲(chǔ)器,用于存儲(chǔ)可重構(gòu)陣列計(jì)算系統(tǒng)所需要的計(jì)算數(shù)據(jù)以及配置信息;
所述的自適硬件預(yù)配置控制器,用于根據(jù)主控控制器輸入的應(yīng)用類型和參數(shù)對(duì)動(dòng)態(tài)可重構(gòu)計(jì)算陣列的陣列規(guī)模模式和路由模式進(jìn)行選擇,同時(shí)將組合后最優(yōu)架構(gòu)所對(duì)應(yīng)的配置信息發(fā)送至某個(gè)或某幾個(gè)動(dòng)態(tài)可重構(gòu)計(jì)算陣列,完成對(duì)陣列規(guī)模和路由結(jié)構(gòu)的預(yù)配置;
根據(jù)應(yīng)用類型和參數(shù),通過陣列規(guī)模計(jì)算邏輯計(jì)算特定應(yīng)用場(chǎng)景在不同陣列規(guī)模模式下的計(jì)算周期數(shù),并選取性能最優(yōu)的陣列規(guī)模;通過路由結(jié)構(gòu)計(jì)算邏輯計(jì)算特定應(yīng)用場(chǎng)景在不同陣列路由模式下的流水線氣泡周期數(shù),并選取性能最優(yōu)的路由結(jié)構(gòu);預(yù)配置信息發(fā)送控制單元根據(jù)陣列規(guī)模計(jì)算邏輯和路由結(jié)構(gòu)計(jì)算邏輯的選擇結(jié)果控制預(yù)配置信息輸出接口將預(yù)配置信息緩存單元中最優(yōu)陣列規(guī)模模式和最優(yōu)路由模式組合而成的最優(yōu)陣列架構(gòu)所對(duì)應(yīng)的預(yù)配置信息發(fā)送到某個(gè)或某幾個(gè)動(dòng)態(tài)可重構(gòu)計(jì)算陣列,完成對(duì)陣列規(guī)模和路由結(jié)構(gòu)的預(yù)配置;
所述的動(dòng)態(tài)可重構(gòu)計(jì)算陣列,用作可重構(gòu)系統(tǒng)的計(jì)算核心,可通過自適硬件預(yù)配置控制器的預(yù)配置信息輸出接口將配置信息加載至動(dòng)態(tài)可重構(gòu)計(jì)算陣列內(nèi)部,完成對(duì)陣列自身結(jié)構(gòu)和內(nèi)部計(jì)算單元計(jì)算功能的配置;
所述的陣列配置信息控制器,用于針對(duì)具體應(yīng)用場(chǎng)景對(duì)已經(jīng)預(yù)配置過的某個(gè)或某幾個(gè)動(dòng)態(tài)可重構(gòu)計(jì)算陣列的每個(gè)計(jì)算單元的數(shù)據(jù)輸入、計(jì)算操作、數(shù)據(jù)輸出等進(jìn)行配置,完成算子映射。
進(jìn)一步的,所述的動(dòng)態(tài)可重構(gòu)計(jì)算陣列,可由自適硬件預(yù)配置控制器將其配置成4種陣列規(guī)模模式:模式一:每個(gè)陣列內(nèi)包含8*8個(gè)計(jì)算單元,模式二:每個(gè)陣列內(nèi)包含4*8個(gè)計(jì)算單元,模式三:每個(gè)陣列內(nèi)包含2*8個(gè)計(jì)算單元,模式四:每個(gè)陣列內(nèi)包含4*4個(gè)計(jì)算單元,以完成不同算法數(shù)據(jù)流圖的切割及映射,提高計(jì)算資源利用率。
陣列規(guī)模計(jì)算邏輯的預(yù)配置方式的調(diào)用選擇主要基于以下公式實(shí)現(xiàn):
計(jì)算周期數(shù)=核心迭代計(jì)算單元計(jì)算周期數(shù)×迭代計(jì)算次數(shù)+循環(huán)前綴后綴
在判斷中,將四種不同規(guī)模下的計(jì)算周期數(shù)進(jìn)行對(duì)比,選擇周期數(shù)最小的陣列規(guī)模并發(fā)送相應(yīng)的陣列規(guī)模硬件參數(shù)給預(yù)配置信息發(fā)送控制單元,以調(diào)用相應(yīng)預(yù)配置信息,對(duì)陣列規(guī)模進(jìn)行預(yù)配置。
路由結(jié)構(gòu)模式包含以下四種:路由模式一:總線互聯(lián)結(jié)構(gòu);路由模式二:鄰近互聯(lián)結(jié)構(gòu);路由模式三:行列跨步互聯(lián)結(jié)構(gòu);路由模式四:層次網(wǎng)狀互聯(lián)結(jié)構(gòu)。
其中,路由結(jié)構(gòu)計(jì)算邏輯的預(yù)配置方式調(diào)用選擇主要基于以下公式實(shí)現(xiàn):
在判斷中,將四種不同路由結(jié)構(gòu)的流水氣泡周期數(shù)進(jìn)行對(duì)比,選擇周期數(shù)最小的路由結(jié)構(gòu)并發(fā)送相應(yīng)的陣列路由結(jié)構(gòu)硬件參數(shù)給自適硬件預(yù)配置控制器的預(yù)配置信息發(fā)送控制單元,以調(diào)用相應(yīng)的預(yù)配置信息,對(duì)陣列路由進(jìn)行預(yù)配置。
進(jìn)一步的,所述的主控控制器輸入的應(yīng)用類型包括快速傅里葉變換、有限沖激響應(yīng)濾波和矩陣運(yùn)算;所述的主控控制器輸入的參數(shù)包括應(yīng)用類型的計(jì)算規(guī)格、流水線關(guān)鍵路徑計(jì)算類型和計(jì)算單元間數(shù)據(jù)傳輸需求。
附圖說明
圖1為動(dòng)態(tài)可重構(gòu)陣列計(jì)算系統(tǒng)的結(jié)構(gòu)框架圖;
圖2為自適硬件預(yù)配置控制器的結(jié)構(gòu)框架圖;
圖3為動(dòng)態(tài)可重構(gòu)計(jì)算陣列4種陣列規(guī)模的模式圖;
圖4為動(dòng)態(tài)可重構(gòu)計(jì)算陣列4種路由結(jié)構(gòu)的模式圖;
圖5為自適硬件預(yù)配置控制器的工作流程圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實(shí)施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對(duì)本發(fā)明的各種等價(jià)形式的修改均落于本申請(qǐng)所附權(quán)利要求所限定的范圍。
如圖1所示,動(dòng)態(tài)可重構(gòu)陣列計(jì)算系統(tǒng)的框架結(jié)構(gòu),優(yōu)選的,以4個(gè)動(dòng)態(tài)可重構(gòu)計(jì)算陣列為例,包括:主控控制器,用作系統(tǒng)的主控核,通過系統(tǒng)總線分別與4個(gè)動(dòng)態(tài)可重構(gòu)計(jì)算陣列、陣列配置信息控制器和自適硬件預(yù)配置控制器相連,發(fā)送指令控制動(dòng)態(tài)可重構(gòu)陣列計(jì)算系統(tǒng)的運(yùn)行;
動(dòng)態(tài)可重構(gòu)計(jì)算陣列,用作可重構(gòu)系統(tǒng)的計(jì)算核心,可通過自適硬件預(yù)配置控制器的預(yù)配置信息輸出接口將預(yù)配置信息加載至內(nèi)部,進(jìn)行對(duì)陣列自身規(guī)模、計(jì)算單元間的路由結(jié)構(gòu)進(jìn)行預(yù)配置,繼而對(duì)每個(gè)計(jì)算單元功能進(jìn)行配置;自適硬件預(yù)配置控制器,用于對(duì)動(dòng)態(tài)可重構(gòu)計(jì)算陣列的陣列規(guī)模和路由結(jié)構(gòu)進(jìn)行動(dòng)態(tài)組合,選擇并發(fā)送最優(yōu)陣列架構(gòu)對(duì)應(yīng)的預(yù)配置信息至動(dòng)態(tài)可重構(gòu)計(jì)算陣列;陣列配置信息控制器,用于針對(duì)特定應(yīng)用場(chǎng)景的具體算子對(duì)動(dòng)態(tài)可重構(gòu)計(jì)算陣列的每個(gè)計(jì)算單元的數(shù)據(jù)來源、計(jì)算功能及計(jì)算結(jié)果的輸出進(jìn)行配置,完成算子映射。
其中,自適硬件預(yù)配置控制器的硬件結(jié)構(gòu),如圖2所示,由陣列規(guī)模計(jì)算邏輯,路由結(jié)構(gòu)計(jì)算邏輯,預(yù)配置信息緩存單元、預(yù)配置信息發(fā)送控制單元和預(yù)配置信息輸出接口緊耦合組成;
陣列規(guī)模計(jì)算邏輯:用于計(jì)算特定算子在4種陣列規(guī)模下的計(jì)算周期數(shù),比較后選擇性能最優(yōu)的陣列規(guī)模,并發(fā)送相應(yīng)的陣列規(guī)模選擇信號(hào)給預(yù)配置信息發(fā)送控制單元;路由結(jié)構(gòu)計(jì)算邏輯:用于計(jì)算特定算子在4種路由結(jié)構(gòu)下的無法傳輸?shù)臄?shù)據(jù)個(gè)數(shù)和暫存寄存器并發(fā)數(shù)據(jù)個(gè)數(shù)之商,即流水線氣泡周期數(shù),比較后選擇性能最優(yōu)路由結(jié)構(gòu),并發(fā)送相應(yīng)的路由結(jié)構(gòu)選擇信號(hào)給預(yù)配置信息發(fā)送控制單元;預(yù)配置信息緩存單元:用于存儲(chǔ)所有陣列規(guī)模和路由結(jié)構(gòu)組合下的陣列架構(gòu)的預(yù)配置信息;預(yù)配置信息發(fā)送控制單元:用于根據(jù)陣列規(guī)模計(jì)算邏輯和路由結(jié)構(gòu)計(jì)算邏輯的選擇結(jié)果控制預(yù)配置信息輸出接口將預(yù)配置信息緩存單元中陣列規(guī)模和路由結(jié)構(gòu)的最優(yōu)組合所對(duì)應(yīng)的預(yù)配置信息發(fā)送到某個(gè)或某幾個(gè)動(dòng)態(tài)可重構(gòu)計(jì)算陣列;預(yù)配置信息輸出接口用于輸出所選取的預(yù)配置信息。
陣列規(guī)模計(jì)算邏輯可針對(duì)具體的應(yīng)用場(chǎng)景及計(jì)算性能需求調(diào)用4種不同模式陣列規(guī)模所對(duì)應(yīng)的預(yù)配置信息,以將某個(gè)或某幾個(gè)動(dòng)態(tài)可重構(gòu)計(jì)算陣列預(yù)配置為相應(yīng)的陣列規(guī)模。如圖3和圖4所示,圖3和圖4分別為動(dòng)態(tài)可重構(gòu)計(jì)算陣列規(guī)模及路由結(jié)構(gòu)的模式圖,其中陣列規(guī)模包括:8*8、4*8、2*8和4*4四種模式,路由結(jié)構(gòu)包括總線互聯(lián)結(jié)構(gòu),鄰近互聯(lián)結(jié)構(gòu),行列跨步互聯(lián)結(jié)構(gòu)和層次網(wǎng)狀互聯(lián)結(jié)構(gòu)四種模式。其中,陣列規(guī)模計(jì)算邏輯的預(yù)配置方式調(diào)用選擇主要基于以下公式實(shí)現(xiàn):
計(jì)算周期數(shù)=核心迭代計(jì)算單元計(jì)算周期數(shù)×迭代計(jì)算次數(shù)+循環(huán)前綴后綴
在判斷中,將四種不同規(guī)模下的計(jì)算周期數(shù)進(jìn)行對(duì)比,選擇周期數(shù)最小的陣列規(guī)模并發(fā)送相應(yīng)的陣列規(guī)模硬件參數(shù)給預(yù)配置信息發(fā)送控制單元,以調(diào)用相應(yīng)預(yù)配置信息,對(duì)陣列規(guī)模進(jìn)行預(yù)配置。
路由結(jié)構(gòu)計(jì)算邏輯可針對(duì)具體的應(yīng)用場(chǎng)景及計(jì)算性能需求調(diào)用4種不同的計(jì)算單元互聯(lián)結(jié)構(gòu)所對(duì)應(yīng)的預(yù)配置信息,以將某個(gè)或者某幾個(gè)動(dòng)態(tài)可重構(gòu)計(jì)算陣列預(yù)配置為相應(yīng)的路由結(jié)構(gòu)模式。
其中,路由結(jié)構(gòu)模式包含以下四種:路由模式一:總線互聯(lián)結(jié)構(gòu);路由模式二:鄰近互聯(lián)結(jié)構(gòu);路由模式三:行列跨步互聯(lián)結(jié)構(gòu);路由模式四:層次網(wǎng)狀互聯(lián)結(jié)構(gòu)。
其中,路由結(jié)構(gòu)計(jì)算邏輯的預(yù)配置方式調(diào)用選擇主要基于以下公式實(shí)現(xiàn):
在判斷中,將四種不同路由結(jié)構(gòu)的流水氣泡周期數(shù)進(jìn)行對(duì)比,選擇周期數(shù)最小的路由結(jié)構(gòu)并發(fā)送相應(yīng)的陣列路由結(jié)構(gòu)硬件參數(shù)給預(yù)配置信息發(fā)送控制單元,以調(diào)用相應(yīng)預(yù)配置信息,對(duì)陣列路由進(jìn)行預(yù)配置。
如圖5所示,自適硬件預(yù)配置控制器的工作流程圖,主控控制器初始化動(dòng)態(tài)可重構(gòu)陣列計(jì)算系統(tǒng)并根據(jù)所要處理的算法類型發(fā)送控制信號(hào)給自適硬件預(yù)配置控制器,自適硬件預(yù)配置控制器的計(jì)算邏輯選擇出最優(yōu)陣列架構(gòu)(即,計(jì)算周期數(shù)最小的陣列規(guī)模,流水氣泡周期數(shù)最小的路由結(jié)構(gòu)),并由預(yù)配置信息輸出接口發(fā)送相應(yīng)的預(yù)配置信息至某個(gè)或某幾個(gè)動(dòng)態(tài)可重構(gòu)計(jì)算陣列完成陣列硬件架構(gòu)的預(yù)配置,繼而陣列配置信息控制器對(duì)已有陣列架構(gòu)的每個(gè)計(jì)算單元進(jìn)行配置,將具體算法映射到現(xiàn)有的陣列硬件結(jié)構(gòu)上完成計(jì)算。