亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種動態(tài)可重構(gòu)處理器的任務(wù)級并行調(diào)度方法與系統(tǒng)的制作方法

文檔序號:9727118閱讀:999來源:國知局
一種動態(tài)可重構(gòu)處理器的任務(wù)級并行調(diào)度方法與系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)領(lǐng)域,且特別涉及一種動態(tài)可重構(gòu)處理器的任務(wù)級并行調(diào)度方法與系統(tǒng)。
【背景技術(shù)】
[0002]在以往的處理器計算模式中,通常分為以下兩類。傳統(tǒng)的以馮.諾依曼處理器為基礎(chǔ)的通用計算具有極強(qiáng)的靈活性,但是其指令流驅(qū)動的執(zhí)行方式、有限的運(yùn)算單元和存儲帶寬使其整體性能和功耗并不理想。專用計算可以針對特定的應(yīng)用優(yōu)化結(jié)構(gòu)和電路,無需指令集,其執(zhí)行速度快,功耗低。但專用計算系統(tǒng)存在著致命的缺陷,靈活性和擴(kuò)展性很差,對不斷演化的更加復(fù)雜的應(yīng)用往往不能通過簡單的擴(kuò)展來完成。針對不同的應(yīng)用,必須設(shè)計不同的專用計算系統(tǒng),因此硬件的設(shè)計往往無法跟上應(yīng)用的更新速度。同時,專用計算系統(tǒng)的設(shè)計周期長,一次性工程投入成本過高。可重構(gòu)計算正是在這種背景下出現(xiàn)的一種將軟件的靈活性和硬件的高效性結(jié)合在一起的計算方式,可重構(gòu)計算技術(shù)結(jié)合了通用處理器和ASIC兩者的優(yōu)點(diǎn),既能夠提供硬件的高效率又具有軟件的可編程性。其在性能、功耗和靈活性等關(guān)鍵指標(biāo)之間取得更好的平衡,填補(bǔ)了通用計算和專用計算之間的空白。
[0003]現(xiàn)階段計算機(jī)中的處理器主流是擁有2?8個核心的多核CPU以及眾核GPU,而這種設(shè)計也使得并行處理成為了熱門課題,并行算法和并行編程也成為了程序員必須了解和掌握的內(nèi)容。2007年6月,NVIDIA推出了CUDA,這是一種將GPU作為數(shù)據(jù)并行計算設(shè)備的軟硬件體系。CUDA變成模型將CPU作為主機(jī),GPU作為協(xié)處理器其中運(yùn)行在GPU上的CUDA并行計算函數(shù)被稱為kernal (內(nèi)核)。一個kenerl函數(shù)并不是一個完整的程序,而是整個⑶DA程序中可以被并行執(zhí)行的步驟。這樣很好的對CHJ和GPU進(jìn)行分工從而實現(xiàn)各種層次的并行。
[0004]但是,對于本發(fā)明所針對的通用可重構(gòu)處理器卻沒有一個統(tǒng)一的并行處理規(guī)范。典型的可重構(gòu)處理器架構(gòu)中包含了一個通用處理器和一個或多個可重構(gòu)處理單元(Reconf igurable Processing Unit ,RPU),對于多任務(wù)應(yīng)用如何在這種粗粒度可重構(gòu)處理器上進(jìn)行任務(wù)分配,本發(fā)明提出了一套RPU分配和任務(wù)調(diào)度方法和系統(tǒng)。

【發(fā)明內(nèi)容】

[0005]本發(fā)明提出一種動態(tài)可重構(gòu)處理器的任務(wù)級并行調(diào)度方法與系統(tǒng),通過調(diào)節(jié)調(diào)度方法能夠針對不同的任務(wù)進(jìn)行不同的調(diào)度方式,基本所有并行任務(wù)均能在這種可重構(gòu)處理器上得到好的并行加速。
[0006]為了達(dá)到上述目的,本發(fā)明提出一種動態(tài)可重構(gòu)處理器的任務(wù)級并行調(diào)度系統(tǒng),包括主控制器、多個可重構(gòu)處理單元、主存儲器、直接存儲訪問和系統(tǒng)總線,
[0007]其中,所述每個可重構(gòu)處理單元由協(xié)控制器、多個負(fù)責(zé)可重構(gòu)計算的可重構(gòu)處理單元陣列和多個用于數(shù)據(jù)存儲的共享存儲器組成,其中所述可重構(gòu)處理單元陣列和共享存儲器相鄰排列,所述共享存儲器可被周圍相連的兩個可重構(gòu)處理單元陣列所讀寫。
[0008]進(jìn)一步的,所述主控制器用于執(zhí)行程序中不適合可重構(gòu)處理單元處理的串行代碼,并負(fù)責(zé)多個可重構(gòu)處理單元的調(diào)度、啟動與運(yùn)行。
[0009]進(jìn)一步的,所述可重構(gòu)處理單元負(fù)責(zé)計算程序中計算密集的可并行代碼。
[0010]進(jìn)一步的,所述協(xié)控制器用于搬運(yùn)多個可重構(gòu)處理單元陣列計算所需的數(shù)據(jù)與配置信息,控制多個可重構(gòu)處理單元陣列的啟動、運(yùn)行與終止。
[0011]為了達(dá)到上述目的,本發(fā)明還提出一種動態(tài)可重構(gòu)處理器的任務(wù)級并行調(diào)度方法,包括下列步驟:
[0012]將應(yīng)用程序中的計算密集的可并行代碼封裝為內(nèi)核函數(shù);
[0013]將串行部分代碼和并行部分代碼分別編譯生成適合主控制器和可重構(gòu)處理單元的可執(zhí)行代碼;
[0014]所述主控制器執(zhí)行串行部分代碼;
[0015]當(dāng)執(zhí)行到內(nèi)核函數(shù)部分代碼時,所述主控制器對可重構(gòu)處理單元進(jìn)行調(diào)度分配處理所述內(nèi)核函數(shù)部分代碼。
[0016]進(jìn)一步的,所述主控制器對可重構(gòu)處理單元進(jìn)行調(diào)度分為同步調(diào)用和異步調(diào)用兩種并行方式:
[0017]若為同步調(diào)用,則由主控制器尋找未在運(yùn)行中的可重構(gòu)處理單元,并且載入可執(zhí)行代碼和配置信息,與此同時,主控制器掛起,同步調(diào)用中,將多個可重構(gòu)處理單元同時調(diào)用,處理不同數(shù)據(jù)塊的內(nèi)容,在所有的可重構(gòu)處理單元處理結(jié)束之后,通過同步函數(shù)返回值來更新處理結(jié)果,并且繼續(xù)主控制器的串行代碼執(zhí)行;
[0018]若為異步調(diào)用,則由主控制器尋找未在運(yùn)行中的可重構(gòu)處理單元,與此同時在不中斷主控制器的前提下將可執(zhí)行代碼和配置信息載入,啟動可重構(gòu)處理單元,主控制器繼續(xù)運(yùn)行至需要可重構(gòu)處理單元返回數(shù)據(jù)時,再中止等待可重構(gòu)處理單元計算完成并返回數(shù)據(jù)。
[0019]進(jìn)一步的,當(dāng)所述內(nèi)核函數(shù)指令較少,一個可重構(gòu)處理單元可以單獨(dú)完成整個內(nèi)核函數(shù)的計算任務(wù)時,其內(nèi)部的多個可重構(gòu)處理單元陣列并行執(zhí)行相同的配置信息,每個可重構(gòu)處理單元陣列負(fù)責(zé)自己的共享存儲器的數(shù)據(jù)計算。
[0020]進(jìn)一步的,當(dāng)所述內(nèi)核函數(shù)指令較多,不能一次性的執(zhí)行完內(nèi)核函數(shù)的所有語句時,將內(nèi)核函數(shù)分為多個長度相同的子任務(wù),分別將子任務(wù)的配置信息按順序分配給多個可重構(gòu)處理單元陣列,由于每個可重構(gòu)處理單元陣列可以讀寫相鄰的上層共享存儲器和下層共享存儲器,將每個共享存儲器分為等大小的A塊和B塊,在任務(wù)流水過程中,每個可重構(gòu)處理單元陣列先從上層共享存儲器的A塊讀取數(shù)據(jù),并將結(jié)果寫入下層共享存儲器的B塊,處理結(jié)束之后,每個可重構(gòu)處理單元陣列再從上層共享存儲器的B塊讀取數(shù)據(jù),并將結(jié)果寫入下層共享存儲器的A塊,在這兩個過程的同時,對首末共享存儲器沒有參與計算的部分進(jìn)行數(shù)據(jù)到主內(nèi)存的搬運(yùn)。
[0021]與現(xiàn)有技術(shù)相比,上述技術(shù)方案包括以下創(chuàng)新點(diǎn)及有益效果(優(yōu)點(diǎn)):
[0022]1、本發(fā)明的任務(wù)級并行調(diào)度方法是面向特定的三層次的異構(gòu)粗粒度可重構(gòu)處理器來進(jìn)行設(shè)計實現(xiàn)的,將應(yīng)用程序的數(shù)據(jù)密集和計算密集的部分用內(nèi)核函數(shù)的方法打包出來,主控制器負(fù)責(zé)串行代碼的處理和可重構(gòu)處理單元的分配,內(nèi)核函數(shù)交由并行計算能力較強(qiáng)的可重構(gòu)處理單元進(jìn)行處理,可重構(gòu)處理單元中在靈活分配其中的可重構(gòu)陣列來進(jìn)行計算處理。用這種方式能夠充分的發(fā)揮多層次異構(gòu)粗粒度可重構(gòu)處理器的并行計算能力,再配合特定的編譯器能夠充分并行加速計算密集型的應(yīng)用程序。
[0023]2、本發(fā)明在GPU并行運(yùn)算工具⑶DA的基礎(chǔ)上,將其并行調(diào)度方法移植到了多層次異構(gòu)粗粒度可重構(gòu)處理器上,并且提出了新的流水化的調(diào)度方式,擴(kuò)展了對不同種類任務(wù)的調(diào)度方法。
[0024]3、本發(fā)明實現(xiàn)了多任務(wù)多可重構(gòu)處理單元調(diào)度的過程,通過調(diào)節(jié)調(diào)度方法能夠針對不同的任務(wù)進(jìn)行不同的調(diào)度方式,避免了單一的調(diào)度方式對任務(wù)的要求,基本所有并行任務(wù)均能在這種可重構(gòu)處理器上得到好的并行加速。
【附圖說明】
[0025]圖1所示為本發(fā)明較佳實施例的動態(tài)可重構(gòu)處理器的任務(wù)級并行調(diào)度系統(tǒng)結(jié)構(gòu)示意圖。
[0026]圖2所示為本發(fā)明較佳實施例的動態(tài)可重構(gòu)處理器的任務(wù)級并行調(diào)度方法流程圖。
[0027]圖3和圖4所示為當(dāng)所述內(nèi)核函數(shù)指令較少時的同步調(diào)度方法示意圖。
[0028]圖5所示為當(dāng)所述內(nèi)核函數(shù)指令較多時的異步調(diào)度方法示意圖。
【具體實施方式】
[0029]以下結(jié)合附圖給出本發(fā)明的【具體實施方式】,但本發(fā)明不限于以下的實施方式。根據(jù)下面說明和權(quán)利要求書,本發(fā)明的優(yōu)點(diǎn)和特征將更清楚。需說明的是,附圖均采用非常簡化的形式且均使用非精準(zhǔn)的比率,僅用于方便、明晰地輔助說明本發(fā)明實施例的目的。
[0030]請參考圖1,圖1所示為本發(fā)明較佳實施例的動態(tài)可重構(gòu)處理器的任務(wù)級并行調(diào)度系統(tǒng)結(jié)構(gòu)示意圖,其中右側(cè)方框邊上RPU1的放大圖,以便顯示其內(nèi)部功能結(jié)構(gòu)。本發(fā)明提出一種動態(tài)可重構(gòu)處理器的任務(wù)級并行調(diào)度系統(tǒng),包括主控制器ARM11、多個可重構(gòu)處理單元(Reconf igurable Process Unit,RPU)、主存儲器DDR、直接存儲訪問(Direct MemoryAccess,DMA)和系統(tǒng)總線AHB,其中,所述每個可重構(gòu)處理單元RPU由協(xié)控制器ARM7、多個負(fù)責(zé)可重構(gòu)計算的可重構(gòu)處理單元陣列(Processing Element Array,ΡΕΑ)和多個用于數(shù)據(jù)存儲的共享存儲器(Shared Memory,SM)組成,其中所述可重構(gòu)處理單元陣列PEA和共享存儲器SM相鄰排列,所述共享存儲器SM可被周圍相連的兩個可重構(gòu)處理單元陣列PEA所讀寫。
[0031]根據(jù)本發(fā)明較佳實施例,所述主控制器ARM11用于執(zhí)行程序中不適合可重構(gòu)處理單元RHJ處理的串行代碼,并負(fù)責(zé)多個可重構(gòu)處理單元RPU的調(diào)度、啟動與運(yùn)行。所述可重構(gòu)處理單元RPU負(fù)責(zé)計算程序中計算密集的可并行代碼。進(jìn)一步的,所述協(xié)控制器ARM7用于搬運(yùn)多個可重構(gòu)處理單元陣列PEA計算所需的數(shù)據(jù)與配置信息,控制多個可重構(gòu)處理單元陣列PEA的啟動、運(yùn)行與終止。
[0032]根據(jù)本發(fā)明較佳實施例,每個可重構(gòu)處理單元RHJ包括4個可重構(gòu)處理單元陣列PEA和4個共享存儲器SM。
[0033]在請參考圖2,圖2所示為本發(fā)明較佳實施例的動態(tài)可重構(gòu)處理器的任務(wù)級并行調(diào)度方法流程圖。本發(fā)明還提出一種動態(tài)可重構(gòu)處理器的任務(wù)級并行調(diào)度方法,包括下列步驟:
[0034]步驟S100:將應(yīng)用程序中的計算密集的可并行代碼封裝為內(nèi)核函數(shù);
[0035]步驟S200:將串行部分代碼和并行部分代碼分別編譯生成適合主控制器和可重構(gòu)處理單元的可執(zhí)行代碼;
[0
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1