專利名稱:一種描述動態(tài)可重構(gòu)陣列配置信息的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)領(lǐng)域中的動態(tài)可重構(gòu)處理器技術(shù)領(lǐng)域,特別是涉及一種描述動態(tài)可重構(gòu)陣列配置信息的方法。
背景技術(shù):
動態(tài)可重構(gòu)處理器是一種新生的處理器構(gòu)架,其較之以往的單核處理器、專用芯片、現(xiàn)場可編程邏輯陣列有著顯著的優(yōu)勢,是未來電路結(jié)構(gòu)發(fā)展的一個方向。首先,動態(tài)可重構(gòu)處理器內(nèi)往往含有多個算數(shù)邏輯單元,且數(shù)量巨大,稱之為眾核陣列。陣列內(nèi)部配以靈活度高的路由單元,實現(xiàn)算數(shù)邏輯單元之間多樣化的互聯(lián)。因此,經(jīng)路由單元連接后的眾核陣列可實現(xiàn)對數(shù)據(jù)流的高速處理,較傳統(tǒng)的單核以及少核處理器在性能上有著巨大的優(yōu)勢。同時,較固化的專用電路在靈活性上也有著巨大的優(yōu)勢。其次,較傳統(tǒng)的靜態(tài)可重構(gòu)電路一現(xiàn)場可編程邏輯陣列而言,動態(tài)可重構(gòu)處理器有動態(tài)的特點(diǎn),即在電路運(yùn)行過程中可動態(tài)的切換電路的功能,而非以往靜態(tài)可重構(gòu)電路一沉不變的不改變電路功能,只是在電路運(yùn)行之前燒寫電路功能,對電路進(jìn)行初始化。這樣做的好處在于通過時分復(fù)用的方式減少了電路的規(guī)模,原因在于之前的電路結(jié)構(gòu)的全映射現(xiàn)在變?yōu)榉謮K映射,而塊與塊之間恰好采取了動態(tài)切換的方式。目前國內(nèi)外并沒有可重構(gòu)計算處理器的相關(guān)技術(shù),而實際的應(yīng)用中有迫切存在這種需求,因此,需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是如何能夠創(chuàng)新的提出有一種有效措施以克服現(xiàn)有技術(shù)存在的缺陷,設(shè)計可重構(gòu)陣列的配置信息,使其能夠準(zhǔn)確高效的描述可重構(gòu)陣列進(jìn)行一次完整的循環(huán)運(yùn)算包含的一系列操作。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種描述動態(tài)可重構(gòu)陣列配置信息的方法,有效的設(shè)計可重構(gòu)陣列的配置信息,使其能夠準(zhǔn)確高效的描述可重構(gòu)陣列進(jìn)行一次完整的循環(huán)運(yùn)算所包含的一系列操作。為了解決上述問題,本發(fā)明公開了一種描述動態(tài)可重構(gòu)陣列配置信息的方法,所述可重構(gòu)陣列的配置信息主要包括多個可重構(gòu)單元的配置信息和綜合控制信息,所述方法包括描述各可重構(gòu)單元的配置信息,具體的,各可重構(gòu)單元的配置信息包括輸入第一選擇器的配置信息、輸入第二選擇器的配置信息、算術(shù)邏輯單元的配置信息、輸出寄存器的配置信息和暫存單元的配置信息;描述綜合控制信息,具體的,綜合控制信息包括時序控制信息和粒度配置信息。優(yōu)選的,所述輸入第一選擇器的配置信息和輸入第二選擇器的配置信息包括是否接收操作數(shù)、操作數(shù)的來源和操作數(shù)的地址。優(yōu)選的,所述操作數(shù)的來源包括輸入緩存器、上一行運(yùn)算單元的輸出寄存器和上一行的暫存單元。
優(yōu)選的,所述操作數(shù)的來源還包括常數(shù)寄存器。優(yōu)選的,所述操作數(shù)的地址描述了操作數(shù)在輸入緩存器的輸出數(shù)據(jù)中的具體位置,或者來自上一行的哪一個運(yùn)算單元的輸出寄存器,或者來自上一行的哪一個暫存單元。優(yōu)選的,所述操作數(shù)的地址描述了操作數(shù)來自哪一個常數(shù)寄存器。優(yōu)選的,所述算術(shù)邏輯單元的配置信息描述的是算術(shù)邏輯單元所要執(zhí)行的操作類型,包括算術(shù)運(yùn)算和邏輯運(yùn)算。優(yōu)選的,所述輸出寄存器的配置信息描述了是否有計算結(jié)果輸出到輸出緩存器以及輸出到輸出緩存器中的具體地址。優(yōu)選的,所述暫存單元的配置信息描述了暫存單元的輸入和輸出操作。優(yōu)選的,所述時序控制信息包括數(shù)據(jù)輸入時間、運(yùn)算時間、數(shù)據(jù)輸出時間、循環(huán)間隔、循環(huán)次數(shù);粒度配置信息描述的是當(dāng)前在可重構(gòu)陣列上執(zhí)行的運(yùn)算的數(shù)據(jù)位寬。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明提供一種描述動態(tài)可重構(gòu)陣列配置信息的方法,通過描述各可重構(gòu)單元的配置信息,具體的,各可重構(gòu)單元的配置信息包括輸入第一選擇器的配置信息、輸入第二選擇器的配置信息、算術(shù)邏輯單元的配置信息、輸出寄存器的配置信息和暫存單元的配置信息,并描述綜合控制信息,具體的,綜合控制信息包括時序控制信息和粒度配置信息,從而把數(shù)據(jù)流圖準(zhǔn)確的映射到可重構(gòu)陣列上,使可重構(gòu)陣列按照配置信息描述的時序高效的進(jìn)行工作。
圖1是本發(fā)明具體實施方式
中所述的可重構(gòu)陣列的示意圖;圖2是本發(fā)明具體實施方式
中所述的可重構(gòu)單元的結(jié)構(gòu)示意圖;圖3是本發(fā)明具體實施方式
中所述的數(shù)據(jù)流圖到可重構(gòu)陣列的映射示意圖;圖4是本發(fā)明具體實施方式
中所述的可重構(gòu)單元的結(jié)構(gòu)示意圖;圖5是本發(fā)明具體實施方式
中所述的數(shù)據(jù)流圖的映射結(jié)果示意圖;圖6是本發(fā)明具體實施方式
中所述的可重構(gòu)陣列執(zhí)行運(yùn)算的時序圖。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明。可重構(gòu)陣列是動態(tài)可重構(gòu)處理器的核心運(yùn)算部件,其結(jié)構(gòu)示意圖如圖1所示。結(jié)合圖1,分為下面四個部分進(jìn)行介紹1.輸入緩存器輸入緩存器中存儲著可重構(gòu)陣列進(jìn)行運(yùn)算所需要的外部數(shù)據(jù)。2.常數(shù)寄存器常數(shù)寄存器中存儲著可重構(gòu)陣列進(jìn)行運(yùn)算所需要的常數(shù)。3.可重構(gòu)陣列可重構(gòu)陣列按照配置信息描述的功能執(zhí)行相應(yīng)的運(yùn)算??芍貥?gòu)陣列由兩部分構(gòu)成a)可重構(gòu)單元一個可重構(gòu)陣列包含很多可重構(gòu)單元,每個可重構(gòu)單元又包括一個運(yùn)算單元和一個暫存單元。運(yùn)算單元可以在一個節(jié)拍內(nèi)完成算數(shù)邏輯運(yùn)算,暫存單元只是單純的將輸入數(shù)據(jù)寄存一個節(jié)拍。可重構(gòu)單元的結(jié)構(gòu)如圖2所示。i.運(yùn)算單元每個運(yùn)算單元包括2個輸入選擇器、1個算術(shù)邏輯單元和1個輸出寄存器。1.每個輸入選擇器為運(yùn)算單元選擇當(dāng)前運(yùn)算所需要的一個操作數(shù)。操作數(shù)可以來自輸入緩存器,也可以來自常數(shù)寄存器(只有輸入選擇器B具有選擇常數(shù)寄存器的功能), 還可以來自上一行運(yùn)算單元的輸出寄存器或者上一行的暫存單元。
2.算術(shù)邏輯單元用于執(zhí)行算術(shù)或者邏輯運(yùn)算。3.輸出寄存器用于寄存當(dāng)前節(jié)點(diǎn)的計算結(jié)果,計算結(jié)果可以作為下一行可重構(gòu)單元的輸入,也可以輸出到輸出緩存器進(jìn)行緩存。ii.暫存單元暫存單元用于將輸入寄存一拍,然后輸出。它的輸入可以來自輸入緩存器,也可以來自上一行運(yùn)算單元的輸出寄存器或者上一行的暫存單元。它的輸出可以作為下一行可重構(gòu)單元的輸入,也可以輸出到輸出緩存器進(jìn)行緩存。b)路由單元路由單元主要負(fù)責(zé)完成可重構(gòu)單元間的數(shù)據(jù)連接,一個路由單元對應(yīng)一行可重構(gòu)單元。i.路由單元將來自輸入緩存器的數(shù)據(jù)、來自常數(shù)寄存器的數(shù)據(jù)、來自上一行暫存單元的數(shù)據(jù)、或者來自上一行運(yùn)算單元的輸出寄存器的數(shù)據(jù)按照配置信息分配給指定的可重構(gòu)單元,可重構(gòu)單元將接收到的數(shù)據(jù)傳遞到輸入選擇器或者暫存單元。ii.每一行的任意一個可重構(gòu)單元都可以接收上一行任意一個可重構(gòu)單元的輸出結(jié)果(包括運(yùn)算結(jié)果和暫存數(shù)據(jù))。iii.第一行的任意一個可重構(gòu)單元都可以接收最后一行任意一個可重構(gòu)單元的輸出結(jié)果(包括運(yùn)算結(jié)果和暫存數(shù)據(jù))。4.輸出緩存器輸出緩存器用于存儲可重構(gòu)陣列的運(yùn)算結(jié)果。運(yùn)算結(jié)束后,可重構(gòu)陣列將運(yùn)算結(jié)果輸出到輸出緩存器進(jìn)行緩存??芍貥?gòu)陣列如何運(yùn)轉(zhuǎn)是由配置信息決定的,配置信息把所要執(zhí)行的數(shù)據(jù)流圖映射到可重構(gòu)陣列上,使之正確的完成數(shù)據(jù)流圖對應(yīng)的計算任務(wù)。一套高效的配置信息是可重構(gòu)陣列的性能得到充分發(fā)揮的前提,以此為出發(fā)點(diǎn),本發(fā)明提出了一種描述動態(tài)可重構(gòu)陣列配置信息的方法。本實施例中提出了一種描述動態(tài)可重構(gòu)陣列配置信息的方法??芍貥?gòu)陣列的配置信息主要包括兩方面的內(nèi)容多個可重構(gòu)單元的配置信息和綜合控制信息。1.可重構(gòu)單元的配置信息可重構(gòu)單元的配置信息包括輸入第一選擇器(選擇器A)的配置信息、輸入第二選擇器(選擇器B)的配置信息、算術(shù)邏輯單元的配置信息、輸出寄存器的配置信息、暫存單元的配置信息。a)輸入選擇器A的配置信息i.是否接收操作數(shù)A。ii.操作數(shù)A的來源。操作數(shù)A可以來自輸入緩存器,也可以來自上一行運(yùn)算單元的輸出寄存器或者上一行的暫存單元。iii.操作數(shù)A的地址。這一部分描述了操作數(shù)A在輸入緩存器的輸出數(shù)據(jù)中的具體位置,或者來自上一行的哪一個運(yùn)算單元的輸出寄存器,或者來自上一行的哪一個暫存單元。 b)輸入選擇器B的配置信息i.是否接收操作數(shù)B。ii.操作數(shù)B的來源。操作數(shù)B可以來自輸入緩存器,常數(shù)寄存器,也可以來自上一行運(yùn)算單元的輸出寄存器或者上一行的暫存單元。iii.操作數(shù)B的地址。這一部分描述了操作數(shù)B在輸入緩存器的輸出數(shù)據(jù)中的具體位置,或者來自哪一個常數(shù)寄存器,或者來自上一行的哪一個運(yùn)算單元的輸出寄存器,或者來自上一行的哪一個暫存單元。c)算術(shù)邏輯單元的配置信息算術(shù)邏輯單元的配置信息描述的是算術(shù)邏輯單元所要執(zhí)行的操作類型,可以是算術(shù)運(yùn)算,也可以是邏輯運(yùn)算。d)輸出寄存器的配置信息輸出寄存器的配置信息描述了是否有計算結(jié)果輸出到輸出緩存器以及輸出到輸出緩存器中的具體地址。e)暫存單元的配置信息暫存單元的配置信息描述了暫存單元的輸入和輸出操作。i.輸入方面1.是否接收數(shù)據(jù)輸入。2.輸入數(shù)據(jù)的來源,輸入數(shù)據(jù)可以來自輸入緩存器,也可以來自上一行運(yùn)算單元的輸出寄存器或者上一行的暫存單元。3.輸入數(shù)據(jù)的地址。這一部分描述了輸入數(shù)據(jù)在輸入緩存器的輸出數(shù)據(jù)中的具體位置,或者來自上一行的哪一個運(yùn)算單元的輸出寄存器,或者來自上一行的哪一個暫存單元。ii輸出方面,描述了是否有數(shù)據(jù)輸出到輸出緩存器以及輸出到輸出緩存器中的具體地址。2.綜合控制信息綜合控制信息包括時序控制信息和粒度配置信息兩部分。a)時序控制信息包括數(shù)據(jù)輸入時間、運(yùn)算時間、數(shù)據(jù)輸出時間、循環(huán)間隔、循環(huán)次數(shù)。i.數(shù)據(jù)輸入時間數(shù)據(jù)輸入時間描述了可重構(gòu)陣列從輸入緩存器讀入一張數(shù)據(jù)流圖的一次循環(huán)操作需要的全部外部數(shù)據(jù)所花費(fèi)的節(jié)拍數(shù)。
ii.運(yùn)算時間運(yùn)算時間描述了可重構(gòu)陣列執(zhí)行一張數(shù)據(jù)流圖的一次循環(huán)操作所花費(fèi)的拍數(shù)。iii.數(shù)據(jù)輸出時間數(shù)據(jù)輸出時間描述了可重構(gòu)陣列向輸出緩存器輸出一張數(shù)據(jù)流圖的一次循環(huán)操作的運(yùn)算結(jié)果所花費(fèi)的拍數(shù)。iv.循環(huán)間隔循環(huán)間隔描述了兩次循環(huán)之間的間隔。v.循環(huán)次數(shù)循環(huán)次數(shù)描述了一張數(shù)據(jù)流圖映射的操作在可重構(gòu)陣列上執(zhí)行的次數(shù)。b)粒度配置信息粒度配置信息描述的是當(dāng)前在可重構(gòu)陣列上執(zhí)行的運(yùn)算的數(shù)據(jù)位寬。綜上,本發(fā)明提出了一種描述動態(tài)可重構(gòu)陣列配置信息的方法,配置信息的內(nèi)容如表1所示。該方法可以保證可重構(gòu)陣列正確高效的實現(xiàn)數(shù)據(jù)流圖所描述的功能。表1可重構(gòu)陣列配置信息
可重構(gòu)單元配置信息配置對象配置信息內(nèi)容輸入選擇器A是否有輸入;輸入數(shù)椐來源;輸入數(shù)椐地址輸入選擇器B是否有輸入;輸入數(shù)椐來源;輸入數(shù)椐地址算術(shù)邏輯單元執(zhí)行何種操作輸出寄存器是否有輸出輸出數(shù)椐地址暫存單元是否有輸入是否有輸出輸入數(shù)椐來源;輸入數(shù)椐地址; 輸出數(shù)椐地址綜合控制信息名稱配置信息內(nèi)容
權(quán)利要求
1.一種描述動態(tài)可重構(gòu)陣列配置信息的方法,所述可重構(gòu)陣列的配置信息主要包括多個可重構(gòu)單元的配置信息和綜合控制信息,其特征在于,所述方法包括描述各可重構(gòu)單元的配置信息,具體的,各可重構(gòu)單元的配置信息包括輸入第一選擇器的配置信息、輸入第二選擇器的配置信息、算術(shù)邏輯單元的配置信息、輸出寄存器的配置信息和暫存單元的配置信息;描述綜合控制信息,具體的,綜合控制信息包括時序控制信息和粒度配置信息。
2.如權(quán)利要求1所述的方法,其特征在于,所述輸入第一選擇器的配置信息和輸入第二選擇器的配置信息包括是否接收操作數(shù)、操作數(shù)的來源和操作數(shù)的地址。
3.如權(quán)利要求2所述的方法,其特征在于所述操作數(shù)的來源包括輸入緩存器、上一行運(yùn)算單元的輸出寄存器和上一行的暫存單元。
4.如權(quán)利要求3所述的方法,其特征在于 所述操作數(shù)的來源還包括常數(shù)寄存器。
5.如權(quán)利要求2所述的方法,其特征在于所述操作數(shù)的地址描述了操作數(shù)在輸入緩存器的輸出數(shù)據(jù)中的具體位置,或者來自上一行的哪一個運(yùn)算單元的輸出寄存器,或者來自上一行的哪一個暫存單元。
6.如權(quán)利要求5所述的方法,其特征在于所述操作數(shù)的地址描述了操作數(shù)來自哪一個常數(shù)寄存器。
7.如權(quán)利要求1所述的方法,其特征在于所述算術(shù)邏輯單元的配置信息描述的是算術(shù)邏輯單元所要執(zhí)行的操作類型,包括算術(shù)運(yùn)算和邏輯運(yùn)算。
8.如權(quán)利要求1所述的方法,其特征在于所述輸出寄存器的配置信息描述了是否有計算結(jié)果輸出到輸出緩存器以及輸出到輸出緩存器中的具體地址。
9.如權(quán)利要求1所述的方法,其特征在于所述暫存單元的配置信息描述了暫存單元的輸入和輸出操作。
10.如權(quán)利要求1所述的方法,其特征在于所述時序控制信息包括數(shù)據(jù)輸入時間、運(yùn)算時間、數(shù)據(jù)輸出時間、循環(huán)間隔、循環(huán)次數(shù);粒度配置信息描述的是當(dāng)前在可重構(gòu)陣列上執(zhí)行的運(yùn)算的數(shù)據(jù)位寬。
全文摘要
本發(fā)明提供了一種描述動態(tài)可重構(gòu)陣列配置信息的方法,通過描述各可重構(gòu)單元的配置信息,具體的,各可重構(gòu)單元的配置信息包括輸入第一選擇器的配置信息、輸入第二選擇器的配置信息、算術(shù)邏輯單元的配置信息、輸出寄存器的配置信息和暫存單元的配置信息,并描述綜合控制信息,具體的,綜合控制信息包括時序控制信息和粒度配置信息,從而把數(shù)據(jù)流圖準(zhǔn)確的映射到可重構(gòu)陣列上,使可重構(gòu)陣列按照配置信息描述的時序高效的進(jìn)行工作。
文檔編號G06F15/177GK102306141SQ201110201400
公開日2012年1月4日 申請日期2011年7月18日 優(yōu)先權(quán)日2011年7月18日
發(fā)明者劉雷波, 尹首一, 戚斌, 時龍興, 曹鵬, 朱敏, 楊軍, 王延升, 魏少軍 申請人:清華大學(xué)