本發(fā)明涉及存儲領域,特別涉及一種數(shù)據(jù)存儲控制方法、控制裝置及存儲設備。
背景技術:
現(xiàn)今單片機應用領域廣泛,隨著幾十年的技術發(fā)展,單片機的性能越來越高,外部擴展能力越來強,于此同時網(wǎng)絡技術、數(shù)據(jù)存儲介質(zhì)技術的發(fā)展給整個行業(yè)帶來了新思路,高速度的網(wǎng)絡、大數(shù)據(jù)的存儲在一些行業(yè)成了需求,于是一些高性能的單片機外掛大容量的存儲設備成了水到渠成的事,而單片機外掛sd卡便是其中之一(日志內(nèi)容短小、但保存頻繁,導致sd卡擦寫次數(shù)頻繁)。
一般的sd卡都有擦除次數(shù)壽命限制,保守點講市面上銷售的sd卡擦除壽命少的幾千次,多的上萬次,如果將這些sd卡應用在一些長時間運行、頻繁讀寫數(shù)據(jù)的設備上,就不得不面臨一個問題:sd卡壽命有限,如何才能讓設備的sd卡延長使用壽命。
我們很多設備的工作環(huán)境比較惡劣,溫度高、震動大,10萬次擦寫的sd卡,到了我們的一些設備上,可能就降為了幾千次擦寫壽命(保守估計4000次,有的商用sd卡可能還沒有這么多)。假設sd卡一個扇區(qū)一天擦寫10次,如果不考慮壽命這個問題,平均不到2年就得換sd卡,雖然sd卡價格不算太貴,這極大的影響了客戶的使用體驗、增加了客戶的維護成本,也給客戶留下了不好的印象。
技術實現(xiàn)要素:
為了解決現(xiàn)有技術的問題,本發(fā)明提供了一種數(shù)據(jù)存儲控制方法、控制裝置及存儲設備,所述技術方案如下:
一方面,本發(fā)明提供了一種數(shù)據(jù)存儲控制方法,包括:
接收目標存儲數(shù)據(jù);
將所述目標存儲數(shù)據(jù)寫入設定的目標內(nèi)存區(qū)域;
判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)容量是否達到預設的容量閾值,若否,則等待接收下一次的目標存儲數(shù)據(jù);
若是,則根據(jù)存儲設備的扇區(qū)容量,從目標內(nèi)存區(qū)域中按序獲取一定量的數(shù)據(jù)作為待存儲數(shù)據(jù),所述待存儲數(shù)據(jù)的大小為所述扇區(qū)容量的整數(shù)倍;
將所述待存儲數(shù)據(jù)從目標內(nèi)存區(qū)域移動至存儲設備。
進一步地,所述預設的容量閾值小于目標內(nèi)存區(qū)域的容量,并大于單個扇區(qū)容量,單次目標存儲數(shù)據(jù)的最大容量小于目標內(nèi)存區(qū)域的容量與預設的容量閾值之間的差值。
進一步地,所述將所述待存儲數(shù)據(jù)從目標內(nèi)存區(qū)域移動至存儲設備之前還包括:
判斷存儲設備中當前待寫入扇區(qū)是否為空,若否,則獲取當前待寫入扇區(qū)的剩余容量,并從目標內(nèi)存區(qū)域中按序獲取相應容量的數(shù)據(jù)作為填充數(shù)據(jù),將所述填充數(shù)據(jù)從目標內(nèi)存區(qū)域移動至待寫入扇區(qū)。
進一步地,所述接收目標存儲數(shù)據(jù)之前還包括:
判斷當前目標內(nèi)存區(qū)域的剩余容量是否大于目標存儲數(shù)據(jù),若否,則將所述目標存儲數(shù)據(jù)寫入存儲設備,或者,將所述目標存儲數(shù)據(jù)寫入第二內(nèi)存區(qū)域。
進一步地,所述目標存儲數(shù)據(jù)為日志文件,所述判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)容量是否達到預設的容量閾值之前還包括:
判斷時間是否到達零點,若是,新建系統(tǒng)日志,并將當前目標內(nèi)存區(qū)域中的數(shù)據(jù)寫入存儲設備。
再一方面,本發(fā)明還提供了第二種數(shù)據(jù)存儲控制方法,其特征在于,包括:
接收目標存儲數(shù)據(jù);
將所述目標存儲數(shù)據(jù)寫入設定的目標內(nèi)存區(qū)域;
判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)容量是否達到預設的容量閾值,若否,則等待接收下一次的目標存儲數(shù)據(jù);
若是,則將目標內(nèi)存區(qū)域中的數(shù)據(jù)一次性寫入存儲設備,并清空所述目標內(nèi)存區(qū)域中的數(shù)據(jù)。
再一方面,本發(fā)明提供了一種數(shù)據(jù)存儲控制裝置,包括:
接收模塊,用于接收目標存儲數(shù)據(jù);
內(nèi)存存儲模塊,用于將所述目標存儲數(shù)據(jù)寫入設定的目標內(nèi)存區(qū)域;
判斷模塊,用于判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)容量是否達到預設的容量閾值;
等待接收模塊,用于響應目標內(nèi)存區(qū)域中的數(shù)據(jù)容量未達到預設的容量閾值,則等待接收下一次的目標存儲數(shù)據(jù);
待存儲模塊,用于根據(jù)存儲設備的扇區(qū)容量,從目標內(nèi)存區(qū)域中按序獲取一定量的數(shù)據(jù)作為待存儲數(shù)據(jù),所述待存儲數(shù)據(jù)的大小為所述扇區(qū)容量的整數(shù)倍;
第一寫入模塊,用于將所述待存儲數(shù)據(jù)從目標內(nèi)存區(qū)域移動至存儲設備。
進一步地,所述裝置還包括扇區(qū)填充模塊,包括:
統(tǒng)計單元,用于獲取當前待寫入扇區(qū)的剩余容量;
提取單元,用于從目標內(nèi)存區(qū)域中按序獲取相應容量的數(shù)據(jù)作為填充數(shù)據(jù);
第二寫入模塊,用于將所述填充數(shù)據(jù)從目標內(nèi)存區(qū)域移動至待寫入扇區(qū)。
再一方面,本發(fā)明還提供了第二種數(shù)據(jù)存儲控制裝置,包括:
第二接收模塊,用于接收目標存儲數(shù)據(jù);
第二內(nèi)存存儲模塊,用于將所述目標存儲數(shù)據(jù)寫入設定的目標內(nèi)存區(qū)域;
第二判斷模塊,用于判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)容量是否達到預設的容量閾值;
第二等待接收模塊,用于響應目標內(nèi)存區(qū)域中的數(shù)據(jù)容量未達到預設的容量閾值,則等待接收下一次的目標存儲數(shù)據(jù);
第三寫入模塊,用于響應目標內(nèi)存區(qū)域中的數(shù)據(jù)容量達到預設的容量閾值,則將目標內(nèi)存區(qū)域中的數(shù)據(jù)一次性寫入存儲設備;
清空模塊,用于響應所述寫入模塊執(zhí)行寫入操作,清空所述目標內(nèi)存區(qū)域中的數(shù)據(jù)。
再一方面,本發(fā)明提供了一種存儲設備,所述存儲設備包括如上所述的數(shù)據(jù)存儲控制裝置,所述存儲設備在所述數(shù)據(jù)存儲控制裝置的控制下進行數(shù)據(jù)存儲。
本發(fā)明提供的技術方案帶來的有益效果如下:
1)sd卡的壽命絕大部分取決于擦寫次數(shù),因為sd卡的擦寫次數(shù)是有限的,通過緩沖內(nèi)存存儲技術,降低sd卡的擦寫次數(shù),延長了sd卡寫壽命;
2)在當前扇區(qū)填充完整的前提下,從緩沖內(nèi)存中以扇區(qū)容量為單位移動數(shù)據(jù)至存儲設備中,將單個扇區(qū)的擦寫次數(shù)降到最低。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是現(xiàn)有技術中不使用緩沖內(nèi)存進行數(shù)據(jù)暫存的單扇區(qū)擦寫次數(shù)舉例示意圖;
圖2是本發(fā)明實施例提供的數(shù)據(jù)存儲控制方法的第一流程圖;
圖3是本發(fā)明實施例提供的數(shù)據(jù)存儲控制方法的第二流程圖;
圖4是本發(fā)明實施例提供的數(shù)據(jù)存儲控制方法的第三流程圖;
圖5是本發(fā)明實施例提供的數(shù)據(jù)存儲控制方法的第四流程圖;
圖6是本發(fā)明實施例提供的數(shù)據(jù)存儲控制方法的第五流程圖;
圖7是本發(fā)明實施例提供的數(shù)據(jù)存儲控制方法的第六流程圖;
圖8是本發(fā)明實施例提供的數(shù)據(jù)存儲控制裝置的第一模塊框圖;
圖9是本發(fā)明實施例提供的數(shù)據(jù)存儲控制裝置的第二模塊框圖;
圖10是本發(fā)明實施例提供的利用緩存技術在理想狀態(tài)下的擦寫次數(shù)示意圖;
圖11是本發(fā)明實施例提供的利用緩存技術在非理想狀態(tài)下的擦寫次數(shù)示意圖。
具體實施方式
為了使本技術領域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、裝置、產(chǎn)品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設備固有的其它步驟或單元。
如今業(yè)內(nèi)人士在單片機上使用的文件系統(tǒng)大部分都支持多文件操作,但多文件操作也有限制,比如要設定可以同時打開的最大文件數(shù),還有一些互斥保護機制。鑒于目前單片機領域文件系統(tǒng)的可靠性現(xiàn)狀沒有權(quán)威認證,使用多文件支持,但同時只使用一個文件,這樣可靠性會高一點,單具體使用哪種方式還得由技術人員決定。本發(fā)明只針對單文件操作(即整個同一時刻只有一個文件被打開),多文件讀寫的使用環(huán)境。因為多文件操作,可以不必寫完一點數(shù)據(jù)就關閉文件,不關閉文件就不會用數(shù)據(jù)強制同步至sd卡,那么sd卡扇區(qū)的擦除次數(shù)就會大大的降低,沒必要使用本發(fā)明的方法。
實施例1
在本發(fā)明的一個實施例中,提供了一種數(shù)據(jù)存儲控制方法,參見圖2,所述方法包括以下流程:
s101、接收目標存儲數(shù)據(jù)。
其中,在本實施例中,所述數(shù)據(jù)存儲控制方法是用于控制sd卡這一存儲設備,尤其是單片機外掛sd卡,所述sd卡用于保存日志(根據(jù)實際應用可知,單條日志不超過j字節(jié))。
因此,s1中的接收目標存儲數(shù)據(jù)即為接收日志信息。
s102、將所述目標存儲數(shù)據(jù)寫入設定的目標內(nèi)存區(qū)域。
具體地,為sd卡額外配置一塊內(nèi)存區(qū)域(緩沖內(nèi)存不考慮擦寫壽命,可選系統(tǒng)內(nèi)存),所述內(nèi)存區(qū)域與sd卡可以進行數(shù)據(jù)通訊,即所述目標內(nèi)存區(qū)域作為待寫入sd卡信息的暫存區(qū)域。
s103、判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)容量是否達到預設的容量閾值。
具體地,所述目標內(nèi)存區(qū)域中的數(shù)據(jù)容量即為當前內(nèi)存區(qū)域中已使用的容量,計為i字節(jié),容量閾值為預設值m字節(jié),sd卡內(nèi)扇區(qū)容量一般為512字節(jié)(其他規(guī)格的扇區(qū)容量同理)。
目標內(nèi)存區(qū)域的總?cè)萘考礊閏字節(jié),則512<m<c,且j一定滿足j<(c-m),由此可見,在滿足以上關系的前提下,m越大越好,m優(yōu)選為512的整數(shù)倍,即容量閾值優(yōu)選設置為單個扇區(qū)容量的整數(shù)倍(一倍或多倍)。
當滿足i≥m時,執(zhí)行s104和s105,否則執(zhí)行s106。
s104、從目標內(nèi)存區(qū)域中按序獲取待存儲數(shù)據(jù)。
所述待存儲數(shù)據(jù)由如下定義:根據(jù)存儲設備的扇區(qū)容量,從目標內(nèi)存區(qū)域中按序獲取一定量的數(shù)據(jù)作為待存儲數(shù)據(jù),所述的一定量定義為所述扇區(qū)容量的整數(shù)倍(一倍或多倍)。
s105、將待存儲數(shù)據(jù)從目標內(nèi)存區(qū)域移動至存儲設備。
將所述扇區(qū)容量的整數(shù)倍數(shù)據(jù)量的待存儲數(shù)據(jù)從目標內(nèi)存區(qū)域拷貝至存儲設備,并將其從目標內(nèi)存區(qū)域中刪除。
s106、等待接收下一次的目標存儲數(shù)據(jù)。
若當前內(nèi)存區(qū)域中已使用的容量i未達到預設的容量閾值m,則表示內(nèi)存區(qū)域的剩余容量足夠放置下一條日志文件,則不急于將內(nèi)存中的數(shù)據(jù)寫入sd卡,而是繼續(xù)等待下一條日志文件,將其存儲到內(nèi)存區(qū)域中,并再次進行i與m的比較,即重復執(zhí)行步驟s101-s103。
圖1舉例了不利用緩存內(nèi)存,單個扇區(qū)的擦寫經(jīng)過:sd卡寫數(shù)據(jù)之前首先要進行擦的動作,先把扇區(qū)擦除,然后寫入編號為①的數(shù)據(jù),當寫入編號為②的數(shù)據(jù)之前,先對該扇區(qū)進行第二次擦除,然后將數(shù)據(jù)①和②一起寫入該扇區(qū),一直重復以上動作,直至對該扇區(qū)進行第十一次擦除,然后將編號1-11的數(shù)據(jù)一起寫滿該扇區(qū),統(tǒng)計得到擦的次數(shù)為11次,寫的次數(shù)為11次。
圖9舉例了n倍扇區(qū)的緩沖數(shù)據(jù)寫入sd卡扇區(qū)的擦寫次數(shù),理想狀態(tài)下,寫入的第一個扇區(qū)即為一個空的扇區(qū),則緩沖數(shù)據(jù)正好填充滿n個扇區(qū),則擦寫次數(shù)均為n次;在非理想狀態(tài)下,寫入的第一個扇區(qū)不是一個空的扇區(qū),則緩沖數(shù)據(jù)需要n+1個扇區(qū),則擦寫次數(shù)均為n+1次,當n為1時,利用本發(fā)明的緩沖存儲數(shù)據(jù)的方法,一個扇區(qū)容量的數(shù)據(jù)寫入sd卡,擦寫次數(shù)最多為2次,大大減少了擦寫次數(shù)。
實施例2
為了克服上述非理想狀態(tài),在本發(fā)明的一個實施例中,提供了第二種數(shù)據(jù)存儲控制方法,參見圖3,所述方法包括以下流程:
s201、接收目標存儲數(shù)據(jù)。
s202、將所述目標存儲數(shù)據(jù)寫入設定的目標內(nèi)存區(qū)域。
s203、判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)容量是否達到預設的容量閾值,若是,則執(zhí)行s205和s206,否則執(zhí)行s204。
s204、等待接收下一次的目標存儲數(shù)據(jù)。
s205、從目標內(nèi)存區(qū)域中按序獲取待存儲數(shù)據(jù)。
s206、判斷存儲設備中當前待寫入扇區(qū)是否為空,若是,則執(zhí)行s207,否則執(zhí)行s208-s210。
s207、將待存儲數(shù)據(jù)從目標內(nèi)存區(qū)域移動至存儲設備。
s208、獲取當前待寫入扇區(qū)的剩余容量。
s209、從目標內(nèi)存區(qū)域中獲取填充數(shù)據(jù)。
s210、將填充數(shù)據(jù)從目標內(nèi)存區(qū)域移動至待寫入扇區(qū)。
在完成s210之后,返回執(zhí)行s201及其后續(xù)步驟,如圖3,或者,返回執(zhí)行s205,即在完成填充后,目標內(nèi)存區(qū)域中剩余的數(shù)據(jù)大于512字節(jié)的前提下,從中按序提取扇區(qū)容量整數(shù)倍的數(shù)據(jù),將其從目標內(nèi)存區(qū)域中移動至存儲設備(圖中未示出),均是根據(jù)以上技術方案作出的相應變換調(diào)整,不需要付出創(chuàng)造性勞動,應當歸屬于本申請的保護范圍。
實施例3
與實施例2中每一次將待存儲數(shù)據(jù)從目標內(nèi)存區(qū)域移動至存儲設備之前對sd卡扇區(qū)進行檢測并填充的方式不同,本實施例中,先一次性將扇區(qū)剩余空間填充完畢,后續(xù)無需再對其進行檢測,參見圖4,所述方法流程包括:
s301、判斷存儲設備中當前待寫入扇區(qū)是否為空,若是,則執(zhí)行s305,否則執(zhí)行s302至s305。
s302、獲取當前待寫入扇區(qū)的剩余容量。
s303、從目標內(nèi)存區(qū)域中獲取填充數(shù)據(jù)。
s304、將填充數(shù)據(jù)從目標內(nèi)存區(qū)域移動至待寫入扇區(qū)。
s305、接收目標存儲數(shù)據(jù)。
s306、將所述目標存儲數(shù)據(jù)寫入設定的目標內(nèi)存區(qū)域。
s307、判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)容量是否達到預設的容量閾值,若是,則執(zhí)行s309和s310,否則執(zhí)行s308。
s308、等待接收下一次的目標存儲數(shù)據(jù)。
s309、從目標內(nèi)存區(qū)域中按序獲取待存儲數(shù)據(jù)。
s310、將待存儲數(shù)據(jù)從目標內(nèi)存區(qū)域移動至存儲設備。
在完成s310或s308之后,返回執(zhí)行s305及其后續(xù)步驟,如圖4。
實施例4
與上述實施例中限定單次接收的目標存儲數(shù)據(jù)有字節(jié)上限不同的是,本實施例中,接收的文件有大有小,因此,無法像上述實施例一樣確保內(nèi)存總?cè)萘颗c預設的容量閾值只差足夠存儲下一次接收的文件,在本發(fā)明的一個實施例中,提出了一種適應于大小不一的數(shù)據(jù)存儲控制方法,參見圖5,所述方法流程包括:
s401、接收目標存儲數(shù)據(jù)。
s402、判斷當前目標內(nèi)存區(qū)域的剩余容量是否大于目標存儲數(shù)據(jù),若是,則執(zhí)行s404和s405,否則執(zhí)行s403。
s403、將所述目標存儲數(shù)據(jù)寫入存儲設備。
s404、將所述目標存儲數(shù)據(jù)寫入設定的目標內(nèi)存區(qū)域。
s405、判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)量是否達到預設的容量閾值,若是,則執(zhí)行s407和s408,否則,執(zhí)行s406。
s406、等待接受下一次的目標存儲數(shù)據(jù)。
s407、從目標內(nèi)存區(qū)域中按序獲取待存儲數(shù)據(jù)。
s408、將待存儲數(shù)據(jù)從目標內(nèi)存區(qū)域移動至存儲設備。
在完成s403、s406或s408之后,返回執(zhí)行s401及其后續(xù)步驟,如圖5,本實施例s403中當檢測到內(nèi)存區(qū)域剩余空間不足以存儲下一個存儲文件時,將其直接寫入sd卡,除此,也可以設置第二內(nèi)存區(qū)域,將該存儲文件存入所述第二內(nèi)存區(qū)域,所述第二內(nèi)存區(qū)域作為前一目標內(nèi)存區(qū)域的補充,可以在目標內(nèi)存區(qū)域的容量空出后,將第二內(nèi)存區(qū)域的文件內(nèi)容轉(zhuǎn)移到目標內(nèi)存區(qū)域,或者第二內(nèi)存區(qū)域作為獨立的內(nèi)存區(qū)域,采用實施例1-3的技術方案進行存儲控制(圖中未示出),以上是根據(jù)以上技術方案作出的相應變換調(diào)整,不需要付出創(chuàng)造性勞動,應當歸屬于本申請的保護范圍。
實施例5
在上述實施例的基礎上,本實施例中,進一步提供了限時強制存儲的控制方法,參見圖6,所述方法流程包括:
s501、接收目標存儲數(shù)據(jù)。
s502、將所述目標存儲數(shù)據(jù)寫入設定的目標內(nèi)存區(qū)域。
s503、判斷時間是否到達零點,若是,則執(zhí)行s504和s505,否則執(zhí)行s506。
s504、新建系統(tǒng)日志。
s505、將當前目標內(nèi)存區(qū)域中的數(shù)據(jù)寫入存儲設備。
s506、判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)容量是否達到預設的容量閾值,若是,則執(zhí)行s508和s509,否則執(zhí)行s507。
s507、等待接收下一次的目標存儲數(shù)據(jù)。
s508、從目標內(nèi)存區(qū)域中按序獲取待存儲數(shù)據(jù)。
s509、將待存儲數(shù)據(jù)從目標內(nèi)存區(qū)域移動至存儲設備。
在目標存儲數(shù)據(jù)為日志的前提下,每天的零點會自動新建該天的日志,在此情況下,此時可以控制將當前目標內(nèi)存區(qū)域內(nèi)的所有數(shù)據(jù)(即使未達到預設的容量閾值)寫入存儲設備,并清空目標內(nèi)存區(qū)域。
實施例6
與實施例1不同的是,在判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)容量大于閾值之后,不是提取扇區(qū)容量整數(shù)倍的數(shù)據(jù)存儲到sd卡中,而是采用以下方法進行存儲,參見圖7,所述方法流程包括:
s601、接收目標存儲數(shù)據(jù)。
s602、將所述目標存儲數(shù)據(jù)寫入設定的目標內(nèi)存區(qū)域。
s603、判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)容量是否達到預設的容量閾值,若是,則執(zhí)行s604和s605,否則執(zhí)行s606。
s604、將目標內(nèi)存區(qū)域中的數(shù)據(jù)一次性寫入存儲設備。
若當前內(nèi)存區(qū)域中已使用的容量i已達到預設的容量閾值m,則將所述容量i的數(shù)據(jù)一次性寫入存儲設備sd卡。
s605、清空目標內(nèi)存區(qū)域中的數(shù)據(jù)。
s606、等待接收下一次的目標存儲數(shù)據(jù)。
完成將內(nèi)存中的數(shù)據(jù)寫入sd卡之后,清空所述目標內(nèi)存區(qū)域中的數(shù)據(jù);或者對目標內(nèi)存區(qū)域中的數(shù)據(jù)進行拷貝,然后刪除目標內(nèi)存區(qū)域中的所有數(shù)據(jù),再將拷貝的數(shù)據(jù)寫入sd卡。本發(fā)明對寫入和刪除這兩者之間的先后順序不作具體的限定。
利用本實施例中的數(shù)據(jù)存儲控制方法,雖然會出現(xiàn)如圖11的非理想狀態(tài)的擦寫次數(shù),但是在數(shù)據(jù)寫入時,無需對寫入字節(jié)數(shù)進行控制。優(yōu)選地,預設的容量閾值大于512字節(jié)(一個扇區(qū)的存儲容量)。
實施例7
在本發(fā)明的一個實施例中,提供了一種數(shù)據(jù)存儲控制裝置,參見圖8,所述裝置包括:
接收模塊,用于接收目標存儲數(shù)據(jù);
內(nèi)存存儲模塊,用于將所述目標存儲數(shù)據(jù)寫入設定的目標內(nèi)存區(qū)域;
判斷模塊,用于判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)容量是否達到預設的容量閾值;
等待接收模塊,用于響應目標內(nèi)存區(qū)域中的數(shù)據(jù)容量未達到預設的容量閾值,則等待接收下一次的目標存儲數(shù)據(jù);
待存儲模塊,用于根據(jù)存儲設備的扇區(qū)容量,從目標內(nèi)存區(qū)域中按序獲取一定量的數(shù)據(jù)作為待存儲數(shù)據(jù),所述待存儲數(shù)據(jù)的大小為所述扇區(qū)容量的整數(shù)倍;
第一寫入模塊,用于將所述待存儲數(shù)據(jù)從目標內(nèi)存區(qū)域移動至存儲設備。
在本發(fā)明的優(yōu)選實施例中,所述裝置還包括扇區(qū)填充模塊,所述扇區(qū)填充模塊包括:
統(tǒng)計單元,用于獲取當前待寫入扇區(qū)的剩余容量;
提取單元,用于從目標內(nèi)存區(qū)域中按序獲取相應容量的數(shù)據(jù)作為填充數(shù)據(jù);
第二寫入模塊,用于將所述填充數(shù)據(jù)從目標內(nèi)存區(qū)域移動至待寫入扇區(qū)。
在本發(fā)明實施例中,相應提供了一種存儲設備,所述存儲設備利用上述數(shù)據(jù)存儲控制裝置進行相應控制,所述存儲設備按照對應的控制方法進行數(shù)據(jù)存儲。
需要說明的是:上述實施例提供的數(shù)據(jù)存儲控制裝置在進行存儲控制時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將數(shù)據(jù)存儲控制裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,本實施例提供的數(shù)據(jù)存儲控制裝置實施例與上述實施例提供的數(shù)據(jù)存儲控制方法屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
實施例8
在本發(fā)明的一個實施例中,提供了另一種數(shù)據(jù)存儲控制裝置,參見圖9,所述裝置包括:
第二接收模塊,用于接收目標存儲數(shù)據(jù);
第二內(nèi)存存儲模塊,用于將所述目標存儲數(shù)據(jù)寫入設定的目標內(nèi)存區(qū)域;
第二判斷模塊,用于判斷目標內(nèi)存區(qū)域中的數(shù)據(jù)容量是否達到預設的容量閾值;
第二等待接收模塊,用于響應目標內(nèi)存區(qū)域中的數(shù)據(jù)容量未達到預設的容量閾值,則等待接收下一次的目標存儲數(shù)據(jù);
第三寫入模塊,用于響應目標內(nèi)存區(qū)域中的數(shù)據(jù)容量達到預設的容量閾值,則將目標內(nèi)存區(qū)域中的數(shù)據(jù)一次性寫入存儲設備;
清空模塊,用于響應所述寫入模塊執(zhí)行寫入操作,清空所述目標內(nèi)存區(qū)域中的數(shù)據(jù)。
在本發(fā)明實施例中,相應提供了一種存儲設備,所述存儲設備利用上述數(shù)據(jù)存儲控制裝置進行相應控制,所述存儲設備按照對應的控制方法進行數(shù)據(jù)存儲。
需要說明的是:上述實施例提供的數(shù)據(jù)存儲控制裝置在進行存儲控制時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將數(shù)據(jù)存儲控制裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,本實施例提供的數(shù)據(jù)存儲控制裝置實施例與上述實施例提供的數(shù)據(jù)存儲控制方法屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。