亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種不定幀長結構數據流的存儲方法

文檔序號:6554789閱讀:247來源:國知局
專利名稱:一種不定幀長結構數據流的存儲方法
技術領域
本發(fā)明涉及嵌入式系統(tǒng),特別是涉及一種適用于存儲局限大的嵌入式產品如移動終端的一種不定幀長結構數據流的存儲方法。
背景技術
嵌入式產品的存儲局限性大,一直是手機的薄弱環(huán)節(jié)。目前,特定的幀結構的數據存儲部分使用連續(xù)的空間存儲模式,移動終端的空間分配情況固定,分配時由用戶指定存儲空間的大小。圖1示出了現有技術嵌入式產品采用的連續(xù)存儲模式的幀結構,其由連續(xù)的空間結構表達,具有固定的長度,幀結構的最大長度決定了存儲空間的大小。對于幀長度較小的情況,將在一定程度上產生存儲空間的浪費。由于移動終端的硬件資源限制,無法像PC機那樣提供足夠的空間給用戶平面使用,因此在很多實際的情況中處理問題的方法將有很多區(qū)別。上述的連續(xù)存儲空間在問題的實現中具有簡易的優(yōu)點,但是對于幀長度變化頻繁,變化范圍較大的情況,將顯得力不從心。特別是,這種連續(xù)的存儲結構對于自增長的數據幀將無法預先估計其數據長度,因此只能根據協議中規(guī)定的最大長度為其分配資源。當短幀數據的數量較多時,這種使用方法使得空間資源的利用率下降到50%以下。

發(fā)明內容
本發(fā)明的目的在于提供一種不定幀長結構數據流的存儲方法,以提高存儲空間的利用率,解決嵌入式產品資源有限問題。
為實現本發(fā)明的上述目的,本發(fā)明提供了一種不定幀長結構數據流的存儲方法,其中,包括為接收到的所述不定幀長結構的數據流動態(tài)分配用于存儲所述不定幀長數據流的數據結構的步驟。
所述的存儲方法,其中,所述動態(tài)分配存儲所述不定幀長數據流的數據結構的步驟進一步包括分段存儲所述接收的不定幀長結構數據流的步驟。
所述的存儲方法,其中,所述用于存儲所述不定幀長數據流的數據結構為指針鏈表結構。
所述的存儲方法,其中,所述分段存儲所述接收的不定幀長結構數據流的步驟進一步包括步驟一,檢測數據流的到達,構造幀結構,其中,所述幀結構包括幀頭及幀數據塊;步驟二,接收數據流,將所述數據流存入一幀數據塊,并判斷所述幀數據塊是否已滿;如是,則轉入步驟三;步驟三,追加一個或多個幀數據塊,直至將數據流存儲完畢,其中,前一個幀數據塊中記錄有后續(xù)幀數據塊的信息。
所述的存儲方法,其中,所述步驟二進一步包括分離所述接收的不定幀長結構數據流中的數據部分,并用數據指針替代原有的存儲數據的字符數組部分。
所述的存儲方法,其中,所述不定幀長結構數據流為串行數據流。
所述的存儲方法,其中,所述不定幀長結構數據流的數據結構大小具有64字節(jié)至32K字節(jié)的變化范圍。
所述的存儲方法,其中,所述幀數據塊具有確定的長度。
本發(fā)明針對某些終端實際數據特點采用特定存儲管理模式改善空間利用狀況,有效緩解作為嵌入式產品資源有限的弱點。利用本發(fā)明的方法可通過針對特定的模塊使用情況和數據結構特點有針對性的制定數據結構模型提高存儲空間的利用率,并進而提高手機等嵌入式產品芯片的計算處理能力利用率。
以下結合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。


圖1是現有技術的幀結構圖;圖2是本發(fā)明方法構造的幀結構圖;圖3是本發(fā)明方法的幀結構生成過程的流程示意圖。
具體實施例方式
本發(fā)明的特點在于存儲對象是動態(tài)決定,具有串行特點,即在該存儲對象到達時,無法確定其數據結構的大小,并且該數據結構大小具有64bytes至32Kbytes的變化范圍。利用本發(fā)明的方法在終端的實時通訊中,每次接收到的數據需要添加到先前分配的數據結構中,而在數據結構分配時采用該分離存儲的模式,以達到優(yōu)化存儲結構的目的。
本發(fā)明的方法并非專注于內存管理,而是在處理動態(tài)增長的數據結構中進行格式變化,使得原本內存利用率不高的現象得到改善。例如,芯片通訊中有個接收前不定長幀到達,此時如果按照原始思路要分配最大幀長度的內存用于該不定幀的存儲,而根據本文所述方法,每次分配一個數據塊(block)長度,然后動態(tài)的追加新的數據塊(block)為其使用。因此不定幀的實體有多個數據塊(blocks)聯合構成,前一個block記錄后續(xù)block的信息,直至結束。
圖2是本發(fā)明方法采用的幀結構示意圖。與圖1所示的現有技術采用的幀結構對比,圖2所示的幀結構的長度不固定,其中的數據部分被分離出來用數據的指針替代原有的存儲數據的字符數組部分(即在data info reference部分用指針byte*pBuffer替換原有圖1中Data info部分的一個大于幀長度的用于存儲的字符數組byte Buffer[最大長度值]),用指針替代后再創(chuàng)建內存池,并按照需要進行優(yōu)化。用一個或多個幀數據塊(block)來存儲幀的數據部分,其中,一個數據塊(block)1包括塊頭部分11(Block Head)、數據部分12(Data Info)及保留部分13(Reserved)前一個數據塊1在其塊頭部分11(Block Head)記錄有后續(xù)數據塊(block)2的信息。
圖3是本發(fā)明方法的幀結構生成過程的流程示意圖。在圖3中,當不定幀長數據流到達時(步驟301),系統(tǒng)構造幀結構(步驟302) 通常構造出的幀的組成結構為一個幀頭(包含幀的類型、長度、校驗等信息)及若干幀數據塊,其中具體的數據塊的數量由幀長度決定,即幀所占的空間為數據塊長度的整數倍。判斷數據接收是否結束(步驟303);如是,則返回幀結構(步驟307);如否,則繼續(xù)接收數據流(步驟304);判斷數據塊是否已滿(步驟305);如是,則追加存儲的數據塊(步驟306);如否,則轉入步驟303,繼續(xù)判斷數據接收是否結束。其中,構造幀結構時,幀頭(Frame header)需要從Header pool(幀頭池)中申請,獲得一個空閑的(Free)的Header結構,根據接收到的前幾個字節(jié)(byte)數據確定Header的某些屬性(如幀的類型、長度等屬性),然后陸續(xù)填充Blocks,直到幀尾。追加的數據塊的數量根據幀的增長動態(tài)添加。其中的數據塊為存儲單元。實際上,本發(fā)明的方法不需要預先解讀幀頭信息,它將數據存入指針鏈表中,其具有長度自適應性質,由此避免了使用realloc函數降低允許效率和避免預分配大量內存浪費工具的優(yōu)點。
本發(fā)明的方法擺脫了傳統(tǒng)結構的束縛,充分利用嵌入式軟件的靈活性,利用幀結構的分段式存儲,及內存的統(tǒng)一管理,采用特定存儲管理模式改善空間利用狀況,有效緩解了嵌入式產品資源有限的弱點。
當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1.一種不定幀長結構數據流的存儲方法,其特征在于,包括為接收到的所述不定幀長結構的數據流動態(tài)分配用于存儲所述不定幀長數據流的數據結構的步驟。
2.根據權利要求1所述的存儲方法,其特征在于,所述動態(tài)分配存儲所述不定幀長數據流的數據結構的步驟進一步包括分段存儲所述接收的不定幀長結構數據流的步驟。
3.根據權利要求1或2中任一權利要求所述的存儲方法,其特征在于,所述用于存儲所述不定幀長數據流的數據結構為指針鏈表結構。
4.根據權利要求3所述的存儲方法,其特征在于,所述分段存儲所述接收的不定幀長結構數據流的步驟進一步包括步驟一,檢測數據流的到達,構造幀結構,其中,所述幀結構包括幀頭及幀數據塊;步驟二,接收數據流,將所述數據流存入一幀數據塊,并判斷所述幀數據塊是否已滿;如是,則轉入步驟三;步驟三,追加一個或多個幀數據塊,直至將數據流存儲完畢,其中,前一個幀數據塊中記錄有后續(xù)幀數據塊的信息。
5.根據權利要求4所述的存儲方法,其特征在于,所述步驟二進一步包括分離所述接收的不定幀長結構數據流中的數據部分,并用數據指針替代原有的存儲數據的字符數組部分。
6.根據權利要求1-5中任一權利要求所述的存儲方法,其特征在于,所述不定幀長結構數據流為串行數據流。
7.根據權利要求6所述的存儲方法,其特征在于,所述不定幀長結構數據流的數據結構大小具有64字節(jié)至32K字節(jié)的變化范圍。
8.根據權利要求4或7中任一權利要求所述的存儲方法,其特征在于,所述幀數據塊具有確定的長度。
全文摘要
本發(fā)明提供了一種不定幀長結構數據流的存儲方法,其特征在于,包括為接收到的所述不定幀長結構的數據流動態(tài)分配用于存儲所述不定幀長數據流的數據結構的步驟。利用本發(fā)明的方法可通過針對特定的模塊使用情況和數據結構特點有針對性的制定數據結構模型提高存儲空間的利用率,并進而提高手機等嵌入式產品芯片的計算處理能力利用率。
文檔編號G06F12/02GK101021846SQ20061001132
公開日2007年8月22日 申請日期2006年2月14日 優(yōu)先權日2006年2月14日
發(fā)明者吳偉 申請人:樂金電子(中國)研究開發(fā)中心有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1