專利名稱:一種實時操作系統uCOS-Ⅱ的任務調度算法的硬件實現方法
技術領域:
本發明涉及一種實時操作系統uCOS-II的任務調度算法的硬件實現方法,屬于任
務調度算法硬件實現領域。
背景技術:
嵌入式實時系統領域中,實時操作系統RTOS提供了實時機制與標準的編程模型, 部分屏蔽了多任務時序控制的復雜性,降低了實時系統的開發難度,但RTOS軟件本身的運 行同時引入了任務處理的延時,很大程度上限制了所能完成的實時任務的最高頻率。
RTOS要實現的基本功能任務管理(任務創建、調度等)、時間管理(時鐘中斷、延 時信息域維護等)、事件管理(包括信號量、互斥鎖、消息隊列、FLAG等)。RT0S —般采用 可搶占方式設計,在中斷處理函數中需要保存與恢復現場,更新任務延時信息、更新任務狀 態、執行調度算法、實現任務切換,這些操作需要大量的指令完成,執行這些操作勢必會降 低系統性能,增大中斷響應時間,降低系統可預測性,而這些操作又是維持RT0S本身正常 運行而頻繁執行的操作,造成的結果就是雖然系統時鐘可能為幾十MHz,但能處理的實時 任務的最大頻率卻只能在幾百Hz甚至是幾十Hz。當有更高頻率的實時任務要求時,可以采 用提高系統時鐘的方法,但此方案有很大的弊端(l)所選用的CPU或者PCB不能支持更高 頻率;(2)高時鐘頻率一般意味著高功耗,這會帶來更多的問題;(3)高精度TimeTick中斷 會使RT0S本身占用CPU的比重增大,文獻研究表明,uC/0S-I1在PowerPC處理器上測試結 果顯示,軟件實現的uC/OS-II的時鐘中斷處理時間隨系統任務數增加而增長,當TimeTick 精度提高到10usec時,RTOS本身占用CPU的時間近乎42%。 隨著RTOS系統軟件的成熟,其功能、算法日趨穩定,RTOS本身帶來的性能損耗已 很難再依賴改進軟件算法來降低。將RT0S中公用的、性能相關的操作(如任務調度、時間 管理、事件處理、中斷現場的保護與恢復等)用硬件方式實現,提高整個實時系統的性能, 使整個系統具有100%可預測性與確定性,確保系統的硬實時性,已成為嵌入式實時系統領 域中前沿課題和研究熱點。開展實時操作系統的硬件化加速研究,創建硬件加速嵌入式實 時系統平臺,可以在較低的時鐘頻率下滿足更高的實時任務要求,在嵌入式實時控制領域 有重要的應用前景。
發明內容
—種實時操作系統uCOS-II的任務調度算法的硬件實現方法,其特征在于 (1)硬件保存每個任務的調度相關信息,接收外部時鐘TimeTick信號,每次
TimeTick信號有效時,任務延時信息自動減l,至O為止,表示延時時間到,即所有任務的延
時信息處理由硬件在1個時鐘周期內完成; (2)根據任務狀態、延時信息等判斷任務是否就緒; (3)硬件計算就緒任務中的最高優先級任務號;
(4)根據就緒最高優先級任務號、當前運行任務優先級號、中斷嵌套標志、調度鎖
標志信息,決定是否發出任務切換中斷; (5)軟件只需響應中斷并執行任務切換。 本發明硬件實現uCOS-II的任務調度算法與延時處理,顯著提高了系統的實時性 和可預測性。
圖1是本發明涉及的硬件功能電路框圖 圖2是采用本發明涉及的方法,設計的wishbone總線接口的uCOS-II實時操作系 統硬件加速模塊在實際系統中的連接圖,本發明涉及的模塊是圖2中的RTA模塊。
具體實施例方式
本實現例具體說明如何應用本發明方法,設計wishbone總線接口的uCOS-II實時 操作系統硬件加速知識產權模塊(IP核)。 (1)硬件保存每個任務的調度相關信息TaskValid指示本任務是否有效; OSTCBDly保存本任務的延時信息;OSTCBStat指示任務狀態;OSTCBStatPend指示任務 Pend狀態。 (2)外部輸入的時鐘TimeTickTrig信號,觸發每個任務控制塊中OSTCBDly減1, 直至O為止。 (3)每個任務就緒信號TaskReadyN與TaskValid、 0STCBDLy、 OSTCBStat有關,實 現邏輯為TaskReadyN = TaskValidN &(0STCBStatN == — 0S_STAT_RDY)&(0STCBDlyN = =16, h0); (4)PrioBitm即ToBinary模塊實現從就緒任務中找出最高優先級任務任務號的功 能,輸出HighestPrio信號。 (5)中斷邏輯模塊Interrupt Logic接受當前CPU運行任務SW_Task_Cur、目前
就緒的最高優先級任務HighestPrio、本設計模塊使能信號RTA—Control、中斷嵌套標識
OSIntNesting、調度鎖信號OSLockNesting,決定是否產生任務切換中斷,實現邏輯為wb_inta_o = RTA_Control &(HighestPrio ! = SW_TASK_Cur)&(OSIntNesting
==8, h00)&(OSLockNesting ==8, h00); (6)模塊內部寄存器的讀寫均采用wishbone總線接口 (7)軟件與硬件配合軟件在創建新任務、設置任務延時信息、設置中斷嵌套標 志、設置調度鎖時,向硬件相應寄存器寫入數值,之后只需響應硬件的任務切換中斷信號, 在中斷服務程序中,無需維護任務延時信息,無需計算當前就緒最高任務號,無需判斷是否 需要任務切換,直接執行任務切換動作,大大減少了中斷響應時間與關中斷時間,提高了系 統的實時性。 整個實例系統連接關系如圖2所示。采用的是開源32位微處理器0R1200,其內 部集成中斷控制器PIC,時鐘模塊TimeTick, CPU的exc印t處理模塊處理PIC與TimeTick 產生的中斷指示信號,本發明涉及的模塊RTA,外部的TimeTickTrig信號接的是0R1200 TimeTick的輸出信號,同時用RTA產生的中斷信號替換TimeTick接入exc印t的sig_tick
4信號,其含義變為任務切換信號Sig_task。
權利要求
一種實時操作系統uCOS-II的任務調度算法的硬件實現方法,其特征在于(1)硬件保存每個任務的調度相關信息,接收外部時鐘TimeTick信號,每次TimeTick信號有效時,任務延時信息自動減1,至0為止,表示延時時間到;(2)根據任務狀態、延時信息等判斷任務是否就緒;(3)硬件計算就緒任務中的最高優先級任務號;(4)根據就緒最高優先級任務號、當前運行任務優先級號、中斷嵌套標志、調度鎖信息,決定是否發出任務切換中斷;(5)軟件只需響應中斷并執行任務切換。
2. —種根據權利要求1所述方法,設計實時操作系統uCOS-II的任務調度算法硬件實 現知識產權模塊(IP核)的方法,其特征在于(1) 核心電路采用權利要求1中(1)、 (4)所述方法(2) 外部接口采用主流片上總線接口 (如wishbone, avalon,amba等),實現對核心電 路內部寄存器的讀寫與控制。
全文摘要
一種實時操作系統uCOS-Ⅱ的任務調度算法的硬件實現方法,屬于任務調度算法硬件實現領域。本發明的技術方案是(1)硬件保存每個任務的調度相關信息,接收外部時鐘TimeTick信號,每次TimeTick信號有效時,任務延時信息自動減1,至0為止,表示延時時間到;(2)根據任務狀態、延時信息等判斷任務是否就緒;(3)硬件計算就緒任務中的最高優先級任務號;(4)根據就緒最高優先級任務號、當前運行任務優先級號、中斷嵌套標志、調度鎖標志信息,決定是否發出任務切換中斷;(5)軟件只需響應中斷并執行任務切換。本發明硬件實現uCOS-Ⅱ的任務調度算法與延時處理,顯著提高了系統的實時性和可預測性。
文檔編號G06F9/48GK101706739SQ200910253698
公開日2010年5月12日 申請日期2009年12月3日 優先權日2009年12月3日
發明者于國蘋, 張德學, 桑圣峰, 沈國新, 焦漢明, 陳新華 申請人:山東科技大學