国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種動態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運轉(zhuǎn)的方法

      文檔序號:6425097閱讀:187來源:國知局
      專利名稱:一種動態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運轉(zhuǎn)的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及嵌入式系統(tǒng)領(lǐng)域中的動態(tài)可重構(gòu)處理器技術(shù)領(lǐng)域,特別是涉及一種動態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運轉(zhuǎn)的方法。
      背景技術(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)的特點,即在電路運行過程中可動態(tài)的切換電路的功能,而非以往靜態(tài)可重構(gòu)電路一成不變的不改變電路功能,只是在電路運行之前燒寫電路功能,對電路進行初始化。這樣做的好處在于通過時分復(fù)用的方式減少了電路的規(guī)模,原因在于之前的電路結(jié)構(gòu)的全映射現(xiàn)在變?yōu)榉謮K映射,而塊與塊之間恰好采取了動態(tài)切換的方式。動態(tài)可重構(gòu)處理器在進行計算時會產(chǎn)生大量的數(shù)據(jù)流動,因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是如何能夠創(chuàng)新地提出一種有效的措施,以解決現(xiàn)有技術(shù)中存在的問題,有效避免數(shù)據(jù)沖突,保證各個模塊之間正確高效的協(xié)同工作。

      發(fā)明內(nèi)容
      本發(fā)明所要解決的技術(shù)問題是提供一種動態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運轉(zhuǎn)的方法, 有效避免動態(tài)可重構(gòu)處理器進行計算時的數(shù)據(jù)沖突,保證各個模塊之間正確高效的協(xié)同工作。為了解決上述問題,本發(fā)明公開了一種動態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運轉(zhuǎn)的方法, 所述方法包括動態(tài)可重構(gòu)處理器到數(shù)據(jù)后,判定該數(shù)據(jù)是否僅被使用一次且將在下一次處理單元陣列運算中被使用同時滿足作為處理單元陣列操作數(shù)的要求;所述動態(tài)可重構(gòu)處理器中數(shù)據(jù)劃分為片外數(shù)據(jù),片內(nèi)交互數(shù)據(jù)和處理單元陣列內(nèi)部數(shù)據(jù);若是,則內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將該數(shù)據(jù)直接送到處理單元陣列進行處理;若否,則內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將該數(shù)據(jù)寫出到內(nèi)部數(shù)據(jù)存儲器,由內(nèi)部數(shù)據(jù)讀入裝置將數(shù)據(jù)從內(nèi)部數(shù)據(jù)存儲器中讀入,送到處理單元陣列進行處理;處理單元陣列完成數(shù)據(jù)處理完畢后,根據(jù)配置信息將處理單元陣列內(nèi)部數(shù)據(jù)的運算結(jié)果發(fā)送到指定位置。優(yōu)選的,所述處理單元陣列內(nèi)部數(shù)據(jù)的來源包括處理單元陣列的上一次運算結(jié)果、片內(nèi)數(shù)據(jù)交互裝置從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器中讀入的片內(nèi)交互數(shù)據(jù)、內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置從外部數(shù)據(jù)緩存器讀入的外部數(shù)據(jù)、以及內(nèi)部數(shù)據(jù)存儲器中的數(shù)據(jù)。優(yōu)選的,所述配置信息所指定的位置包括傳遞到自身處理單元陣列的輸入端、處理器外部存儲器、子單元間數(shù)據(jù)交互暫存器、處理器間數(shù)據(jù)交互暫存器、以及內(nèi)部數(shù)據(jù)存儲器。優(yōu)選的,所述處理單元陣列內(nèi)部數(shù)據(jù)為處理單元陣列的上一次運算結(jié)果、片內(nèi)數(shù)據(jù)交互裝置從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器中讀入的片內(nèi)交互數(shù)據(jù)、內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置從外部數(shù)據(jù)緩存器讀入的外部數(shù)據(jù)、以及內(nèi)部數(shù)據(jù)存儲器中的數(shù)據(jù)中的一種或多種。優(yōu)選的,對于片外數(shù)據(jù),處理單元陣列處理完數(shù)據(jù)后,內(nèi)部數(shù)據(jù)寫出裝置從處理單元陣列讀入數(shù)據(jù)處理結(jié)果,將需要送往片外的數(shù)據(jù)寫出到內(nèi)部數(shù)據(jù)緩存器,然后外部數(shù)據(jù)寫出裝置將數(shù)據(jù)從內(nèi)部數(shù)據(jù)緩存器中讀入,寫出到處理器外部存儲器。優(yōu)選的,所述外部數(shù)據(jù)在被讀入和寫出處理單元陣列的過程中,分別要經(jīng)過外部數(shù)據(jù)緩存器和內(nèi)部數(shù)據(jù)緩存器。優(yōu)選的,讀入片外數(shù)據(jù)時,外部數(shù)據(jù)讀入裝置只需關(guān)注外部數(shù)據(jù)緩存器是否處于可寫狀態(tài)。優(yōu)選的,寫出片外數(shù)據(jù)時,外部數(shù)據(jù)寫出裝置只需關(guān)注內(nèi)部數(shù)據(jù)緩存器是否處于可讀狀態(tài)。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點本發(fā)明根據(jù)數(shù)據(jù)的不同作用范圍對數(shù)據(jù)進行分類且對數(shù)據(jù)進行判定操作,按照判定結(jié)果采用不同的方式將其送至處理單元陣列進行處理,待處理完成后按照配置信息, 選用相應(yīng)的通路將處理單元陣列將處理完的運算結(jié)果發(fā)送到指定位置,有效避免了數(shù)據(jù)沖突,保證數(shù)據(jù)流結(jié)構(gòu)的清晰,各模塊之間可以高效的協(xié)同,便于控制。


      圖1是本發(fā)明具體實施方式
      中所述的一種典型的動態(tài)可重構(gòu)處理器的數(shù)據(jù)流示意圖;圖2是本發(fā)明具體實施方式
      中所述的一種動態(tài)可重構(gòu)處理器間的數(shù)據(jù)交互示意圖;圖3是本發(fā)明實施例中所述的一種動態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運轉(zhuǎn)的方法流程圖;圖4是本發(fā)明實施例中所述的動態(tài)可重構(gòu)處理器數(shù)據(jù)流運轉(zhuǎn)示意圖;圖5是本發(fā)明實施例中所述的一個處理單元陣列的運算流程圖。
      具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
      對本發(fā)明作進一步詳細的說明?!N典型的動態(tài)可重構(gòu)處理器的數(shù)據(jù)流示意圖如圖1所示。結(jié)合圖1,動態(tài)可重構(gòu)處理器的數(shù)據(jù)運轉(zhuǎn)流程可概括如下處理器外部存儲器中的數(shù)據(jù)被分發(fā)至處理器內(nèi)部多個子單元內(nèi),多個子單元同時進行數(shù)據(jù)處理,以達并行處理的效果。各子單元處理完后,處理結(jié)果被寫出到處理器外部存儲器;同一個可重構(gòu)處理器內(nèi)部的各個子單元之間存在數(shù)據(jù)交互,即子單元B可以使用子單元A的計算結(jié)果。對于子單元間的數(shù)據(jù)交互,是通過子單元間同步控制器來進行控制的;可重構(gòu)處理器之間也存在數(shù)據(jù)交互,即處理器B的子單元可以使用處理器A的子單元的計算結(jié)果。處理器間的數(shù)據(jù)交互示意圖如圖2所示。動態(tài)可重構(gòu)處理器在結(jié)構(gòu)上可分為以下四個部分1.數(shù)據(jù)存儲裝置a)存儲待處理數(shù)據(jù)。b)存儲運算的中間結(jié)果。c)存儲運算的最終結(jié)果。d)用于數(shù)據(jù)交互的緩存。2.數(shù)據(jù)轉(zhuǎn)移裝置用于數(shù)據(jù)存儲裝置之間的數(shù)據(jù)搬運。3.運算單元a)運算單元即處理單元陣列,具體參見圖1。b)處理單元是一個算術(shù)邏輯運算單元,可實現(xiàn)基本的算術(shù)運算功能和邏輯運算功能以及一些定制的算術(shù)邏輯運算功能。c)處理單元之間通過路由單元連接,以實現(xiàn)處理單元之間的靈活且快速的數(shù)據(jù)傳遞。d)整個處理單元陣列通過時序控制單元控制,以協(xié)調(diào)處理單元陣列的輸入、運算、 輸出之間的時序關(guān)系。e)處理單元陣列可實現(xiàn)對大批量數(shù)據(jù)進行循環(huán)操作的快速處理。4.同步控制裝置a)同步控制裝置即子單元間同步控制器。b)在其控制下,多個子單元(1個至N個,N為子單元個數(shù))均完成各自的指定子任務(wù)后多個子單元(此處的多個可與之前的多個不一致)才可執(zhí)行其各自子任務(wù)序列中的下一個子任務(wù)。c)子單元間同步控制器實現(xiàn)了某任務(wù)在被劃分為多個子任務(wù)后,分發(fā)至多個子單元并行執(zhí)行,多個子單元并行執(zhí)行完多個子任務(wù)后的同步,同步后才可開始下一任務(wù)的并行化執(zhí)行。實施例參照圖3,示出了本發(fā)明的一種動態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運轉(zhuǎn)的方法流程圖,所述方法具體包括步驟S301,動態(tài)可重構(gòu)處理器到數(shù)據(jù)后,判定該數(shù)據(jù)是否僅被使用一次且將在下一次處理單元陣列運算中被使用同時滿足作為處理單元陣列操作數(shù)的要求;所述動態(tài)可重構(gòu)處理器中數(shù)據(jù)劃分為片外數(shù)據(jù),片內(nèi)交互數(shù)據(jù)和處理單元陣列內(nèi)部數(shù)據(jù);本實施例中,根據(jù)數(shù)據(jù)在動態(tài)可重構(gòu)處理器內(nèi)部的作用范圍,將數(shù)據(jù)分為片外數(shù)據(jù),片內(nèi)交互數(shù)據(jù)以及處理單元陣列內(nèi)部數(shù)據(jù)。具體的,片外數(shù)據(jù)是指從處理器外部存儲器讀入的數(shù)據(jù)以及寫出到處理器外部存儲器的數(shù)據(jù),其數(shù)據(jù)通路會在后面的內(nèi)容中詳細介紹。片內(nèi)交互數(shù)據(jù)是指處理器內(nèi)部各子單元間共享的數(shù)據(jù)以及不同處理器之間共享的數(shù)據(jù),其數(shù)據(jù)通路會在后面的內(nèi)容中詳細介紹。處理單元陣列內(nèi)部數(shù)據(jù)是指處理單元陣列在進行運算的過程中涉及到的讀入數(shù)據(jù)和寫出數(shù)據(jù),其數(shù)據(jù)通路會在后面的內(nèi)容中詳細介紹。若是,則執(zhí)行步驟S302 ;若否,則執(zhí)行步驟S303 ;步驟S302,內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將該數(shù)據(jù)直接送到處理單元陣列進行處理;步驟S303,內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將該數(shù)據(jù)寫出到內(nèi)部數(shù)據(jù)存儲器,由內(nèi)部數(shù)據(jù)讀入裝置將數(shù)據(jù)從內(nèi)部數(shù)據(jù)存儲器中讀入,送到處理單元陣列進行處理;步驟S304,處理單元陣列完成數(shù)據(jù)處理完畢后,根據(jù)配置信息將處理單元陣列內(nèi)部數(shù)據(jù)的運算結(jié)果發(fā)送到指定位置。按照所劃分的數(shù)據(jù)類別,處理單元陣列將處理完的運算結(jié)果按照配置信息,選用相應(yīng)的通路發(fā)送到指定位置,各條通路擁有數(shù)據(jù)存儲裝置和數(shù)據(jù)轉(zhuǎn)移裝置,具體的,可參照圖4示出的動態(tài)可重構(gòu)處理器數(shù)據(jù)流運轉(zhuǎn)示意圖,其中數(shù)據(jù)存儲裝置分為5個,具體說明如下外部數(shù)據(jù)緩存器,用于將讀入的外部數(shù)據(jù)緩存,待需要時被讀出。內(nèi)部數(shù)據(jù)存儲器,用于暫存處理單元陣列運算所要使用的數(shù)據(jù),待需要時數(shù)據(jù)被讀出,輸出到處理單元陣列。內(nèi)部數(shù)據(jù)緩存器,用于對處理單元陣列的結(jié)果數(shù)據(jù)進行緩存,待輸出至處理器外。子單元間數(shù)據(jù)交互暫存器,用于暫存子單元A的結(jié)果數(shù)據(jù),待子單元B讀出,以實現(xiàn)子單元間的數(shù)據(jù)交互。 處理器間數(shù)據(jù)交互暫存器,用于暫存處理器A子單元a的結(jié)果數(shù)據(jù),待處理器B子單元b讀出,以實現(xiàn)處理器間的數(shù)據(jù)交互。進一步說明的,所述子單元間數(shù)據(jù)交互暫存器由處理器的內(nèi)的全部子單元共享;處理器間數(shù)據(jù)交互暫存器由全部處理器包含的全部子單元共享。數(shù)據(jù)轉(zhuǎn)移裝置用于將數(shù)據(jù)從數(shù)據(jù)存儲裝置讀出,并寫入另一數(shù)據(jù)存儲裝置,使數(shù)據(jù)在數(shù)據(jù)存儲裝置之間轉(zhuǎn)移,最終實現(xiàn)將數(shù)據(jù)寫入處理單元陣列?;蛘邔?shù)據(jù)從數(shù)據(jù)存儲裝置讀出,直接寫入處理單元陣列。處理單元陣列運行完后,將處理單元陣列的結(jié)果數(shù)據(jù)讀出。據(jù)轉(zhuǎn)移裝置分為6個外部數(shù)據(jù)讀入裝置,片內(nèi)數(shù)據(jù)交互裝置,內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置,內(nèi)部數(shù)據(jù)讀入裝置,內(nèi)部數(shù)據(jù)寫出裝置和外部數(shù)據(jù)寫出裝置。按數(shù)據(jù)流的流動方向進行具體的說明,外部數(shù)據(jù)讀入裝置,用于將動態(tài)可重構(gòu)處理器外待處理的數(shù)據(jù)讀入動態(tài)可重構(gòu)處理器內(nèi),緩存于外部數(shù)據(jù)緩存器。片內(nèi)數(shù)據(jù)交互裝置,用于將子單元間數(shù)據(jù)交換暫存器或者處理器間數(shù)據(jù)交互暫存器內(nèi)存儲的其他子單元的結(jié)果數(shù)據(jù)讀出,分發(fā)至當前子單元的內(nèi)部數(shù)據(jù)存儲器或直接分發(fā)至處理單元陣列,這取決于此子單元的結(jié)果數(shù)據(jù)是否可直接被處理單元陣列處理。內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置,用于將外部數(shù)據(jù)緩存器內(nèi)緩存的外部數(shù)據(jù)分發(fā)至內(nèi)部數(shù)據(jù)存儲器或直接分發(fā)至處理單元陣列,這取決于此外部數(shù)據(jù)是否可直接被處理單元陣列處理。內(nèi)部數(shù)據(jù)讀入裝置,用于將內(nèi)部數(shù)據(jù)存儲器里存儲的當前子單元的內(nèi)部數(shù)據(jù)讀出,并且在需要時將多塊2D數(shù)據(jù)拼接成一塊2D數(shù)據(jù),最終將拼接后的數(shù)據(jù)(如果需要拼接的話)發(fā)送到處理單元陣列。內(nèi)部數(shù)據(jù)寫出裝置, 用于將處理單元陣列的結(jié)果數(shù)據(jù)讀出,再寫入至處理單元陣列供緊接著運行處理單元陣列時使用,或?qū)懭胫羶?nèi)部數(shù)據(jù)存儲器將數(shù)據(jù)緩存起來,或?qū)懭胱訂卧g數(shù)據(jù)交互暫存器供子單元間數(shù)據(jù)交互使用,或?qū)懭胩幚砥鏖g數(shù)據(jù)交互暫存器供處理器間數(shù)據(jù)交互使用,或?qū)懭雰?nèi)部數(shù)據(jù)緩存器待輸出至處理器外。外部數(shù)據(jù)寫出裝置,用于將緩存于內(nèi)部數(shù)據(jù)緩存器的子單元的結(jié)果數(shù)據(jù)輸出至處理器外。本實施例中以2D的方式描述數(shù)據(jù),一塊2D數(shù)據(jù)塊每行數(shù)據(jù)個數(shù)相同,并且以行對齊的方式存儲在存儲器中。具體到各類數(shù)據(jù),其數(shù)據(jù)流的運轉(zhuǎn)情況如下片外數(shù)據(jù)的數(shù)據(jù)流運轉(zhuǎn),以圖4為對象進行說明。外部數(shù)據(jù)讀入裝置將片外數(shù)據(jù)從處理器外部存儲器中讀入,然后根據(jù)配置信息把數(shù)據(jù)寫出到指定的處理單元陣列的外部數(shù)據(jù)緩存器。內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將數(shù)據(jù)從外部數(shù)據(jù)緩存器中讀入,分兩種情況對數(shù)據(jù)進行處理當從外部數(shù)據(jù)緩存器中讀入的數(shù)據(jù)同時滿足下面三個條件時,內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置會把數(shù)據(jù)直接送到處理單元陣列進行處理1該數(shù)據(jù)僅被使用一次;2該數(shù)據(jù)需要被處理單元陣列立即使用(即在下一處理單元陣列運算中被使用);3該數(shù)據(jù)無需和內(nèi)部數(shù)據(jù)存儲器中的數(shù)據(jù)進行拼接操作(即滿足作為處理單元陣列操作數(shù)的要求)。如果從外部數(shù)據(jù)緩存器中讀入的數(shù)據(jù)不能同時滿上述的三個條件,內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置會把數(shù)據(jù)寫出到內(nèi)部數(shù)據(jù)存儲器,再由內(nèi)部數(shù)據(jù)讀入裝置將數(shù)據(jù)從內(nèi)部數(shù)據(jù)存儲器中讀入,送到處理單元陣列進行處理。數(shù)據(jù)處理完畢后,內(nèi)部數(shù)據(jù)寫出裝置從處理單元陣列讀入數(shù)據(jù)處理結(jié)果,將需要送往片外的數(shù)據(jù)寫出到內(nèi)部數(shù)據(jù)緩存器,然后外部數(shù)據(jù)寫出裝置將數(shù)據(jù)從內(nèi)部數(shù)據(jù)緩存器中讀入,寫出到處理器外部存儲器。外部數(shù)據(jù)在被讀入和寫出處理單元陣列的過程中,分別要經(jīng)過外部數(shù)據(jù)緩存器和內(nèi)部數(shù)據(jù)緩存器,它們對數(shù)據(jù)流運轉(zhuǎn)的作用為隔離了片外的數(shù)據(jù)讀寫和片內(nèi)的數(shù)據(jù)處理, 使控制變得簡單。讀入片外數(shù)據(jù)時,外部數(shù)據(jù)讀入裝置只需要關(guān)注外部數(shù)據(jù)緩存器是否處于可寫狀態(tài);寫出片外數(shù)據(jù)時,外部數(shù)據(jù)寫出裝置只需要關(guān)注內(nèi)部數(shù)據(jù)緩存器是否處于可讀狀態(tài)。數(shù)據(jù)緩存器具有數(shù)據(jù)預(yù)取功能,可以濾除數(shù)據(jù)流量尖峰,克服數(shù)據(jù)流量的不穩(wěn)定性所造成的影響。同樣的,片內(nèi)交互數(shù)據(jù)的數(shù)據(jù)流運轉(zhuǎn)以圖4為對象進行說明。片內(nèi)數(shù)據(jù)交互裝置根據(jù)配置信息從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器讀入所需要的數(shù)據(jù),分兩種情況對數(shù)據(jù)進行處理當從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器讀入的數(shù)據(jù)同時滿足下面三個條件時,片內(nèi)數(shù)據(jù)交互裝置會把數(shù)據(jù)直接送到處理單元陣列進行處理1該數(shù)據(jù)僅被使用一次;2該數(shù)據(jù)需要被處理單元陣列立即使用;3該數(shù)據(jù)無需和內(nèi)部數(shù)據(jù)存儲器中的數(shù)據(jù)進行拼接操作。如果從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器讀入的數(shù)據(jù)不能同時滿足上述的三個條件,片內(nèi)數(shù)據(jù)交互裝置會把數(shù)據(jù)寫出到內(nèi)部數(shù)據(jù)存儲器,再由內(nèi)部數(shù)據(jù)讀入裝置將數(shù)據(jù)從內(nèi)部數(shù)據(jù)存儲器中讀入,送到處理單元陣列進行處理。數(shù)據(jù)處理完畢后,內(nèi)部數(shù)據(jù)寫出裝置從處理單元陣列讀入數(shù)據(jù)處理結(jié)果,分兩種情況對數(shù)據(jù)進行處理如果數(shù)據(jù)需要被同一個可重構(gòu)處理器內(nèi)的其他子單元使用,則內(nèi)部數(shù)據(jù)寫出裝置將數(shù)據(jù)寫出到子單元間數(shù)據(jù)交互暫存器。
      如果數(shù)據(jù)需要被其他可重構(gòu)處理處理器使用,則內(nèi)部數(shù)據(jù)寫出裝置將數(shù)據(jù)寫出到處理器間數(shù)據(jù)交互暫存器。同樣的,處理單元陣列內(nèi)部數(shù)據(jù)的數(shù)據(jù)流運轉(zhuǎn)以圖4為對象進行說明。處理單元陣列輸入端的數(shù)據(jù)來源按照圖示從上到下的順序有四種情況當前運算需要立即使用自身處理單元陣列的上一次運算結(jié)果,并且該運算結(jié)果僅被使用一次,同時該運算結(jié)果無需和內(nèi)部數(shù)據(jù)存儲器中的數(shù)據(jù)進行拼接操作,則處理單元陣列的輸出端直接將運算結(jié)果傳遞到自身的輸入端;當前運算需要立即使用片內(nèi)數(shù)據(jù)交互裝置從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器中讀入的片內(nèi)交互數(shù)據(jù),并且該數(shù)據(jù)僅被使用一次,同時該數(shù)據(jù)無需和內(nèi)部數(shù)據(jù)存儲器中的數(shù)據(jù)進行拼接操作,則片內(nèi)數(shù)據(jù)交互裝置直接將數(shù)據(jù)傳遞給處理單元陣列的輸入端;當前運算需要立即使用內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置從外部數(shù)據(jù)緩存器讀入的外部數(shù)據(jù),并且該數(shù)據(jù)僅被使用一次,同時該數(shù)據(jù)無需和內(nèi)部數(shù)據(jù)存儲器中的數(shù)據(jù)進行拼接操作,則內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置直接將數(shù)據(jù)傳遞給處理單元陣列的輸入端;當前運算需要使用內(nèi)部數(shù)據(jù)存儲器中的數(shù)據(jù)(該數(shù)據(jù)可能是之前存儲的外部數(shù)據(jù), 之前存儲的片內(nèi)交互數(shù)據(jù),或者自身處理單元陣列之前的運算結(jié)果),內(nèi)部數(shù)據(jù)讀入裝置將所需數(shù)據(jù)從內(nèi)部數(shù)據(jù)存儲器中讀入,傳遞到處理單元陣列的輸入端。處理單元陣列的輸入可以是以上四種情況的任意組合。內(nèi)部數(shù)據(jù)寫出裝置將處理單元陣列的運算結(jié)果讀入,然后根據(jù)配置信息將運算結(jié)果發(fā)送到指定位置,數(shù)據(jù)的流向按照圖示從上到下的順序有五種情況當前運算的結(jié)果同時滿足下面三個條件時,內(nèi)部數(shù)據(jù)寫出裝置直接將運算結(jié)果傳遞到自身處理單元陣列的輸入端1該運算結(jié)果僅被使用一次;2該運算結(jié)果需要被處理單元陣列在下一次運算中立即使用;3該運算結(jié)果無需和內(nèi)部數(shù)據(jù)存儲器中的數(shù)據(jù)進行拼接操作;當前運算的結(jié)果需要輸出到處理器外部存儲器,內(nèi)部數(shù)據(jù)寫出裝置首先將運算結(jié)果寫出到內(nèi)部數(shù)據(jù)緩存器,然后外部數(shù)據(jù)寫出裝置從內(nèi)部數(shù)據(jù)緩存器中讀入運算結(jié)果,再寫出到處理器外部存儲器;當前運算的結(jié)果需要被同一個可重構(gòu)處理器內(nèi)的其他子單元使用,則內(nèi)部數(shù)據(jù)寫出裝置將運算結(jié)果寫出到子單元間數(shù)據(jù)交互暫存器;當前運算的結(jié)果需要被其他可重構(gòu)處理器使用, 則內(nèi)部數(shù)據(jù)寫出裝置將運算結(jié)果寫出到處理器間數(shù)據(jù)交互暫存器;如果當前運算的結(jié)果需要被自身處理單元陣列使用,但是不能同時滿足上述的三個條件,內(nèi)部數(shù)據(jù)寫出裝置將運算結(jié)果寫出到內(nèi)部數(shù)據(jù)存儲器。處理單元陣列的輸出可以是以上五種情況中某幾種的組合。如上所述,處理單元陣列的輸入端共有四種數(shù)據(jù)來源,輸出端共有五種數(shù)據(jù)流向,可組合成二十種數(shù)據(jù)通路。下面以一個簡單的流程圖為例來說明與此流程圖對應(yīng)的動態(tài)可重構(gòu)處理器內(nèi)部的數(shù)據(jù)流運轉(zhuǎn)。一個處理單元陣列的運算流程圖如圖5所示,每個方框代表處理單元陣列的一次運算。第N次運算的結(jié)果需要和第N+2次運算的結(jié)果進行拼接操作,所以內(nèi)部數(shù)據(jù)寫出裝置將其存儲到內(nèi)部數(shù)據(jù)存儲器。第N+1次運算的輸入包括片外數(shù)據(jù)和片內(nèi)交互數(shù)據(jù)。片外數(shù)據(jù)需要立即參與第N次運算,且不再反復(fù)使用,同時不需要進行拼接操作, 所以內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將其直接送到處理單元陣列輸入端。
      片內(nèi)交互數(shù)據(jù)由片內(nèi)數(shù)據(jù)交互裝置從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器中讀入,但是該數(shù)據(jù)不能立即參與運算,所以片內(nèi)數(shù)據(jù)交互裝置將其存儲到內(nèi)部數(shù)據(jù)存儲器。當進行到第N+1次運算時,內(nèi)部數(shù)據(jù)讀入裝置再將其傳送到處理單元陣列輸入端。第N+1次運算的結(jié)果不參與第N+2次運算,但是需要參與第N+3次運算,所以內(nèi)部數(shù)據(jù)寫出裝置將其存儲到內(nèi)部數(shù)據(jù)存儲器。第N+2次運算的輸入包括片外數(shù)據(jù)和片內(nèi)交互數(shù)據(jù)。片外數(shù)據(jù)被讀入后不能立即參與運算,所以內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將其存儲到內(nèi)部數(shù)據(jù)存儲器。當進行到第N+2次運算時,內(nèi)部數(shù)據(jù)讀入裝置再將其傳送到處理單元陣列輸入端。片內(nèi)交互數(shù)據(jù)由片內(nèi)數(shù)據(jù)交互裝置從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器中讀入,該數(shù)據(jù)需要立即參與第N+2次運算,且不再反復(fù)使用,同時不需要進行拼接操作,所以被直接送到處理單元陣列輸入端。第N+2次運算的結(jié)果需要與第N次運算的結(jié)果進行拼接操作,所以內(nèi)部數(shù)據(jù)寫出裝置將其存儲到內(nèi)部數(shù)據(jù)存儲器。第N+3次運算的輸入包括第N+1次運算的結(jié)果以及第N次和第N+2次運算結(jié)果的拼接。第N+1次運算的結(jié)果存儲在內(nèi)部數(shù)據(jù)存儲器中,內(nèi)部數(shù)據(jù)讀入裝置將其讀入并送到處理單元陣列的輸入端。第N次和第N+2次運算的結(jié)果也存儲在內(nèi)部數(shù)據(jù)存儲器中,經(jīng)過拼接操作后,由內(nèi)部數(shù)據(jù)讀入裝置將拼接結(jié)果讀入并送到處理單元陣列的輸入端。整個流程圖的最終運算結(jié)果需要輸出到處理單元陣列外部,分為以下三種情況 輸出到處理器外部存儲器,內(nèi)部數(shù)據(jù)寫出裝置將運算結(jié)果寫出到內(nèi)部數(shù)據(jù)緩存器,外部數(shù)據(jù)寫出裝置再從內(nèi)部數(shù)據(jù)緩存器中讀入運算結(jié)果,將其寫出到處理器外部存儲器;輸出供同一個可重構(gòu)處理器內(nèi)的其他子單元使用,內(nèi)部數(shù)據(jù)寫出裝置將運算結(jié)果寫出到子單元間數(shù)據(jù)交互暫存器;輸出供其他可重構(gòu)處理器使用,內(nèi)部數(shù)據(jù)寫出裝置將運算結(jié)果寫出到處理器間數(shù)據(jù)交互暫存器。以上對本發(fā)明所提供的一種動態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運轉(zhuǎn)的方法進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
      及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
      權(quán)利要求
      1.一種動態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運轉(zhuǎn)的方法,其特征在于,所述方法包括動態(tài)可重構(gòu)處理器到數(shù)據(jù)后,判定該數(shù)據(jù)是否僅被使用一次且將在下一次處理單元陣列運算中被使用同時滿足作為處理單元陣列操作數(shù)的要求;所述動態(tài)可重構(gòu)處理器中數(shù)據(jù)劃分為片外數(shù)據(jù),片內(nèi)交互數(shù)據(jù)和處理單元陣列內(nèi)部數(shù)據(jù);若是,則內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將該數(shù)據(jù)直接送到處理單元陣列進行處理;若否,則內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將該數(shù)據(jù)寫出到內(nèi)部數(shù)據(jù)存儲器,由內(nèi)部數(shù)據(jù)讀入裝置將數(shù)據(jù)從內(nèi)部數(shù)據(jù)存儲器中讀入,送到處理單元陣列進行處理;處理單元陣列完成數(shù)據(jù)處理完畢后,根據(jù)配置信息將處理單元陣列內(nèi)部數(shù)據(jù)的運算結(jié)果發(fā)送到指定位置。
      2.如權(quán)利要求1所述的方法,其特征在于所述處理單元陣列內(nèi)部數(shù)據(jù)的來源包括處理單元陣列的上一次運算結(jié)果、片內(nèi)數(shù)據(jù)交互裝置從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器中讀入的片內(nèi)交互數(shù)據(jù)、 內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置從外部數(shù)據(jù)緩存器讀入的外部數(shù)據(jù)、以及內(nèi)部數(shù)據(jù)存儲器中的數(shù)據(jù)。
      3.如權(quán)利要求1所述的方法,其特征在于所述配置信息所指定的位置包括傳遞到自身處理單元陣列的輸入端、處理器外部存儲器、子單元間數(shù)據(jù)交互暫存器、處理器間數(shù)據(jù)交互暫存器、以及內(nèi)部數(shù)據(jù)存儲器。
      4.如權(quán)利要求1所述的方法,其特征在于所述處理單元陣列內(nèi)部數(shù)據(jù)為處理單元陣列的上一次運算結(jié)果、片內(nèi)數(shù)據(jù)交互裝置從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器中讀入的片內(nèi)交互數(shù)據(jù)、內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置從外部數(shù)據(jù)緩存器讀入的外部數(shù)據(jù)、以及內(nèi)部數(shù)據(jù)存儲器中的數(shù)據(jù)中的一種或多種。
      5.如權(quán)利要求1所述的方法,其特征在于對于片外數(shù)據(jù),處理單元陣列處理完數(shù)據(jù)后,內(nèi)部數(shù)據(jù)寫出裝置從處理單元陣列讀入數(shù)據(jù)處理結(jié)果,將需要送往片外的數(shù)據(jù)寫出到內(nèi)部數(shù)據(jù)緩存器,然后外部數(shù)據(jù)寫出裝置將數(shù)據(jù)從內(nèi)部數(shù)據(jù)緩存器中讀入,寫出到處理器外部存儲器。
      6.如權(quán)利要求5所述的方法,其特征在于所述外部數(shù)據(jù)在被讀入和寫出處理單元陣列的過程中,分別要經(jīng)過外部數(shù)據(jù)緩存器和內(nèi)部數(shù)據(jù)緩存器。
      7.如權(quán)利要求6所述的方法,其特征在于讀入片外數(shù)據(jù)時,外部數(shù)據(jù)讀入裝置只需關(guān)注外部數(shù)據(jù)緩存器是否處于可寫狀態(tài)。
      8.如權(quán)利要求6所述的方法,其特征在于寫出片外數(shù)據(jù)時,外部數(shù)據(jù)寫出裝置只需關(guān)注內(nèi)部數(shù)據(jù)緩存器是否處于可讀狀態(tài)。
      全文摘要
      本發(fā)明提供了一種動態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運轉(zhuǎn)的方法,根據(jù)數(shù)據(jù)的不同作用范圍對數(shù)據(jù)進行分類且對數(shù)據(jù)進行判定操作,按照判定結(jié)果采用不同的方式將其送至處理單元陣列進行處理,待處理完成后按照配置信息,選用相應(yīng)的通路將處理單元陣列將處理完的運算結(jié)果發(fā)送到指定位置,有效避免了數(shù)據(jù)沖突,保證數(shù)據(jù)流結(jié)構(gòu)的清晰,各模塊之間可以高效的協(xié)同,便于控制。
      文檔編號G06F9/312GK102184089SQ20111014035
      公開日2011年9月14日 申請日期2011年5月27日 優(yōu)先權(quán)日2011年5月27日
      發(fā)明者劉雷波, 尹首一, 戚斌, 時龍興, 曹鵬, 朱敏, 楊軍, 王延升, 魏少軍 申請人:清華大學
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1