專利名稱:一種層次化描述動態(tài)可重構(gòu)處理器配置信息的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)技術(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)的特點,即在電路運(yùn)行過程中可動態(tài)的切換電路的功能,而非以往靜態(tài)可重構(gòu)電路一沉不變的不改變電路功能,只是在電路運(yùn)行之前燒寫電路功能,對電路進(jìn)行初始化。這樣做的好處在于通過時分復(fù)用的方式減少了電路的規(guī)模,原因在于之前的電路結(jié)構(gòu)的全映射現(xiàn)在變?yōu)榉謮K映射,而塊與塊之間恰好采取了動態(tài)切換的方式。目前,動態(tài)可重構(gòu)處理器中往往存在配置信息存儲量過大和傳輸量過大的問題, 因此本發(fā)明創(chuàng)新的提出一種層次化描述動態(tài)可重構(gòu)處理器配置信息的方法,以滿足實際應(yīng)用的需求。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種層次化描述動態(tài)可重構(gòu)處理器配置信息的方法,用以有效節(jié)省配置信息在片上存儲器的存儲空間,減少主處理器向可重構(gòu)處理器傳輸?shù)呐渲眯畔⒘?。為了解決上述問題,本發(fā)明公開了一種層次化描述動態(tài)可重構(gòu)處理器配置信息的方法,所述方法包括每個處理單元的算術(shù)邏輯功能的選擇信息、每個處理單元的輸入選擇信息、以及處理單元陣列的時序控制信息作為配置信息層次3存儲于片內(nèi)存儲器;陣列的配置信息、內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置的配置信息、內(nèi)部數(shù)據(jù)讀入裝置的配置信息、以及內(nèi)部數(shù)據(jù)寫出裝置的配置信息作為配置信息層次2存儲于片內(nèi)存儲器;子單元間數(shù)據(jù)交互裝置的配置信息和子單元配置信息作為配置信息層次1存儲于片內(nèi)存儲器;外部數(shù)據(jù)讀入裝置的配置信息、外部數(shù)據(jù)寫出裝置的配置信息、子單元配置信息隊列、以及與其他子單元同步的信息作為配置信息層次0存儲于片內(nèi)存儲器。優(yōu)選的,所述配置信息隊列的序列與子任務(wù)序列對應(yīng)。優(yōu)選的,每個子任務(wù)序列包括多個子任務(wù),每個子任務(wù)包括多個子任務(wù)步驟。
優(yōu)選的,子任務(wù)序列被分配到某一子單元上執(zhí)行。優(yōu)選的,與子任務(wù)對應(yīng)的動態(tài)可重構(gòu)處理器的配置信息是配置信息隊列。優(yōu)選的,與子任務(wù)中的步驟對應(yīng)的配置信息是子單元配置信息。優(yōu)選的,所述子單元間數(shù)據(jù)交互裝置的配置信息為一個或多個。優(yōu)選的,所述陣列的配置信息存于處理器內(nèi)一個固定的存儲器-處理單元配置信息存儲器中。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點本發(fā)明提供的一種層次化描述動態(tài)可重構(gòu)處理器配置信息的方法,將動態(tài)處理器中的配置信息層次化的存儲于片內(nèi)的存儲器中,有效節(jié)省配置信息在片上存儲器的存儲空間,減少主處理器向可重構(gòu)處理器傳輸?shù)呐渲眯畔⒘俊?br>
圖1是本發(fā)明具體實施方式
中所述的一種典型的動態(tài)可重構(gòu)處理器的結(jié)構(gòu)示意圖;圖2是本發(fā)明實施例所述的一種層次化描述動態(tài)可重構(gòu)處理器配置信息的方法流程圖;圖3是本發(fā)明實施例所述的層次化的動態(tài)可重構(gòu)處理器的配置信息存儲于動態(tài)可重構(gòu)處理器示意圖;圖4是本發(fā)明實施例所述的配置流與數(shù)據(jù)流關(guān)系示意圖;圖5是本發(fā)明實施例所述的應(yīng)用算法關(guān)于動態(tài)可重構(gòu)處理器的劃分示意圖;圖6是本發(fā)明實施例所述的動態(tài)可重構(gòu)處理器的子單元的結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明。一種典型的動態(tài)可重構(gòu)處理器的結(jié)構(gòu)示意圖如圖1所示。動態(tài)可重構(gòu)處理器的運(yùn)轉(zhuǎn)流程可概括為如下步驟1.動態(tài)可重構(gòu)處理器由外部數(shù)據(jù)讀入裝置將處理器外存儲器內(nèi)待處理的數(shù)據(jù)讀入處理器內(nèi),分發(fā)至多個子單元處理內(nèi)的外部數(shù)據(jù)緩存器。2.多個子單元將數(shù)據(jù)從各自的外部數(shù)據(jù)緩存器讀出,再進(jìn)行處理。多個子單元同時處理,以達(dá)并行處理的效果。各子單元處理完后,將結(jié)果數(shù)據(jù)存于各自的內(nèi)部數(shù)據(jù)緩存
ο3.外部數(shù)據(jù)寫出裝置將結(jié)果數(shù)據(jù)從各子單元的內(nèi)部數(shù)據(jù)緩存器讀出,并寫出到處理器外部存儲器。除上述步驟外,還需說明的是子單元間的同步機(jī)制通過子單元間同步控制器來實現(xiàn);子單元間的數(shù)據(jù)交互通過由子單元A向子單元間數(shù)據(jù)交互暫存器寫入數(shù)據(jù),子單元B 從子單元間數(shù)據(jù)交互暫存器讀出此數(shù)據(jù)來實現(xiàn)。使用時還需結(jié)合子單元間的同步機(jī)制,即子單元A向子單元間數(shù)據(jù)交互暫存器寫完數(shù)據(jù)后,子單元B才可開始讀取子單元間數(shù)據(jù)交互暫存器。
動態(tài)可重構(gòu)處理器可從數(shù)據(jù)流和配置流的角度去被描述。數(shù)據(jù)流的角度是指從對數(shù)據(jù)流的處理的角度出發(fā),遍歷數(shù)據(jù)流所經(jīng)過的動態(tài)可重構(gòu)處理器內(nèi)的各模塊,提出各模塊所需的功能。從數(shù)據(jù)流的角度出發(fā),動態(tài)可重構(gòu)處理器在結(jié)構(gòu)上可分為以下四個部分1.數(shù)據(jù)轉(zhuǎn)移裝置a)數(shù)據(jù)轉(zhuǎn)移裝置用于將數(shù)據(jù)從數(shù)據(jù)存儲裝置讀出,并寫入另一數(shù)據(jù)存儲裝置,使數(shù)據(jù)在數(shù)據(jù)存儲裝置之間轉(zhuǎn)移。最終實現(xiàn)將數(shù)據(jù)寫入處理單元陣列,處理單元陣列運(yùn)行完后,將處理單元陣列的結(jié)果數(shù)據(jù)讀出。b)數(shù)據(jù)轉(zhuǎn)移裝置分為6個外部數(shù)據(jù)讀入裝置,子單元間數(shù)據(jù)交互裝置,內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置,內(nèi)部數(shù)據(jù)讀入裝置,內(nèi)部數(shù)據(jù)寫出裝置,外部數(shù)據(jù)寫出裝置。按數(shù)據(jù)流的流動方向,具體說明如下。c)外部數(shù)據(jù)讀入裝置i.用于將動態(tài)可重構(gòu)處理器外待處理的數(shù)據(jù)讀入動態(tài)可重構(gòu)處理器內(nèi),緩存于外部數(shù)據(jù)緩存器。d)子單元間數(shù)據(jù)交互裝置i.用于將子單元間數(shù)據(jù)交換暫存器內(nèi)存儲的其他子單元的結(jié)果數(shù)據(jù)讀出,并在一定程度上進(jìn)行整合,最終將整合后的數(shù)據(jù)分發(fā)至當(dāng)前子單元的內(nèi)部數(shù)據(jù)存儲器或直接分發(fā)至處理單元陣列,這取決于此外單元的結(jié)果數(shù)據(jù)是否可直接被處理單元陣列處理和此數(shù)據(jù)是否將多次被處理。e)內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置i.用于將外部數(shù)據(jù)緩存器內(nèi)緩存的外部數(shù)據(jù)分發(fā)至內(nèi)部數(shù)據(jù)存儲器或直接分發(fā)至處理單元陣列,這取決于此外部數(shù)據(jù)是否可直接被處理單元陣列處理和此數(shù)據(jù)是否將多次被處理。f)內(nèi)部數(shù)據(jù)讀入裝置i.用于將內(nèi)部數(shù)據(jù)存儲器內(nèi)存儲的當(dāng)前子單元的內(nèi)部數(shù)據(jù),并在一定程度上進(jìn)行整合,最終將整合后的數(shù)據(jù)寫入到處理單元陣列。g)內(nèi)部數(shù)據(jù)寫出裝置i.用于將處理單元陣列的結(jié)果數(shù)據(jù)讀出,再寫入至處理單元陣列供緊接著運(yùn)行處理單元陣列時使用,或?qū)懭胫羶?nèi)部數(shù)據(jù)存儲器將數(shù)據(jù)緩存起來,或?qū)懭胱訂卧g數(shù)據(jù)交互暫存器供子單元間數(shù)據(jù)交互使用,或?qū)懭雰?nèi)部數(shù)據(jù)緩存器待輸出至處理器外。h)外部數(shù)據(jù)寫出裝置
i.用于將緩存于內(nèi)部數(shù)據(jù)緩存器的子單元的結(jié)果數(shù)據(jù)輸出至處理器外。
2.數(shù)據(jù)存儲裝置
a)分為4個,具體說明如下。
b)外部數(shù)據(jù)緩存器
i.用于將讀入的外部數(shù)據(jù)緩存,待需要時被讀出。
C)內(nèi)部數(shù)據(jù)存儲器
i.用于對處理單元陣列的結(jié)果數(shù)據(jù)進(jìn)行暫存,待需要時被讀出,還供在處理器內(nèi)部使用。
d)內(nèi)部數(shù)據(jù)緩存器
i.用于對處理單元陣列的結(jié)果數(shù)據(jù)進(jìn)行緩存,待輸出至處理器外。e)子單元間數(shù)據(jù)交互暫存器i.用于暫存子單元A的結(jié)果數(shù)據(jù),待子單元B讀出,以實現(xiàn)子單元間的數(shù)據(jù)交互。3.運(yùn)算單元a)運(yùn)算單元即處理單元陣列,具體參見圖1。b)處理單元是一個算術(shù)邏輯運(yùn)算單元,可實現(xiàn)基本的算術(shù)運(yùn)算功能和邏輯運(yùn)算功能以及一些定制的算術(shù)邏輯運(yùn)算功能。c)處理單元之間通過路由單元連接,以實現(xiàn)處理單元之間的靈活且快速的數(shù)據(jù)傳遞。d)整個處理單元陣列通過時序控制單元控制,以協(xié)調(diào)處理單元陣列的輸入、運(yùn)算、 輸出之間的時序關(guān)系。e)處理單元陣列可實現(xiàn)對大批量數(shù)據(jù)進(jìn)行循環(huán)操作的快速處理。4.同步控制裝置a)同步控制裝置即子單元間同步控制器。b)其實現(xiàn)多個子單元(1個至N個,N為子單元個數(shù))均完成其各自的指定子任務(wù)后多個子單元(此處的多個可與之前的多個不一致)才可執(zhí)行其各自子任務(wù)序列中的下一個子任務(wù)。c)子單元間同步控制器實現(xiàn)了某任務(wù)在被劃分為多個子任務(wù)后,分發(fā)至多個子單元并行執(zhí)行,多個子單元并行執(zhí)行完多個子任務(wù)后的同步。同步后才可開始下一任務(wù)的并行化執(zhí)行。從配置流的角度出發(fā)去描述動態(tài)可重構(gòu)處理器是以對動態(tài)可重構(gòu)處理器的控制為主線,定義出一套有效的控制信息和一組有效的控制機(jī)制,不僅對動態(tài)可重構(gòu)處理器內(nèi)的各個模塊的功能進(jìn)行控制,更使得各個模塊之間可正確的協(xié)同工作。配置流從底層出發(fā), 首先完成一個簡單的子任務(wù),再由多個子任務(wù)串聯(lián)起一個任務(wù),最終由多個任務(wù)串聯(lián)起一個完整的應(yīng)用算法。實施例參照圖2,示出了本發(fā)明的一種層次化描述動態(tài)可重構(gòu)處理器配置信息的方法流程圖,所述方法具體包括步驟S201,每個處理單元的算術(shù)邏輯功能的選擇信息、每個處理單元的輸入選擇信息、以及處理單元陣列的時序控制信息作為配置信息層次3存儲于片內(nèi)存儲器;步驟S202,陣列的配置信息、內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置的配置信息、內(nèi)部數(shù)據(jù)讀入裝置的配置信息、以及內(nèi)部數(shù)據(jù)寫出裝置的配置信息作為配置信息層次2存儲于片內(nèi)存儲器;步驟S203,子單元間數(shù)據(jù)交互裝置的配置信息和子單元配置信息作為配置信息層次1存儲于片內(nèi)存儲器;步驟S204,外部數(shù)據(jù)讀入裝置的配置信息、外部數(shù)據(jù)寫出裝置的配置信息、子單元配置信息隊列、以及與其他子單元同步的信息作為配置信息層次0存儲于片內(nèi)存儲器。本發(fā)明所述層次化的動態(tài)可重構(gòu)處理器的配置信息存儲于動態(tài)可重構(gòu)處理器如圖3所示,圖中有存儲層次化配置信息的存儲裝置,具體原因如下1.動態(tài)可重構(gòu)處理器由于其高度的靈活性,使得對其進(jìn)行配置的配置信息的信息量巨大,已達(dá)到與動態(tài)可重構(gòu)處理器的數(shù)據(jù)流的數(shù)據(jù)量可比擬的程度,具體可參見圖4給出的配置流與數(shù)據(jù)流關(guān)系示意圖。1.如果將配置信息存儲于處理器外,即芯片外的板上存儲器內(nèi),則傳輸配置信息的時間將大大增加。這將影響動態(tài)可重構(gòu)處理器實時處理數(shù)據(jù)的性能。如圖4(a)所示,當(dāng)配置流傳輸及配置時間大于數(shù)據(jù)流處理時間時,前后數(shù)據(jù)流處理之間將產(chǎn)生空隙,這將降低動態(tài)可重構(gòu)處理器連續(xù)處理數(shù)據(jù)流時的性能。2.如果將配置信息存儲于處理器內(nèi)的片上存儲器,則傳輸配置信息的時間將顯著減小。如圖4(b)所示,當(dāng)配置流傳輸及配置時間小于數(shù)據(jù)流處理時間時,前后數(shù)據(jù)流將被連續(xù)處理,使得動態(tài)可重構(gòu)處理器持續(xù)運(yùn)轉(zhuǎn),不發(fā)生閑置的情況。3.此外,往往芯片內(nèi)外進(jìn)行數(shù)據(jù)交互時只有一組接口信號,此組接口信號的帶寬固定。動態(tài)可重構(gòu)處理器的數(shù)據(jù)流對于芯片外的板上存儲器的訪問量很大,這將占用去此組接口信號的絕大部分帶寬。如果將配置信息存于處理器外的板上存儲器,由于配置信息的信息量也很大,讀取配置信息時將再占用去此組接口信號的一部分帶寬,額外增加的讀取配置信息的帶寬將造成片外數(shù)據(jù)訪問時的擁塞。因此,采用將配置信息存于動態(tài)可重構(gòu)處理器內(nèi)的方式。參見圖5,示出了本實施中應(yīng)用算法關(guān)于動態(tài)可重構(gòu)處理器的劃分示意圖,在說明層次化的動態(tài)可重構(gòu)處理器配置信息前,先根據(jù)圖5對一個應(yīng)用算法關(guān)于動態(tài)可重構(gòu)處理器的劃分進(jìn)行說明1. 一個應(yīng)用算法根據(jù)其內(nèi)部的數(shù)據(jù)相關(guān)性可被劃為多個獨立的子任務(wù)序列,如圖 5(a)中的子任務(wù)序列1和子任務(wù)序列2。2.每個子任務(wù)序列內(nèi)包含多個子任務(wù),如圖5(a)中的子任務(wù)序列1包含子任務(wù) 1. 1和子任務(wù)1. 2。3.每個子任務(wù)內(nèi)包含多個步驟,如子任務(wù)1. 1內(nèi)的步驟1,步驟2。4.以上對應(yīng)用算法進(jìn)行劃分的目的是在算法內(nèi)部尋求并行處理的可能性,以便于算法到支持并行處理的硬件-動態(tài)可重構(gòu)處理器上的映射。5.經(jīng)劃分后的子任務(wù)序列被分配至動態(tài)可重構(gòu)處理器的某一個子單元上執(zhí)行,與子任務(wù)序列對應(yīng)的動態(tài)可重構(gòu)處理器的配置信息是配置信息隊列的序列。例如圖5中子任務(wù)序列1被分配至子單元1執(zhí)行,子任務(wù)序列1對應(yīng)的配置信息是子單元1的配置信息隊列的序列。6.與子任務(wù)對應(yīng)的動態(tài)可重構(gòu)處理器的配置信息是配置信息隊列,例如圖5中的子任務(wù)1. 1對應(yīng)的配置信息是配置信息隊列1.1。7.與子任務(wù)中的步驟對應(yīng)的配置信息是子單元配置信息,例如圖5中的子任務(wù) 1. 1的步驟1對應(yīng)的配置信息是配置信息隊列1. 1的子單元配置信息1。層次化的動態(tài)可重構(gòu)處理器的配置信息定義如下(為便于理解,采取自底向上的方式來層層描述動態(tài)可重構(gòu)處理器的配置信息)配置信息層次3—處理單元陣列的配置信息a)首先,動態(tài)可重構(gòu)處理器的核心在于處理單元陣列,所以動態(tài)可重構(gòu)處理器的配置信息是以處理單元陣列的配置信息為基石進(jìn)行構(gòu)造,處理單元陣列的配置信息是最底層的配置信息。
b)處理單元陣列的配置信息如下表,其具體包括i.每個處理單元的算術(shù)邏輯功能的選擇信息。ii.每個處理單元的輸入選擇信息,這體現(xiàn)了處理單元陣列的路由結(jié)構(gòu)。iii.處理單元陣列的時序控制信息。
權(quán)利要求
1.一種層次化描述動態(tài)可重構(gòu)處理器配置信息的方法,其特征在于,所述方法包括 每個處理單元的算術(shù)邏輯功能的選擇信息、每個處理單元的輸入選擇信息、以及處理單元陣列的時序控制信息作為配置信息層次3存儲于片內(nèi)存儲器;陣列的配置信息、內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置的配置信息、內(nèi)部數(shù)據(jù)讀入裝置的配置信息、以及內(nèi)部數(shù)據(jù)寫出裝置的配置信息作為配置信息層次2存儲于片內(nèi)存儲器;子單元間數(shù)據(jù)交互裝置的配置信息和子單元配置信息作為配置信息層次1存儲于片內(nèi)存儲器;外部數(shù)據(jù)讀入裝置的配置信息、外部數(shù)據(jù)寫出裝置的配置信息、子單元配置信息隊列、 以及與其他子單元同步的信息作為配置信息層次0存儲于片內(nèi)存儲器。
2.如權(quán)利要求1所述的方法,其特征在于 所述配置信息隊列的序列與子任務(wù)序列對應(yīng)。
3.如權(quán)利要求2所述的方法,其特征在于每個子任務(wù)序列包括多個子任務(wù),每個子任務(wù)包括多個子任務(wù)步驟。
4.如權(quán)利要求2所述的方法,其特征在于 子任務(wù)序列被分配到某一子單元上執(zhí)行。
5.如權(quán)利要求2所述的方法,其特征在于與子任務(wù)對應(yīng)的動態(tài)可重構(gòu)處理器的配置信息是配置信息隊列。
6.如權(quán)利要求3所述的方法,其特征在于與子任務(wù)中的步驟對應(yīng)的配置信息是子單元配置信息。
7.如權(quán)利要求1所述的方法,其特征在于所述子單元間數(shù)據(jù)交互裝置的配置信息為一個或多個。
8.如權(quán)利要求1所述的方法,其特征在于所述陣列的配置信息存于處理器內(nèi)一個固定的存儲器-處理單元配置信息存儲器中。
全文摘要
本發(fā)明提供的一種層次化描述動態(tài)可重構(gòu)處理器配置信息的方法,將動態(tài)處理器中的配置信息層次化的存儲于片內(nèi)的存儲器中,有效節(jié)省配置信息在片上存儲器的存儲空間,減少主處理器向可重構(gòu)處理器傳輸?shù)呐渲眯畔⒘俊?br>
文檔編號G06F15/177GK102236632SQ20111014094
公開日2011年11月9日 申請日期2011年5月27日 優(yōu)先權(quán)日2011年5月27日
發(fā)明者劉雷波, 尹首一, 戚斌, 時龍興, 曹鵬, 朱敏, 楊軍, 王延升, 魏少軍 申請人:清華大學(xué)