專利名稱:一種具有存儲感知的多層分塊調度方法
技術領域:
本發明涉及一種具有存儲感知的多層分塊調度方法。
背景技術:
大多數科學與數據信號的處理應用都是迭代遞歸循環的。這類任務在嵌入式多處理器上執行時遇到了兩個挑戰:第一,大多數數據信號處理任務是計算敏感型和數據敏感型應用,對于這類應用,效率不好的調度策略將會產生大量的寫操作,因此會消耗大量的時間和能耗;第二,相 對于存儲器接收速度來說CPU速度發展的過于快速,存儲器的存儲速度緩慢嚴重阻礙了系統性能的提高。雖然嵌入式多處理器擁有一套屬于自己的指令集,可通過軟件編程靈活實現不同的計算任務,但是受到指令的編碼和執行順序制約,存儲器訪問瓶頸及固定的控制體系結構的限制,往往不能到達最高速度和最佳效率。預取(prefetching)策略是針對存儲延遲提出的一種能有效提高系統的性能的技術,即在一個數據有需求之前就把這個數據存入高速緩沖存儲器(cache),這樣能夠容忍長時間的存儲延時。現有技術中的預取策略可以分為三類:基于硬件的預取策略,基于軟件的預取策略以及基于硬件和軟件的預取策略。但是基于硬件的預取策略要求一些支持單元鏈接到高速緩沖存儲器cache,并且在執行的過程中依賴于動態可用的信息。而基于軟件的預取策略依賴于編譯器技術去分析一段靜態程序,并在程序代碼中加入預取指令。但是,太多的預取操作將會導致一個不平衡的調度且存儲延時會很長。為此,很多嵌入式多處理器已使用SPM來代替Cache,SPM是一種鑲嵌在芯片上的小型存儲器,是一種編譯器支持且可通過軟件進行管理的存儲器。SPM存儲器實際上可以看成每一個核core的本地存儲器,能進一步優化系統的性能,并且能有效的減少能量的消耗。但是對于大規模數據信號處理任務,不當的資源管理調度策略執行過程將會產生大量的寫操作。為了增加數據的本地存儲,很多研究都致力于根據任務的情況進行資源整合管理。傳統的多維任務資源管理方法,執行任務是按照任務的依賴關系以行-列(row-column)或者column-row順序執行。由于本地存儲器的限制,這種執行方法會產生大量的數據需要寫入主存中,甚至會造成很多數據的丟失。
發明內容
本發明提供了一種具有存儲感知的多層分塊調度方法,其目的在于,通過對迭代空間進行合理的多次分塊來對資源進行管理分配與調度,克服現有技術中存在的資源分配不合理導致調度策略執行時,完成時間長且能量消耗多的問題,同時克服由于本地存儲器的限制,容易造成數據丟失的問題。—種具有存儲感知的多層分塊調度方法,包括以下步驟:步驟1:所有的任務被執行一次作為一個迭代,以需要執行多次的具有執行順序的一組任務構建的迭代空間作為分塊對象,確定迭代空間的分塊向量(Pi, Pj)方向,分塊在Pj方向上的大小為f,分塊在Pi方向上的大小為h,從任務間的依賴關系集合D中找出最外邊的兩個依賴CW和CCW,Pi=CCff和Pj=CW ;步驟2:確定當前迭代所需要裝載和保存的數據大小與分塊向量大小f和h的關系式,以及當前迭代的調度長度Ls ;步驟3:按照策略一和策略二確定分塊向量的大小f和h ;I)設定f為I,根據策略一和策略二計算h,分別得到hi和h2 ;策略一:2NUMother+NUMtop+NUMnext ( Ms ;策略二: (NUMtop+NUMother)Tw+NUMotherXTr ^ LsXfXh ;2)若hl>h2,則h的取值為h2,采用 策略一和策略二計算f,分別得到fl和f2,進入3);否則,分塊大小h的取值為hl,f的取值為I ;3)若fl>l,分塊大小確定為fl*h2 ;否則分塊大小為f*hl,且f=l ;步驟4:采用迭代重計時技術,分散任務之間的延時改變任務之間里層循環的依賴關系,重構分塊空間;步驟5:按照分塊大小f*h劃分第一次分塊空間,把第一次分塊所產生的每一個子分塊當作一個節點即作為一個簇任務,構成新的迭代空間,按照步驟I依次對每個子分塊進行分塊,獲得第二次分塊的方向向量(PZyPZj);步驟6:確定第二次分塊向量的大小;第二次分塊向量在P2i*向上的大小為N。.,在Ρ2」方向上的大小為1,N。.為處理器內核的數量;步驟7:依據得到的兩個分塊向量對迭代空間進行分塊后得到執行順序圖,按照執行順序圖對任務進行調度。所述步驟I中分塊向量的方向的具體確定過程如下:任務間的依賴關系是指任務之間的執行順序,用dk= (dki,dkJ)表示,其中dki表示兩任務在里層循環的執行依賴關系,dkJ表示兩任務在外層循環的執行依賴關系,從任務間的依賴關系集合D中找出最外邊的兩個依賴CW和CCW,Pi=CCff和Pj=CW ;CCW逆時針區間向量是指與j向量夾角最大的向量,CW順時針區間向量是指與j向量夾角最小的向量。其中,任務間的依賴關系是指任務之間的執行順序,即一個任務必須等待另一個任務完成后才可被執行的關系,在計算機中通常用圖來表示任務的執行順序,圖中的每個節點代表一個任務,節點與節點之間的邊代表任務之間的依賴關系也就是任務執行順序所受到的特定限制;一個迭代代表所有的任務都被執行一次,所有的迭代構成迭代空間;一個迭代即一個循環,i表示某個任務在一個循環(里層循環)中第i個被執行,j表示第j個循環(外層循環)即所有任務第j次被執行。所述步驟2中當前迭代所需要裝載和保存的數據大小與分塊向量大小f和h的關系式如下:(I)當前迭代所需要裝載和保存的數據大小包括兩部分:第一部分,當前迭代所產生的數據大小為ΝυΜη α+ΝυΜ_+ΝυΜ。—;第二部分,提前裝載當前迭代和下一迭代需要使用的數據大小為NUMrtto ;
權利要求
1.一種具有存儲感知的多層分塊調度方法,其特征在于,包括以下步驟: 步驟1:所有的任務被執行一次稱作一個迭代,以需要執行多次的具有執行順序的一組任務構建的迭代空間作為分塊對象,確定迭代空間的分塊向量(Pi,PP方向,分塊在Pj方向上的大小為f,分塊在Pi方向上的大小為h,從任務間的依賴關系集合D中找出最外邊的兩個依賴CW和CCW,Pi=CCff和Pj=CW,所述依賴關系是指任務間的執行順序; 步驟2:確定當前迭代所需要裝載和保存的數據大小與分塊向量大小f和h的關系式,以及當前迭代的調度長度Ls; 步驟3:按照策略一和策略二確定分塊向量的大小f和h ; 1)設定f為I,根據策略一和策略二計算h,分別得到hi和h2;策略一:2NUMother+NUMtop+NUMnert ( Ms ;策略二:(NUMtop +NUMother)Tw+NUMotherXTr ^ LsXfXh ; 2)若hl>h2,則h的取值為h2,采用策略一和策略二計算f,分別得到Π和f2,進入3);否則,分塊大小h的取值為hl,f的取值為I ; 3)若fl>l,分塊大小確定為fl*h2;否則分塊大小為f*hl,且f=l ; 步驟4:采用迭代重計時技術,分散任務之間的延時改變任務之間里層循環的依賴關系,重構分塊空間; 步驟5:按照分塊大小f*h劃分第一次分塊空間,把第一次分塊所產生的每一個子分塊當作一個節點即作為一個簇任務,構成新的迭代空間,按照步驟I依次對每個子分塊進行分塊,獲得第二次分塊的方向向量(P2i; P2j); 步驟6:確定第二次分塊向量的大小; 第二次分塊向量在P2i方向上的大小為N。.,在Ρ2」方向上的大小為1,凡_為處理器內核的數量; 步驟7:依據得到的兩個分塊向量對迭代空間進行分塊后得到執行順序圖,按照執行順序圖對任務進行調度。
2.根據權利要求1所述的具有存儲感知的多層分塊調度方法,其特征在于,所述步驟I中分塊向量的方向的具體確定過程如下: 任務間的依賴關系是指任務之間的執行順序,用dk= (dki,dkJ)表示,其中dki表示兩任務在里層循環的執行依賴關系,dkJ表示兩任務在外層循環的執行依賴關系,從任務間的依賴關系集合D中找出最外邊的兩個依賴CW和CCW,Pi=CCff和Pj=CW ; CCW逆時針區間向量是指與j向量夾角最大的向量,CW順時針區間向量是指與j向量夾角最小的向量。
3.根據權利要求1所述的具有存儲感知的多層分塊調度方法,其特征在于,所述步驟2中當前迭代所需要裝載和保存的數據大小與分塊向量大小f和h的關系式如下: (I)當前迭代所需要裝載和保存的數據大小包括兩部分:第一部分,當前迭代所產生的數據大小為NUMnra^NUMtJNUMrtto ;第二部分,提前裝載當前迭代和下一迭代需要使用的數據大小為NUMrtto ;
4.根據權利要求1所述的具有存儲感知的多層分塊調度方法,其特征在于,所述步驟3中策略一和策略二中的NUMnrait表示本次分塊產生而下一個分塊急需用到的數據,NUMtop表示本次分塊產生且位于與Pi方向垂直,同時與當前分塊相鄰的分塊所需要用到的數據;NUMother表示此次分塊產生且除了下一個分塊所top分塊之外,其他所有分塊需要用到的數據;Ls表示每次迭代的調度長度,Tr表示從主存讀一個數據所需要的時間,Tw表示寫一個數據到主存所需要的時間;Ms是指SPM (便箋式存儲器)的容量大小。
全文摘要
本發明公開了一種具有存儲感知的多層分塊調度方法。第一步,根據任務的依賴關系得出分塊向量(Pi,Pj)的方向;第二步,獲得每次循環所需要裝載和保存的數據大小與分塊向量大小f和h的關系式,及每次迭代的調度長度Ls;第三步,根據本地存儲器大小及調度長度來決定分塊的子分塊大小;第四步,利用迭代重計時技術改變任務之間的依賴關系,重構分塊位置;第五步,把第一次分塊的每個子分塊當作一個節點重新構建一個分塊空間,進行第二次分塊;依據兩個分塊向量對迭代空間進行分塊后得到執行順序圖,按照執行順序圖對任務進行調度;該方法結合存儲器容量及存儲延遲,通過分塊和對任務之間依賴關系的調整,提高任務的并行度,減少寫操作的數量和降低平均調度時間。
文檔編號G06F9/48GK103246563SQ20131014536
公開日2013年8月14日 申請日期2013年4月24日 優先權日2013年4月24日
發明者王艷, 李肯立, 杜家宜, 唐卓, 肖正, 朱寧波 申請人:湖南大學