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