一種存儲芯片數(shù)據(jù)寫入方法及裝置制造方法
【專利摘要】本發(fā)明實施例公開了一種存儲芯片數(shù)據(jù)寫入方法及裝置,通過先判斷是否具備足夠的寫入新數(shù)據(jù)的空間,若有,則直接寫入新的數(shù)據(jù),若否,再進行擦除操作,從而,進一步減少了在Flash存儲芯片中寫入和擦除的次數(shù),同時,大大地延長了Flash存儲芯片的工作壽命。本發(fā)明實施例方法包括:S1:判斷是否具備足夠?qū)懭氲谝粩?shù)據(jù)的空間,若是,則執(zhí)行步驟S2,若否,則執(zhí)行步驟S3;S2:將第一數(shù)據(jù)寫入第一空閑存儲區(qū);S3:擦除全部存儲區(qū),并將第一數(shù)據(jù)寫入相對應(yīng)的存儲區(qū)。
【專利說明】—種存儲芯片數(shù)據(jù)寫入方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式【技術(shù)領(lǐng)域】,尤其涉及一種存儲芯片數(shù)據(jù)寫入方法及裝置。
【背景技術(shù)】
[0002]Flash存儲芯片,是嵌入式系統(tǒng)芯片的概念在存儲行業(yè)的具體應(yīng)用,在嵌入式系統(tǒng)芯片的存儲芯片最主要的就是Flash存儲芯片與RAM芯片,然而,由于Flash存儲芯片在斷電后數(shù)據(jù)不會丟失的特殊功能,使得Flash存儲芯片的應(yīng)用更加廣泛。
[0003]然而,如今的Flash存儲芯片在改寫過程中,擦除操作與寫入操作是有次數(shù)限制的,如圖1所示,當(dāng)某系統(tǒng)或者在某使用環(huán)境下需要經(jīng)常修改Flash存儲芯片中的某一個參數(shù),由于基于Flash存儲芯片的特殊性,擦除時是進行頁擦除動作,因此當(dāng)需要對圖1中C3數(shù)據(jù)的改寫時,當(dāng)C3寫入次數(shù)有100K次時,Pl頁相對應(yīng)也進行了 100K次的擦除,然而其它參數(shù)均始終保持原擦除值,當(dāng)一直對C3進行寫入處理,便導(dǎo)致當(dāng)擦除到一個最大次數(shù)時,該Flash存儲芯片在該Pl頁的擦寫壽命也就終止了,同時該Pl頁的存儲/讀取功能也喪失了,意味著除了 C3,C1、C2及C4的數(shù)據(jù)也無法獲取,因此,在嵌入式系統(tǒng)中,快速運行的系統(tǒng)可能會多次擦寫Flash芯片的同一塊區(qū)域,若此區(qū)域擦寫次數(shù)超過了限制就會導(dǎo)致此區(qū)域的存儲單元損壞。
[0004]針對上述的Flash存儲芯片的擦除和寫入操作的限制,因此,如何減少在Flash存儲芯片中寫入和擦除的次數(shù),從而延長Flash存儲芯片的壽命,已經(jīng)成為本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供了一種存儲芯片數(shù)據(jù)寫入方法及裝置,通過先判斷是否具備足夠的寫入新數(shù)據(jù)的空間,若有,則直接寫入新的數(shù)據(jù),若否,再進行擦除操作,從而,進一步減少了在Flash存儲芯片中寫入和擦除的次數(shù),同時,大大地延長了 Flash存儲芯片的工作壽命。
[0006]本發(fā)明實施例提供的一種存儲芯片數(shù)據(jù)寫入方法,包括:
[0007]S1:判斷是否具備足夠?qū)懭氲谝粩?shù)據(jù)的空間,若是,則執(zhí)行步驟S2,若否,則執(zhí)行步驟S3 ;
[0008]S2:將所述第一數(shù)據(jù)寫入第一空閑存儲區(qū);
[0009]S3:擦除全部存儲區(qū),并將所述第一數(shù)據(jù)寫入相對應(yīng)的存儲區(qū)。
[0010]優(yōu)選地,
[0011]所述步驟SI之前還包括:
[0012]將所述第一數(shù)據(jù)緩存在具備預(yù)置緩存時長的緩存區(qū)中;
[0013]當(dāng)所述第一數(shù)據(jù)緩存時間超過所述預(yù)置緩存時長時,對所述第一數(shù)據(jù)進行寫入操作。
[0014]優(yōu)選地,[0015]當(dāng)所述第一數(shù)據(jù)緩存時間超過所述預(yù)置緩存時長時,對所述第一數(shù)據(jù)進行寫入操作具體包括:
[0016]監(jiān)測所述預(yù)置時長內(nèi)是否有第二數(shù)據(jù)寫入,若是,則重置所述緩存區(qū)的緩存時間為所述預(yù)置緩存時長,并將所述第二數(shù)據(jù)合并或更新為所述第一數(shù)據(jù),若否,則當(dāng)所述第一數(shù)據(jù)緩存時間超過所述預(yù)置緩存時長時,對所述第一數(shù)據(jù)進行寫入操作。
[0017]優(yōu)選地,
[0018]所述步驟S3具體包括:
[0019]讀取所述全部存儲區(qū)的全部數(shù)據(jù),所述全部數(shù)據(jù)包含有身份標(biāo)識;
[0020]擦除所述全部存儲區(qū),并將所述第一數(shù)據(jù)寫入相對應(yīng)的所述存儲區(qū)。
[0021]優(yōu)選地,
[0022]將所述第一數(shù)據(jù)寫入相對應(yīng)的所述存儲區(qū)具體包括:
[0023]根據(jù)所述第一數(shù)據(jù)的身份標(biāo)識提取讀取到的所述全部數(shù)據(jù)中原始的所述第一數(shù)據(jù);
[0024]將所述第一數(shù)據(jù)在相對應(yīng)的所述存儲區(qū)中與原始的所述第一數(shù)據(jù)進行替換,并與所述全部數(shù)據(jù)進行合并;
[0025]將合并后的所述全部數(shù)據(jù)寫入相對應(yīng)的所述存儲區(qū)。
[0026]本發(fā)明實施例提供的一種存儲芯片數(shù)據(jù)寫入裝置,包括:
[0027]判斷模塊,用于判斷是否具備足夠?qū)懭氲谝粩?shù)據(jù)的空間,若是,則觸發(fā)第一寫入模塊,若否,則觸發(fā)第二寫入模塊;
[0028]所述第一寫入模塊,用于將所述第一數(shù)據(jù)寫入第一空閑存儲區(qū);
[0029]所述第二寫入模塊,用于擦除全部存儲區(qū),并將所述第一數(shù)據(jù)寫入相對應(yīng)的存儲區(qū)。
[0030]優(yōu)選地,
[0031]所述的存儲芯片數(shù)據(jù)寫入裝置還包括:
[0032]緩存模塊,用于將所述第一數(shù)據(jù)緩存在具備預(yù)置緩存時長的緩存區(qū)中;
[0033]計時模塊,用于當(dāng)所述第一數(shù)據(jù)緩存時間超過所述預(yù)置緩存時長時,對所述第一數(shù)據(jù)進行寫入操作。
[0034]優(yōu)選地,
[0035]所述計時模塊具體包括:
[0036]監(jiān)測子模塊,用于監(jiān)測所述預(yù)置時長內(nèi)是否有第二數(shù)據(jù)寫入,若是,則重置所述緩存區(qū)的緩存時間為所述預(yù)置緩存時長,并將所述第二數(shù)據(jù)合并或更新為所述第一數(shù)據(jù),若否,則當(dāng)所述第一數(shù)據(jù)緩存時間超過所述預(yù)置緩存時長時,對所述第一數(shù)據(jù)進行寫入操作。
[0037]優(yōu)選地,
[0038]所述第二寫入模塊具體包括:
[0039]讀取子模塊,用于讀取所述全部存儲區(qū)的全部數(shù)據(jù),所述全部數(shù)據(jù)包含有身份標(biāo)識;
[0040]擦寫子模塊,用于擦除所述全部存儲區(qū),并將所述第一數(shù)據(jù)寫入相對應(yīng)的所述存儲區(qū)。
[0041]優(yōu)選地,[0042]所述擦寫子模塊具體包括:
[0043]擦除單元,用于擦除所述全部存儲區(qū);
[0044]提取單元,用于根據(jù)所述第一數(shù)據(jù)的身份標(biāo)識提取讀取到的所述全部數(shù)據(jù)中原始的所述第一數(shù)據(jù);
[0045]合并單元,用于將所述第一數(shù)據(jù)在相對應(yīng)的所述存儲區(qū)中與原始的所述第一數(shù)據(jù)進行替換,并與所述全部數(shù)據(jù)進行合并;
[0046]寫入單元,用于將合并后的所述全部數(shù)據(jù)寫入相對應(yīng)的所述存儲區(qū)。
[0047]從以上技術(shù)方案可以看出,本發(fā)明實施例具有以下優(yōu)點:
[0048]本發(fā)明實施例提供的一種存儲芯片數(shù)據(jù)寫入方法及裝置,其中,方法步驟包括:
51:判斷是否具備足夠?qū)懭氲谝粩?shù)據(jù)的空間,若是,則執(zhí)行步驟S2,若否,則執(zhí)行步驟S3;
52:將第一數(shù)據(jù)寫入第一空閑存儲區(qū);S3:擦除全部存儲區(qū),并將第一數(shù)據(jù)寫入相對應(yīng)的存儲區(qū)。本實施例中,通過先判斷是否具備足夠的寫入新數(shù)據(jù)的空間,若有,則直接寫入新的數(shù)據(jù),若否,再進行擦除操作,從而,進一步減少了在Flash存儲芯片中寫入和擦除的次數(shù),同時,大大地延長了 Flash存儲芯片的工作壽命,使得數(shù)據(jù)因Flash存儲芯片的損壞而導(dǎo)致數(shù)據(jù)丟失的概率也有效地得到降低。
【專利附圖】
【附圖說明】
[0049]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0050]圖1為現(xiàn)有技術(shù)的存儲芯片數(shù)據(jù)寫入方法參考示意圖;
[0051]圖2為本發(fā)明實施例提供的一種存儲芯片數(shù)據(jù)寫入方法的一個實施例的流程示意圖;
[0052]圖3為本發(fā)明實施例提供的一種存儲芯片數(shù)據(jù)寫入方法的另一個實施例的流程示意圖;
[0053]圖4為本發(fā)明實施例提供的一種存儲芯片數(shù)據(jù)寫入方法的另一個實施例的流程示意圖;
[0054]圖5為本發(fā)明實施例提供的一種存儲芯片數(shù)據(jù)寫入裝置的一個實施例的結(jié)構(gòu)示意圖;
[0055]圖6為本發(fā)明實施例提供的一種存儲芯片數(shù)據(jù)寫入裝置的另一個實施例的結(jié)構(gòu)示意圖;
[0056]圖7為本發(fā)明實施例提供的一種存儲芯片數(shù)據(jù)寫入裝置的另一個實施例的結(jié)構(gòu)示意圖。
【具體實施方式】
[0057]本發(fā)明實施例提供了一種存儲芯片數(shù)據(jù)寫入方法及裝置,通過先判斷是否具備足夠的寫入新數(shù)據(jù)的空間,若有,則直接寫入新的數(shù)據(jù),若否,再進行擦除操作,從而,進一步減少了在Flash存儲芯片中寫入和擦除的次數(shù),同時,大大地延長了 Flash存儲芯片的工作壽命。
[0058]為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
[0059]請參閱圖2,本發(fā)明實施例提供的一種存儲芯片數(shù)據(jù)寫入方法的一個實施例包括:
[0060]S1:判斷是否具備足夠?qū)懭氲谝粩?shù)據(jù)的空間,若是,則執(zhí)行步驟S2,若否,則執(zhí)行步驟S3 ;
[0061]本實施例中,當(dāng)使用嵌入式系統(tǒng)需要對Flash存儲芯片中的數(shù)據(jù)進行改寫時,首先需要判斷是否具備足夠?qū)懭氲谝粩?shù)據(jù)的空間,若具備有足夠?qū)懭氲谝粩?shù)據(jù)的空間,則執(zhí)行步驟S2,若不具備有足夠?qū)懭氲谝粩?shù)據(jù)的空間,則執(zhí)行步驟S3。
[0062]需要說明的是,前述的第一數(shù)據(jù),可以是新的需要改寫的數(shù)據(jù),該數(shù)據(jù)的存儲結(jié)構(gòu)由數(shù)據(jù)的身份標(biāo)識,數(shù)據(jù)長度及數(shù)據(jù)串組成,例如ID、LEN及DATAl~DATAn組成,如下表所示:
[0063]
【權(quán)利要求】
1.一種存儲芯片數(shù)據(jù)寫入方法,其特征在于,包括: 51:判斷是否具備足夠?qū)懭氲谝粩?shù)據(jù)的空間,若是,則執(zhí)行步驟S2,若否,則執(zhí)行步驟S3 ; 52:將所述第一數(shù)據(jù)寫入第一空閑存儲區(qū); 53:擦除全部存儲區(qū),并將所述第一數(shù)據(jù)寫入相對應(yīng)的存儲區(qū)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟SI之前還包括: 將所述第一數(shù)據(jù)緩存在具備預(yù)置緩存時長的緩存區(qū)中; 當(dāng)所述第一數(shù)據(jù)緩存時間超過所述預(yù)置緩存時長時,對所述第一數(shù)據(jù)進行寫入操作。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)所述第一數(shù)據(jù)緩存時間超過所述預(yù)置緩存時長時,對所述第一數(shù)據(jù)進行寫入操作具體包括: 監(jiān)測所述預(yù)置時長內(nèi)是否有第二數(shù)據(jù)寫入,若是,則重置所述緩存區(qū)的緩存時間為所述預(yù)置緩存時長,并將所述第二數(shù)據(jù)合并或更新為所述第一數(shù)據(jù),若否,則當(dāng)所述第一數(shù)據(jù)緩存時間超過所述預(yù)置緩存時長時,對所述第一數(shù)據(jù)進行寫入操作。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S3具體包括: 讀取所述全部存儲 區(qū)的全部數(shù)據(jù),所述全部數(shù)據(jù)包含有身份標(biāo)識; 擦除所述全部存儲區(qū),并將所述第一數(shù)據(jù)寫入相對應(yīng)的所述存儲區(qū)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,將所述第一數(shù)據(jù)寫入相對應(yīng)的所述存儲區(qū)具體包括: 根據(jù)所述第一數(shù)據(jù)的身份標(biāo)識提取讀取到的所述全部數(shù)據(jù)中原始的所述第一數(shù)據(jù);將所述第一數(shù)據(jù)在相對應(yīng)的所述存儲區(qū)中與原始的所述第一數(shù)據(jù)進行替換,并與所述全部數(shù)據(jù)進行合并; 將合并后的所述全部數(shù)據(jù)寫入相對應(yīng)的所述存儲區(qū)。
6.一種存儲芯片數(shù)據(jù)寫入裝置,其特征在于,包括: 判斷模塊,用于判斷是否具備足夠?qū)懭氲谝粩?shù)據(jù)的空間,若是,則觸發(fā)第一寫入模塊,若否,則觸發(fā)第二寫入模塊; 所述第一寫入模塊,用于將所述第一數(shù)據(jù)寫入第一空閑存儲區(qū); 所述第二寫入模塊,用于擦除全部存儲區(qū),并將所述第一數(shù)據(jù)寫入相對應(yīng)的存儲區(qū)。
7.根據(jù)權(quán)利要求6所述的存儲芯片數(shù)據(jù)寫入裝置,其特征在于,還包括: 緩存模塊,用于將所述第一數(shù)據(jù)緩存在具備預(yù)置緩存時長的緩存區(qū)中; 計時模塊,用于當(dāng)所述第一數(shù)據(jù)緩存時間超過所述預(yù)置緩存時長時,對所述第一數(shù)據(jù)進行寫入操作。
8.根據(jù)權(quán)利要求7所述的存儲芯片數(shù)據(jù)寫入裝置,其特征在于,所述計時模塊具體包括: 監(jiān)測子模塊,用于監(jiān)測所述預(yù)置時長內(nèi)是否有第二數(shù)據(jù)寫入,若是,則重置所述緩存區(qū)的緩存時間為所述預(yù)置緩存時長,并將所述第二數(shù)據(jù)合并或更新為所述第一數(shù)據(jù),若否,則當(dāng)所述第一數(shù)據(jù)緩存時間超過所述預(yù)置緩存時長時,對所述第一數(shù)據(jù)進行寫入操作。
9.根據(jù)權(quán)利要求6所述的存儲芯片數(shù)據(jù)寫入裝置,其特征在于,所述第二寫入模塊具體包括: 讀取子模塊,用于讀取所述全部存儲區(qū)的全部數(shù)據(jù),所述全部數(shù)據(jù)包含有身份標(biāo)識;擦寫子模塊,用于擦除所述全部存儲區(qū),并將所述第一數(shù)據(jù)寫入相對應(yīng)的所述存儲區(qū)。
10.根據(jù)權(quán)利要求9所述的存儲芯片數(shù)據(jù)寫入裝置,其特征在于,所述擦寫子模塊具體包括: 擦除單元,用于擦除所述全部存儲區(qū); 提取單元,用于根據(jù)所述第一數(shù)據(jù)的身份標(biāo)識提取讀取到的所述全部數(shù)據(jù)中原始的所述第一數(shù)據(jù); 合并單元,用于將所述第一數(shù)據(jù)在相對應(yīng)的所述存儲區(qū)中與原始的所述第一數(shù)據(jù)進行替換,并與所述全部數(shù)據(jù)進行合并; 寫入單元,用于將合并后的所述全部數(shù)據(jù)寫入相對應(yīng)的所述存儲區(qū)。
【文檔編號】G06F3/06GK103838526SQ201410129796
【公開日】2014年6月4日 申請日期:2014年3月31日 優(yōu)先權(quán)日:2014年3月31日
【發(fā)明者】鄧孜俊, 王龍輝, 左春生, 劉偉高 申請人:廣州華欣電子科技有限公司