[發明專利]一種構件化硬件實時操作系統的實現方法有效
| 申請號: | 201310396603.3 | 申請日: | 2013-08-25 |
| 公開(公告)號: | CN103440171A | 公開(公告)日: | 2013-12-11 |
| 發明(設計)人: | 蔡銘;崔亞斌 | 申請(專利權)人: | 浙江大學 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48 |
| 代理公司: | 杭州求是專利事務所有限公司 33200 | 代理人: | 周烽 |
| 地址: | 310058 浙江*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 構件 硬件 實時 操作系統 實現 方法 | ||
1.一種構件化硬件實時操作系統的實現方法,其特征在于,該方法包括如下步驟:
(1)將實時操作系統分為硬件內核和軟件接口兩部分,并確定軟硬件通信方式;它包括以下子步驟:
(1.1)將硬件內核作為協處理器或者外部設備存在,當作為協處理器時,軟硬件通過處理器的通用寄存器進行通信,當作為外部設備時,軟硬件通過系統總線進行通信;
(1.2)硬件內核將實時操作系統內核功能封裝成硬件命令,硬件命令包括命令號、輸入數據、返回值、輸出數據等;軟件接口將硬件命令進一步封裝為系統調用,提供給應用程序使用;
(1.3)除硬件命令通信外,硬件內核還提供兩個中斷信號給處理器,一個用于任務切換申請,一個用于異常處理申請;軟件接口負責進行硬件內核發出中斷的處理,在任務切換申請中斷信號帶來時,進行任務切換,在異常處理申請中斷信號到來時,進行異常處理;異常處理申請除了軟件處理,還可以直接觸發處理器復位;
(2)在硬件內核中,確定實時操作系統內核各個功能模塊的構件化實現方式,使其可以根據需要靈活地調整、裁剪和擴展等;它包括以下子步驟:
(2.1)硬件內核使用寄存器接口模塊作為軟件接口和實時操作系統內核功能模塊間的接口;寄存器接口模塊將軟件接口傳入的硬件命令,轉換為相應功能模塊的處理器命令接口通信;
(2.2)實時操作系統內核功能模塊通過標準的模塊間命令接口連接到模塊間命令接口總線上,每個實例化的內核功能模塊分配有一個獨立的地址,以進行模塊間命令通信;總線上同一時間只允許一個有一個主設備和一個從設備,主設備發起命令,從設備執行命令;
(2.3)每類實時操作系統功能模塊均包括以下幾部分結構:存儲器、控制器、處理器命令接口、模塊間命令主設備接口、模塊間命令從設備接口;其中,存儲器主要由FPGA的片內RAM實現;各種命令接口是用于模塊和外部的通信;模塊內所有部件均在控制器控制下動作,控制器用有限狀態機實現;
(2.4)硬件內核使用一個控制器鎖模塊對所有實時操作系統內核功能模塊進行同步,當一個處理器命令、時間片滴答、異步喚醒事件或者任務調度請求到來時,會向控制器鎖模塊發出請求,控制器鎖模塊每次響應一個請求,各個實時操作系統功能模塊的控制器會根據控制器鎖狀態來完成相應的請求操作;
(2.5)在一個單處理器硬件內核中,實現一個任務管理器、若干個中斷管理器、若干個計數信號量管理器、若干個互斥信號量管理器和若干個消息隊列管理器;
(3)在硬件內核中,實現硬件任務管理器;它包括以下子步驟:
(3.1)將硬件任務管理器劃分為以下子模塊:任務存儲器、任務控制器、時鐘生成器、看門狗定時器、任務調度器、處理器命令接口、模塊間命令主設備接口、模塊間命令從設備接口;
(3.2)實現任務存儲器:任務存儲器中存儲每個任務的控制塊信息,包括任務狀態、任務原始優先級、任務繼承優先級、任務實際優先級、任務阻塞資源編號、任務延時時間片個數、任務輪轉時間片個數、任務堆棧指針下限、任務堆棧指針上限、任務堆棧指針;除此之外,任務存儲器還包括基于任務實際優先級的樹狀優先級比較器,可以選擇特定任務位圖中的最高優先級任務位圖;當輸入為就緒任務位圖時,輸出為最高優先級的就緒任務位圖,實現基于優先級的任務搶占調度;
(3.3)實現時鐘生成器,時鐘生成器根據時間片大小設置,每隔時間片大小的時間發出一個tick_sig上升沿信號,以更新任務的延時數據;在當前任務的輪轉時間片用完后,發出任務調度請求,以觸發基于時間片的同優先級任務輪轉調度;
(3.4)實現看門狗定時器;看門狗計數值在每個tick_sig減一,到零時發出異常處理申請中斷信號,看門狗計數值在設置為零時不使能;
(3.5)實現任務調度器;任務調度器接收任務存儲器輸出的最高優先級的就緒任務位圖,并存儲任務輪轉位圖,以實現基于優先級的任務搶占調度和基于時間片的同優先級任務輪轉調度;任務調度器輸出當前任務號和最高優先級就緒任務號,并在當前任務不是最高優先級就緒任務時發出任務切換申請中斷信號;
(3.6)實現任務控制器;任務控制器控制任務管理器中其余子模塊的動作;它通過一個有限狀態機實現,可以完成處理器命令、其它模塊傳入的命令、任務調度操作、tick_sig觸發的任務延時信息調整操作;
(3.7)任務管理器實現以下處理器命令:任務創建命令、任務刪除命令、任務掛起命令、任務恢復命令、任務延時命令、任務延時取消命令、任務優先級修改命令、任務讓出處理器命令、任務輪轉時間片個數設置命令、任務控制塊查詢命令、任務管理器復位命令;
(3.8)任務管理器實現以下模塊間命令:任務阻塞命令、帶超時時間的任務阻塞命令、任務喚醒命令、任務阻塞位圖中選擇任務喚醒命令、基于互斥信號量的任務阻塞命令、基于互斥信號量的帶超時時間任務阻塞命令、基于互斥信號量的任務喚醒命令;
(4)在硬件內核中,實現硬件中斷管理器;它包括以下子步驟:
(4.1)將硬件中斷管理器劃分為以下子模塊:中斷存儲器、中斷控制器、異步事件生成器、處理器命令接口、模塊間命令主設備接口、模塊間命令從設備接口;
(4.2)實現中斷存儲器;中斷存儲器中存儲每個異步事件的控制塊信息,包括阻塞在異步事件上的任務號;
(4.3)實現異步事件生成器;異步事件生成器中包含32個外部中斷輸入信號,可以設定為上升沿觸發或下降沿觸發;異步事件標志可以屏蔽、置位和清除;異步事件標志在外部中斷輸入信號滿足觸發條件時會置位;當置位的異步事件上有阻塞的任務時,會發出異步事件任務喚醒請求給控制器鎖模塊,申請相應處理;
(4.4)實現中斷控制器;中斷控制器控制中斷管理器中其余子模塊的動作;它通過一個有限狀態機實現,可以完成處理器命令、其它模塊傳入的命令、異步事件任務喚醒操作;
(4.5)中斷管理器實現以下處理器命令:異步事件上任務阻塞命令、異步事件上帶超時時間的任務阻塞命令、異步事件屏蔽命令、異步事件屏蔽讀取命令、異步事件觸發方式設置命令、異步事件觸發方式讀取命令、異步事件標志置位命令、異步事件標志清除命令、異步事件標志讀取命令、中斷控制塊查詢命令、中斷管理器復位命令;
(4.6)中斷管理器實現以下模塊間命令:任務阻塞取消命令;
(5)在硬件內核中,實現硬件計數信號量管理器;它包括以下子步驟:
(5.1)將硬件計數信號量管理器劃分為以下子模塊:計數信號量存儲器、計數信號量控制器、處理器命令接口、模塊間命令主設備接口、模塊間命令從設備接口;
(5.2)實現計數信號量存儲器;計數信號量存儲器中存儲每個計數信號量的控制塊信息,包括信號量計數值、阻塞任務位圖;
(5.3)實現計數信號量控制器;計數信號量控制器控制計數信號量管理器中其余子模塊的動作;它通過一個有限狀態機加以實現,可以完成處理器命令、其它模塊傳入的命令;
(5.4)計數信號量管理器實現以下處理器命令:計數信號量創建命令、計數信號量刪除命令、計數信號量上任務阻塞命令、計數信號量上帶超時時間的任務阻塞命令、計數信號量釋放命令、計數信號量控制塊查詢命令、計數信號量管理器復位命令;
(5.5)計數信號量管理器實現以下模塊間命令:任務阻塞取消命令;
(6)在硬件內核中,實現硬件互斥信號量管理器;它包括以下子步驟:
(6.1)將硬件互斥信號量管理器劃分為以下子模塊:互斥信號量存儲器、任務支持關系存儲器、互斥信號量控制器、處理器命令接口、模塊間命令主設備接口、模塊間命令從設備接口;
(6.2)實現互斥信號量存儲器;互斥信號量存儲器中存儲每個互斥信號量的控制塊信息,包括互斥信號量擁有者任務號、阻塞任務位圖;
(6.3)實現任務支持關系存儲器;任務支持關系存儲器中存儲因為互斥信號量占有阻塞導致的任務支持關系,以及推導出的傳遞的任務支持關系;任務支持關系是指,阻塞在某個互斥信號量上的任務支持占有該互斥信號量的任務;傳遞的任務支持關系,是指如果任務A支持任務B,任務B支持任務C,則任務A也支持任務C;針對每個任務,記錄支持它的任務位圖,任務繼承支持它的任務的優先級,以實現防止優先級逆轉的優先級繼承協議;通過任務支持關系推導出傳遞任務支持關系,如果存在對稱的傳遞任務支持關系,則表示互斥信號量申請死鎖,會發出異步處理申請中斷信號;
(6.4)實現互斥信號量控制器;互斥信號量控制器控制互斥信號量管理器中其余子模塊的動作;它通過一個有限狀態機實現,可以完成處理器命令、其它模塊傳入的命令;
(6.5)互斥信號量管理器實現以下處理器命令:互斥信號量創建命令、互斥信號量刪除命令、互斥信號量上任務阻塞命令、互斥信號量上帶超時時間的任務阻塞命令、互斥信號量釋放命令、互斥信號量控制塊查詢命令、互斥信號量管理器復位命令;
(6.6)互斥信號量管理器實現以下模塊間命令:任務阻塞取消命令;
(7)在硬件內核中,實現硬件消息隊列管理器;它包括以下子步驟:
(7.1)將硬件消息隊列管理器劃分為以下子模塊:消息隊列存儲器、消息隊列控制器、處理器命令接口、模塊間命令主設備接口、模塊間命令從設備接口;
(7.2)實現消息隊列存儲器;消息隊列存儲器中存儲每個消息隊列的控制塊信息,包括消息隊列緩沖區、消息隊列讀指針、消息隊列寫指針、消息隊列的任務阻塞位圖;
(7.3)實現消息隊列控制器;消息隊列控制器控制消息隊列管理器中其余子模塊的動作;它通過一個有限狀態機實現,可以完成處理器命令、其它模塊傳入的命令;
(7.4)消息隊列管理器實現以下處理器命令:消息隊列創建命令、消息隊列刪除命令、消息隊列上讀消息命令、消息隊列上帶超時時間的讀消息命令、消息隊列上寫消息命令、消息隊列控制塊查詢命令、消息隊列管理器復位命令;
(7.5)消息隊列管理器實現以下模塊間命令:任務阻塞取消命令;
(8)通過包含多個單處理器硬件內核,實現多處理器的操作系統功能;它包括以下子步驟:
(8.1)對單處理器硬件內核進行封裝;每個單處理器硬件內核,包括一個寄存器接口模塊、一個控制器鎖模塊、一個任務管理器、若干個中斷管理器、若干個計數信號量管理器、若干個互斥信號量管理器和若干個消息隊列管理器;
(8.2)根據配置,在硬件中實例化一到多個單處理器硬件內核,每個單處理器硬件內核有獨立的參數配置,從而實現多處理器實時操作系統硬件內核;
(9)在多處理器硬件內核中,實現處理器間計數信號量管理器;它包括以下子步驟:
(9.1)將處理器間計數信號量管理器劃分為以下子模塊:處理器間計數信號量存儲器、處理器間計數信號量控制器、處理器命令接口、模塊間命令主設備接口;
(9.2)實現處理器間計數信號量存儲器;處理器間計數信號量存儲器中存儲每個計數信號量的控制塊信息,包括信號量計數值、每個處理器上的阻塞任務位圖、每個處理器上阻塞任務的最高優先級;
(9.3)實現處理器間計數信號量控制器;處理器間計數信號量控制器控制處理器間計數信號量管理器中其余子模塊的動作;它通過一個有限狀態機實現,可以完成處理器命令;
(9.4)處理器間計數信號量管理器實現以下處理器命令:處理器間計數信號量創建命令、處理器間計數信號量刪除命令、處理器間計數信號量上任務阻塞命令、處理器間計數信號量釋放命令、處理器間計數信號量控制塊查詢命令、處理器間計數信號量管理器復位命令;
(10)在多處理器硬件內核中,實現處理器間消息隊列管理器;它包括以下子步驟:
(10.1)將處理器間消息隊列管理器劃分為以下子模塊:處理器間消息隊列存儲器、處理器間消息隊列控制器、處理器命令接口、模塊間命令主設備接口;
(10.2)實現處理器間消息隊列存儲器;處理器間消息隊列存儲器中存儲每個消息隊列的控制塊信息,包括消息隊列緩沖區、消息隊列讀指針、消息隊列寫指針、每個處理器上的阻塞任務位圖、每個處理器上阻塞任務的最高優先級;
(10.3)實現處理器間消息隊列控制器;處理器間消息隊列控制器控制處理器間消息隊列管理器中其余子模塊的動作;它通過一個有限狀態機實現,可以完成處理器命令;
(10.4)處理器間消息隊列管理器實現以下處理器命令:處理器間計數消息隊列創建命令、處理器間消息隊列刪除命令、處理器間消息隊列上讀消息命令、處理器間消息隊列上寫消息命令、處理器間消息隊列控制塊查詢命令、處理器間消息隊列管理器復位命令;
(11)實現完整的多處理器硬件實時操作系統內核;它包括以下子步驟:
(11.1)在多處理器內核中,包括一到多個單處理器內核,一個寄存器接口模塊、若干個處理器間計數信號量管理器和若干個處理器間消息隊列管理器;每個單處理器內核中,包括一個寄存器接口模塊、一個控制器鎖模塊、一個任務管理器、若干個中斷管理器、若干個計數信號量管理器、若干個互斥信號量管理器和若干個消息隊列管理器;
(11.2)在單處理器內核中,出現處理器命令、異步事件任務喚醒、任務調度請求、系統時間片滴答事件時,對單處理器內核中的控制器鎖模塊發出申請,加鎖后由相應控制器完成操作;在處理器間寄存器接口模塊接收到處理器命令時,需要對所有處理器的控制器鎖模塊發出申請,全部加鎖成功后,由相應控制器完成被申請的操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江大學,未經浙江大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310396603.3/1.html,轉載請聲明來源鉆瓜專利網。





