專利名稱:基于多核處理器的實時任務調度方法
技術領域:
本發(fā)明涉及計算機實時任務調度方法,特別涉及一種基于多核處理器的實時任務調度方法。
背景技術:
在嵌入式系統(tǒng)中使用多核技術,是近年來單片機技術發(fā)展的一大亮點。在嵌入式應用領域,特別是控制領域,多核技術具有明顯的優(yōu)勢,能顯著提高系統(tǒng)的可靠性。同時,隨著集成電路工藝及片上系統(tǒng)(System On Chip)的發(fā)展,帶有雙核技術的單片機逐漸走向低成本及高可靠性,這使其在工業(yè)控制,儀器儀表和家用電器等領域等得到了廣泛的應用。能夠正確運行并且同時滿足特定的邏輯和時間關系的系統(tǒng)被稱為實時系統(tǒng)。目前嵌入式領域的解決方案是使用實時多任務操作系統(tǒng)(Real-Time multi-task Operating System)來保證任務的實時性。實時內核通常分為協(xié)作式內核和占線式內核。但不管是何種內核,都有一個特定的時鐘節(jié)拍(Time Tick),時鐘節(jié)拍是一個周期性的中斷,系統(tǒng)在每個時鐘節(jié)拍到來時,對各個任務的延時做出裁決。時鐘節(jié)拍越快,任務的定時精度越高,但系統(tǒng)的額外開銷就越大,一般來說會給CPU核心帶來2% 10%的額外負荷。實時內核提供的基本服務是任務切換,其中每個任務都被賦予一定的優(yōu)先級,有著自己的一套CPU寄存器和自己的??臻g,這種數(shù)據(jù)結構會增加系統(tǒng)的RAM用量,內核本身的代碼也增加了系統(tǒng)的ROM用量。另外,穩(wěn)定的實時操作系統(tǒng)大都是商業(yè)內核,其價值不菲。綜上所述,如需設計一個所有實時任務均為循環(huán)調度的周期性任務,且對任務時間精度要求高,能對外來事件在限定時間內能做出相應反應的實時嵌入式系統(tǒng)。上述的基于實時操作系統(tǒng)的調度方法就有著不可避免的CPU負荷高,資源占用多,性價比低及開發(fā)門檻高的弊端。
發(fā)明內容
本發(fā)明的目的是提供一種基于多核處理器的實時任務調度方法,以解決現(xiàn)有的基于實時操作系統(tǒng)的任務調度方法CPU負荷高,資源占用多,性價比低及開發(fā)門檻高的問題。本發(fā)明提出一種基于多核處理器的實時任務調度方法,包括以下步驟(1)分配實時周期任務的對應中斷源給主處理器。(2)分配時鐘節(jié)拍中斷源給輔助處理器。(3)定義每個實時周期任務對應的中斷優(yōu)先級。(4)輔助處理器的時鐘節(jié)拍按既定周期依次觸發(fā)主處理器中各實時周期任務的對應中斷源。(5)主處理器根據(jù)各實時周期任務對應中斷源的優(yōu)先級,切換對應的任務。進一步的,所述實時周期任務的任務代碼存放在中斷源的中斷服務函數(shù)中。進一步的,輔助處理器的時鐘節(jié)拍按既定周期依次觸發(fā)主處理器中各實時周期任務的對應中斷源時包括以下步驟(1)時鐘節(jié)拍中斷時,輔助處理器判斷是否有實時周期任務進入就緒狀態(tài)。(2)若無,則中斷返回。(3)若有,則觸發(fā)主處理器對應的中斷源。
進一步的,主處理器切換任務時包括以下步驟(1)主處理器接收輔助處理器發(fā)送來的中斷觸發(fā)信號源。(2)主處理器保存當前工作信息。(3)主處理器進行任務切換。 (4)主處理器讀取工作信息,并恢復中斷前的工作狀態(tài)。相對于現(xiàn)有技術,本發(fā)明的有益效果是本發(fā)明采用輔助處理器處理時鐘節(jié)拍中斷,并用中斷服務來代替實時操作系統(tǒng),以達到周期性實時執(zhí)行,且無須使用實時操作系統(tǒng),降低了系統(tǒng)成本的同時,也降低了開發(fā)門檻。相比以往的實時內核方案,本發(fā)明的方法可以節(jié)省系統(tǒng)的R0M,RAM存儲空間,資源占用量少。同時,由于繁重的時鐘中斷交由輔助處理器響應,大大減輕了主處理器的負荷,使得主處理器的執(zhí)行時間為固定值,保證了任務的實時運行,提升了系統(tǒng)的實時性,同時,高頻率的時鐘節(jié)拍也提高了任務的計時精度。
圖1為本發(fā)明基于多核處理器的實時任務調度方法的一種實施例流程圖。
具體實施例方式本發(fā)明的方法特別適用于嵌入式系統(tǒng),其通過中斷服務實現(xiàn)了周期性實時任務的調度,并利用多核處理器的性能優(yōu)勢,將繁重的時鐘節(jié)拍中斷交給輔助處理器來響應,大大減輕了主處理器的負荷,從而也保證任務的實時運行。本發(fā)明的方法適用于雙核處理器或多核處理器的任務調度,以下結合附圖具體說明本發(fā)明。請參見圖1,其為本發(fā)明基于多核處理器的實時任務調度方法的一種實施例流程圖,其包括以下步驟S101,分配實時周期任務的對應中斷源給主處理器。按實時周期任務數(shù)目定義多個空閑的中斷源,并將這些中斷源交給主處理器響應,每個中斷對應一個周期性的實時任務,任務代碼放在中斷服務函數(shù)中。這樣,主處理器的中斷響應就能驅動對應的任務線程。S102,分配時鐘節(jié)拍中斷源給輔助處理器。將時鐘節(jié)拍中斷源交給輔助處理器響應。這樣,繁重的時鐘節(jié)拍中斷就不會增加主處理器的負荷,讓主處理器專注于任務級處理,同時還能保證實時任務擁有很高的定時精度。S103,定義每個實時周期任務對應的中斷優(yōu)先級。為每個實時任務對應的中斷分配自己的優(yōu)先級,任務越重要,對應中斷源的優(yōu)先級就越高。同時把最高優(yōu)先級分配給時鐘節(jié)拍中斷源。S104,輔助處理器的時鐘節(jié)拍按既定周期依次觸發(fā)主處理器中各實時周期任務的對應中斷源。所述的既定周期是指分配給主處理器的各個實時任務的周期,在輔助處理器響應時鐘節(jié)拍中斷時,會進行周期計數(shù)。即在時鐘節(jié)拍中斷時,輔助處理器會判斷是否有實時周期任務進入就緒狀態(tài),若無,則中斷返回;若有,則向主處理器發(fā)出中斷觸發(fā)新號。例如,假設一個時鐘節(jié)拍是3 μ S,一個實時任務的周期是12 μ S,則輔助處理器分別會在4個、8個、 12個等4的整數(shù)倍個時鐘節(jié)拍時,向主處理器發(fā)送中斷觸發(fā)信號,以觸發(fā)主處理器對應的中斷源,讓主處理器決定是要運行該任務還是要切換其它任務。
S105,主處理器根據(jù)各實時周期任務對應中斷源的優(yōu)先級,切換對應的任務。主處理器中每個實時任務對應一個中斷源,當主處理器收到中斷觸發(fā)信號后,會判斷當前中斷是否是優(yōu)先級最高的中斷。若當前中斷的優(yōu)先級是最高優(yōu)先級,則運行當前中斷服務函數(shù)中的任務代碼,并驅動當前的實時周期任務線程;若有更高優(yōu)先級的任務就緒,則切換到最高優(yōu)先級的中斷,并運行最高優(yōu)先級中斷服務函數(shù)中的任務代碼,從而實現(xiàn)任務切換。因此,調度方案是基于優(yōu)先級的搶占式調度,當前正在運行的中斷必須隨時讓位給優(yōu)先級更高的中斷。其中,在發(fā)生中斷后,主處理器會保護現(xiàn)場,執(zhí)行任務代碼后恢復現(xiàn)場,然后中斷返回。這里所述的保護現(xiàn)場是指主處理器保存當前的工作信息,即當出現(xiàn)中斷時,主處理器會將中斷的入口地址保存在寄存器中,隨后進行優(yōu)先級判斷和代碼執(zhí)行,當任務代碼執(zhí)行結束后,從寄存器中取出地址繼續(xù)執(zhí)行,從而保證中斷前一時刻的工作狀態(tài)不被破壞。值得注意的是,本發(fā)明的方法不僅適用于雙核處理器的任務調度,同樣也適用于多個主處理器和一個輔助處理器情況下的多核任務調度。當有多個主處理器時,分別為各個主處理器的實時周期任務分配中斷源,并在某個中斷源相應的任務就緒時,該輔助處理器會將中斷觸發(fā)信號發(fā)送給對應的主處理器,從而實現(xiàn)任務的運行和切換。為了進一步說明本發(fā)明的優(yōu)勢,在本發(fā)明實施的嵌入式系統(tǒng)上,移植了目前較為主流的實時操作系統(tǒng)μ C/0S-II,以IOM的時鐘頻率,5個任務為例,與本發(fā)明方案進行比較,請參見表1。
權利要求
1.一種基于多核處理器的實時任務調度方法,其特征在于,包括一個以上主處理器和一個輔助處理器,其包括以下步驟分配實時周期任務的對應中斷源給主處理器; 分配時鐘節(jié)拍中斷源給輔助處理器; 定義每個實時周期任務對應的中斷優(yōu)先級;輔助處理器的時鐘節(jié)拍按既定周期依次觸發(fā)主處理器中各實時周期任務的對應中斷源;主處理器根據(jù)各實時周期任務對應中斷源的優(yōu)先級,切換對應的任務。
2.如權利要求1所述的基于多核處理器的實時任務調度方法,其特征在于,所述實時周期任務的任務代碼存放在中斷源的中斷服務函數(shù)中。
3.如權利要求1所述的基于多核處理器的實時任務調度方法,其特征在于,輔助處理器的時鐘節(jié)拍按既定周期依次觸發(fā)主處理器中各實時周期任務的對應中斷源時包括以下步驟時鐘節(jié)拍中斷時,輔助處理器判斷是否有實時周期任務進入就緒狀態(tài);若無,則中斷返回;若有,則觸發(fā)主處理器對應的中斷源。
4.如權利要求1所述的基于多核處理器的實時任務調度方法,其特征在于,主處理器切換任務時包括以下步驟主處理器接收輔助處理器發(fā)送來的中斷觸發(fā)信號源; 主處理器保存當前工作信息; 主處理器進行任務切換;主處理器讀取工作信息,并恢復中斷前的工作狀態(tài)。
全文摘要
本發(fā)明提出一種基于多核處理器的實時任務調度方法,包括以下步驟(1)分配實時周期任務的對應中斷源給主處理器;(2)分配時鐘節(jié)拍中斷源給輔助處理器;(3)定義每個實時周期任務對應的中斷優(yōu)先級;(4)輔助處理器的時鐘節(jié)拍按既定周期依次觸發(fā)主處理器中各實時周期任務的對應中斷源;(5)主處理器根據(jù)各實時周期任務對應中斷源的優(yōu)先級,切換對應的任務。本發(fā)明的方法可以降低主處理器的負荷,且具有資源占用少、性價比高及開發(fā)門檻低的優(yōu)點。
文檔編號G06F9/48GK102222022SQ20111019975
公開日2011年10月19日 申請日期2011年7月15日 優(yōu)先權日2011年7月15日
發(fā)明者劉慶, 李甫, 高峰 申請人:范示德汽車技術(上海)有限公司