專利名稱:基于uC/OS-II的硬件任務(wù)管理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種硬件任務(wù)管理器,屬于嵌入式操作系統(tǒng)技術(shù)領(lǐng)域。
背景技術(shù):
uC/OS-II是一種應(yīng)用廣泛的嵌入式實時操作系統(tǒng),它采用基于優(yōu)先級的可剝奪內(nèi)核,體積小巧,運行效率高。通過進一步研究發(fā)現(xiàn),uC/OS-II內(nèi)部核心的任務(wù)管理系統(tǒng)還有改善的空間。通過分析uC/OS-II內(nèi)核源碼可發(fā)現(xiàn),當時鐘中斷到來時,內(nèi)核需要調(diào)用 OSTimeTickO函數(shù),進行任務(wù)掃描管理,主要過程如下I.關(guān)閉中斷;2.如果任務(wù)處于阻塞態(tài)或延時態(tài),將其延時計數(shù)器減1,如果延時計數(shù)器為0,則任務(wù)進入運行態(tài);3.開啟中斷。每次調(diào)度時鐘中斷到來,內(nèi)核需要處理64個任務(wù)信息,進行64次中斷關(guān)斷開啟操作,進行大量的任務(wù)狀態(tài)判斷,占用了大量CPU時間,需要數(shù)千個CPU處理周期。根據(jù)任務(wù)數(shù)和任務(wù)狀態(tài)不同,處理時間也不一樣,開啟的任務(wù)數(shù)量越多,消耗CPU時間也越多,這也增加了內(nèi)核執(zhí)行時間的不確定性。uC/OS-II的任務(wù)優(yōu)先級排序設(shè)計的非常精巧,采用一個8x8任務(wù)就緒表實現(xiàn),每次通過查詢就緒表就可以快速找到正在運行的優(yōu)先級最高的任務(wù),比輪詢操作更方便快捷,但依然需要十幾個CPU處理時間,有改善的空間。綜上所述,uC/OS-II為了通用性,采用了精巧的任務(wù)管理方式,對于特定的使用環(huán)境,可以對內(nèi)核進行修改,以減小內(nèi)核處理時間,增加內(nèi)核調(diào)度時間確定性,實現(xiàn)更高的性倉泛。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是對嵌入式操作系統(tǒng)內(nèi)核進行改進,以減小內(nèi)核處理時間,增加內(nèi)核調(diào)度時間確定性,實現(xiàn)更高的性能。為解決上述技術(shù)問題,本發(fā)明提供一種基于UC/0S-II的硬件任務(wù)管理器,嵌入式操作系統(tǒng)包括CPU和FPGA,CPU與FPGA以總線方式相連,CPU通過地址空間訪問FPGA的寄存器接口,控制硬件任務(wù)管理器,其特征在于在FPGA端設(shè)置有硬件任務(wù)管理器,硬件任務(wù)管理器包括全局管理模塊和任務(wù)管理模塊,所述全局管理模塊包括當前最高優(yōu)先級任務(wù)ID寄存器和時鐘脈沖寄存器,所述任務(wù)管理模塊有64個,每個uC/OS-II任務(wù)對應(yīng)一個任務(wù)管理模塊,每個任務(wù)管理模塊包含任務(wù)狀態(tài)寄存器、阻塞狀態(tài)寄存器、阻塞超時結(jié)果寄存器和延時計數(shù)寄存器,當前優(yōu)先級最高任務(wù)ID寄存器讀取當前優(yōu)先級最高任務(wù)ID寄存器可得到當前最高任務(wù)的ID,最高任務(wù)的ID是由各任務(wù)狀態(tài)同步編碼得到;
時鐘脈沖寄存器時鐘脈沖寄存器用于管理各任務(wù)狀態(tài),通知任務(wù)管理模塊有時鐘到來;任務(wù)狀態(tài)寄存器任務(wù)狀態(tài)寄存器如果是0,表明任務(wù)狀態(tài)是掛起態(tài),否則是運行態(tài),CPU直接設(shè)置該寄存器,如果延時計數(shù)寄存器由I變?yōu)?,任務(wù)狀態(tài)寄存器置為1,表明任務(wù)由掛起態(tài)進入運行態(tài);阻塞狀態(tài)寄存器阻塞狀態(tài)寄存器為O表明任務(wù)進入運行態(tài)或延時態(tài),為I為阻塞態(tài),表明任務(wù)正在等待信號量或者消息隊列,如果延時計數(shù)寄存器由I變?yōu)?,阻塞狀態(tài)寄 存器置為0,表明任務(wù)由阻塞態(tài)進入運行態(tài);阻塞超時結(jié)果寄存器如果延時計數(shù)寄存器由I變?yōu)?,且阻塞狀態(tài)寄存器為1,則阻塞超時結(jié)果寄存器置為1,表明阻塞超時,否則為O ;延時計數(shù)寄存器通過設(shè)置延時計數(shù)寄存器,可以在任務(wù)延時態(tài)時指定任務(wù)延時時間,在任務(wù)阻塞態(tài)時設(shè)置任務(wù)阻塞等待時間,如果延時計數(shù)寄存器不為0,當CPU向時鐘脈沖寄存器寫I時,該寄存器值自動減I。本發(fā)明所達到的有益效果本發(fā)明充分利用FPGA的并行優(yōu)勢,當時鐘中斷到來時,只需要CPU向時鐘脈沖寄存器寫1,即可完成所有任務(wù)運行狀態(tài)管理,然后可以立即獲取當前最高優(yōu)先級任務(wù)的ID,將需要耗費CPU數(shù)百甚至數(shù)千處理周期降低到只需要2個處理周期,與操作系統(tǒng)負載輕重無關(guān),極大提高了操作系統(tǒng)的實時性。
圖I為本發(fā)明CPU與FPGA的連接示意圖。
具體實施例方式本發(fā)明通過分析uC/OS-II內(nèi)核,提出了一種硬件任務(wù)管理器,以加快內(nèi)核運行速度。目前大多嵌入式操作系統(tǒng)采用了 CPU+FPGA模式,在FPGA端可以方便的實現(xiàn)uC/OS-II任務(wù)管理器功能。CPU與FPGA以總線方式相連,CPU通過地址空間訪問FPGA的寄存器接口,控制硬件任務(wù)管理器,如圖I所示。硬件任務(wù)管理器包括全局管理模塊和任務(wù)管理模塊。全局管理模塊包括當前最高優(yōu)先級任務(wù)ID寄存器、時鐘脈沖寄存器。任務(wù)管理模塊有64個,每個uC/OS-II任務(wù)對應(yīng)一個任務(wù)管理模塊,每個任務(wù)管理模塊包含任務(wù)狀態(tài)寄存器、阻塞狀態(tài)寄存器、阻塞超時結(jié)果寄存器、延時計數(shù)寄存器。各寄存器地址偏移編碼如表I所示。表I
權(quán)利要求
1.一種基于UC/OS-II的硬件任務(wù)管理器,嵌入式操作系統(tǒng)包括CPU和FPGA,CPU與FPGA以總線方式相連,CPU通過地址空間訪問FPGA的寄存器接口,控制硬件任務(wù)管理器,其特征在于在FPGA端設(shè)置有硬件任務(wù)管理器,硬件任務(wù)管理器包括全局管理模塊和任務(wù)管理模塊,所述全局管理模塊包括當前最高優(yōu)先級任務(wù)ID寄存器和時鐘脈沖寄存器,所述任務(wù)管理模塊有64個,每個uC/OS-II任務(wù)對應(yīng)一個任務(wù)管理模塊,每個任務(wù)管理模塊包含任務(wù)狀態(tài)寄存器、阻塞狀態(tài)寄存器、阻塞超時結(jié)果寄存器和延時計數(shù)寄存器, 當前優(yōu)先級最高任務(wù)ID寄存器讀取當前優(yōu)先級最高任務(wù)ID寄存器得到當前最高任務(wù)的ID,最聞任務(wù)的ID是由各任務(wù)狀態(tài)同步編碼得到; 時鐘脈沖寄存器時鐘脈沖寄存器用于管理各任務(wù)狀態(tài),通知任務(wù)管理模塊有時鐘到來; 任務(wù)狀態(tài)寄存器任務(wù)狀態(tài)寄存器如果是0,表明任務(wù)狀態(tài)是掛起態(tài),否則是運行態(tài),CPU直接設(shè)置該寄存器,如果延時計數(shù)寄存器由I變?yōu)?,任務(wù)狀態(tài)寄存器置為1,表明任務(wù)由掛起態(tài)進入運行態(tài); 阻塞狀態(tài)寄存器阻塞狀態(tài)寄存器為O表明任務(wù)進入運行態(tài)或延時態(tài),阻塞狀態(tài)寄存器為I為阻塞態(tài),表明任務(wù)正在等待信號量或者消息隊列,如果延時計數(shù)寄存器由I變?yōu)?,阻塞狀態(tài)寄存器置為0,表明任務(wù)由阻塞態(tài)進入運行態(tài); 阻塞超時結(jié)果寄存器如果延時計數(shù)寄存器由I變?yōu)?,且阻塞狀態(tài)寄存器為1,則阻塞超時結(jié)果寄存器置為1,表明阻塞超時,否則為O ; 延時計數(shù)寄存器通過設(shè)置延時計數(shù)寄存器,可以在任務(wù)延時態(tài)時指定任務(wù)延時時間,在任務(wù)阻塞態(tài)時設(shè)置任務(wù)阻塞等待時間,如果延時計數(shù)寄存器不為0,當CPU向時鐘脈沖寄存器寫I時,該寄存器值自動減I。
全文摘要
本發(fā)明公開了一種基于uC/OS-II的硬件任務(wù)管理器,嵌入式操作系統(tǒng)包括CPU和FPGA,CPU與FPGA以總線方式相連,CPU通過地址空間訪問FPGA的寄存器接口,控制硬件任務(wù)管理器,其特征在于在FPGA端設(shè)置有硬件任務(wù)管理器,硬件任務(wù)管理器包括全局管理模塊和任務(wù)管理模塊,所述全局管理模塊包括當前最高優(yōu)先級任務(wù)ID寄存器和時鐘脈沖寄存器,所述任務(wù)管理模塊有64個,每個uC/OS-II任務(wù)對應(yīng)一個任務(wù)管理模塊,每個任務(wù)管理模塊包含任務(wù)狀態(tài)寄存器、阻塞狀態(tài)寄存器、阻塞超時結(jié)果寄存器和延時計數(shù)寄存器。本發(fā)明極大地提高了操作系統(tǒng)的實時性。
文檔編號G06F9/48GK102929714SQ20121039925
公開日2013年2月13日 申請日期2012年10月19日 優(yōu)先權(quán)日2012年10月19日
發(fā)明者姚艷松, 陳靖公, 雍太利, 朱學海 申請人:國電南京自動化股份有限公司