專利名稱:一種基于多dsp處理器平臺的分布式實時多任務操作系統的制作方法
—種基于多DSP處理器平臺的分布式實時多任務操作系統技術領域
本發明屬于嵌入式操作系統領域,尤其涉及基于多DSP處理器平臺的分布式實時 多任務操作系統。
背景技術:
隨著現今DSP技術的發展,DSP被越來越多的用于消費電子、通信、軍事等領域,基 于DSP系統的軟件開發經歷了無操作系統開發和基于操作系統開發兩個階段。在無操作系 統的開發階段中,系統沒有操作系統的支持,通常通過匯編語言來訪問底層硬件資源。這類 系統一般功能單一,針對性強,且無用戶接口。在有操作系統的開發階段中,系統能夠支持 多任務處理,具有通信管理、內存管理、調度管理等功能,開發人員無須了解底層硬件結構 便能進行軟件開發。盡管基于操作系統的DSP開發有若干優勢,在實時性要求非常強的場 合,系統一般還是會采取無操作系統的開發方法,這是因為使用操作系統會帶來額外的開 銷。VDK (VisualDSPKernel)是ADI公司推出的商業操作,隨VisualDSP—起出售。其特點 是(I)基于優先級的調度系統,對于不同優先級的任務來說,處理器資源優先分配給高優 先級任務,對于同一優先級任務來說,處理器輪流分配給不同任務。(2)使用信號量、消息通 信機制完成線程間同步。
經過對現有技術的研究,VDK具有一下不足之處
(I)作為一款商業操作系統,VDK并不開源,因而不能根據實際處理任務需求對其 進行改進(2)對多DSP處理器平臺支持不好(3)實時性差,面對高速信號處理系統性能有 待提高(4)支持任務個數有限,無法處理復雜的多任務處理任務。發明內容
本發明針對現有技術存在的上述不足,提出一種基于多DSP處理器平臺的分布式 實時多任務處理系統,采用非搶占調度策略作為調度內核,支持任意多個處理任務,改善了 系統實時性。
本發明的特征在于,這是一個在多DSP處理器平臺的每個DSP處理器上對內部建 立的多個處理模塊進行實時調度的分布式實時操作系統,包括任務調度模塊,存儲管理模 塊和任務通信模塊,其中
存儲管理模塊,包括相互連接的內存池管理單元和內存池單元,以傳輸任務訪問 請求,其中
內存池單元,共有N個內存塊,分別存儲每個處理任務的任務輸入數據,每個處理 任務的任務輸出數據和所有所述DSP處理器任務的中間變量緩存數據,
內存池管理單元,用以維護分別記錄了 N個內存塊使用情況的共N個使用信息 mem_use_info的數據結構,
所述內存池管理單元按以下步驟進行管理
第一步各內存塊初始化,
第二步判斷是否接收到包括對內存池的存儲空間的申請及其容量在內的內存使 用信息
若不存在,則返回第一步,
若存在,則查找所述各條使用信息中是否存在滿足申請大小的內存塊,若不存在, 則返回第一步,若存在,則獲取內存起始地址Ptr,
第三步,更新第二步中找到的內存塊中的內存使用信息,返回第一步,
任務通信管理模塊,包括任務信息通信單元,和任務數據通信單元,其中
任務信息通信單元,傳輸來自主控機或者所述任務調度模塊的定長的任務信息 字,長度為64字,包括發送任務編號、發送任務的DSP處理器、接受任務編號、接受任務的 DSP處理器、任務數據長度和任務模式碼,
任務數據通信單元,傳輸來自所述主控機或DSP處理器的任務長度的任務數據,
所述任務通信單元,按以下步驟與作為發送節點的所述主控機進行任務通信
第一步,所述任務通信單元獲得所述任務信息字,
第二步,作為所述發送節點的主控機或DSP處理器生成任務信息字并發送,
第三步,所述任務信息通信單元接受任務信息字,并配置所述任務數據通信單元,
第四步,所述任務通信單元接受來自所述發送單元的指定長度、指定任務的數據,
任務調度模塊,包括調度模塊單元、等待態任務隊列單元、就緒態任務隊列單元 和輸出態任務隊列單元,所述任務調度模塊按以下步驟進行任務調度執行,
第一步,初始狀態下,所述調度執行單元把從所述任務通信模塊接收到的所有任 務置于等待態任務隊列單元,
第二步,所述調度執行單元掃描所述等待態任務隊列單元,判斷是否存在準備就 緒的任務,
若有準備就緒的任務,則把所述準備就緒任務置于就緒態任務隊列單元,
若沒有,則返回第一步,
第三步,所述調度執行單元掃描所述就緒態任務隊列單元,判斷是否存在已處理 就緒的任務
若存在則把所述已處理就緒的任務置于輸出態任務隊列中,
若沒有,返回第二步,
第四步,所述調度執行單元掃描輸出態任務隊列單元,判斷是否存在等待輸出的 任務,
若有,則把所述等待輸出的任務發送給所述任務信息通信單元和任務數據通信 單元,供向所述主控機或DSP處理器節點發送用,
若沒有,則返回第三步,
第五步,循環第二步到第四步,一直到全部處理并輸出所有已接收的任務后,返回第一步。
本發明具有以下有益效果及優點
在多DSP處理器平臺的一個處理節點上,可以同時處理多個任務模塊,對各個任 務模塊進行實時調度并保證每個任務模塊都能正確運行;分布式實時多任務處理系統保證 處理過程滿足雷達信號處理的實時性要求。
圖1為分布式實時操作系統的結構框圖2為分布式實時操作系統存儲管理模塊框圖3為分布式實時操作系統任務通信流程圖4為分布式實時操作系統多任務調度方法流程圖。
具體實施方式
本發明是通過以下技術方案實現的,本發明包括存儲管理模塊、任務通信模塊、 任務調度模塊,其中存儲管理模塊與處理任務相連接并傳輸內存訪問信息,任務調度模塊 和任務通信模塊相連接并傳輸任務數據通信信息。
所述的任務存儲管理模塊包括內存池管理單元和內存池單元,其中內存池管理 單元和內存池單元連接并傳輸內存訪問請求信息。
所述的任務通信模塊管理模塊包括任務信息通信單元和任務數據通信單元,任 務信息通信單元傳輸定長的任務信息字,任務數據通信單元傳輸任意長度的任務數據。任 務間的通信有以下步驟
步驟1:接收節點任務信息通信單元等待接受任務信息字;
步驟2 :發送節點任務信息通信單元生成任務信息字并發送;
步驟3 :接收節點任務信息通信單元接受任務信息字并配置任務數據通信單元;
步驟4 :發送節點任務數據通信單元發送任務數據;
步驟5 :接收節點任務數據通信單元接收任務數據。
所述的任務調度模塊包括調度執行單元、等待態任務隊列單元、就緒態任務隊列 單元和輸出態任務隊列單元。任務執行步驟是
步驟1:初始狀態下,調度執行單元將所有任務置于等待態任務隊單元列中;
步驟2 :調度執行單元掃描等待態任務隊列單元,若有任務準備好運行,將該任務 置于就緒態任務隊列單元中;
步驟3 :調度執行單元掃描就緒態隊列任務單元中,若有任務存在,執行該任務, 并將該任務置于輸出態任務隊列單元中;
步驟4 :調度執行單元掃描輸出態任務隊列單元中,若有任務存在,將該任務信息 發送給任務通信單元,任務通信模塊將任務輸出數據發送后,調度執行單元將該任務置于 等待態隊列單元中。
下面結合附圖,對優選實施例作詳細說明。應該強調的是,下述說明僅僅是示例性 的,而不是為了限制本發明的范圍及其應用。
如圖1所示,本實施例包括以下模塊存儲管理模塊、任務通信模塊、任務調度模 塊,其中存儲管理模塊與處理任務相連接并傳輸內存訪問信息,任務調度模塊和任務通信 模塊相連接并傳輸任務通信信息,任務調度模塊與處理熱舞相連接并在處理任務輸入數據 準備好時選中處理任務執行。
如圖2所示,本實施例存儲管理模塊包括內存池管理單元和內存池單元,其中內 存池管理單元和內存池單元連接并傳輸內存訪問請求信息。本實施例中,內存池單元中有6個內存塊,內存池管理單元中維護6個mem_use_info數據結構,分別記錄6個內存塊的使 用情況。處理任務對內存的操作分為兩種申請空間和釋放空間。
存儲管理模塊處理申請空間的步驟是
第一步各內存塊初始化,
第二步判斷是否接收到對內存池的存儲空間的申請及其容量,
若不存在,貝1J返回第一步,
若存在,則查找所述各條使用信息中是否存在滿足申請大小的內存塊,若不存在, 則返回第一步,若存在,則獲取內存起始地址Ptr,
第三步,更新第二步中找到的內存塊中的內存使用信息,返回第一步
所述的任務通信模塊管理模塊包括任務信息通信單元和任務數據通信單元,任 務信息通信單元傳輸定長的任務信息字,任務數據通信單元傳輸任意長度的任務數據。任 務間的通信步驟如圖3所示。
本實例中,任務信息字是一個長度為64字的信息字,其內容包括發送任務編號、 發送任務所在節點、接收任務編號、接收任務所在節點、任務數據長度、任務模式碼。接收端 任務信息通信單元收到該信息字后配置任務數據通信單元,任務數據通信單元接收指定長 度、指定任務的數據。
所述的任務調度模塊包括調度執行單元、等待態任務隊列單元、就緒態任務隊列 單元和輸出態任務隊列單元。任務執行步驟如圖4所示。
以上所述,僅為本發明較佳的具體實施方式
,但本發明的保護范圍并不局限于此, 任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到的變化或替換, 都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求的保護范圍 為準。
權利要求
1.一種基于多DSP處理器平臺的分布式實時多任務操作系統,其特征在于,這是一個在多DSP處理器平臺的每個DSP處理器上對內部建立的多個處理模塊進行實時調度的分布式實時操作系統,包括任務調度模塊,存儲管理模塊和任務通信模塊,其中 存儲管理模塊,包括相互連接的內存池管理單元和內存池單元,以傳輸任務訪問請求,其中 內存池單元,共有N個內存塊,分別存儲每個處理任務的任務輸入數據,每個處理任務的任務輸出數據和所有所述DSP處理器任務的中間變量緩存數據, 內存池管理單元,用以維護分別記錄了 N個內存塊使用情況的共N個使用信息mem_use_info的數據結構, 所述內存池管理單元按以下步驟進行管理 第一步各內存塊初始化, 第二步判斷是否接收到包括對內存池的存儲空間的申請及其容量在內的內存使用信息 若不存在,則返回第一步, 若存在,則查找所述各條使用信息中是否存在滿足申請大小的內存塊,若不存在,則返回第一步,若存在,則獲取內存起始地址ptr, 第三步,更新第二步中找到的內存塊中的內存使用信息,返回第一步, 任務通信管理模塊,包括任務信息通信單元,和任務數據通信單元,其中 任務信息通信單元,傳輸來自主控機或者所述任務調度模塊的定長的任務信息字,長度為64字,包括發送任務編號、發送任務的DSP處理器、接受任務編號、接受任務的DSP處理器、任務數據長度和任務模式碼, 任務數據通信單元,傳輸來自所述主控機或DSP處理器的任務長度的任務數據, 所述任務通信單元,按以下步驟與作為發送節點的所述主控機進行任務通信 第一步,所述任務通信單元獲得所述任務信息字, 第二步,作為所述發送節點的主控機或DSP處理器生成任務信息字并發送, 第三步,所述任務信息通信單元接受任務信息字,并配置所述任務數據通信單元,第四步,所述任務通信單元接受來自所述發送單元的指定長度、指定任務的數據,任務調度模塊,包括調度模塊單元、等待態任務隊列單元、就緒態任務隊列單元和輸出態任務隊列單元,所述任務調度模塊按以下步驟進行任務調度執行, 第一步,初始狀態下,所述調度執行單元把從所述任務通信模塊接收到的所有任務置于等待態任務隊列單元, 第二步,所述調度執行單元掃描所述等待態任務隊列單元,判斷是否存在準備就緒的任務, 若有準備就緒的任務,則把所述準備就緒任務置于就緒態任務隊列單元, 若沒有,則返回第一步, 第三步,所述調度執行單元掃描所述就緒態任務隊列單元,判斷是否存在已處理就緒的任務 若存在則把所述已處理就緒的任務置于輸出態任務隊列中, 若沒有,返回第二步,第四步,所述調度執行單元掃描輸出態任務隊列單元,判斷是否存在等待輸出的任務,若有,則把所述等待輸出的任務發送給所述任務信息通信單元和任務數據通信單元,供向所述主控機或DSP處理器節點發送用, 若沒有,則返回第三步, 第五步,循環第二步到第四步,一直到全部處理并輸出所有已接收的任務后,返回第一步。
全文摘要
一種基于多DSP處理器平臺的分布式實施多任務操作系統屬于嵌入式操作系統領域,其特征在于,這是一個在多DSP處理器平臺的每個DSP處理器上對內設的多個處理模塊進行實時調度的分布式實時操作系統,設有存儲并管理各輸入、各輸出任務的存儲管理模塊、與主控機或內設的任務調度模塊進行內外通信的是輸入待處理任務或輸出已處理任務的任務通信模塊以及所述的任務調度模塊,所述任務調度模塊把來自所述任務通信模塊的待處理任務按任務的實時狀態動態的分成等待態任務、就緒態任務和輸出態任務,按任務處理過程依次掃描以完成等待——就緒、就緒——輸出的任務實時狀態的轉換過程。本發明能在一個多DSP處理器平臺的每一個處理節點上同時對各個任務模塊進行實時調度并保證完成處理任務并輸出。
文檔編號G06F15/163GK103019838SQ201210459048
公開日2013年4月3日 申請日期2012年11月14日 優先權日2012年11月14日
發明者湯俊, 張曦, 湯小為, 陸俊江, 李寧, 杜勁松 申請人:清華大學