專利名稱:一種數據寫入方法、系統及一種嵌入式電子設備的制作方法
技術領域:
本發明涉及嵌入式電子設備技術領域,尤其涉及一種數據寫入方法、系統及ー種嵌入式電子設備。
背景技術:
在現有的消費電子產品(如MP3播放器、MP4播放器等)進行錄音過程中,由麥克風(Microphone)或直錄線(LineIn)輸入音頻信號,音頻處理模塊采集音頻數據井根據錄制格式(WAV/MP3等)對所述音頻數據進行編碼得到編碼數據,然后通過文件系統將編碼數據寫入存儲器中。在錄音的過程中,文件系統與存儲器必需有足夠的時間來存儲編碼數據。而在嵌入式電子產品中,由于內存空間或系統處理機制等因素,如果某些存儲空間已被數據占用,可能出現塊存儲設備頻繁的進行數據拷貝操作,從而使錄音出現丟幀,錄音出現斷音情況,從而影響了錄音或錄像的品質。導致有可能出現不能及時寫入錄音數據而丟幀的情況。現有技術中,塊存儲設備頻繁的進行數據拷貝操作通常是由于文件數據的起始位置與塊的起始位置不對齊造成的。例如ー個大小為4M的文件A,假設每個簇可以占用8k,則需要512個簇鏈來保存文件A,而塊的大小為512k。圖I為現有技術中存儲器的簇邊界與塊存儲設備的邊界不對齊的情況下存儲文件A的示意圖。i表示文件A的第I個簇101所在的塊,j表示文件A的中間某個簇102所在的塊,k表示文件A的第512個簇103所在的塊。其中,第一個簇101和塊i的邊界不對齊,而第512個簇106與塊k的邊界也不對齊。塊i和塊k并沒有寫滿數據,因此還可以用來存儲新的數據。如果要將新數據寫入塊i或塊k,需要通過合并操作將塊i或塊k的數據拷貝到其他邏輯塊上,而合并的時間比較長,有可能導致錄音的編碼數據不能及時寫入,從而出現了丟幀現象。
發明內容
本發明實施例提供了一種數據寫入方法及系統,可省去合并操作,因此可以避免出現數據不能及時寫入的現象。本發明實施例提出的一種數據寫入方法,包括如下步驟A、對將要進行數據寫入的塊存儲設備進行格式化操作,根據塊存儲設備的有效空間以及塊存儲設備的塊大小,決定文件系統的簇的大小;B、向塊存儲設備連續寫入數據,并保持簇與塊的邊界對齊。較佳地,所述步驟B之前,進ー步包括根據文件系統的簇的分布情況,建立ー個與塊存儲設備的塊大小相配的簇表,所述簇表中記錄了未被使用的簇的簇號,以及這些簇的連續關系;所述步驟B中按照所述簇表的順序向塊存儲設備連續寫入數據。較佳地,步驟B包括BI、在所述塊存儲設備的未被寫入數據的塊中選擇ー個塊作為當前塊;
B2、在當前塊的簇中寫入數據,保持簇與塊的邊界對齊;B3、判斷當前塊數據寫入的情況,若當前塊的簇都已寫入數據且數據未寫完,返回步驟BI ;若數據已寫完,則結束步驟B。較佳地,所述數據為錄音數據或錄像數據。較佳地,所述塊大小為簇大小的整數倍。較佳地,所述塊大小為128k,簇大小為8k。本發明實施例提出的一種數據寫入系統,包括用于存儲寫入的數據的塊存儲設備,該數據寫入系統還包括格式化模塊,用于對將要進行數據寫入的塊存儲設備進行格式化操作,根據塊存儲設備的有效空間以及塊存儲設備的塊大小,決定文件系統的簇的大小;數據寫入模塊,用于向所述塊存儲設備連續寫入數據,并保持簇與塊的邊界對齊。較佳地,該數據寫入系統進一歩包括簇表模塊,用于根據文件系統的簇的分布情況,建立一個與塊存儲設備的塊大小 相配的簇表,所述簇表中記錄了未被使用的簇的簇號以及這些簇的連續關系;所述數據寫入模塊用于根據所述簇表向所述塊存儲設備連續寫入數據,并保持簇與塊的邊界對齊。較佳地,所述數據寫入模塊包括塊選擇單元,用于在所述塊存儲設備的未被寫入數據的塊中選擇ー個塊作為當前塊;寫數據單元,用于在所述塊選擇單元所選擇的當前塊對應的簇中依次寫入數據;判斷単元,用于判斷當前塊數據寫入的情況,若當前塊的簇都已寫入數據且數據未寫完,則通知塊選擇単元再選擇ー個當前塊;若數據已寫完,則數據寫入模塊結束寫入操作。本發明還提出了包括上述數據寫入系統的ー種嵌入式電子設備。從以上技術方案可以看出,在寫入數據前決定文件系統的簇的大小,保證簇的邊界與塊存儲設備的邊界一致;并建立簇表,根據簇表連續寫入數據。由于塊存儲設備是連續寫入,并且由于簇邊界與塊存儲設備的邊界一致,數據能夠連續寫入ー個完整塊里,不需要進行塊合并等操作,從而避免了數據無法及時寫入的現象。本發明技術方案特別適用于嵌入式電子設備的錄音或錄像數據的存儲過程。
圖I為現有技術中存儲器的簇邊界與塊存儲設備的邊界不對齊的情況下存儲文件A的不意圖;圖2為本發明提出的一種數據寫入方法的流程圖;圖2a為本發明實施例提出的一種用于嵌入式電子設備的錄音或錄像的數據寫入流程的示意圖;圖2b為本發明實施例提出的另ー種用于嵌入式電子設備的錄音或錄像的數據寫入流程的示意圖;圖3為本發明實施例中簇邊界與塊存儲設備的邊界對齊的情況示意圖4為本發明實施例提出的嵌入式電子設備的框圖;圖5為本發明實施例提出的另ー種嵌入式電子設備的框圖。
具體實施例方式針對錄音錄像這類數據連續寫入的過程,本發明提出一種數據寫入方法,該方法如圖2所示,包括如下步驟步驟201 :對將要進行數據寫入的塊存儲設備進行格式化操作,根據塊存儲設備的有效空間以及塊存儲設備的塊大小,決定文件系統的簇的大小;步驟202 向塊存儲設備連續寫入數據,并保持簇與塊的邊界對齊。·為使本發明的技術手段、優點以及技術效果更加清楚,以下通過具體實施例對本發明方案進行詳細闡述。本發明實施例提出一種用于嵌入式電子設備的錄音或錄像的數據寫入流程,該流程如圖2a所示,包括如下步驟步驟201a :對該嵌入式電子設備用于進行錄音或錄像存儲的塊存儲設備進行格式化操作,在格式化過程中,根據塊存儲設備的有效空間及結合塊存儲設備的塊大小,決定文件系統的簇的大小。格式化的過程中各塊與其對應的簇已經形成。較佳的實施方式為塊的大小是簇大小的整數倍。例如塊的大小為128k,則可以選擇簇的大小為8k,且保證連續16簇組成ー個存儲塊的大小。步驟202a :在錄音或錄像前,根據文件系統的簇的分布情況,建立ー個與塊存儲設備的塊大小相配的簇表。所述簇表中記錄了未被使用的簇的簇號,以及這些簇的連續關系O步驟203a :錄音或錄像時,保持簇與塊的邊界對齊,按照簇表向塊存儲設備連續寫入錄音或錄像數據。本發明實施例提出的另ー種用于嵌入式電子設備的錄音或錄像的數據寫入流程,該流程如圖2b所示,包括如下步驟步驟201b :對該嵌入式電子設備用于進行錄音或錄像存儲的塊存儲設備進行格式化操作,在格式化過程中,根據塊存儲設備的有效空間及結合塊存儲設備的塊大小,決定文件系統的簇的大小;格式化的過程中各塊與其對應的簇已經形成;步驟202b :在所述塊存儲設備的未被寫入數據的塊中選擇ー個塊作為當前塊;步驟203b :在當前塊對應的簇中依次寫入數據;步驟204b :判斷當前塊數據寫入的情況,若當前塊的簇都已寫入數據且數據未寫完,返回步驟202b ;若數據已寫完,則結束本流程。在圖2b所示流程基礎上的另ー種變型實施方式是,步驟204b所述判斷當前塊數據寫入的情況的判斷結果是數據已寫完,當前塊還有未被寫入數據的簇,則進一歩包括將當前塊未被寫入數據的簇寫零。這樣處理的效果是可以完全杜絕塊合并操作。圖3示出了本發明實施例中簇邊界與塊存儲設備的邊界對齊的情況。所述邊界對齊指的是第I個簇的起始邊界與該簇所在的塊的起始邊界對齊。假設每個簇可以占用8k,則需要512個簇鏈來保存文件A,而塊的大小為512k。所存儲的文件仍為前面所舉的大小為4M的文件A。文件A寫入的第I個簇301的起始邊界與塊i的起始邊界對齊。文件A寫入的第512個簇303的終止邊界與塊k的終止邊界可以對齊,也可以不對齊。本發明實施例還提出ー種嵌入式電子設備,如圖4所示,該嵌入式電子設備包括一個數據寫入系統400,所述數據寫入系統400包括塊存儲設備401,用于存儲寫入的數據;格式化模塊402,用于對將要進行數據寫入的塊存儲設備401進行格式化操作,根據塊存儲設備401的有效空 間以及塊存儲設備401的塊大小,決定文件系統的簇的大小;簇表模塊403,根據文件系統的簇的分布情況,建立ー個與塊存儲設備401的塊大小相配的簇表,所述簇表中記錄了未被使用的簇的簇號,以及這些簇的連續關系;數據寫入模塊404,用于根據所述簇表模塊建立的簇表,向所述塊存儲設備401連續寫入數據,并保持簇與塊的邊界對齊。本發明實施例還提出另ー種嵌入式電子設備,如圖5所示,該嵌入式電子設備包括一個數據寫入系統500,所述數據寫入系統500包括塊存儲設備501,用于存儲寫入的數據;格式化模塊502,用于對將要進行數據寫入的塊存儲設備501進行格式化操作,根據塊存儲設備501的有效空間以及塊存儲設備的塊大小,決定文件系統的簇的大小;數據寫入模塊503,用于向所述塊存儲設備503連續寫入數據,并保持簇與塊的邊界對齊。所述數據寫入模塊503包括塊選擇單元5031,用于在所述塊存儲設備501的未被寫入數據的塊中選擇ー個塊作為當前塊;寫數據單元5032,用于在所述塊選擇單元5031所選擇的當前塊對應的簇中依次寫入數據;判斷単元5033,用于判斷當前塊數據寫入的情況,若當前塊的簇都已寫入數據且數據未寫完,則通知塊選擇単元5031再選擇ー個當前塊;若數據已寫完,則數據寫入模塊503結束寫入操作。在本發明實施例中,由于數據文件的第I個簇始終與該簇所在的塊邊界對齊,并且塊存儲設備是連續寫入,因此數據能夠連續寫入完整塊里,只有占用的最后I個塊可能不完整,所述最后I個塊的空閑區域也不能寫入其他文件。由于錄音或錄像所形成的數據文件通常較大,其占用的最后ー個塊的剰余空閑區域相對于整個文件所占用存儲空間基本可以忽略不計。根據本發明方案進行數據寫入,由于簇的邊界已與塊的邊界對齊,故不需要進行塊合并等操作,因此也不會造成丟幀現象,從而保證錄音的品質。在對齊處理與不對齊處理,系統的處理是不一樣的,即如果對齊了,則數據能夠連續寫入ー個完整塊里,因此不需要合并操作。如果不對齊,則由于塊需要使用合并操作處理,從而導致處理時間過長。以上所述實施例以錄音或錄像為例對本發明方案進行說明。本發明方案同樣可以適用于需要連續寫入數據的其他應用場合,例如流媒體傳輸、連續數據拷貝等。以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。
權利要求
1.一種數據寫入方法,其特征在于,該方法包括如下步驟 A、對將要進行數據寫入的塊存儲設備進行格式化操作,根據塊存儲設備的有效空間以及塊存儲設備的塊大小,決定文件系統的簇的大小; B、向塊存儲設備連續寫入數據,并保持簇與塊的邊界對齊。
2.根據權利要求I所述的方法,其特征在于, 所述步驟B之前,進一步包括根據文件系統的簇的分布情況,建立一個與塊存儲設備的塊大小相配的簇表,所述簇表中記錄了未被使用的簇的簇號,以及這些簇的連續關系; 所述步驟B中按照所述簇表的順序向塊存儲設備連續寫入數據。
3.根據權利要求I所述的方法,其特征在于,步驟B包括 BI、在所述塊存儲設備的未被寫入數據的塊中選擇一個塊作為當前塊; B2、向所述當前塊的簇中寫入數據,保持簇與塊的邊界對齊; B3、判斷當前塊數據寫入的情況,若當前塊的簇都已寫入數據且數據未寫完,返回步驟BI ;若數據已寫完,則結束步驟B。
4.根據權利要求1、2或3所述的方法,其特征在于,所述塊大小為簇大小的整數倍。
5.根據權利要求4所述的方法,其特征在于,所述塊大小為128k,簇大小為8k。
6.一種數據寫入系統,包括用于存儲寫入的數據的塊存儲設備,其特征在于,該數據寫入系統還包括 格式化模塊,用于對將要進行數據寫入的塊存儲設備進行格式化操作,根據塊存儲設備的有效空間以及塊存儲設備的塊大小,決定文件系統的簇的大小; 數據寫入模塊,用于向所述塊存儲設備連續寫入數據,并保持簇與塊的邊界對齊。
7.根據權利要求6所述的數據寫入系統,其特征在于,該數據寫入系統進一步包括 簇表模塊,用于根據文件系統的簇的分布情況,建立一個與塊存儲設備的塊大小相配的簇表,所述簇表中記錄了未被使用的簇的簇號以及這些簇的連續關系; 所述數據寫入模塊用于根據所述簇表向所述塊存儲設備連續寫入數據,并保持簇與塊的邊界對齊。
8.根據權利要求6所述的數據寫入系統,其特征在于,所述數據寫入模塊包括 塊選擇單元,用于在所述塊存儲設備的未被寫入數據的塊中選擇一個塊作為當前塊; 寫數據單元,用于在所述塊選擇單元所選擇的當前塊對應的簇中依次寫入數據; 判斷單元,用于判斷當前塊數據寫入的情況,若當前塊的簇都已寫入數據且數據未寫完,則通知塊選擇單元再選擇一個當前塊;若數據已寫完,則數據寫入模塊結束寫入操作。
9.一種嵌入式電子設備,其特征在于,所述嵌入式電子設備包括如權利要求6至8任一項所述的數據寫入系統。
全文摘要
本發明提供了一種數據寫入方法、系統及一種嵌入式電子設備,該方法包括如下步驟A、對將要進行數據寫入的塊存儲設備進行格式化操作,根據塊存儲設備的有效空間以及塊存儲設備的塊大小,決定文件系統的簇的大小;B、向塊存儲設備連續寫入數據,并保持簇與塊的邊界對齊。本發明還提供了一種數據寫入系統。本發明方案可以避免出現數據不能及時寫入的現象。
文檔編號G11C7/10GK102855914SQ201110186438
公開日2013年1月2日 申請日期2011年6月30日 優先權日2011年6月30日
發明者李根唐 申請人:炬力集成電路設計有限公司