新四季網

一種構件化硬體實時作業系統的實現方法

2023-12-02 06:08:26

一種構件化硬體實時作業系統的實現方法
【專利摘要】本發明公開了一種構件化硬體實時作業系統的實現方法,該方法首先將實時作業系統分為硬體內核和軟體接口兩部分;然後在硬體內核中以構件化的方式實現實時作業系統內核的任務管理器、中斷管理器、計數信號量管理器、互斥信號量管理器、消息隊列管理器,硬體內核以寄存器接口模塊和軟體通信,以控制器鎖對各個管理器同步,管理器間使用標準的模塊間命令接口總線通信;最後實現處理器間計數信號量管理器和處理器間消息隊列管理器,實現多處理器實時作業系統硬體內核。本發明採用構件化方式實現硬體實時作業系統內核,在系統可裁剪性與可擴展性上取得較大提高,使硬體實時作業系統達到了軟體的靈活性。
【專利說明】一種構件化硬體實時作業系統的實現方法
【技術領域】
[0001]本發明屬於實時作業系統硬體化實現領域,涉及一種構件化硬體實時作業系統的實現方法。
【背景技術】
[0002]隨著嵌入式系統行業的不斷發展,實時作業系統RTOS (Real Time OperatingSystem)在工業控制、醫療器械、航空航天、汽車電子、家用電器等領域均得到了廣泛應用,並在嵌入式系統中佔有了較大份額。實時作業系統是指能在確定的時間內對外部觸發事件及時做出響應並執行相應任務的一類作業系統。RTOS之所以能在計算機嵌入式應用中廣泛使用,是因為RTOS能夠將任務分解成多任務,簡化了應用系統軟體的設計。RTOS使控制系統的實時性得以保證,良好的多任務設計,可以提高嵌入式系統的可靠性和安全性。
[0003]隨著應用領域的不斷深化和細化,各種複雜的應用場景對RTOS的性能和穩定性要求也在逐漸加強。通用的桌面作業系統在可靠性方面有較全面的考慮,以滿足複雜應用場景,來避免死鎖、惡意攻擊等。然而多數RTOS為了保證實時性等性能要求下,對系統的可靠性進行簡化處理,對應用程式的編寫者提出更高的技術要求,從而留下安全隱患。傳統的RTOS已無法同時滿足更高的實時性和可靠性要求。採用軟硬體協同手段,對RTOS功能模塊進行硬化處理及功能重構,是一種兼顧系統實時性及可靠性的有效手段。這也是當前RTOS研究的熱點之一。
[0004]20世紀90年代,國外有人提出了實時作業系統硬體化的概念,使用硬體邏輯電路或者時序電路實現傳統實時作業系統中的任務調度、中斷處理、資源管理等功能。之後成型的研究成果開始出現。2003年Paul Kohout將實時任務管理器硬體化,進行基於優先級和時間片的調度。2008年,解放軍信息工程學院的崔建華,基於「外部處理器+FPGA」的框架結構,設計了支持任務調度、中斷管理、定時器管理等功能的硬體RT0S。2011年,南丹麥大學的Anders Blaabjerg Lange設計並實現了較為完整的硬體實時作業系統HartOS,HartOS中包括了任務管理器、中斷管理器、資源管理器,並使用API Processor實現CPU與管理器之間的通信。2012年,國內哈爾濱理工大學的谷萍萍使用遺傳算法NSGA-1I作為軟硬體劃分算法,根據應用需要對UCOS II實時作業系統進行部分硬體化,在硬體資源消耗與性能提升之間取得平衡。
[0005]從應用角度來說,對一個實時作業系統的評價體現在五個方面:(I)系統性能,即系統實時性和完成各項內核操作的速度;(2)系統資源消耗,即系統所佔軟體內存空間和硬體資源量;(3)系統可靠性,即系統查錯能力和異常恢復能力;(4)系統可擴展性與可裁剪性,即系統根據應用需要進行裁剪或擴充的能力;(5)系統可復用性,即系統適用於不同運行環境的能力。但現有的大部分硬體實時作業系統,雖然有各自的優點,但都在一項或多項評價方面存在缺陷。或者是因為過多的總線通信導致性能降低,或者是因為系統耦合度過高而難於裁剪和擴展,或者是只能在特定硬體上實現,或者是對軟體操作檢查不足而存在可靠性上的缺陷,或者是在功能上與軟體實時作業系統存在較大差距。
【發明內容】

[0006]本發明的目的在於針對現有技術的不足,提供一種構件化硬體實時作業系統的實現方法。
[0007]本發明解決其技術問題所採用的技術方案是:一種構件化硬體實時作業系統的實現方法,該方法包括以下步驟:
(1)將實時作業系統分為硬體內核和軟體接口兩部分,並確定軟硬體通信方式;
(2)在硬體內核中,確定實時作業系統內核各個功能模塊的構件化實現方式,使其可以根據需要靈活地調整、裁剪和擴展;
(3)在硬體內核中,實現硬體任務管理器;
(4 )在硬體內核中,實現硬體中斷管理器;
(5)在硬體內核中,實現硬體計數信號量管理器;
(6)在硬體內核中,實現硬體互斥信號量管理器;
(7)在硬體內核中,實現硬體消息隊列管理器;
(8)通過包含多個單處理器硬體內核,實現多處理器的作業系統功能;
(9)在多處理器硬體內核中,實現處理器間計數信號量管理器;
(10)在多處理器硬體內核中,實現處理器間消息隊列管理器;
(11)實現完整的多處理器硬體實時作業系統內核。
[0008]本發明具有的有益效果是:
1、從系統性能上來說,本發明是全實時作業系統內核硬體化,最大程度減少了軟硬體通信開銷,比部分硬體化的實時作業系統在性能上有很大提高;
2、從系統資源消耗上,本發明使用構件化方式實現硬體實時作業系統內核,可以根據需要進行裁剪和調整大小,最大程度減少不必要的資源開銷,同時實時作業系統內核功能模塊的存儲器,全部使用FPGA片內RAM實現,與其它硬體實時作業系統相比,最大程度減少了硬體邏輯單元的消耗;
3、從系統可靠性上,本發明使用多種方式保證系統可靠性,包括在任務管理器中添加看門狗模塊、在任務管理器中添加堆棧指針檢查邏輯、在互斥信號量管理器中添加死鎖檢測、在硬體命令執行時進行各種狀態檢查和參數檢查,以充分利用硬體的可靠性來保證實時作業系統的可靠性;
4、從系統可擴展性與可裁剪性上,本發明使用構件化方式實現硬體實時作業系統內核,模塊間通過自定義總線通信,耦合度非常低,很適於擴展和裁剪;
5、從系統可復用性上,硬體內核完全使用硬體邏輯單元和片內RAM實現,不需要特殊的硬體支持,而且軟硬體通信方式被封裝在功能模塊之外,可以靈活地替換,不需要特殊的總線支持,因此可以達到很高的復用度。
[0009]6、本發明以少量硬體資源巧妙地實現了基於時間片的同優先級任務調度、各類資源基於優先級的任務阻塞隊列、互斥信號量的優先級繼承協議,突破了硬體實時作業系統複雜度低、難於與軟體實時作業系統相媲美的問題;
7、本發明使用構件化方式實現的硬體實時作業系統,可以方便地用於支持當前業界逐漸流行的多處理器與多核處理器系統,這對現有硬體實時作業系統來說是一種突破。【專利附圖】

【附圖說明】
[0010]附圖用來提供對本發明的進一步理解,並且構成說明書的一部分,與本發明的實施例共同用於解釋本發明,並不構成對本發明的限制。
[0011]圖1是在Altera FPGA晶片上的單處理器構件化實時作業系統架構圖。
[0012]圖2是在Xilinx FPGA晶片上的多處理器構件化實時作業系統架構圖。
【具體實施方式】
[0013]以下將結合附圖及實施例來詳細說明本說明的實施方式,藉此對本發明如何應用技術手段來解決技術問題,並達成技術效果的實現過程能充分理解並據以實施。
[0014]本發明用於實現構件化的硬體實時作業系統,具體包括如下步驟:
1、將實時作業系統分為硬體內核和軟體接口兩部分,並確定軟硬體通信方式。它包括以下子步驟:
(1.1)將硬體內核作為協處理器或者外部設備存在,當作為協處理器時,軟硬體通過處理器的通用寄存器進行通信,當作為外部設備時,軟硬體通過系統總線進行通信。
[0015](1.2)硬體內核將實時作業系統內核功能封裝成硬體命令,硬體命令包括命令號、輸入數據、返回值、輸出數據。軟體接口將硬體命令進一步封裝為系統調用,提供給應用程式使用。
[0016](1.3)除硬體命令通信外,硬體內核還提供兩個中斷信號給處理器,一個用於任務切換申請,一個用於異常處理申請;軟體接口負責進行硬體內核發出中斷的處理,在任務切換申請中斷信號帶來時,進行任務切換,在異常處理申請中斷信號到來時,進行異常處理;異常處理申請除了軟體處理,還可以直接觸發處理器復位
2、在硬體內核中,確定實時作業系統內核各個功能模塊的構件化實現方式,使其可以根據需要靈活地調整、裁剪和擴展。它包括以下子步驟:
(2.1)硬體內核使用寄存器接口模塊作為軟體接口和實時作業系統內核功能模塊間的接口。寄存器接口模塊將軟體接口傳入的硬體命令,轉換為相應功能模塊的處理器命令接口通信。實時作業系統內核功能模塊的處理器命令接口總線信號如下:cpu_target [7:0],處理器命令對應的功能模塊地址;cpu_input_wr,輸入數據寫信號;
cpu_input_data[31:0],輸入數據,在cpu_input_wr為I時有效,可寫入最多16個輸入數據;
cpu_cmd_data[31:0],命令編號;
cpu_cmd_req,命令發起請求,在輸入數據和命令編號就位後,可發起命令請求; cpu_cmd_ack,命令完成標誌; cpu_cmd_ret[7:0],命令返回值;
cpu_cmd_output_num[3:0],命令輸出數據個數,最多有15個輸出數據; cpu_output_rd,輸出數據讀信號;
cpu_output_data[31:0],數據數據,在cpu_output_rd為I時切換到下一輸出數據。
[0017](2.2)實時作業系統內核功能模塊通過標準的模塊間命令接口連接到模塊間命令接口總線上,每個實例化的內核功能模塊分配有一個獨立的地址,以進行模塊間命令通信;總線上同一時間只允許一個有一個主設備和一個從設備,主設備發起命令,從設備執行命令。模塊間命令接口總線信號如下:slave_target [7:0],從設備地址;input_wr,輸入數據寫信號;
input_data[31:0],輸入數據,在input_wr為I時有效,可寫入最多16個輸入數據; cmd_data[31:0],命令編號;
cmd_req,命令發起請求,在輸入數據和命令編號就位後,可發起命令請求; cmd_ack,命令完成標誌; cmd_ret [7:0],命令返回值;
cmd_output_num[3:0],命令輸出數據個數,最多有15個輸出數據; output_rd,輸出數據讀信號;
output_data[31:0],數據數據,在output_rd為I時切換到下一輸出數據。
[0018](2.3)每類實時作業系統功能模塊均包括以下幾部分結構:存儲器、控制器、處理器命令接口、模塊間命令主設備接口、模塊間命令從設備接口 ;其中,存儲器主要由FPGA的片內RAM實現;各種命令接口是用於模塊和外部的通信;模塊內所有部件均在控制器控制下動作,控制器用有限狀態機實現。
[0019](2.4)硬體內核使用一個控制器鎖模塊對所有實時作業系統功能模塊進行同步,當一個處理器命令、時間片滴答、異步喚醒事件或者任務調度請求到來時,會向控制器鎖模塊發出請求,控制器鎖模塊每次響應一個請求,各個實時作業系統功能模塊的控制器會根據控制器鎖狀態來完成相應的請求操作。
[0020](2.5)每類實時作業系統功能模塊可根據需要有若干個實例,每個實例化模塊中的資源數也可以靈活地配置。功能模塊間不存在主從關係,可靈活地添加、刪除或修改,功能模塊間只通過模塊間命令接口總線進行通信,保持低的耦合度。在一個單處理器硬體內核中,實現一個任務管理器、若干個中斷管理器、若干個計數信號量管理器、若干個互斥信號量管理器和若干個消息隊列管理器。
[0021]3、在硬體內核中,實現硬體任務管理器。它包括以下子步驟:
(3.1)將硬體任務管理器劃分為以下子模塊:任務存儲器、任務控制器、時鐘生成器、看門狗定時器、任務調度器、處理器命令接口、模塊間命令主設備接口、模塊間命令從設備接□。
[0022](3.2)實現任務存儲器。任務存儲器中存儲每個任務的控制塊信息,包括任務狀態、任務原始優先級、任務繼承優先級、任務實際優先級、任務阻塞資源編號、任務延時時間片個數、任務輪轉時間片個數、任務堆棧指針下限、任務堆棧指針上限、任務堆棧指針。除此之外,任務存儲器還包括基於任務實際優先級的樹狀優先級比較器,可以選擇特定任務位圖中的最高優先級任務位圖;當輸入為就緒任務位圖時,輸出為最高優先級的就緒任務位圖,實現基於優先級的任務搶佔調度。
[0023](3.3)實現時鐘生成器,時鐘生成器根據時間片大小設置,每隔時間片大小的時間發出一個tick_sig上升沿信息,以更新任務的延時數據。在當前任務的輪轉時間片用完後,發出調度請求,以觸發基於時間片的同優先級任務輪轉調度。[0024](3.4)實現看門狗定時器。看門狗計數值在每個tick_sig減一,減到零時發出異常處理申請中斷信號,看門狗計數值在設置為零時不使能。
[0025](3.5)實現任務調度器。任務調度器接收任務存儲器輸出的最高優先級的就緒任務位圖,並存儲任務輪轉位圖,以實現基於優先級的任務搶佔調度和基於時間片的同優先級任務輪轉調度;任務調度器輸出當前任務號和最高優先級就緒任務號,並在當前任務不是最高優先級就緒任務時發出任務切換申請中斷信號。
[0026](3.6)實現任務控制器。任務控制器控制任務管理器中其餘子模塊的動作。它通過一個有限狀態機實現,可以完成處理器命令、其它模塊傳入的命令、任務調度操作、tick_sig觸發的任務延時信息調整操作。
[0027](3.7)任務管理器實現以下處理器命令:任務創建命令、任務刪除命令、任務掛起命令、任務恢復命令、任務延時命令、任務延時取消命令、任務優先級修改命令、任務讓出處理器命令、任務輪轉時間片個數設置命令、任務控制塊查詢命令、任務管理器復位命令。
[0028](3.8)任務管理器實現以下模塊間命令:任務阻塞命令、帶超時時間的任務阻塞命令、任務喚醒命令、任務阻塞位圖中選擇任務喚醒命令、基於互斥信號量的任務阻塞命令、基於互斥信號量的帶超時時間任務阻塞命令、基於互斥信號量的任務喚醒命令。
[0029]4、在硬體內核中,實現硬體中斷管理器。它包括以下子步驟:
(4.1)將硬體中斷管理器劃分為以下子模塊:中斷存儲器、中斷控制器、異步事件生成器、處理器命令接口、模塊間命令主設備接口、模塊間命令從設備接口。
[0030](4.2)實現中斷存儲器。中斷存儲器中存儲每個異步事件的控制塊信息,包括阻塞在異步事件上的任務號。
[0031](4.3)實現異步事件生成器;異步事件生成器中包含32個外部中斷輸入信號,可以設定為上升沿觸發或下降沿觸發;異步事件標誌可以屏蔽、置位和清除;異步事件標誌在外部中斷輸入信號滿足觸發條件時會置位;當置位的異步事件上有阻塞的任務時,會發出異步事件任務喚醒請求給控制器鎖模塊,申請相應處理。
[0032](4.4)實現中斷控制器。中斷控制器控制中斷管理器中其餘子模塊的動作。它通過一個有限狀態機實現,可以完成處理器命令、其它模塊傳入的命令、異步事件任務喚醒操作。
[0033](4.5)中斷管理器實現以下處理器命令:異步事件上任務阻塞命令、異步事件上帶超時時間的任務阻塞命令、異步事件屏蔽命令、異步事件屏蔽讀取命令、異步事件觸發方式設置命令、異步事件觸發方式讀取命令、異步事件標誌置位命令、異步事件標誌清除命令、異步事件標誌讀取命令、中斷控制塊查詢命令、中斷管理器復位命令。
[0034](4.6)中斷管理器實現以下模塊間命令:任務阻塞取消命令。
[0035]5、在硬體內核中,實現硬體計數信號量管理器。它包括以下子步驟:
(5.1)將硬體計數信號量管理器劃分為以下子模塊:計數信號量存儲器、計數信號量控制器、處理器命令接口、模塊間命令主設備接口、模塊間命令從設備接口。
[0036](5.2)實現計數信號量存儲器。計數信號量存儲器中存儲每個計數信號量的控制塊信息,包括信號量計數值、阻塞任務位圖。
[0037](5.3)實現計數信號量控制器。計數信號量控制器控制計數信號量管理器中其餘子模塊的動作。它通過一個有限狀態機實現,可以完成處理器命令、其它模塊傳入的命令。[0038](5.4)計數信號量管理器實現以下處理器命令:計數信號量創建命令、計數信號量刪除命令、計數信號量上任務阻塞命令、計數信號量上帶超時時間的任務阻塞命令、計數信號量釋放命令、計數信號量控制塊查詢命令、計數信號量管理器復位命令。
[0039](5.5)計數信號量管理器實現以下模塊間命令:任務阻塞取消命令。
[0040]6、在硬體內核中,實現硬體互斥信號量管理器。它包括以下子步驟:
(6.1)將硬體互斥信號量管理器劃分為以下子模塊:互斥信號量存儲器、任務支持關係存儲器、互斥信號量控制器、處理器命令接口、模塊間命令主設備接口、模塊間命令從設備接口。
[0041](6.2)實現互斥信號量存儲器。互斥信號量存儲器中存儲每個互斥信號量的控制塊信息,包括互斥信號量擁有者任務號、阻塞任務位圖。
[0042](6.3)實現任務支持關係存儲器。任務支持關係存儲器中存儲因為互斥信號量佔有阻塞導致的任務支持關係,以及推導出的傳遞的任務支持關係;任務支持關係是指,阻塞在某個互斥信號量上的任務支持佔有該互斥信號量的任務;傳遞的任務支持關係,是指如果任務A支持任務B,任務B支持任務C,則任務A也支持任務C ;針對每個任務,記錄支持它的任務位圖,任務繼承支持它的任務的優先級,以實現防止優先級逆轉的優先級繼承協議;通過任務支持關係推導出傳遞任務支持關係,如果存在對稱的傳遞任務支持關係,則表示互斥信號量申請死鎖,會發出異步處理申請中斷信號。
[0043](6.4)實現互斥信號量控制器。互斥信號量控制器控制互斥信號量管理器中其餘子模塊的動作。它通過一個有限狀態機實現,可以完成處理器命令、其它模塊傳入的命令。
[0044](6.5)互斥信號量管理器實現以下處理器命令:互斥信號量創建命令、互斥信號量刪除命令、互斥信號量上任務阻塞命令、互斥信號量上帶超時時間的任務阻塞命令、互斥信號量釋放命令、互斥信號量控制塊查詢命令、互斥信號量管理器復位命令。
[0045](6.6)互斥信號量管理器實現以下模塊間命令:任務阻塞取消命令。
[0046]7、在硬體內核中,實現硬體消息隊列管理器。它包括以下子步驟:
(7.1)將硬體消息隊列管理器劃分為以下子模塊:消息隊列存儲器、消息隊列控制器、處理器命令接口、模塊間命令主設備接口、模塊間命令從設備接口。
[0047](7.2)實現消息隊列存儲器。消息隊列存儲器中存儲每個消息隊列的控制塊信息,包括消息隊列緩衝區、消息隊列讀指針、消息隊列寫指針、消息隊列的任務阻塞位圖。
[0048](7.3)實現消息隊列控制器。消息隊列控制器控制消息隊列管理器中其餘子模塊的動作。它通過一個有限狀態機實現,可以完成處理器命令、其它模塊傳入的命令。
[0049](7.4)消息隊列管理器實現以下處理器命令:消息隊列創建命令、消息隊列刪除命令、消息隊列上讀消息命令、消息隊列上帶超時時間的讀消息命令、消息隊列上寫消息命令、消息隊列控制塊查詢命令、消息隊列管理器復位命令。
[0050](7.5)消息隊列管理器實現以下模塊間命令:任務阻塞取消命令。
[0051]8、通過包含多個單處理器硬體內核,實現多處理器的作業系統功能。它包括以下子步驟:
(8.1)對單處理器硬體內核進行封裝;每個單處理器硬體內核,包括一個寄存器接口模塊、一個控制器鎖模塊、一個任務管理器、若干個中斷管理器、若干個計數信號量管理器、若干個互斥信號量管理器和若干個消息隊列管理器。[0052](8.2)根據配置,在硬體中實例化一到多個單處理器硬體內核,每個單處理器硬體內核有獨立的參數配置,從而實現多處理器實時作業系統硬體內核。
[0053]9、在多處理器硬體內核中,實現處理器間計數信號量管理器。它包括以下子步驟:
(9.1)將處理器間計數信號量管理器劃分為以下子模塊:處理器間計數信號量存儲器、處理器間計數信號量控制器、處理器命令接口、模塊間命令主設備接口。
[0054](9.2)實現處理器間計數信號量存儲器。處理器間計數信號量存儲器中存儲每個計數信號量的控制塊信息,包括信號量計數值、每個處理器上的阻塞任務位圖、每個處理器上阻塞任務的最高優先級。
[0055](9.3)實現處理器間計數信號量控制器。處理器間計數信號量控制器控制處理器間計數信號量管理器中其餘子模塊的動作。它通過一個有限狀態機實現,可以完成處理器命令。
[0056](9.4)處理器間計數信號量管理器實現以下處理器命令:處理器間計數信號量創建命令、處理器間計數信號量刪除命令、處理器間計數信號量上任務阻塞命令、處理器間計數信號量釋放命令、處理器間計數信號量控制塊查詢命令、處理器間計數信號量管理器復位命令。
[0057]10、在多處理器硬體內核中,實現處理器間消息隊列管理器。它包括以下子步驟: (10.1)將處理器間消息隊列管理器劃分為以下子模塊:處理器間消息隊列存儲器、處
理器間消息隊列控制器、處理器命令接口、模塊間命令主設備接口。
[0058](10.2)實現處理器間消息隊列存儲器。處理器間消息隊列存儲器中存儲每個消息隊列的控制塊信息,包括消息隊列緩衝區、消息隊列讀指針、消息隊列寫指針、每個處理器上的阻塞任務位圖、每個處理器上阻塞任務的最高優先級。
[0059]( 10.3)實現處理器間消息隊列控制器。處理器間消息隊列控制器控制處理器間消息隊列管理器中其餘子模塊的動作。它通過一個有限狀態機實現,可以完成處理器命令。
[0060](10.4)處理器間消息隊列管理器實現以下處理器命令:處理器間計數消息隊列創建命令、處理器間消息隊列刪除命令、處理器間消息隊列上讀消息命令、處理器間消息隊列上寫消息命令、處理器間消息隊列控制塊查詢命令、處理器間消息隊列管理器復位命令。
[0061]11、實現完整的多處理器硬體實時作業系統內核。它包括以下子步驟:
(11.1)在多處理器內核中,包括一到多個單處理器內核,一個寄存器接口模塊、若干個處理器間計數信號量管理器和若干個處理器間消息隊列管理器。每個單處理器內核中,包括一個寄存器接口模塊、一個控制器鎖模塊、一個任務管理器、若干個中斷管理器、若干個計數信號量管理器、若干個互斥信號量管理器和若干個消息隊列管理器。
[0062](11.2)在單處理器內核中,出現處理器命令、異步事件任務喚醒、任務調度請求、系統時間片滴答事件時,對單處理器內核中的控制器鎖模塊發出申請,加鎖後由相應控制器完成操作。在處理器間寄存器接口模塊接收到處理器命令時,需要對所有處理器的控制器鎖模塊發出申請,全部加鎖成功後,才能由相應控制器完成操作。
[0063]下面舉出兩個本發明實現的構件化硬體實時作業系統的具體實例。如圖1所示,實例系統在Altera公司的型號為Cyclone IV EP4CE115F29C7的FPGA晶片上實現。軟體接口運行在NIOS II軟核處理器上,硬體內核以外部設備的方式存在,通過Avalon系統總線和處理器交互。如圖2所示,實例系統在Xilinx公司的型號為Spartan 6 XC6SLX16的FPGA晶片上實現。軟體接口運行在兩個Microblaze軟核處理器上,硬體內核以外部設備的方式存在,通過兩條AX1-Stream串行流總線、一條AXI總線和處理器交互。
[0064]表I為本發明實現的構件化硬體實時作業系統與一些已有硬體實時作業系統的特性對比。其中Sierra Kernel是唯一的商用化硬體實時作業系統,HartOS是2011年南丹麥大學實現的開源硬體實時作業系統,UCOS II實時作業系統硬體化是國內較流行的硬體實時作業系統實現方式。
[0065]表1:
【權利要求】
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)在單處理器內核中,出現處理器命令、異步事件任務喚醒、任務調度請求、系統時間片滴答事件時,對單處理器內核中的控制器鎖模塊發出申請,加鎖後由相應控制器完成操作;在處理器間寄存器接口模塊接收到處理器命令時,需要對所有處理器的控制器鎖模塊發出申請,全部加鎖成功後,由相應控制器完成被申請的操作。
【文檔編號】G06F9/48GK103440171SQ201310396603
【公開日】2013年12月11日 申請日期:2013年8月25日 優先權日:2013年8月25日
【發明者】蔡銘, 崔亞斌 申請人:浙江大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀