欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

文檔序號(hào):6425097閱讀:190來(lái)源:國(guó)知局
專利名稱:一種動(dòng)態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運(yùn)轉(zhuǎn)的方法
技術(shù)領(lǐng)域
本發(fā)明涉及嵌入式系統(tǒng)領(lǐng)域中的動(dòng)態(tài)可重構(gòu)處理器技術(shù)領(lǐng)域,特別是涉及一種動(dòng)態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運(yùn)轉(zhuǎn)的方法。
背景技術(shù)
動(dòng)態(tài)可重構(gòu)處理器是一種新生的處理器構(gòu)架,其較之以往的單核處理器、專用芯片、現(xiàn)場(chǎng)可編程邏輯陣列有著顯著的優(yōu)勢(shì),是未來(lái)電路結(jié)構(gòu)發(fā)展的一個(gè)方向。首先,動(dòng)態(tài)可重構(gòu)處理器內(nèi)往往含有多個(gè)算術(shù)邏輯單元,且數(shù)量巨大,稱之為眾核陣列。陣列內(nèi)部配以靈活度高的路由單元,實(shí)現(xiàn)算術(shù)邏輯單元之間多樣化的互聯(lián)。因此,經(jīng)路由單元連接后的眾核陣列可實(shí)現(xiàn)對(duì)數(shù)據(jù)流的高速處理,較傳統(tǒng)的單核以及少核處理器在性能上有著巨大的優(yōu)勢(shì)。同時(shí),較固化的專用電路在靈活性上也有著巨大的優(yōu)勢(shì)。其次,較傳統(tǒng)的靜態(tài)可重構(gòu)電路——現(xiàn)場(chǎng)可編程邏輯陣列而言,動(dòng)態(tài)可重構(gòu)處理器有動(dòng)態(tài)的特點(diǎn),即在電路運(yùn)行過(guò)程中可動(dòng)態(tài)的切換電路的功能,而非以往靜態(tài)可重構(gòu)電路一成不變的不改變電路功能,只是在電路運(yùn)行之前燒寫電路功能,對(duì)電路進(jìn)行初始化。這樣做的好處在于通過(guò)時(shí)分復(fù)用的方式減少了電路的規(guī)模,原因在于之前的電路結(jié)構(gòu)的全映射現(xiàn)在變?yōu)榉謮K映射,而塊與塊之間恰好采取了動(dòng)態(tài)切換的方式。動(dòng)態(tài)可重構(gòu)處理器在進(jìn)行計(jì)算時(shí)會(huì)產(chǎn)生大量的數(shù)據(jù)流動(dòng),因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問(wèn)題就是如何能夠創(chuàng)新地提出一種有效的措施,以解決現(xiàn)有技術(shù)中存在的問(wèn)題,有效避免數(shù)據(jù)沖突,保證各個(gè)模塊之間正確高效的協(xié)同工作。

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


圖1是本發(fā)明具體實(shí)施方式
中所述的一種典型的動(dòng)態(tài)可重構(gòu)處理器的數(shù)據(jù)流示意圖;圖2是本發(fā)明具體實(shí)施方式
中所述的一種動(dòng)態(tài)可重構(gòu)處理器間的數(shù)據(jù)交互示意圖;圖3是本發(fā)明實(shí)施例中所述的一種動(dòng)態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運(yùn)轉(zhuǎn)的方法流程圖;圖4是本發(fā)明實(shí)施例中所述的動(dòng)態(tài)可重構(gòu)處理器數(shù)據(jù)流運(yùn)轉(zhuǎn)示意圖;圖5是本發(fā)明實(shí)施例中所述的一個(gè)處理單元陣列的運(yùn)算流程圖。
具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明?!N典型的動(dòng)態(tài)可重構(gòu)處理器的數(shù)據(jù)流示意圖如圖1所示。結(jié)合圖1,動(dòng)態(tài)可重構(gòu)處理器的數(shù)據(jù)運(yùn)轉(zhuǎn)流程可概括如下處理器外部存儲(chǔ)器中的數(shù)據(jù)被分發(fā)至處理器內(nèi)部多個(gè)子單元內(nèi),多個(gè)子單元同時(shí)進(jìn)行數(shù)據(jù)處理,以達(dá)并行處理的效果。各子單元處理完后,處理結(jié)果被寫出到處理器外部存儲(chǔ)器;同一個(gè)可重構(gòu)處理器內(nèi)部的各個(gè)子單元之間存在數(shù)據(jù)交互,即子單元B可以使用子單元A的計(jì)算結(jié)果。對(duì)于子單元間的數(shù)據(jù)交互,是通過(guò)子單元間同步控制器來(lái)進(jìn)行控制的;可重構(gòu)處理器之間也存在數(shù)據(jù)交互,即處理器B的子單元可以使用處理器A的子單元的計(jì)算結(jié)果。處理器間的數(shù)據(jù)交互示意圖如圖2所示。動(dòng)態(tài)可重構(gòu)處理器在結(jié)構(gòu)上可分為以下四個(gè)部分1.數(shù)據(jù)存儲(chǔ)裝置a)存儲(chǔ)待處理數(shù)據(jù)。b)存儲(chǔ)運(yùn)算的中間結(jié)果。c)存儲(chǔ)運(yùn)算的最終結(jié)果。d)用于數(shù)據(jù)交互的緩存。2.數(shù)據(jù)轉(zhuǎn)移裝置用于數(shù)據(jù)存儲(chǔ)裝置之間的數(shù)據(jù)搬運(yùn)。3.運(yùn)算單元a)運(yùn)算單元即處理單元陣列,具體參見(jiàn)圖1。b)處理單元是一個(gè)算術(shù)邏輯運(yùn)算單元,可實(shí)現(xiàn)基本的算術(shù)運(yùn)算功能和邏輯運(yùn)算功能以及一些定制的算術(shù)邏輯運(yùn)算功能。c)處理單元之間通過(guò)路由單元連接,以實(shí)現(xiàn)處理單元之間的靈活且快速的數(shù)據(jù)傳遞。d)整個(gè)處理單元陣列通過(guò)時(shí)序控制單元控制,以協(xié)調(diào)處理單元陣列的輸入、運(yùn)算、 輸出之間的時(shí)序關(guān)系。e)處理單元陣列可實(shí)現(xiàn)對(duì)大批量數(shù)據(jù)進(jìn)行循環(huán)操作的快速處理。4.同步控制裝置a)同步控制裝置即子單元間同步控制器。b)在其控制下,多個(gè)子單元(1個(gè)至N個(gè),N為子單元個(gè)數(shù))均完成各自的指定子任務(wù)后多個(gè)子單元(此處的多個(gè)可與之前的多個(gè)不一致)才可執(zhí)行其各自子任務(wù)序列中的下一個(gè)子任務(wù)。c)子單元間同步控制器實(shí)現(xiàn)了某任務(wù)在被劃分為多個(gè)子任務(wù)后,分發(fā)至多個(gè)子單元并行執(zhí)行,多個(gè)子單元并行執(zhí)行完多個(gè)子任務(wù)后的同步,同步后才可開(kāi)始下一任務(wù)的并行化執(zhí)行。實(shí)施例參照?qǐng)D3,示出了本發(fā)明的一種動(dòng)態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運(yùn)轉(zhuǎn)的方法流程圖,所述方法具體包括步驟S301,動(dòng)態(tài)可重構(gòu)處理器到數(shù)據(jù)后,判定該數(shù)據(jù)是否僅被使用一次且將在下一次處理單元陣列運(yùn)算中被使用同時(shí)滿足作為處理單元陣列操作數(shù)的要求;所述動(dòng)態(tài)可重構(gòu)處理器中數(shù)據(jù)劃分為片外數(shù)據(jù),片內(nèi)交互數(shù)據(jù)和處理單元陣列內(nèi)部數(shù)據(jù);本實(shí)施例中,根據(jù)數(shù)據(jù)在動(dòng)態(tài)可重構(gòu)處理器內(nèi)部的作用范圍,將數(shù)據(jù)分為片外數(shù)據(jù),片內(nèi)交互數(shù)據(jù)以及處理單元陣列內(nèi)部數(shù)據(jù)。具體的,片外數(shù)據(jù)是指從處理器外部存儲(chǔ)器讀入的數(shù)據(jù)以及寫出到處理器外部存儲(chǔ)器的數(shù)據(jù),其數(shù)據(jù)通路會(huì)在后面的內(nèi)容中詳細(xì)介紹。片內(nèi)交互數(shù)據(jù)是指處理器內(nèi)部各子單元間共享的數(shù)據(jù)以及不同處理器之間共享的數(shù)據(jù),其數(shù)據(jù)通路會(huì)在后面的內(nèi)容中詳細(xì)介紹。處理單元陣列內(nèi)部數(shù)據(jù)是指處理單元陣列在進(jìn)行運(yùn)算的過(guò)程中涉及到的讀入數(shù)據(jù)和寫出數(shù)據(jù),其數(shù)據(jù)通路會(huì)在后面的內(nèi)容中詳細(xì)介紹。若是,則執(zhí)行步驟S302 ;若否,則執(zhí)行步驟S303 ;步驟S302,內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將該數(shù)據(jù)直接送到處理單元陣列進(jìn)行處理;步驟S303,內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將該數(shù)據(jù)寫出到內(nèi)部數(shù)據(jù)存儲(chǔ)器,由內(nèi)部數(shù)據(jù)讀入裝置將數(shù)據(jù)從內(nèi)部數(shù)據(jù)存儲(chǔ)器中讀入,送到處理單元陣列進(jìn)行處理;步驟S304,處理單元陣列完成數(shù)據(jù)處理完畢后,根據(jù)配置信息將處理單元陣列內(nèi)部數(shù)據(jù)的運(yùn)算結(jié)果發(fā)送到指定位置。按照所劃分的數(shù)據(jù)類別,處理單元陣列將處理完的運(yùn)算結(jié)果按照配置信息,選用相應(yīng)的通路發(fā)送到指定位置,各條通路擁有數(shù)據(jù)存儲(chǔ)裝置和數(shù)據(jù)轉(zhuǎn)移裝置,具體的,可參照?qǐng)D4示出的動(dòng)態(tài)可重構(gòu)處理器數(shù)據(jù)流運(yùn)轉(zhuǎn)示意圖,其中數(shù)據(jù)存儲(chǔ)裝置分為5個(gè),具體說(shuō)明如下外部數(shù)據(jù)緩存器,用于將讀入的外部數(shù)據(jù)緩存,待需要時(shí)被讀出。內(nèi)部數(shù)據(jù)存儲(chǔ)器,用于暫存處理單元陣列運(yùn)算所要使用的數(shù)據(jù),待需要時(shí)數(shù)據(jù)被讀出,輸出到處理單元陣列。內(nèi)部數(shù)據(jù)緩存器,用于對(duì)處理單元陣列的結(jié)果數(shù)據(jù)進(jìn)行緩存,待輸出至處理器外。子單元間數(shù)據(jù)交互暫存器,用于暫存子單元A的結(jié)果數(shù)據(jù),待子單元B讀出,以實(shí)現(xiàn)子單元間的數(shù)據(jù)交互。 處理器間數(shù)據(jù)交互暫存器,用于暫存處理器A子單元a的結(jié)果數(shù)據(jù),待處理器B子單元b讀出,以實(shí)現(xiàn)處理器間的數(shù)據(jù)交互。進(jìn)一步說(shuō)明的,所述子單元間數(shù)據(jù)交互暫存器由處理器的內(nèi)的全部子單元共享;處理器間數(shù)據(jù)交互暫存器由全部處理器包含的全部子單元共享。數(shù)據(jù)轉(zhuǎn)移裝置用于將數(shù)據(jù)從數(shù)據(jù)存儲(chǔ)裝置讀出,并寫入另一數(shù)據(jù)存儲(chǔ)裝置,使數(shù)據(jù)在數(shù)據(jù)存儲(chǔ)裝置之間轉(zhuǎn)移,最終實(shí)現(xiàn)將數(shù)據(jù)寫入處理單元陣列?;蛘邔?shù)據(jù)從數(shù)據(jù)存儲(chǔ)裝置讀出,直接寫入處理單元陣列。處理單元陣列運(yùn)行完后,將處理單元陣列的結(jié)果數(shù)據(jù)讀出。據(jù)轉(zhuǎn)移裝置分為6個(gè)外部數(shù)據(jù)讀入裝置,片內(nèi)數(shù)據(jù)交互裝置,內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置,內(nèi)部數(shù)據(jù)讀入裝置,內(nèi)部數(shù)據(jù)寫出裝置和外部數(shù)據(jù)寫出裝置。按數(shù)據(jù)流的流動(dòng)方向進(jìn)行具體的說(shuō)明,外部數(shù)據(jù)讀入裝置,用于將動(dòng)態(tài)可重構(gòu)處理器外待處理的數(shù)據(jù)讀入動(dòng)態(tài)可重構(gòu)處理器內(nèi),緩存于外部數(shù)據(jù)緩存器。片內(nèi)數(shù)據(jù)交互裝置,用于將子單元間數(shù)據(jù)交換暫存器或者處理器間數(shù)據(jù)交互暫存器內(nèi)存儲(chǔ)的其他子單元的結(jié)果數(shù)據(jù)讀出,分發(fā)至當(dāng)前子單元的內(nèi)部數(shù)據(jù)存儲(chǔ)器或直接分發(fā)至處理單元陣列,這取決于此子單元的結(jié)果數(shù)據(jù)是否可直接被處理單元陣列處理。內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置,用于將外部數(shù)據(jù)緩存器內(nèi)緩存的外部數(shù)據(jù)分發(fā)至內(nèi)部數(shù)據(jù)存儲(chǔ)器或直接分發(fā)至處理單元陣列,這取決于此外部數(shù)據(jù)是否可直接被處理單元陣列處理。內(nèi)部數(shù)據(jù)讀入裝置,用于將內(nèi)部數(shù)據(jù)存儲(chǔ)器里存儲(chǔ)的當(dāng)前子單元的內(nèi)部數(shù)據(jù)讀出,并且在需要時(shí)將多塊2D數(shù)據(jù)拼接成一塊2D數(shù)據(jù),最終將拼接后的數(shù)據(jù)(如果需要拼接的話)發(fā)送到處理單元陣列。內(nèi)部數(shù)據(jù)寫出裝置, 用于將處理單元陣列的結(jié)果數(shù)據(jù)讀出,再寫入至處理單元陣列供緊接著運(yùn)行處理單元陣列時(shí)使用,或?qū)懭胫羶?nèi)部數(shù)據(jù)存儲(chǔ)器將數(shù)據(jù)緩存起來(lái),或?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ù)輸出至處理器外。本實(shí)施例中以2D的方式描述數(shù)據(jù),一塊2D數(shù)據(jù)塊每行數(shù)據(jù)個(gè)數(shù)相同,并且以行對(duì)齊的方式存儲(chǔ)在存儲(chǔ)器中。具體到各類數(shù)據(jù),其數(shù)據(jù)流的運(yùn)轉(zhuǎn)情況如下片外數(shù)據(jù)的數(shù)據(jù)流運(yùn)轉(zhuǎn),以圖4為對(duì)象進(jìn)行說(shuō)明。外部數(shù)據(jù)讀入裝置將片外數(shù)據(jù)從處理器外部存儲(chǔ)器中讀入,然后根據(jù)配置信息把數(shù)據(jù)寫出到指定的處理單元陣列的外部數(shù)據(jù)緩存器。內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將數(shù)據(jù)從外部數(shù)據(jù)緩存器中讀入,分兩種情況對(duì)數(shù)據(jù)進(jìn)行處理當(dāng)從外部數(shù)據(jù)緩存器中讀入的數(shù)據(jù)同時(shí)滿足下面三個(gè)條件時(shí),內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置會(huì)把數(shù)據(jù)直接送到處理單元陣列進(jìn)行處理1該數(shù)據(jù)僅被使用一次;2該數(shù)據(jù)需要被處理單元陣列立即使用(即在下一處理單元陣列運(yùn)算中被使用);3該數(shù)據(jù)無(wú)需和內(nèi)部數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)進(jìn)行拼接操作(即滿足作為處理單元陣列操作數(shù)的要求)。如果從外部數(shù)據(jù)緩存器中讀入的數(shù)據(jù)不能同時(shí)滿上述的三個(gè)條件,內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置會(huì)把數(shù)據(jù)寫出到內(nèi)部數(shù)據(jù)存儲(chǔ)器,再由內(nèi)部數(shù)據(jù)讀入裝置將數(shù)據(jù)從內(nèi)部數(shù)據(jù)存儲(chǔ)器中讀入,送到處理單元陣列進(jìn)行處理。數(shù)據(jù)處理完畢后,內(nèi)部數(shù)據(jù)寫出裝置從處理單元陣列讀入數(shù)據(jù)處理結(jié)果,將需要送往片外的數(shù)據(jù)寫出到內(nèi)部數(shù)據(jù)緩存器,然后外部數(shù)據(jù)寫出裝置將數(shù)據(jù)從內(nèi)部數(shù)據(jù)緩存器中讀入,寫出到處理器外部存儲(chǔ)器。外部數(shù)據(jù)在被讀入和寫出處理單元陣列的過(guò)程中,分別要經(jīng)過(guò)外部數(shù)據(jù)緩存器和內(nèi)部數(shù)據(jù)緩存器,它們對(duì)數(shù)據(jù)流運(yùn)轉(zhuǎn)的作用為隔離了片外的數(shù)據(jù)讀寫和片內(nèi)的數(shù)據(jù)處理, 使控制變得簡(jiǎn)單。讀入片外數(shù)據(jù)時(shí),外部數(shù)據(jù)讀入裝置只需要關(guān)注外部數(shù)據(jù)緩存器是否處于可寫狀態(tài);寫出片外數(shù)據(jù)時(shí),外部數(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ù)流運(yùn)轉(zhuǎn)以圖4為對(duì)象進(jìn)行說(shuō)明。片內(nèi)數(shù)據(jù)交互裝置根據(jù)配置信息從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器讀入所需要的數(shù)據(jù),分兩種情況對(duì)數(shù)據(jù)進(jìn)行處理當(dāng)從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器讀入的數(shù)據(jù)同時(shí)滿足下面三個(gè)條件時(shí),片內(nèi)數(shù)據(jù)交互裝置會(huì)把數(shù)據(jù)直接送到處理單元陣列進(jìn)行處理1該數(shù)據(jù)僅被使用一次;2該數(shù)據(jù)需要被處理單元陣列立即使用;3該數(shù)據(jù)無(wú)需和內(nèi)部數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)進(jìn)行拼接操作。如果從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器讀入的數(shù)據(jù)不能同時(shí)滿足上述的三個(gè)條件,片內(nèi)數(shù)據(jù)交互裝置會(huì)把數(shù)據(jù)寫出到內(nèi)部數(shù)據(jù)存儲(chǔ)器,再由內(nèi)部數(shù)據(jù)讀入裝置將數(shù)據(jù)從內(nèi)部數(shù)據(jù)存儲(chǔ)器中讀入,送到處理單元陣列進(jìn)行處理。數(shù)據(jù)處理完畢后,內(nèi)部數(shù)據(jù)寫出裝置從處理單元陣列讀入數(shù)據(jù)處理結(jié)果,分兩種情況對(duì)數(shù)據(jù)進(jìn)行處理如果數(shù)據(jù)需要被同一個(gè)可重構(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ù)流運(yùn)轉(zhuǎn)以圖4為對(duì)象進(jìn)行說(shuō)明。處理單元陣列輸入端的數(shù)據(jù)來(lái)源按照?qǐng)D示從上到下的順序有四種情況當(dāng)前運(yùn)算需要立即使用自身處理單元陣列的上一次運(yùn)算結(jié)果,并且該運(yùn)算結(jié)果僅被使用一次,同時(shí)該運(yùn)算結(jié)果無(wú)需和內(nèi)部數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)進(jìn)行拼接操作,則處理單元陣列的輸出端直接將運(yùn)算結(jié)果傳遞到自身的輸入端;當(dāng)前運(yùn)算需要立即使用片內(nèi)數(shù)據(jù)交互裝置從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器中讀入的片內(nèi)交互數(shù)據(jù),并且該數(shù)據(jù)僅被使用一次,同時(shí)該數(shù)據(jù)無(wú)需和內(nèi)部數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)進(jìn)行拼接操作,則片內(nèi)數(shù)據(jù)交互裝置直接將數(shù)據(jù)傳遞給處理單元陣列的輸入端;當(dāng)前運(yùn)算需要立即使用內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置從外部數(shù)據(jù)緩存器讀入的外部數(shù)據(jù),并且該數(shù)據(jù)僅被使用一次,同時(shí)該數(shù)據(jù)無(wú)需和內(nèi)部數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)進(jìn)行拼接操作,則內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置直接將數(shù)據(jù)傳遞給處理單元陣列的輸入端;當(dāng)前運(yùn)算需要使用內(nèi)部數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)(該數(shù)據(jù)可能是之前存儲(chǔ)的外部數(shù)據(jù), 之前存儲(chǔ)的片內(nèi)交互數(shù)據(jù),或者自身處理單元陣列之前的運(yùn)算結(jié)果),內(nèi)部數(shù)據(jù)讀入裝置將所需數(shù)據(jù)從內(nèi)部數(shù)據(jù)存儲(chǔ)器中讀入,傳遞到處理單元陣列的輸入端。處理單元陣列的輸入可以是以上四種情況的任意組合。內(nèi)部數(shù)據(jù)寫出裝置將處理單元陣列的運(yùn)算結(jié)果讀入,然后根據(jù)配置信息將運(yùn)算結(jié)果發(fā)送到指定位置,數(shù)據(jù)的流向按照?qǐng)D示從上到下的順序有五種情況當(dāng)前運(yùn)算的結(jié)果同時(shí)滿足下面三個(gè)條件時(shí),內(nèi)部數(shù)據(jù)寫出裝置直接將運(yùn)算結(jié)果傳遞到自身處理單元陣列的輸入端1該運(yùn)算結(jié)果僅被使用一次;2該運(yùn)算結(jié)果需要被處理單元陣列在下一次運(yùn)算中立即使用;3該運(yùn)算結(jié)果無(wú)需和內(nèi)部數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)進(jìn)行拼接操作;當(dāng)前運(yùn)算的結(jié)果需要輸出到處理器外部存儲(chǔ)器,內(nèi)部數(shù)據(jù)寫出裝置首先將運(yùn)算結(jié)果寫出到內(nèi)部數(shù)據(jù)緩存器,然后外部數(shù)據(jù)寫出裝置從內(nèi)部數(shù)據(jù)緩存器中讀入運(yùn)算結(jié)果,再寫出到處理器外部存儲(chǔ)器;當(dāng)前運(yùn)算的結(jié)果需要被同一個(gè)可重構(gòu)處理器內(nèi)的其他子單元使用,則內(nèi)部數(shù)據(jù)寫出裝置將運(yùn)算結(jié)果寫出到子單元間數(shù)據(jù)交互暫存器;當(dāng)前運(yùn)算的結(jié)果需要被其他可重構(gòu)處理器使用, 則內(nèi)部數(shù)據(jù)寫出裝置將運(yùn)算結(jié)果寫出到處理器間數(shù)據(jù)交互暫存器;如果當(dāng)前運(yùn)算的結(jié)果需要被自身處理單元陣列使用,但是不能同時(shí)滿足上述的三個(gè)條件,內(nèi)部數(shù)據(jù)寫出裝置將運(yùn)算結(jié)果寫出到內(nèi)部數(shù)據(jù)存儲(chǔ)器。處理單元陣列的輸出可以是以上五種情況中某幾種的組合。如上所述,處理單元陣列的輸入端共有四種數(shù)據(jù)來(lái)源,輸出端共有五種數(shù)據(jù)流向,可組合成二十種數(shù)據(jù)通路。下面以一個(gè)簡(jiǎn)單的流程圖為例來(lái)說(shuō)明與此流程圖對(duì)應(yīng)的動(dòng)態(tài)可重構(gòu)處理器內(nèi)部的數(shù)據(jù)流運(yùn)轉(zhuǎn)。一個(gè)處理單元陣列的運(yùn)算流程圖如圖5所示,每個(gè)方框代表處理單元陣列的一次運(yùn)算。第N次運(yùn)算的結(jié)果需要和第N+2次運(yùn)算的結(jié)果進(jìn)行拼接操作,所以內(nèi)部數(shù)據(jù)寫出裝置將其存儲(chǔ)到內(nèi)部數(shù)據(jù)存儲(chǔ)器。第N+1次運(yùn)算的輸入包括片外數(shù)據(jù)和片內(nèi)交互數(shù)據(jù)。片外數(shù)據(jù)需要立即參與第N次運(yùn)算,且不再反復(fù)使用,同時(shí)不需要進(jìn)行拼接操作, 所以內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將其直接送到處理單元陣列輸入端。
片內(nèi)交互數(shù)據(jù)由片內(nèi)數(shù)據(jù)交互裝置從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器中讀入,但是該數(shù)據(jù)不能立即參與運(yùn)算,所以片內(nèi)數(shù)據(jù)交互裝置將其存儲(chǔ)到內(nèi)部數(shù)據(jù)存儲(chǔ)器。當(dāng)進(jìn)行到第N+1次運(yùn)算時(shí),內(nèi)部數(shù)據(jù)讀入裝置再將其傳送到處理單元陣列輸入端。第N+1次運(yùn)算的結(jié)果不參與第N+2次運(yùn)算,但是需要參與第N+3次運(yùn)算,所以內(nèi)部數(shù)據(jù)寫出裝置將其存儲(chǔ)到內(nèi)部數(shù)據(jù)存儲(chǔ)器。第N+2次運(yùn)算的輸入包括片外數(shù)據(jù)和片內(nèi)交互數(shù)據(jù)。片外數(shù)據(jù)被讀入后不能立即參與運(yùn)算,所以內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將其存儲(chǔ)到內(nèi)部數(shù)據(jù)存儲(chǔ)器。當(dāng)進(jìn)行到第N+2次運(yùn)算時(shí),內(nèi)部數(shù)據(jù)讀入裝置再將其傳送到處理單元陣列輸入端。片內(nèi)交互數(shù)據(jù)由片內(nèi)數(shù)據(jù)交互裝置從子單元間數(shù)據(jù)交互暫存器或者處理器間數(shù)據(jù)交互暫存器中讀入,該數(shù)據(jù)需要立即參與第N+2次運(yùn)算,且不再反復(fù)使用,同時(shí)不需要進(jìn)行拼接操作,所以被直接送到處理單元陣列輸入端。第N+2次運(yùn)算的結(jié)果需要與第N次運(yùn)算的結(jié)果進(jìn)行拼接操作,所以內(nèi)部數(shù)據(jù)寫出裝置將其存儲(chǔ)到內(nèi)部數(shù)據(jù)存儲(chǔ)器。第N+3次運(yùn)算的輸入包括第N+1次運(yùn)算的結(jié)果以及第N次和第N+2次運(yùn)算結(jié)果的拼接。第N+1次運(yùn)算的結(jié)果存儲(chǔ)在內(nèi)部數(shù)據(jù)存儲(chǔ)器中,內(nèi)部數(shù)據(jù)讀入裝置將其讀入并送到處理單元陣列的輸入端。第N次和第N+2次運(yùn)算的結(jié)果也存儲(chǔ)在內(nèi)部數(shù)據(jù)存儲(chǔ)器中,經(jīng)過(guò)拼接操作后,由內(nèi)部數(shù)據(jù)讀入裝置將拼接結(jié)果讀入并送到處理單元陣列的輸入端。整個(gè)流程圖的最終運(yùn)算結(jié)果需要輸出到處理單元陣列外部,分為以下三種情況 輸出到處理器外部存儲(chǔ)器,內(nèi)部數(shù)據(jù)寫出裝置將運(yùn)算結(jié)果寫出到內(nèi)部數(shù)據(jù)緩存器,外部數(shù)據(jù)寫出裝置再?gòu)膬?nèi)部數(shù)據(jù)緩存器中讀入運(yùn)算結(jié)果,將其寫出到處理器外部存儲(chǔ)器;輸出供同一個(gè)可重構(gòu)處理器內(nèi)的其他子單元使用,內(nèi)部數(shù)據(jù)寫出裝置將運(yùn)算結(jié)果寫出到子單元間數(shù)據(jù)交互暫存器;輸出供其他可重構(gòu)處理器使用,內(nèi)部數(shù)據(jù)寫出裝置將運(yùn)算結(jié)果寫出到處理器間數(shù)據(jù)交互暫存器。以上對(duì)本發(fā)明所提供的一種動(dòng)態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運(yùn)轉(zhuǎn)的方法進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種動(dòng)態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運(yùn)轉(zhuǎn)的方法,其特征在于,所述方法包括動(dòng)態(tài)可重構(gòu)處理器到數(shù)據(jù)后,判定該數(shù)據(jù)是否僅被使用一次且將在下一次處理單元陣列運(yùn)算中被使用同時(shí)滿足作為處理單元陣列操作數(shù)的要求;所述動(dòng)態(tài)可重構(gòu)處理器中數(shù)據(jù)劃分為片外數(shù)據(jù),片內(nèi)交互數(shù)據(jù)和處理單元陣列內(nèi)部數(shù)據(jù);若是,則內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將該數(shù)據(jù)直接送到處理單元陣列進(jìn)行處理;若否,則內(nèi)外部數(shù)據(jù)轉(zhuǎn)換裝置將該數(shù)據(jù)寫出到內(nèi)部數(shù)據(jù)存儲(chǔ)器,由內(nèi)部數(shù)據(jù)讀入裝置將數(shù)據(jù)從內(nèi)部數(shù)據(jù)存儲(chǔ)器中讀入,送到處理單元陣列進(jìn)行處理;處理單元陣列完成數(shù)據(jù)處理完畢后,根據(jù)配置信息將處理單元陣列內(nèi)部數(shù)據(jù)的運(yùn)算結(jié)果發(fā)送到指定位置。
2.如權(quán)利要求1所述的方法,其特征在于所述處理單元陣列內(nèi)部數(shù)據(jù)的來(lái)源包括處理單元陣列的上一次運(yùn)算結(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ù)存儲(chǔ)器中的數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于所述配置信息所指定的位置包括傳遞到自身處理單元陣列的輸入端、處理器外部存儲(chǔ)器、子單元間數(shù)據(jù)交互暫存器、處理器間數(shù)據(jù)交互暫存器、以及內(nèi)部數(shù)據(jù)存儲(chǔ)器。
4.如權(quán)利要求1所述的方法,其特征在于所述處理單元陣列內(nèi)部數(shù)據(jù)為處理單元陣列的上一次運(yùn)算結(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ù)存儲(chǔ)器中的數(shù)據(jù)中的一種或多種。
5.如權(quán)利要求1所述的方法,其特征在于對(duì)于片外數(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ù)緩存器中讀入,寫出到處理器外部存儲(chǔ)器。
6.如權(quán)利要求5所述的方法,其特征在于所述外部數(shù)據(jù)在被讀入和寫出處理單元陣列的過(guò)程中,分別要經(jīng)過(guò)外部數(shù)據(jù)緩存器和內(nèi)部數(shù)據(jù)緩存器。
7.如權(quán)利要求6所述的方法,其特征在于讀入片外數(shù)據(jù)時(shí),外部數(shù)據(jù)讀入裝置只需關(guān)注外部數(shù)據(jù)緩存器是否處于可寫狀態(tài)。
8.如權(quán)利要求6所述的方法,其特征在于寫出片外數(shù)據(jù)時(shí),外部數(shù)據(jù)寫出裝置只需關(guān)注內(nèi)部數(shù)據(jù)緩存器是否處于可讀狀態(tài)。
全文摘要
本發(fā)明提供了一種動(dòng)態(tài)可重構(gòu)處理器內(nèi)數(shù)據(jù)流運(yùn)轉(zhuǎn)的方法,根據(jù)數(shù)據(jù)的不同作用范圍對(duì)數(shù)據(jù)進(jìn)行分類且對(duì)數(shù)據(jù)進(jìn)行判定操作,按照判定結(jié)果采用不同的方式將其送至處理單元陣列進(jìn)行處理,待處理完成后按照配置信息,選用相應(yīng)的通路將處理單元陣列將處理完的運(yùn)算結(jié)果發(fā)送到指定位置,有效避免了數(shù)據(jù)沖突,保證數(shù)據(jù)流結(jié)構(gòu)的清晰,各模塊之間可以高效的協(xié)同,便于控制。
文檔編號(hào)G06F9/312GK102184089SQ20111014035
公開(kāi)日2011年9月14日 申請(qǐng)日期2011年5月27日 優(yōu)先權(quán)日2011年5月27日
發(fā)明者劉雷波, 尹首一, 戚斌, 時(shí)龍興, 曹鵬, 朱敏, 楊軍, 王延升, 魏少軍 申請(qǐng)人:清華大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
太谷县| 尤溪县| 许昌县| 弋阳县| 平凉市| 石河子市| 揭东县| 塔河县| 九龙坡区| 原平市| 西乌珠穆沁旗| 惠来县| 黎川县| 芜湖市| 巴彦淖尔市| 锡林郭勒盟| 汉寿县| 贵溪市| 睢宁县| 多伦县| 博爱县| 延寿县| 富蕴县| 东乡县| 乾安县| 德格县| 舟山市| 美姑县| 丰都县| 岳普湖县| 永定县| 昌宁县| 凉山| 衡水市| 交口县| 咸阳市| 嘉兴市| 雅江县| 元氏县| 古交市| 龙江县|