新四季網

多核動態可重構處理器生成配置信息的方法和裝置的製作方法

2023-05-29 17:11:46

專利名稱:多核動態可重構處理器生成配置信息的方法和裝置的製作方法
技術領域:
本發明涉及處理器的編譯,特別是指ー種多核動態可重構處理器生成配置信息的方法和裝置。
背景技術:
動態可重構處理器包括單核結構和多核結構,單核結構參見圖1,由於硬體設置,將「同步靜態隨機存儲器」作為片外器件,其他器件屬於片內器件。片內的「進存儲器」、「計算陣列」、「出存儲器」一起稱為計算核內器件。圖I中除去片外的「同步靜態隨機存儲器」和「公用存儲器」外,其他器件合稱為ー個單核,單核包括所示的存儲器、控制器和計算陣列。動態可重構處理器遵循先配置後處理的原則。對數據的搬運、計算都得經過編譯器的配置後才能執行。配置的信息通過主核,導入到可重構處理器的控制器上來控制數據的輸入輸出格式和長度等。下面將簡單介紹圖I中動態可重構處理器單核結構裡的各個器件的名稱和用途。「讀緩衝器」是讀入片外的「同步靜態隨機存儲器」的數據,並將數據暫時存儲起來,與「運算陣列」隔開。「讀緩衝器」起到緩衝數據的作用。「讀緩衝器」是由兩個控制器控制其數據導入和輸出的,控制導入數據的控制器稱為「片外數據導入控制器」(圖I中的控制器1),控制出數據的控制器稱為「核外數據導入控制器」。「進存儲器」是「計算陣列」的數據入口,所有需要進入「計算陣列」的數據必須經
過「進存儲器」。「進存儲器」的作用是存儲計算需求數據。「進存儲器」的數據導入控制器是「讀緩衝器」的數據輸出控制器,即「核外數據導入控制器」(分別為圖I中的控制器2和控制器7)。「計算陣列」是進行密集計算的計算單元陣列,能夠進行一般的四則運算、邏輯運算等。「出存儲器」是存儲計算後的數據結果。「出存儲器」將這些數據存儲起來,根據需要將數據送到不同的存儲單元。「出存儲器」的數據輸出控制器控制「出存儲器」的數據輸出到不同器件上,被稱為「核外數據存儲控制器」。圖I所示的「出存儲器」的三個輸出控制器是ー個「核外數據存儲控制器」(分別為圖I中的控制器4,5,9),只是控制數據流向三個不同器件。「寫緩衝器」數據如果要被輸出到「同步靜態隨機存儲器」,必須經過「寫緩衝器」存儲起來再輸出到「同步靜態隨機存儲器」。
「寫緩衝器」的導入數據控制器為「核外數據存儲控制器」,「寫緩衝器」的輸出控制器稱為「片外數據存儲控制器」(圖I中的控制器6)。「公用存儲器」存儲單核內的中間數據,「公用存儲器」是片內個個單核公用的,所以存儲的中間數據可能是幾個單核的中間數據。「公用存儲器」的數據導入控制器是「核外數據存儲控制器」,「公用存儲器」的數據輸出控制器稱為「片內中間數據導入控制器」(分別為圖I中控制器的3,10)。「片內中間數據導入控制器」控制中間數據導入「進存儲器」和「中間存儲器」。由幹「公用存儲器」和幾個單核都有數據的接ロ控制器,當不同的單核對「公用存儲器」發起讀寫操作吋,這些單核的優先級「核外數據存儲控制器」大於「中間數據導入控制器」。「中間存儲器」是處理中間數據的。「中間存儲器」的中間數據讀出可以按行或列讀出。「中間存儲器」的數據導入控制器有「核外數據導入控制器」、「核外數據存儲控制器」和「中間數據導入控制器」。「中間存儲器」的數據讀出控制器為「核內中間數據讀入控制器」(圖I中控制器8)。動態可重構處理器在處理數據的過程中,需要對軟體進行編譯,編譯包括前端和後端,前端部分使用修改後的「史丹福大學中間格式」(SUIF)編譯器將C++等高級語言描述的任務轉為有向數據圖描述的任務;後端將將前端給的有向數據圖在動態可重構處理器進行編譯後,動態可重構處理器在編譯過程中,通過自身的控制器的控制碼和計算陣列的控制碼,按照層次關係和先後關係進行生成配置信息,生成的配置信息也是控制碼,該控制碼能夠操作可重構處理器的運行。例如,在每個有向數據圖的數據處理過程中,生成的控制碼配置存儲器中每個存儲單元的狀態為讀或寫,配置計算陣列中每個單元的計算狀態為乘或加等計算狀態。隨著動態可重構處理器的發展,單核結構已經不能滿足處理要求,已經發展出將單核處理器組合在一起形成的多核處理器結構。參見圖2,單核和另外多個單核組成多核同在ー個片內。其中圖I所示的「公用存儲器」在圖2的多核結構中屬於片內的多核共用的存儲器,方便並行運算和單核間的數據交互;而在圖2中,「同步靜態隨即存儲器」是屬於片外的數據存儲器。在多核動態可重構的處理器中,還未實現多核並行處理有向數據圖生成配置信
O

發明內容
有鑑於此,本發明在於提供一種多核動態可重構處理器生成配置信息的方法和裝置,以解決上述在多核動態可重構的處理器中,不能實現多核並行處理有向數據圖生成配置信息的問題。為解決上述問題,本發明提供一種多核動態可重構處理器生成配置信息的方法,包括通過有向數據圖文件生成多個子有向數據圖文件;將多個所述子有向數據圖文件依次劃分為多個組; 按照劃分後的組的順序,多核動態可重構處理器中的每個單核同時各處理其中一個組的子有向數據圖文件;在處理每個所述子有向數據圖文件的過程中,生成相應的配置信息。本發明還提供一種多核動態可重構處理器生成配置信息的裝置,包括
劃分模塊,用於通過有向數據圖文件生成多個子有向數據圖文件; 分組模塊,用於將多個所述子有向數據圖文件依次劃分為多個組;
控制模塊,用於按照劃分後 的組的順序,多核動態可重構處理器中的每個單核同時各處理其中一個組的子有向數據圖文件;配置模塊,用於在處理每個所述子有向數據圖文件的過程中,生成相應的配置信
O本發明的實施例,對生成的子有向數據圖文件進行分組,採用多核內的各個單核處理器依次同時各處理ー個組的有向數據圖文件,從而各個單核處理器並行處理各個組,
提高處理效率。


圖I示出了單核動態可重構處理器的結構框圖;圖2示出了多核動態可重構處理器的結構框圖;圖3示出了實施例的流程圖;圖4示出了所一個有向數據圖文件內的數據節點之間的數據關係圖;圖5示出了根據圖4中劃分後的各個部分作為數據節點的數據關係圖;圖6示出了設置圖5中各個數據節點權值過程的示意圖;圖7示出了設置圖5中各個數據節點權值的流程圖;圖8示出了對圖5中各個數據節點的權值排序的流程圖;圖9示出了圖5中各個數據節點的權值排序後的示意圖;圖10示出了排序後的各個子有向數據圖文件進行分組的示意圖;圖11示出了三層生成配置信息的示意圖;圖12示出了中間存儲器內各個存儲區域的示意圖;圖13示出了中間存儲器的臨時存儲區內存在無效數據的示意圖;圖14示出了圖13的數據進入計算陣列前的數據結構示意圖;圖15示出了經過計算陣列後寫入到出存儲器數據結構示意圖;圖16示出了裝置實施例的結構框圖。
具體實施例方式為清楚說明本發明中的方案,下面給出優選的實施例並結合附圖詳細說明。參見圖3中本發明實施例的流程圖,包括Sll :通過有向數據圖文件生成多個子有向數據圖文件;S12 :將多個所述子有向數據圖文件依次劃分為多個組;S13:按照劃分後的組的順序,多核動態可重構處理器中的每個單核同時各處理其中一個組的子有向數據圖文件;S14 :在處理每個所述子有向數據圖文件的過程中,生成相應的配置信息。本發明的實施例,對生成的子有向數據圖文件進行分組,採用圖2中的各個單核處理器依次同時各處理ー個組的有向數據圖文件,從而各個單核處理器並行處理各個組,提聞處通效率。優選地,參見圖4中所示的一個有向數據圖文件內的數據節點之間的數據關係圖,該圖內的各個數據節點之間均有數據交互。
可依照各個節點之間數據結構關係、以及圖I中單核處理器內的計算陣列內的單元數量劃分。例如採用貪婪算法也稱為貪心算法劃分,包括I、先將有向數據圖文件內的數據節點賦予權值,可將所有的葉子節點賦予ー個相同的權值,然後按照從子節點到父節點的關係,將每個父節點的所有子幾點的權值之和作為該父節點的權值,直到根節點。2、將所有節點按照權值順序由大到小排列;3、按照計算陣列處理節點的數量,將節點依次劃分,例如,計算陣列最大能處理10個節點,則將10個節點劃分為I個子有向數據圖,直到全部劃分完。如圖4所示,將數據節點分成5部分。劃分後,將每個部分分別生成一子有向數據圖文件。每個子有向數據圖文件作為ー個數據節點,各個節點之間的數據關係可如圖5所示。優選地,可為圖5中每個作為子有向數據圖文件的數據節點設置ー個權值,並按照權值由大到小的順序將各個子有向數據圖文件進行分組。參見圖6,初始化每個作為子有向數據圖的數據節點的權值,設置為第一權值,在實施例中,將每個數據節點的權值設置為-I。參見圖7,設置圖5中各個數據節點的權值的過程包括S21 :遍歷作為子有向數據圖文件的節點;S22 :判斷是否為葉子節點;如果是,則執行S23,設置權重為O ;如果不是,則執行S24。參見圖6中的第一歩,葉子節點的權重設置為O ;如果只有ー個節點,該節點則作為葉子節點。對照圖5中的數據節點,節點5、節點2的權值都設置為O。S24 :判斷該節點的權重是否設置好;如果是,則執行S21 ;如果不是,則執行S25。S25 :設置該節點的權重;將該節點的權重設置為其所有子節點的權值、以及第ニ權值之和。在實施例中,優選第二權值為I。例如,數據節點3、數據節點4的權值為數據節點5的權值O加第二權值I的和,為
I;數據節點I的權值為數據節點3、數據節點4的權值與第二權值的和,即1+1+1 = 3。數據節點I的權值為3。參見圖6的第二步、第三步對應的圖,最好各個數據節點都設置好對應的權值。S26 :判斷是否所有的數據節點都設置好權值,如果是,則執行S27 ;如果否,則執行 S21 ;S27 :返回權值最高的數據節點進行後續處理。通過上述過程,最終設置完所有數據節點的權值,等同於設置完每個子有向數據圖文件的權值。在設置完權值之後,對所有子有向數據圖文件按照權值由大到小排序,排序的過程可採用冒泡算法進行排序。
冒泡排序的算法可通過依次比較相鄰的兩個子有向數據圖的權重,將小權重的子有向數據圖放在後面,大權重的子有向數據圖放在前面。具體算法流程可參見圖8。在第一趟首先比較第I個和第2個的子有向數據圖的權重,將大權重子有向數據圖放在前面,小權重子有向數據圖放後。然後比較第2個子有向數據圖的權重和第3個子有向數據圖的權重,將大權重的子有向數據圖放在前面,小權重的子有向數據圖放在後面,如此繼續,直至比較最後兩個子有向數據圖,將大權重子有向數據圖放在前面,小權重的子有向數據圖放後。至此第一趟結束,將最小的權重的子有向數據圖放到了最後。在第二趟仍從第一對子有向數據圖開始比較(因為可能由於第2個子有向數據圖和第3個子有向 數據圖的交換,使得第I個子有向數據圖權重不再大於第2個子有向數據圖權重),將大權重的子有向數據圖放在前面,小權重的子有向數據圖放後,一直比較到倒數第二個子有向數據圖(倒數第一的位置上已經是最小的子有向數據圖),第二趟結束,在倒數第二的位置上得到一個新的最小權重的子有向數據圖(其實在整個數列中是第二小權重的子有向數據圖)。重複多趟,直到全部的子有向數據圖文件的權值形成由大到小的順序即可,最終形成圖9所示的權值順序。優選地,在實施例中,按照權值的順序,對各個子有向數據圖文件進行分組。參見圖10,分組的過程包括S31 :按照權值有大到小的順序依次讀取每個子有向數據圖文件;S32 :判斷是否為最後ー個子有向數據圖文件;如果是,則執行S33末尾處理,以及S34輸出完成結果;如果否,則執ィ了 S35,新建組;S36 :判斷當前的子有向數據圖文件是否為並行組的文件;如果是,則執行S37,如果否,則執行S38 ;如果當前的子有向數據圖文件之後有權值相等、位置相鄰的子有向數據圖文件,則該子有向數據圖文件為並行組文件。例如,圖5中的作為數據節點3的子有向數據圖文件,與其相鄰的有數據節點,其權值相等,位置相鄰,則數據節點3作為並行組的子有向數據圖文件。S37 :設置當前組滿,並執行S35,新建組;S38 :將該子有向數據圖文件加入當前組;例如,圖5中作為數據節點I的子有向數據文件,其權值為3,與其相鄰的數據節點的權值為1,則將該數據節點I加入當前組。S39 :判斷當前組是否放滿;如果是,則執行S35 ;如果否,則執行S31 ;組放滿需要滿足以下兩個條件之ー即可;I、如果當前組內再増加一個子有向數據圖文件,則單核處理器的硬體資源不能滿足當前組內的所有子有向數據圖表示的子任務。這些硬體資源是對於數據處理的資源,例如計算資源、存儲資源。計算資源是計算陣列的處理能力,存儲資源是處理器中的各種存儲器。計算資源在本可重構處理器中就是計算陣列,一個計算陣列有8*8共64個子計算単元,這些子計算單元組成ー個8*8的計算陣列。也就是ー個計算陣列裡能最多同時計算64個計算操作,超過了 64個計算操作就會計算資源不足。由於各個子有向數據圖文件已經經過I次劃分得到,所以每個子有向數據圖文件可在計算陣列內進行運算。存儲資源是存儲器的存儲空間,「中間存儲器」是32位元組*32,即每行有32個字節,32行共1024個字節的存儲能力。在本文中,「中間存儲器」被分為3個部分,臨時數據區,輸出數據區和公用數據存儲區。臨時數據區和輸出數據區的大小是16位元組*16,有256個字節。公用數據存儲區的大小是32位元組*16,有512個字節。每個組內的多個子有向數據圖文件在運算過程中會產生大量的公用數據,這些公用數據能放置在中間存儲器內的存儲空間,當「中間存儲器」各部分的存儲的字節空間不夠時,就會設置組已經滿。2、當前的組為需要並行的組,例如,在步驟S36為作為數據節點3的子有向數據圖文件建立的組。通過上述步驟,即可按照權值由大到小的順序,將全部的子有向數據圖文件分組。例如圖5中數據節點按照權值排序後形成圖9中的權值順序,由於數據節點3、4、數據節點2、5都是需要並行的組,通過上述的分組過程,需要分成4個組,加上數據節點I的所在的組,可分為5個組。 優選地,按照劃分後的組的順序,多核動態可重構處理器中的每個單核同時各處理其中一個組的子有向數據圖文件;上述處理過程中,對於非並行的組,單核處理器需要處理組內的一個或多個子有向數據圖文件;如果並行的組,單核處理器僅處理組內的一個子有向數據圖文件。優選地,在處理每個所述子有向數據圖文件的過程中,生成相應的配置信息。任務編譯器後端的主要任務是為動態可重構處理器提供配置信息,通過配置信息來配置動態可重構處理器裡各個核的控制器和計算陣列。由於控制器管理數據的流動,計算陣列操作數據的運算。所以生成配置信息是任務編譯器的關鍵任務。配置信息的生成是根據控制器的控制碼和計算陣列的控制碼,按照層次關係和先後關係進行設置配置信息。配置信息是控制碼,能夠操作多核動態可重構處理器的運行。控制器的控制碼在設置有向數據圖的運行時就相應的生成這些控制碼,這樣控制器才能使數據有條不紊的運行。動態可重構處理器的核內控制器多,對於配置信息來說。首先要確定的是這些控制器的配置信息生成的順序。首先生成「片外數據導入控制器」(圖I中標號I的控制器)的配置信息,根據這個配置信息就能夠將運算陣列裡需要的外部數據從「同步靜態隨機存儲器」導入到核內。然後需要「核外數據導入控制器」的配置信息才能將數據的導入到「進存儲器」或者「中間存儲器」中。由於數據導入到「中間存儲器」中會佔用大量存儲空間,而且至Ij「中間存儲器」的數據還是要到「進存儲器」中才能被「計算陣列」使用。所以為了節省空間和加快運行,將「讀緩衝器」的數據的「核外數據導入控制器」(分別為圖I中標號為2和7的控制器)的配置信息設置只輸出到「進存儲器」。當數據到了「進存儲器」中,「計算陣列」的操作是根據數據流圖裡的個個節點的操作配置的。由於ー組有向數據圖中,前面的有向數據圖的中間數據可能會被後面的有向數據圖利用,所以「計算陣列」中的ー些中間計算結果會被輸出到「出存儲器」。這也是編譯器生成的「計算陣列」的配置信息的一部分。「計算陣列」的輸出數據會輸出到「出存儲器」,這些數據有三種一種是本組中後面的有向數據圖所需要的數據,這些數據要被放入「中間存儲器」;ー種是最終的計算結果,即要通過「寫緩衝器」輸出到「同步靜態隨機存儲器」中的數據;還有一種是後續的組的有向數據圖它們需要的數據,這些需要放入「公用存儲器中」。由於控制器控制著數據流動的単一性,數據不能同時傳到這三個存儲器中。
對於同時含有ー種以上這些類型的數據,必須設計好「出存儲器」如何輸出。這時,「核外數據存儲控制器」(分別為圖I中的控制器4,5,9)的配置信息會根據優先級來決定輸出到哪ー個存儲器。具體優先級是寫到「中間存儲器」的數據的優先級大於寫到「公用存儲器」的數據的優先級,寫到「公用存儲器」的數據優先級大於寫到「寫緩衝器」的數據的優先級。優先級大的將決定「出存儲器」的數據輸出方向,當有組內後續有向數據圖它們需要的數據時,不管是否還有其他類型的數據,「核外數據存儲控制器」都會控制數據輸出到「中間存儲器」中。按照「中間存儲器」空間分配算法,組內和後續組內的有向數據圖它們需要的數據被存放在「中間存儲器」的臨時數據區,最終的計算結果數據被放在輸出數據區。「中間存儲器」 的數據輸出到「進存儲器」需要「核內中間數據讀入控制器」(圖I中的控制器8)控制數據的讀入。「中間存儲器」的「公用數據存儲區」是存放從「公用存儲器」來的數據。而「公用存儲器」是存儲有向數據圖組間中間數據的,而且是四個核共享「公用存儲器」。「中間存儲器」的數據到「進存儲器」吋,「運算陣列」開始ー組內的一個有向數據圖的運算操作。得到的運算結果按照前述的各種類型分配到各種存儲器裡。當ー組內所有的有向數據圖都運行完後,會在後面加幾個無運算的有向數據圖,通過這些無運算的有向數據圖通過「運算陣列」將「中間存儲器」的「臨時數據區」的後面其他組需要的中間數據導出到「公用存儲器」,將「輸出數據區」的最終結果導出到「同步靜態隨機存儲器」裡。對於並行的有向數據圖組,每個單核將單獨運行可以並行的有向數據圖組的ー個組。有幾組並行就分配幾個核給它,由於核的數量為4,所以可以並行組最多為4個。每個組按照上述的單核執行情況在各自的單核裡執行。對於各組的中間數據交互是通過「公用存儲器」,通過「公用存儲器」,每組需要的其他組的數據從「公用存儲器」讀入,每組供給其他組的中間數據也將存儲到「公用存儲器」。這些並行數據的交互操作,最終可以通過設置進出「公用存儲器」的「核外數據存儲控制器」和「片內中間數據導入控制器」(分別為圖I中控制器3,10)的配置信息來控制。按照上面的分析,將配置信息分為三層,最內一層是每個單核內的「計算陣列」的配置信息,這層配置信息處理「計算陣列」的計算控制和安排計算結果輸出到「出存儲器」;第二層是配置信息中間層,這層配置信息有「片內中間數據導入控制器」、「核外數據導入控制器」、「核內中間數據讀入控制器」和「核外數據存儲控制器」等控制器的配置信息第三層配置信息室最外層,這層配置信息有全部有向數據圖的分組的配置信息,包括如何並行分組的情況,還有「片外數據導入控制器」和「片外數據存儲控制器」的配置信息。參見圖11,通過這種關係,數據就經過如下的配置過程。從最外層的「片外數據導入控制器」進入,經過第二層的「中間數據導入控制器」和「核外數據導入控制器」等進入最內層的「計算陣列」,再從「出存儲器」出來進入中間層的「核外數據存儲控制器」和「核內中間數據讀入控制器」等,一組有向數據圖都在中間層和最內層的配置信息控制下執行完了,最後從第三層的「片外數據存儲控制器」把最終結果數據輸出到「同步靜態隨機存儲器」中。這樣ー層扣ー層,使得數據有條不紊的輸入輸出。優選地,上述生成配置信息的過程中,圖I中每個單核處理器處理ー個組的子有向數據圖文件,會產生大量的臨時數據,這些臨時數據需要暫存在中間存儲器內。需要對中間存儲器內的空間進行分配,以提高處理的效率。通常臨時數據區、輸出數據區、公用數據存儲區的空間比例為I : I : 3。
例如,在實施例中,參見圖12,實施例中的中間存儲器共有16*32位元組=1024位元組。將中間存儲器分為三個部分,三個部分為左上中間數據存儲區,右上輸出數據區,裡面黒色方塊區域為有效數據。下方的子単元交換數據存儲器數據區。開闢出公用存儲器數據存放區是為了更好地公用存儲器進行數據交流,公用存儲器為16*32位元組的存儲器。由幹「寫緩存器」和「公用存儲器」的局限性。為了更好地利用存儲資源,將「中間存儲器」中的公用存儲器數據存放區設置為16*16byte。輸出數據區的數據存儲方式為列排列,如圖11所示。輸出到「同步靜態隨即存儲器」的數據被從外按一定算法排列在輸出數據區。這樣在不刷新輸出數據區時,能更好地重複利用臨時數據區。在動態可重構處理器運行過程中,由於數據多行多列組成的數據塊,數據在各個存儲區域中不斷地讀寫,會產生大量的冗餘數據。有些冗餘數據過於龐大,以至幹「進存儲器」都不能容納這個包含冗餘數據的ニ維數據塊。這時,編譯器就會出錯,無法處理這些子有向數據圖。這些數據塊作為公共數據的一部分。首先分析「進存儲器」的數據來源,如圖I所示。數據可以從「讀緩衝器」、「中間存儲器」、「公用存儲器」過來,「讀緩衝器」的數據是在片內是單向來的,如果要進行數據重組織,則必須對片外同步靜態隨即存儲器的數據翻新,時間耗費將是巨大的。「公用存儲器」的數據直接進入「進存儲器」供ー個「計算陣列」使用是可以的,但ー組有向數據圖包含很多子有向數據圖,有的子有向數據圖使用「公用存儲器」的數據,有些子有向數據圖則不使用「公用存儲器」的數據,因而不能靈活適應需求。「中間存儲器」中的公用數據存儲區能在一組子有向數據圖的存活時間內有效存儲「公用存儲器」的數據供子有向數據圖使用,而且通過「中間存儲器」-「進存儲器」-「計算陣列」-「出存儲器」-「公用存儲器」-「中間存儲器」這個環路能夠很好的進行有效數據組織,使數據塊的有效數據被可重構,重組為適應「進緩衝器」的ニ維數據塊。為了提高中間存儲器的空間利用率,需要對中間存儲器內的臨時數據區、公用數據存儲區內的冗餘數據進行重構。中間存儲器中數據塊,在輸入「進存儲器」的時需要進行判斷。當數據在「進存儲器」的行號大於「進存儲器」的行號最大值,數據塊就不能被放進,需要進行重構。有向數據圖組在當前的子有向數據圖終止,當前子有向數據圖進入新組。當前子有向數據圖的依賴數據塊則需進入「計算陣列」進行無運算的數據重組。對於中間存儲器的空間需要充足的ニ維數據分為三種情況一「臨時數據區」數據含冗餘過多需要重構;ニ「中間存儲器」中的公用數據存儲區冗餘數據多,需要重構;三臨時數據區和公用數據存儲區中的數據組合冗餘數據多,需要重構。對於第一種、第二種情況將ニ維數據進行重新標記「出存儲器」地址,將這ニ維數據塊通過「進存儲器」輸入進「計算陣列」,在計算陣列內進行數據重組,數據重組後會消除無效數據行,可根據數據塊中行標誌位確定多個有效數據行,並將多個所述有效數據行調整成位置相鄰行。通過之前標記的「出存儲器」地址,數據會進行重排進入「出存儲器」。進入「出存儲器」後數據被按照「出存儲器」的排列順序進入「公用存儲器」。 在下一組子有向數據圖開始的時候,「公用存儲器」的數據被送入「中間存儲器」中的公用數據存儲區。第三種情況的處理方法是將它分解為第一種和第二種情況處理。如圖13所示,「中間存儲器」的「臨時數據區」的冗餘數據過多,其中,黒色塊數據所在行為有效數據行。兩行黑色塊數據行之間的數據位無效數據,數據塊在進存儲器中的行號大於進存儲器中的最大行號。由於數據塊的處理方式使有效數據不能被導入計算陣列進行有效運算。為了消除這些冗餘數據帶來的影響,需要進行數據可重構。數據可重構是進行有效數據的重新組織,不進行功能運算,所以可以分次將有效數據進行導入組織,圖中是將「臨時數據區」的有效數據進行數據重構為例,「中間存儲器」的公用數據存儲區的有效數據如需要重構也可以按照這種方法進行。圖14中顯示了將導入「進存儲器」需要重構的有效數據和冗餘數據的示意圖,經過計算陣列的數據過渡,計算陣列在此作用只是進行數據組織,而不進行運算實現。被標記「出存儲器」地址的有效數據重新組織被計算陣列輸出至IJ「出存儲器」中,將有效數據行調整為圖15所示的位置相鄰行。「出存儲器」將圖15中的數據塊數據放入到「公用存儲器」,公用存儲器在需要有效數據的有向數據圖的配置信息來 時將數據導入到「中間存儲器」的公用數據存儲區。由於消除了無效數據,可有效降低「中間存儲器」的公用數據存儲區的空間。本發明的實施例還提供一種多核動態可重構處理器生成配置信息的裝置,參見圖16,包括劃分模塊,用於通過有向數據圖文件生成多個子有向數據圖文件;分組模塊,用於將多個所述子有向數據圖文件依次劃分為多個組;控制模塊,用於按照劃分後的組的順序,多核動態可重構處理器中的每個單核同時各處理其中一個組的子有向數據圖文件;配置模塊,用於在處理每個所述子有向數據圖文件的過程中,生成相應的配置信
O本發明的裝置實施例,對生成的子有向數據圖文件進行分組,採用圖2中的各個單核處理器依次同時各處理ー個組的有向數據圖文件,從而各個單核處理器並行處理各個組,提聞處通效率。所述裝置還包括權值模塊,用於根據各個所述子有向數據圖文件的之間的數據結構關係,確定每個所述子有向數據圖文件的權值;所述分組模塊包括第一子模塊,用於按照所述權值由大到小的順序,逐個將子有向數據圖文件放入當前創建的組中;第二子模塊,用於如果判斷出當前放入所述組中的子有向數據圖文件,使得所述當前組所有子有向數據圖文件的公共數據之和大於存儲區域,則將所述當前的子有向數據圖文件放入到新創建的組中;第三子模塊,用於在所述判斷過程中,如果判斷出所述當前放入的子有向數據圖文件存在位置相鄰、權值相同的子有向數據圖文件,則將權值相同、位置相鄰的每個子有向數據圖文件各放入到一個單獨為其創建的組中。對於本發明各個實施例中所闡述的方法和裝置,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發 明的保護範圍之內。
權利要求
1.一種多核動態可重構處理器生成配置信息的方法,其特徵在於,包括 通過有向數據圖文件生成多個子有向數據圖文件; 將多個所述子有向數據圖文件依次劃分為多個組; 按照劃分後的組的順序,多核動態可重構處理器中的每個單核同時各處理其中ー個組的子有向數據圖文件; 在處理每個所述子有向數據圖文件的過程中,生成相應的配置信息。
2.根據權利要求I所述的方法,其特徵在於,還包括 根據各個所述子有向數據圖文件的之間的數據結構關係,確定每個所述子有向數據圖文件的權值; 按照所述權值由大到小的順序,執行所述劃分為多個組的步驟。
3.根據權利要求2所述的方法,其特徵在於,所述劃分為多個組的過程包括 逐個將子有向數據圖文件放入當前創建的組中; 如果判斷出當前放入所述組中的子有向數據圖文件,使得所述當前組所有子有向數據圖文件的公共數據之和大於存儲區域,則將所述當前的子有向數據圖文件放入到新創建的組中。
4.根據權利要求3所述的方法,其特徵在於,還包括 在所述判斷過程中,如果判斷出所述當前放入的子有向數據圖文件存在位置相鄰、權值相同的子有向數據圖文件,則將權值相同、位置相鄰的每個子有向數據圖文件各放入到一個單獨為其創建的組中。
5.根據權利要求3所述的方法,其特徵在於,所述每個單核處理子有向數據圖文件的過程中,判斷到讀入的數據塊的最大行號大於存儲區域的行號最大值,則清除所述數據塊中的無效數據。
6.根據權利要求5所述的方法,其特徵在於,所述存儲區域為所述單核內的進存儲器,所述清除無效數據的過程包括 根據數據塊中行標誌位確定多個有效數據行; 在計算陣列內將所述數據塊的有效數據行的地址修改為在出存儲器內的位置相鄰行的地址。
7.根據權利要求6所述的方法,其特徵在於,還包括 將地址調整後的所述數據塊從所述出存儲器寫入到所述多核動態可重構處理器的公用存儲器; 將所述公用存儲器內的所述數據塊寫入到中間存儲器。
8.根據權利要求2所述的方法,其特徵在於,所述數據結構關係為樹形結構關係,所述確定權值的過程包括 將所述子有向數據圖文件內作為葉子節點的數據節點的權值設置為第一權值; 按照所述樹形結構關係,將每個父節點的權值設置為其所有子節點的權值、以及第ニ權值之和。
9.一種多核動態可重構處理器生成配置信息的裝置,其特徵在於,包括 劃分模塊,用於通過有向數據圖文件生成多個子有向數據圖文件; 分組模塊,用於將多個所述子有向數據圖文件依次劃分為多個組;控制模塊,用於按照劃分後的組的順序,多核動態可重構處理器中的每個單核同時各處理其中一個組的子有向數據圖文件; 配置模塊,用於在處理每個所述子有向數據圖文件的過程中,生成相應的配置信息。
10.根據權利要求9所述的裝置,其特徵在於,還包括 權值模塊,用於根據各個所述子有向數據圖文件的之間的數據結構關係,確定每個所述子有向數據圖文件的權值; 所述分組模塊包括 第一子模塊,用於按照所述權值由大到小的順序,逐個將子有向數據圖文件放入當前創建的組中; 第二子模塊,用於如果判斷出當前放入所述組中的子有向數據圖文件,使得所述當前組所有子有向數據圖文件的公共數據之和大於存儲區域,則將所述當前的子有向數據圖文件放入到新創建的組中; 第三子模塊,用於在所述判斷過程中,如果判斷出所述當前放入的子有向數據圖文件存在位置相鄰、權值相同的子有向數據圖文件,則將權值相同、位置相鄰的每個子有向數據圖文件各放入到一個單獨為其創建的組中。
全文摘要
本發明公開了一種多核動態可重構處理器生成配置信息的方法和裝置,包括通過有向數據圖文件生成多個子有向數據圖文件;將多個所述子有向數據圖文件依次劃分為多個組;按照劃分後的組的順序,多核動態可重構處理器中的每個單核同時各處理其中一個組的子有向數據圖文件;在處理每個所述子有向數據圖文件的過程中,生成相應的配置信息。本發明的實施例,對生成的子有向數據圖文件進行分組,採用多核內的各個單核處理器依次同時各處理一個組的有向數據圖文件,從而各個單核處理器並行處理各個組,提高處理效率。
文檔編號G06F15/177GK102650980SQ20121010250
公開日2012年8月29日 申請日期2012年4月9日 優先權日2012年4月9日
發明者劉石柱, 尹首一, 殷崇勇 申請人:清華大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀