本發明涉及嵌入式,尤其涉及一種基于多核嵌入式系統的任務動態分配方法。
背景技術:
1、隨著現代社會智能化、信息化、網絡化的發展,嵌入式系統的開發獲得了廣泛的發展空間,無論是國內還是在國外,嵌入式系統無疑都是當前最熱門最有發展前途的工業應用領域之一。嵌入式系統通常包括多個處理核,如何使多個處理核合理高效地并行完成同一任務,從而提升系統處理性能是目前的研究重點。
2、現有對于多個處理核執行單一任務,有的方案是通過操作系統對內存資源進行動態分配,而對任務分配方向上的研究僅停留在交叉切割的程度上;有的方案是利用異構多核處理器根據不同應用在性能需求、行為表現等方面的差異對系統資源進行動態的管理分配;有的方案是根據處理器架構重新設計軟件架構和參與管理核計算資源。
3、現有交叉切割的方式中因輸入信號的維度小于輸出信號的維度,會隨著分割線的移動出現受控盲區而導致關鍵信息丟失;利用異構多核處理器的方案對系統資源的配置容易產生內存資源上的空洞,系統優化程度大幅度降低;根據處理器架構重新設計的方案由于有硬件的參與,系統的調試時間大幅增加,不利于設計人員的開發與調試。
技術實現思路
1、鑒于上述的分析,本發明實施例旨在提供一種基于多核嵌入式系統的任務動態分配方法,用以解決現有任務分配不合理而導致資源利用率和系統性能不高的問題。
2、本發明實施例提供了一種基于多核嵌入式系統的任務動態分配方法,包括以下步驟:
3、s1、將嵌入式系統的多個處理核分為一個主處理核和其它的從處理核;構建分割線系統,用于計算資源分割線的位置;
4、s2、主處理核逐幀接收任務,收集數據資源;調用分割線系統得到資源分割線的位置后對任務進行分區,將各分區的子任務分別分發至從處理核;
5、s3、從處理核接收對應的子任務進行識別和處理,將目標數量和處理結果反饋給主處理核;
6、s4、主處理核接收各分區的子任務的處理結果并拼接得到任務的處理結果,并將接收到的各分區的目標數量放入數據資源中,重復執行s2至s4直至完成所有幀任務。
7、基于上述方法的進一步改進,分割線系統包括1個或多個pid控制器,每個pid控制器控制一條資源分割線,并根據數據資源計算對應的資源分割線的位置。
8、基于上述方法的進一步改進,資源分割線對每幀任務進行水平或垂直的平行分區。
9、基于上述方法的進一步改進,每個pid控制器根據數據資源計算對應的資源分割線的位置,包括:
10、如果數據資源中不存在各分區的目標數量,則根據資源分割線的數量和任務的尺寸,按均勻分布計算出資源分割線的位置;
11、如果數據資源中存在各分區的目標數量,則每個pid控制器根據控制的資源分割線兩側分區的目標數量計算出資源分割線的位置。
12、基于上述方法的進一步改進,每個pid控制器根據控制的資源分割線兩側分區的目標數量計算出資源分割線的位置,是以對應的資源分割線兩側分區的目標數量之差作為輸入信號,通過比例系數、積分系數和微分系數對資源分割線的位置進行控制,輸出資源分割線的移動距離,并與資源分割線的當前位置相加得到新的位置。
13、基于上述方法的進一步改進,每個pid控制器根據控制的資源分割線兩側分區的目標數量,通過以下公式計算出資源分割線的位置:
14、
15、其中,locj{k}和locj{k-1}分別表示第j條資源分割線作用在第k+1幀和第k幀任務中的位置,kp表示比例系數,t表示任務采樣周期,ti表示積分時間,td表示微分時間,r表示離散化的積分變量,e(j,k)、e(j,r)和e(j,k-1)分別表示計算第j條資源分割線作用在第k幀、第r幀和第k-1幀任務中的位置時的誤差信號,是通過計算相鄰兩幀任務中資源分割線兩側目標數量之差的差值而得到。
16、基于上述方法的進一步改進,分割線系統還包括對每次計算的資源分割線進行加窗限制,并調整其中不滿足加窗限制的資源分割線的位置,將調整后的位置作為計算的位置。
17、基于上述方法的進一步改進,對每次計算的資源分割線進行加窗限制是將每次計算的資源分割線的位置作為預測位置,如果每條資源分割線的預測位置不超過其兩側資源分割線的預測位置,且不超過任務的尺寸,則滿足加窗限制,預測位置作為計算的位置;否則不滿足加窗限制,對預測位置進行調整。
18、基于上述方法的進一步改進,調整其中不滿足加窗限制的資源分割線的位置,包括:
19、如果資源分割線的預測位置超過了其下一條資源分割線的預測位置,則取該資源分割線計算前的位置與其下一條資源分割線的預測位置之間的中間位置為調整后的位置;
20、如果資源分割線的預測位置超過了其上一條資源分割線的預測位置,則取該資源分割線計算前的位置與其上一條資源分割線的預測位置之間的中間位置為調整后的位置。
21、基于上述方法的進一步改進,從處理核的數量大于1,資源分割線數量是通過將從處理核的數量減1而得到。
22、與現有技術相比,本發明至少可實現如下有益效果之一:
23、1、通過嵌入式系統中主從處理核之間的通信,由主處理核接收實時的任務,利用分割線系統對任務進行合理分區,使各從處理核并發高效完成各自的子任務,再由主處理核拼接子任務處理結果而實現對任務的閉環控制,在很小的成本下大程度的提升了嵌入式系統的實時性能,降低了時間復雜度,增加了嵌入式系統的數據處理能力,特別適用于各類對實時性要求高的任務。
24、2、采用pid負反饋閉環控制方式,根據目標數量差異的反饋動態調整資源分割線的位置,使資源分割線設置在最優位置上,從而對任務進行合理分區,確保各分區的任務處理量均勻,各處理核對各分區任務的處理時間保持一致,最大程度的使用多核嵌入式環境的硬件資源。
25、本發明中,上述各技術方案之間還可以相互組合,以實現更多的優選組合方案。本發明的其他特征和優點將在隨后的說明書中闡述,并且,部分優點可從說明書中變得顯而易見,或者通過實施本發明而了解。本發明的目的和其他優點可通過說明書以及附圖中所特別指出的內容中來實現和獲得。
1.一種基于多核嵌入式系統的任務動態分配方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的基于多核嵌入式系統的任務動態分配方法,其特征在于,所述分割線系統包括1個或多個pid控制器,每個pid控制器控制一條資源分割線,并根據數據資源計算對應的資源分割線的位置。
3.根據權利要求1或2所述的基于多核嵌入式系統的任務動態分配方法,其特征在于,所述資源分割線對每幀任務進行水平或垂直的平行分區。
4.根據權利要求2所述的基于多核嵌入式系統的任務動態分配方法,其特征在于,所述每個pid控制器根據數據資源計算對應的資源分割線的位置,包括:
5.根據權利要求4所述的基于多核嵌入式系統的任務動態分配方法,其特征在于,所述每個pid控制器根據控制的資源分割線兩側分區的目標數量計算出資源分割線的位置,是以對應的資源分割線兩側分區的目標數量之差作為輸入信號,通過比例系數、積分系數和微分系數對資源分割線的位置進行控制,輸出資源分割線的移動距離,并與資源分割線的當前位置相加得到新的位置。
6.根據權利要求4或5所述的基于多核嵌入式系統的任務動態分配方法,其特征在于,所述每個pid控制器根據控制的資源分割線兩側分區的目標數量,通過以下公式計算出資源分割線的位置:
7.根據權利要求2所述的基于多核嵌入式系統的任務動態分配方法,其特征在于,所述分割線系統還包括對每次計算的資源分割線進行加窗限制,并調整其中不滿足加窗限制的資源分割線的位置,將調整后的位置作為計算的位置。
8.根據權利要求7所述的基于多核嵌入式系統的任務動態分配方法,其特征在于,所述對每次計算的資源分割線進行加窗限制是將每次計算的資源分割線的位置作為預測位置,如果每條資源分割線的預測位置不超過其兩側資源分割線的預測位置,且不超過任務的尺寸,則滿足加窗限制,預測位置作為計算的位置;否則不滿足加窗限制,對預測位置進行調整。
9.根據權利要求8所述的基于多核嵌入式系統的任務動態分配方法,其特征在于,所述調整其中不滿足加窗限制的資源分割線的位置,包括:
10.根據權利要求2所述的基于多核嵌入式系統的任務動態分配方法,其特征在于,所述從處理核的數量大于1,所述資源分割線數量是通過將從處理核的數量減1而得到。