專利名稱:一種dsp數(shù)據(jù)區(qū)動態(tài)管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信號處理技術(shù)領(lǐng)域,尤其涉及一種DSP數(shù)據(jù)區(qū)動態(tài)管理方法。
背景技術(shù):
隨著嵌入式實時系統(tǒng)在各個領(lǐng)域的廣泛應(yīng)用,嵌入式軟件的開發(fā)也受到越來越多 的矚目。在滿足系統(tǒng)實時性要求的前提下,如何提高內(nèi)存分配的快速性、可靠性和高效性, 是嵌入式軟件系統(tǒng)面臨的一個重大問題。內(nèi)存分配的快速性從嵌入式系統(tǒng)對實時性的要求 出發(fā),要求內(nèi)存在分配過程中盡可能的快,因此在嵌入式系統(tǒng)中,不可能采用通用操作系統(tǒng) 中復(fù)雜而繁瑣的內(nèi)存分配策略,一般都采用簡單、快速的內(nèi)存分配方案;內(nèi)存分配的可靠性 則要求內(nèi)存分配的請求必須得到滿足;而內(nèi)存分配的高效性,則要求內(nèi)存分配盡可能地減 少浪費。實時性通常要求嵌入式系統(tǒng)具有強大的并行計算能力與足夠的數(shù)據(jù)吞吐量,通常 由多片專用DSP構(gòu)成高效互聯(lián)的并行機來實現(xiàn)。而通用性就意味著系統(tǒng)處理的數(shù)據(jù)或?qū)ο?的大小及數(shù)目是動態(tài)可變的,要求動態(tài)分配DSP數(shù)據(jù)區(qū)。在沒有通用操作系統(tǒng)支撐的DSP 上,編制的應(yīng)用軟件很難管理硬件資源,一般的DSP應(yīng)用軟件與底層硬件緊耦合,與底層硬 件緊耦合的DSP —般應(yīng)用軟件則要求在設(shè)計時必須確定各種數(shù)據(jù)或?qū)ο笤诖鎯ζ髦械姆?布,無法適應(yīng)動態(tài)的變化,無擴展通用性。目前,一般的嵌入式系統(tǒng)采用的內(nèi)存管理方法通常是在設(shè)計時將內(nèi)存分成若干個 內(nèi)存區(qū),每個內(nèi)存區(qū)中的多個內(nèi)存塊大小相同,不同內(nèi)存區(qū)中的內(nèi)存塊的大小不同,并且不 同內(nèi)存區(qū)中的內(nèi)存塊的大小滿足k*2n,其中,η和k為自然數(shù)。這種方法通常存在以下缺占.1、各內(nèi)存區(qū)域的大小是預(yù)先估計得到的,與應(yīng)用的數(shù)據(jù)塊大小不匹配,應(yīng)用需要 申請內(nèi)存時,往往需要根據(jù)所申請內(nèi)存的大小搜索各內(nèi)存區(qū),從中找到大小合適的內(nèi)存塊, 因而會產(chǎn)生內(nèi)存碎片。2、由于內(nèi)存區(qū)中的內(nèi)存塊的大小與應(yīng)用的數(shù)據(jù)塊大小不匹配,當(dāng)所申請的內(nèi)存塊 小于內(nèi)存區(qū)中空閑塊時,將合并小內(nèi)存塊;當(dāng)所申請的內(nèi)存塊大于內(nèi)存區(qū)中空閑塊時,將分 割大內(nèi)存塊,因此,內(nèi)存申請效率低下。因此,亟待提供一種DSP數(shù)據(jù)區(qū)動態(tài)管理方法以克服上述缺陷。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于提供一種DSP數(shù)據(jù)區(qū)動態(tài)管理方法,該方法可以根 據(jù)實際應(yīng)用的需要動態(tài)管理DSP的內(nèi)存數(shù)據(jù)區(qū),高效且沒有內(nèi)存碎片。為了解決上述技術(shù)問題,本發(fā)明提供了一種DSP數(shù)據(jù)區(qū)動態(tài)管理方法,其包括以 下步驟根據(jù)DSP節(jié)點上對象數(shù)據(jù)的類型和每類對象數(shù)據(jù)的存儲需求將DSP數(shù)據(jù)區(qū)的地址 空間分區(qū),每個分區(qū)對應(yīng)一個內(nèi)存資源對象;
在每個所述內(nèi)存資源對象中創(chuàng)建對象數(shù)據(jù)池,同一所述對象數(shù)據(jù)池中的數(shù)據(jù)塊大 小相同且所述數(shù)據(jù)塊的大小與存入所述對象數(shù)據(jù)池的對象數(shù)據(jù)的存儲需求相應(yīng);建立所述分區(qū)與對應(yīng)的所述對象數(shù)據(jù)池的關(guān)聯(lián)并初始化所述對象數(shù)據(jù)池的控制 信息;以及執(zhí)行所述對象數(shù)據(jù)池中的數(shù)據(jù)塊的分配與釋放。與現(xiàn)有技術(shù)相比,本發(fā)明的DSP數(shù)據(jù)區(qū)動態(tài)管理方法根據(jù)需要劃分DSP內(nèi)存數(shù)據(jù) 區(qū),系統(tǒng)執(zhí)行時,可以按需動態(tài)分布對象數(shù)據(jù),適應(yīng)通用性的需求。并且,由于將不同的對象 數(shù)據(jù)分類存放,每一類的數(shù)據(jù)池結(jié)構(gòu)統(tǒng)一,減少了對象數(shù)據(jù)的存儲時間,有效提高了系統(tǒng)運 行的效率。此外,由于是根據(jù)應(yīng)用中的各類對象數(shù)據(jù)的存儲需求確定數(shù)據(jù)塊的大小,也就是 說,數(shù)據(jù)塊的大小與應(yīng)用需求相匹配,數(shù)據(jù)塊不需要分割與合并的操作,因而對象數(shù)據(jù)池中 不會產(chǎn)生內(nèi)存碎片,DSP數(shù)據(jù)區(qū)的內(nèi)存利用率高。再者,先將DSP數(shù)據(jù)區(qū)的空間地址分區(qū)、 創(chuàng)建對象數(shù)據(jù)池,然后再建立所述分區(qū)和所述對象數(shù)據(jù)池之間的聯(lián)系,這樣,內(nèi)存資源和對 象數(shù)據(jù)池的管理可以獨立變化,便于在各種類型DSP芯片的地址空間或者某個DSP芯片的 任何地址區(qū)間中創(chuàng)建所需的對象數(shù)據(jù)池。優(yōu)選地,建立所述分區(qū)與對應(yīng)的所述對象數(shù)據(jù)池的關(guān)聯(lián)并初始化所述對象數(shù)據(jù)池 的控制信息的步驟具體包括將所述對象數(shù)據(jù)池的數(shù)據(jù)結(jié)構(gòu)定義為連續(xù)的數(shù)據(jù)塊鏈表并建 立數(shù)據(jù)池索引表,所述對象數(shù)據(jù)池的控制信息包括鏈表頭和數(shù)據(jù)塊頭,所述鏈表頭用于存 儲相應(yīng)的對象數(shù)據(jù)池中已分配數(shù)據(jù)塊存儲空間指針、相應(yīng)的對象數(shù)據(jù)池中空閑數(shù)據(jù)塊存儲 空間指針及對象數(shù)據(jù)池中剩余數(shù)據(jù)塊的個數(shù),所述數(shù)據(jù)塊頭存儲有對應(yīng)數(shù)據(jù)塊的大小、數(shù) 據(jù)指針以及下一個數(shù)據(jù)塊的指針。采用連續(xù)的數(shù)據(jù)塊鏈表表示對象數(shù)據(jù)池,便于實現(xiàn)多個 對象數(shù)據(jù)池的管理,提高存儲效率。兩級的索引結(jié)構(gòu)可以進一步加快數(shù)據(jù)塊的分配。優(yōu)選地,所述DSP數(shù)據(jù)區(qū)動態(tài)管理方法還包括將位圖與所述對象數(shù)據(jù)池相關(guān)聯(lián), 用于表示相應(yīng)的對象數(shù)據(jù)池的空閑或非空閑狀態(tài),以便于非正常使用時能快速返回錯誤信 肩、ο優(yōu)選地,所述執(zhí)行所述對象數(shù)據(jù)池中的數(shù)據(jù)塊的分配與釋放的步驟具體為當(dāng)應(yīng) 用申請數(shù)據(jù)塊時,根據(jù)應(yīng)用的對象數(shù)據(jù)的類型搜索所述與對象數(shù)據(jù)池相關(guān)聯(lián)的位圖及其鏈 表指針,找到相應(yīng)的對象數(shù)據(jù)池;將相應(yīng)的對象數(shù)據(jù)池中空閑數(shù)據(jù)塊存儲空間指針指向的 數(shù)據(jù)塊的地址返回給應(yīng)用,并將該數(shù)據(jù)塊加入已分配數(shù)據(jù)塊存儲空間;以及在對應(yīng)數(shù)據(jù)塊 中存入對象數(shù)據(jù),并修改所述鏈表頭和數(shù)據(jù)塊頭中的控制信息;而當(dāng)釋放數(shù)據(jù)塊時,將相應(yīng) 的數(shù)據(jù)塊歸還至所述對象數(shù)據(jù)池空閑數(shù)據(jù)塊存儲空間,并修改所述鏈表頭和數(shù)據(jù)塊頭中的 控制信息。優(yōu)選地,所述DSP數(shù)據(jù)區(qū)動態(tài)管理方法還包括計算對象數(shù)據(jù)幀長,并根據(jù)所述對 象數(shù)據(jù)幀長將所述對象數(shù)據(jù)分配到各個DSP節(jié)點。通過以下的描述并結(jié)合附圖,本發(fā)明將變得更加清晰,這些附圖用于解釋本發(fā)明 的實施例。
圖1為本發(fā)明DSP數(shù)據(jù)區(qū)動態(tài)管理方法一個實施例的流程示意圖。圖2為圖1所示DSP數(shù)據(jù)區(qū)動態(tài)管理方法中的對象數(shù)據(jù)池的數(shù)據(jù)結(jié)構(gòu)示意圖。
4
圖3為圖1所示DSP數(shù)據(jù)區(qū)動態(tài)管理方法中的對象數(shù)據(jù)池的數(shù)據(jù)池索引結(jié)構(gòu)示意 圖。圖4為以水聲場信號產(chǎn)生器為例的對象數(shù)據(jù)池的結(jié)構(gòu)示意圖。
具體實施例方式現(xiàn)在參考附圖描述本發(fā)明的實施例,附圖中類似的元件標(biāo)號代表類似的元件。如 上所述,本發(fā)明提供了一種DSP數(shù)據(jù)區(qū)動態(tài)管理方法,該方法可以根據(jù)實際應(yīng)用的需要動 態(tài)管理DSP的內(nèi)存數(shù)據(jù)區(qū),高效且沒有內(nèi)存碎片。下面將結(jié)合附圖詳細闡述本發(fā)明實施例的技術(shù)方案。如圖1所示,本實施例的DSP 數(shù)據(jù)區(qū)動態(tài)管理方法包括以下步驟。步驟SlOl 根據(jù)DSP節(jié)點上對象數(shù)據(jù)的類型和每類對象數(shù)據(jù)的存儲需求將DSP數(shù) 據(jù)區(qū)的地址空間分區(qū),每個分區(qū)對應(yīng)一個內(nèi)存資源對象。所述對象數(shù)據(jù)的類型根據(jù)對象數(shù) 據(jù)的存儲需求劃分,所述存儲需求即為所需數(shù)據(jù)塊大小和容量。所述DSP節(jié)點是指單獨的 一塊DSP芯片。由于現(xiàn)有的嵌入式系統(tǒng)通常包括由多片專用DSP構(gòu)成高效互聯(lián)的并行機,所以在 此情況下,在步驟SlOl之前,還包括根據(jù)嵌入式系統(tǒng)的工作參數(shù)計算對象數(shù)據(jù)幀長,并根 據(jù)所述對象數(shù)據(jù)幀長將所述對象數(shù)據(jù)分配到各個DSP節(jié)點。具體的,可以結(jié)合嵌入式系統(tǒng) 所產(chǎn)生的數(shù)據(jù)幀長和DSP硬件平臺資源參數(shù)來將所述對象數(shù)據(jù)分配到各個DSP節(jié)點。前述 工作參數(shù)包括采樣頻率和數(shù)據(jù)幀間隔等,所述DSP硬件平臺資源參數(shù)包括每個D/A通道板 輸出的通道數(shù)CharmelNum、DSP運算板數(shù)DSPNum等。依據(jù)前述兩類參數(shù),根據(jù)負載平衡原 則即可確定入池對象數(shù)據(jù)在每個DSP節(jié)點上的分布狀況。所述負載平衡原則是指在滿足嵌 入式系統(tǒng)實時性能前提下,每個DSP節(jié)點上的計算負載平衡。步驟S102 在每個所述內(nèi)存資源對象中創(chuàng)建對象數(shù)據(jù)池,同一所述對象數(shù)據(jù)池中 的數(shù)據(jù)塊大小相同且所述數(shù)據(jù)塊的大小與存入所述對象數(shù)據(jù)池的對象數(shù)據(jù)的存儲需求相應(yīng)。步驟S103 建立所述分區(qū)與對應(yīng)的所述對象數(shù)據(jù)池的關(guān)聯(lián)并初始化所述對象數(shù) 據(jù)池的控制信息。在本實施例中,該步驟具體為將所述對象數(shù)據(jù)池的數(shù)據(jù)結(jié)構(gòu)定義為連續(xù)的數(shù)據(jù) 塊鏈表并建立數(shù)據(jù)池索引表,所述對象數(shù)據(jù)池的控制信息包括鏈表頭Poolhead和數(shù)據(jù)塊 頭head,所述鏈表頭用于存儲相應(yīng)的對象數(shù)據(jù)池中已分配數(shù)據(jù)塊存儲空間指針pHead、相 應(yīng)的對象數(shù)據(jù)池中空閑數(shù)據(jù)塊存儲空間指針PBlock及對象數(shù)據(jù)池中剩余數(shù)據(jù)塊的個數(shù) iFreeCoimt,所述數(shù)據(jù)塊頭存儲有對應(yīng)數(shù)據(jù)塊的大小Size、數(shù)據(jù)指針pData以及下一個數(shù) 據(jù)塊的指針pNext。所述對象數(shù)據(jù)池的數(shù)據(jù)結(jié)構(gòu)如圖2所示。采用連續(xù)的空閑數(shù)據(jù)塊鏈表 表示對象數(shù)據(jù)池,便于實現(xiàn)多個對象數(shù)據(jù)池的管理,提高存儲效率。 進一步地,如圖3所示,本實施例的DSP數(shù)據(jù)區(qū)動態(tài)管理方法還可以包括將位圖與 所述對象數(shù)據(jù)池相關(guān)聯(lián),用于表示相應(yīng)的對象數(shù)據(jù)池的空閑或非空閑狀態(tài)。兩級的索引結(jié) 構(gòu)可以進一步加快數(shù)據(jù)塊的分配和統(tǒng)一管理對象數(shù)據(jù)池鏈表。 步驟S104 執(zhí)行所述對象數(shù)據(jù)池中的數(shù)據(jù)塊的分配與釋放。具體的,當(dāng)應(yīng)用申請 數(shù)據(jù)塊時,根據(jù)應(yīng)用的對象數(shù)據(jù)的類型搜索所述與對象數(shù)據(jù)池相關(guān)聯(lián)的位圖及其鏈表指針,找到相應(yīng)的對象數(shù)據(jù)池;將相應(yīng)的對象數(shù)據(jù)池空閑的數(shù)據(jù)塊存儲空間指針指向的數(shù)據(jù) 塊的地址返回給應(yīng)用;以及在對應(yīng)數(shù)據(jù)塊中存入對象數(shù)據(jù),并修改所述鏈表頭和數(shù)據(jù)塊頭 中的控制信息。當(dāng)釋放數(shù)據(jù)塊時,將相應(yīng)的數(shù)據(jù)塊歸還至所述對象數(shù)據(jù)池空閑數(shù)據(jù)塊存儲 空間??梢钥闯觯瑪?shù)據(jù)塊的申請與釋放均放在所述空閑數(shù)據(jù)塊鏈表的頭部進行,可以實現(xiàn)數(shù) 據(jù)塊的快速分配。本發(fā)明的DSP數(shù)據(jù)區(qū)動態(tài)管理方法根據(jù)需要劃分DSP內(nèi)存數(shù)據(jù)區(qū),系統(tǒng)執(zhí)行時,可 以按需動態(tài)分布對象數(shù)據(jù),適應(yīng)通用性的需求。并且,由于將不同的對象數(shù)據(jù)分類存放,每 一類的數(shù)據(jù)池結(jié)構(gòu)統(tǒng)一,減少了對象數(shù)據(jù)的存儲時間,有效提高了系統(tǒng)運行的效率。此外, 由于是根據(jù)應(yīng)用中的各類對象數(shù)據(jù)的存儲需求確定數(shù)據(jù)塊的大小,也就是說,數(shù)據(jù)塊的大 小與應(yīng)用需求相匹配,數(shù)據(jù)塊不需要分割與合并的操作,因而對象數(shù)據(jù)池中不會產(chǎn)生內(nèi)存 碎片,DSP數(shù)據(jù)區(qū)的內(nèi)存利用率高。再者,先將DSP數(shù)據(jù)區(qū)的空間地址分區(qū)、創(chuàng)建對象數(shù)據(jù) 池,然后再建立所述分區(qū)和所述對象數(shù)據(jù)池之間的聯(lián)系,這樣,內(nèi)存資源和對象數(shù)據(jù)池的管 理可以獨立變化,便于在各種類型DSP芯片的地址空間或者某個DSP芯片的任何地址區(qū)間 中創(chuàng)建所需的對象數(shù)據(jù)池。下面以水聲場信號實時產(chǎn)生器為例,詳細說明本發(fā)明的DSP數(shù)據(jù)區(qū)動態(tài)管理方 法。該水聲場信號實時產(chǎn)生器的工作參數(shù)包括采樣頻率fs、水下目標(biāo)個數(shù)Targ etNum、聲 陣通道數(shù)ArrayNum、每個對象的處理時間和數(shù)據(jù)幀間隔T。則對象數(shù)據(jù)的幀長可表示為DL =fsXT。然后由水聲場信號實時產(chǎn)生器的工作參數(shù)確定每一類入池對象數(shù)據(jù)的存儲需求。 有關(guān)的DSP硬件平臺資源參數(shù)有每個D/A通道板輸出的基元數(shù)CharmelNum、DSP運算板數(shù) DSPNum等。依據(jù)上述兩類參數(shù),根據(jù)負載平衡原則可確定入池對象數(shù)據(jù)在每個DSP節(jié)點上 的分布狀況。在本實施例中,每個DSP計算的目標(biāo)個數(shù)可表示為M = TargetNum/DSPNum,那么 在每個DSP上必須分布M個目標(biāo)對象,因而目標(biāo)對象數(shù)據(jù)池容量應(yīng)為Size = M0由于每 個目標(biāo)對象中又包含4個聲信號,因而,聲信號對象數(shù)據(jù)池容量應(yīng)為Size = 4*M。在每個 基元的輸出信號上都要疊加有海洋環(huán)境噪聲,因此需要計算ArrayNum路的海洋環(huán)境噪聲, 平衡每個DSP運算板的計算負載,每個DSP節(jié)點需要計算的噪聲路數(shù)為NoiseCharmel = ArrayNum/DSPNum,每路噪聲的數(shù)據(jù)幀長是DL,因此海洋環(huán)境噪聲數(shù)據(jù)對象數(shù)據(jù)塊的大小為 NoiseCharmehDL ;由于海洋環(huán)境噪聲又可分為流噪聲、環(huán)境噪聲和海洋背景噪聲,因此對 象數(shù)據(jù)塊數(shù)為3。由上述DSP運算板數(shù)上每個DSP節(jié)點的數(shù)據(jù)存儲需求,將DSP數(shù)據(jù)內(nèi)存分區(qū),每 個區(qū)對應(yīng)一個對象數(shù)據(jù)池。在本實施例中,DSP數(shù)據(jù)內(nèi)存劃分了 3個區(qū),對應(yīng)3個連續(xù)數(shù)據(jù) 塊鏈表表示的對象數(shù)據(jù)池,每個對象數(shù)據(jù)池的參數(shù)及結(jié)構(gòu)如圖4所示。數(shù)據(jù)池管理器給每 個數(shù)據(jù)池創(chuàng)建和初始化一個鏈表頭(Poolhead);給每個數(shù)據(jù)塊創(chuàng)建一個數(shù)據(jù)塊頭(head)。 隨后,根據(jù)數(shù)據(jù)區(qū)地址空間的劃分,將每個數(shù)據(jù)池的起始地址填入數(shù)據(jù)池指針數(shù)組,即建立 分區(qū)和對象數(shù)據(jù)池的關(guān)聯(lián)。每個對象數(shù)據(jù)池初始化后,池中數(shù)據(jù)塊均為空閑數(shù)據(jù)塊,因此 pBlock指向數(shù)據(jù)池中第一個數(shù)據(jù)塊,而pHead為空。在執(zhí)行數(shù)據(jù)塊的分配時,各個數(shù)據(jù)池的 分配器從各自的PBlock指向的空閑數(shù)據(jù)塊存儲空間的開始分配數(shù)據(jù)塊,已分配的數(shù)據(jù)塊 加入pHead指向的已分配數(shù)據(jù)塊存儲空間中,同時修改鏈表頭和數(shù)據(jù)塊頭中的控制信息。 本實施例的水聲場信號產(chǎn)生器經(jīng)適配接口與聲納對接后,給聲納提供測試激勵。在不改變
6測試臺硬件并不重新加載軟件的情況下,成功實現(xiàn)了 4種不同信號聲納信號的產(chǎn)生并饋入 實際聲納,實現(xiàn)了面向水聲場信號產(chǎn)生器應(yīng)用的DSP數(shù)據(jù)區(qū)的動態(tài)管理。
權(quán)利要求
一種DSP數(shù)據(jù)區(qū)動態(tài)管理方法,其特征在于,包括以下步驟根據(jù)DSP節(jié)點上對象數(shù)據(jù)的類型和每類對象數(shù)據(jù)的存儲需求將DSP數(shù)據(jù)區(qū)的地址空間分區(qū),每個分區(qū)對應(yīng)一個內(nèi)存資源對象;在每個所述內(nèi)存資源對象中創(chuàng)建對象數(shù)據(jù)池,同一所述對象數(shù)據(jù)池中的數(shù)據(jù)塊大小相同且所述數(shù)據(jù)塊的大小與存入所述對象數(shù)據(jù)池的對象數(shù)據(jù)的存儲需求相應(yīng);建立所述分區(qū)與對應(yīng)的所述對象數(shù)據(jù)池的關(guān)聯(lián)并初始化所述對象數(shù)據(jù)池的控制信息;以及執(zhí)行所述對象數(shù)據(jù)池中的數(shù)據(jù)塊的分配與釋放。
2.根據(jù)權(quán)利要求1所述的DSP數(shù)據(jù)區(qū)動態(tài)管理方法,其特征在于,建立所述分區(qū)與對應(yīng) 的所述對象數(shù)據(jù)池的關(guān)聯(lián)并初始化所述對象數(shù)據(jù)池的控制信息的步驟具體包括將所述對象數(shù)據(jù)池的數(shù)據(jù)結(jié)構(gòu)定義為連續(xù)的數(shù)據(jù)塊鏈表并建立數(shù)據(jù)池索引表,所述對 象數(shù)據(jù)池的控制信息包括鏈表頭和數(shù)據(jù)塊頭,所述鏈表頭用于存儲相應(yīng)的對象數(shù)據(jù)池中已 分配數(shù)據(jù)塊存儲空間指針、相應(yīng)的對象數(shù)據(jù)池中空閑數(shù)據(jù)塊存儲空間指針及對象數(shù)據(jù)池中 剩余數(shù)據(jù)塊的個數(shù),所述數(shù)據(jù)塊頭存儲有對應(yīng)數(shù)據(jù)塊的大小、數(shù)據(jù)指針以及下一個數(shù)據(jù)塊 的指針。
3.根據(jù)權(quán)利要求2所述的DSP數(shù)據(jù)區(qū)動態(tài)管理方法,其特征在于,還包括將位圖與對象 數(shù)據(jù)池相關(guān)聯(lián),用于表示相應(yīng)的對象數(shù)據(jù)池的空閑或非空閑狀態(tài)。
4.根據(jù)權(quán)利要求3所述的DSP數(shù)據(jù)區(qū)動態(tài)管理方法,其特征在于,所述執(zhí)行所述對象數(shù) 據(jù)池中的數(shù)據(jù)塊的分配與釋放的步驟具體為當(dāng)應(yīng)用申請數(shù)據(jù)塊時,根據(jù)應(yīng)用的對象數(shù)據(jù)的類型搜索所述與對象數(shù)據(jù)池相關(guān)聯(lián)的位 圖及其鏈表指針,找到相應(yīng)的對象數(shù)據(jù)池;將相應(yīng)的對象數(shù)據(jù)池空閑數(shù)據(jù)塊存儲空間指針指向的數(shù)據(jù)塊的地址返回給應(yīng)用,并將 該數(shù)據(jù)塊加入已分配數(shù)據(jù)塊存儲空間;以及在對應(yīng)數(shù)據(jù)塊中存入對象數(shù)據(jù),并修改所述鏈表頭和塊頭中的控制信息;當(dāng)釋放數(shù)據(jù)塊時,將相應(yīng)的數(shù)據(jù)塊歸還至所述對象數(shù)據(jù)池空閑數(shù)據(jù)塊存儲空間。
5.根據(jù)權(quán)利要求1-4任一項所述的DSP數(shù)據(jù)區(qū)動態(tài)管理方法,其特征在于,當(dāng)所述DSP 節(jié)點為多個并行時,還包括計算對象數(shù)據(jù)幀長,并根據(jù)所述對象數(shù)據(jù)幀長將所述對象數(shù)據(jù) 分配到各個DSP節(jié)點。
全文摘要
本發(fā)明公開了一種DSP數(shù)據(jù)區(qū)動態(tài)管理方法,其包括以下步驟根據(jù)DSP節(jié)點上對象數(shù)據(jù)的類型和每類對象數(shù)據(jù)的存儲需求將DSP數(shù)據(jù)區(qū)的地址空間分區(qū),每個分區(qū)對應(yīng)一個內(nèi)存資源對象;在每個所述內(nèi)存資源對象中創(chuàng)建對象數(shù)據(jù)池,同一所述對象數(shù)據(jù)池中的數(shù)據(jù)塊大小相同且所述數(shù)據(jù)塊的大小與存入所述對象數(shù)據(jù)池的對象數(shù)據(jù)的存儲需求相應(yīng);建立所述分區(qū)與對應(yīng)的所述對象數(shù)據(jù)池的關(guān)聯(lián)并初始化所述對象數(shù)據(jù)池的控制信息;以及執(zhí)行所述對象數(shù)據(jù)池中的數(shù)據(jù)塊的分配與釋放。該方法可以根據(jù)實際應(yīng)用的需要動態(tài)管理DSP的內(nèi)存數(shù)據(jù)區(qū),高效且沒有內(nèi)存碎片。
文檔編號G06F12/02GK101950273SQ201010291189
公開日2011年1月19日 申請日期2010年9月26日 優(yōu)先權(quán)日2010年9月26日
發(fā)明者姚直象, 幸高翔, 張衛(wèi), 王希敏, 蔡志明, 郭瑞 申請人:中國人民解放軍海軍工程大學(xué)