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