一種基于nor flash的數據存儲方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于NOR?FLASH的數據存儲方法,包括:獲取數據塊中需要更新的數據項目的位置信息;根據所述數據項目的位置信息將數據塊中對應數據項目的有效標志從有效變成無效并將需要更新的數據項目組成新數據塊重新寫入flash;更新當前有效的數據項目在FLASH中的位置信息。通過本發(fā)明的技術可以減少塊擦寫操作的次數,增加NOR?FLASH硬件的使用壽命。同時,本發(fā)明還公開了一種基于NOR?FLASH的數據存儲系統(tǒng)。
【專利說明】—種基于NOR FLASH的數據存儲方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及硬件數據處理領域,特別涉及一種基于NOR FLASH的數據存儲方法及系統(tǒng)。
【背景技術】
[0002]NOR FLASH是目前市場上主要的非易失閃存技術之一,NOR FLASH的傳輸效率很高,在1-4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響到它的性能,NOR FLASH的擦寫次數是十萬次。EEPROM是電子擦除式只讀存儲器,它是一種非揮發(fā)性存儲器,電源消失后,儲存的數據依然存在,要消除儲存在其中的內容,以電子信號直接消除即可,EEPROM的擦寫次數是百萬次。從NOR FLASH和EEPROM的特點上能夠看出,二者的擦寫壽命差距很大。
[0003]NOR FLASH作為一種掉電不丟失數據的永久存儲介質,具有以下特點:
I.讀數據的時候,采用直接總線地址訪問方式,無需特殊操作。
[0004]2.寫數據有兩種模式:
I)單字寫入模式。可對NOR FLASH上的任意存儲單元做寫入操作,但是只能將該存儲單元中某一位的值由I變?yōu)?,而不能由O變?yōu)镮。這種模式一次操作的最小單位為一個字,根據NOR FLASH規(guī)格的不同,字長通常為8bit、16bit、32bit和64bit。操作影響的最小單位為lbit。
[0005]2)塊擦寫模式。NOR FLASH上地址連續(xù)的若干個存儲單元組成一個FLASH塊。擦寫模式會將整個FLASH塊的數據的所有數據位全部變成1,而無論之前存儲的數據是什么內容的。該模式一次操作的最小單位和操作影響的最小單位均為一個塊。根據NOR FLASH規(guī)格的不同,塊的大小通常為512字節(jié)或者512字節(jié)的整數倍。該模式的使用會影響NORFLASH的壽命。根據NOR FLASH規(guī)格的不同,通常NOR FLASH可擦寫的次數,在IK?100K之間。超過可擦寫次數的擦寫會導致NOR FLASH硬件的失效。
[0006]這兩種寫模式,均采用間接總線地址訪問方式,需要軟件采用特殊的驅動,方可完成操作。存儲區(qū)域的大小由兩個因素決定:a、數據項目的大小;b、數據項目的刷新率。而存儲區(qū)域過大會導致存儲空間的浪費。存儲區(qū)域過小,會導致頻繁塊擦寫操作,影響了 NORFLASH的使用壽命。
【發(fā)明內容】
[0007]基于上述情況,本發(fā)明提出了一種基于NOR FLASH的數據存儲方法,該方法主要利用多項目數據的數據結構及狀態(tài)標志對多項目數據進行標示,使得需要更新的數據項目可以根據更新內容組合成新數據塊,并更新有效的數據項目在FLASH中的位置信息。進而減少塊擦寫操作的次數,增加NOR FLASH硬件的使用壽命。
[0008]本發(fā)明公開了一種基于NOR FLASH的數據存儲方法,包括:獲取數據塊中需要更新的數據項目的位置信息;根據所述數據項目的位置信息將數據塊中對應數據項目的有效標志從有效變成無效并將需要更新的數據項目組成新數據塊并重新寫入flash ;更新當前有效的數據項目在FLASH中的位置信息。
[0009]所述獲取的數據塊為非首次寫入數據塊。
[0010]將所述數據塊中的數據項目按預設比例分配成若干大存儲區(qū)域和若干小存儲區(qū)域。
[0011]檢測到系統(tǒng)需要更新的數據項目是否超過小存儲區(qū)域的空間,若是,采用大的存儲區(qū)域進行存儲;若否,采用小的存儲區(qū)域進行存儲。
[0012]本發(fā)明還公開了一種基于NOR FLASH的數據存儲系統(tǒng),包括:更新數據位置獲取模塊、數據塊重組模塊以及數據位置更新模塊,所述各個模塊信號連接;更新數據位置獲取模塊用于獲取數據塊中需要更新的數據項目的位置信息;數據塊重組模塊用于根據所述數據項目的位置信息將數據塊中對應數據項目的有效標志從有效變成無效并將需要更新的數據項目組成新數據塊并重新寫入flash ;數據位置更新模塊用于更新當前有效的數據項目在FLASH中的位置信息。
[0013]相對于現有技術,本發(fā)明提供的一種基于NOR FLASH的數據存儲方法,可以只更新需要更新的數據,而不用重新寫入全部的數據;并使得多種數據可以組合成一個統(tǒng)一的數據包,一次性寫入存儲空間,同時組成數據包的多種數據的類別可以是任意組合。可以減少塊擦寫操作的次數,增加NOR FLASH硬件的使用壽命。
【專利附圖】
【附圖說明】
[0014]圖1是本發(fā)明一種基于NOR FLASH的數據存儲方法實施例的流程示意圖;
圖2是本發(fā)明一種基于NOR FLASH的數據存儲方法實施例的數據更新前示意圖;
圖3是本發(fā)明一種基于NOR FLASH的數據存儲方法實施例的數據更新過程示意圖A ; 圖4是本發(fā)明一種基于NOR FLASH的數據存儲方法實施例的數據更新過程示意圖B ; 圖5是本發(fā)明一種基于NOR FLASH的數據存儲方法實施例的數據結構示意圖。
【具體實施方式】
[0015]以下結合其中的較佳實施方式對本發(fā)明方案進行詳細闡述。
[0016]表I示出現有技術對數據塊的定義方式,每一個塊表示一個數據塊。(注意,這里提到的數據塊和前文中的FLASH塊是不同的概念。數據塊是一個邏輯上的概念,而FLASH塊是一個實際的物理上的概念。)一個數據塊保存一條數據項目。數據塊一般由以下三部分組成,如表I所示:
表I包含單個數據項目的數據塊的組成結構
【權利要求】
1.一種基于NOR FLASH的數據存儲方法,其特征在于,包括:獲取數據塊中需要更新的數據項目的位置信息;根據所述數據項目的位置信息將數據塊中對應數據項目的有效標志從有效變成無效并將需要更新的數據項目組成新數據塊并重新寫入flash ;更新當前有效的數據項目在FLASH中的位置信息。
2.根據權利要求1所述的數據存儲方法,其特征在于,所述獲取的數據塊為非首次寫入數據塊。
3.根據權利要求1或2所述的數據存儲方法,其特征在于,將所述數據塊中的數據項目按預設比例分配成若干大存儲區(qū)域和若干小存儲區(qū)域。
4.根據權利要求3所述的數據存儲方法,其特征在于,檢測到系統(tǒng)需要更新的數據項目是否超過小存儲區(qū)域的空間,若是,采用大的存儲區(qū)域進行存儲;若否,采用小的存儲區(qū)域進行存儲。
5.一種基于NOR FLASH的數據存儲系統(tǒng),其特征在于,包括:更新數據位置獲取模塊、數據塊重組模塊以及數據位置更新模塊,所述各個模塊信號連接;更新數據位置獲取模塊用于獲取數據塊中需要更新的數據項目的位置信息;數據塊重組模塊用于根據所述數據項目的位置信息將數據塊中對應數據項目的有效標志從有效變成無效并將需要更新的數據項目組成新數據塊重新寫入flash ;數據位置更新模塊用于更新當前有效的數據項目在FLASH中的位置信息。
6.根據權利要求5所述的數據存儲方法,其特征在于,所述獲取的數據塊為非首次寫入數據塊。
7.根據權利要求5或6所述的數據存儲方法,其特征在于,將所述數據塊中的數據項目按預設比例分配成若干大存儲區(qū)域和若干小存儲區(qū)域。
8.根據權利要求3所述的數據存儲方法,其特征在于,檢測到系統(tǒng)需要更新的數據項目是否超過小存儲區(qū)域的空間,若是,采用大的存儲區(qū)域進行存儲;若否,采用小的存儲區(qū)域進行存儲。
【文檔編號】G06F12/02GK103885889SQ201410101246
【公開日】2014年6月25日 申請日期:2014年3月19日 優(yōu)先權日:2014年3月19日
【發(fā)明者】唐敬 申請人:廣州市泰斗軟核信息科技有限公司