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

一種閃存存儲設備的數據存儲方法和裝置的制作方法

文檔序號:6428414閱讀:200來源:國知局
專利名稱:一種閃存存儲設備的數據存儲方法和裝置的制作方法
技術領域
本發(fā)明屬于數據存儲技術領域,尤其涉及一種閃存存儲設備的其數據存儲方法和
直O(jiān)
背景技術
現(xiàn)有的電子產品中,基本上都會用到存儲設備。目前比較常見存儲設備有閃存閃存和電可擦寫可編程只讀存儲器(Electrically Erasable Programmable Read-Only Memory, EEPROM),這兩種存儲設備分別具有以下優(yōu)缺點al)、閃存的優(yōu)點是容量大且價格低;缺點是擦寫速度慢,而且必須先擦后寫,每次擦除的最小單位為一個BANK,即64KB。而且單位存儲空間可擦寫次數少,約為10萬次;a2)、EEPROM的缺點是容量小且價格高;優(yōu)點是擦寫速度快,可單個字節(jié)擦寫,而且單位存儲空間的可擦寫次數多,可達到100萬次?,F(xiàn)有的存儲設備在存儲數據時,一般至少有兩部分數據需要存儲程序部分和用戶數據部分。存儲設備出廠后,程序部分一般不會再改變,除非進行軟件升級,因此一般都會選擇閃存作為程序部分的存儲設備。而用戶數據部分經常會被用戶修改,對存儲設備的可擦寫次數和穩(wěn)定性有較高的要求。但是,如果為考慮成本而采用閃存存儲用戶數據,則會存在以下問題閃存擦寫速度慢,而且大部分SPI閃存必須以BANK(64KB)為最小擦除單位,一次擦除要IOOms以上,擦除次數過多的話,勢必會影響閃存存儲設備的使用壽命,而且,對數據進行存儲時,速度也較慢。

發(fā)明內容
本發(fā)明的目的在于提供一種閃存存儲設備的數據存儲方法和裝置,旨在延長閃存存儲設備的使用壽命,快速對數據進行存儲。本發(fā)明是這樣實現(xiàn)的,一種閃存存儲設備的數據存儲方法,所述閃存存儲設備包括復數個存儲單元,所述方法包括以下步驟查找并得到第一標識,所述第一標識對應于第一數據所在的存儲單元,所述第一數據為最新保存的數據;根據所述第一標識找到保存所述第一數據的存儲單元;將第二數據存儲至另一存儲單元;以及將所述第一標識對應于第二數據所在的所述另一存儲單元。其中,所述方法還包括以下步驟使用第二標識,并使對應于除第二數據所在的所述另一存儲單元之外所有存儲單元。其中,將所述第一標識對應于第二數據所在的所述另一存儲單元的步驟包括修改第一標識的存儲位置,使修改后的第一標識所在存儲位置對應第二數據所在的所述另一存儲單元的位置。
其中,所述閃存存儲設備的存儲單元數量為第一數量,每個存儲單元均有第二數量個字節(jié),在所述第一數量存儲單元中第一個存儲單元有第一數量個字節(jié)分別用于存儲第一標識和第二標識,所述第二數量大于所述第一數量;所述第一個存儲單元中分別用于存儲第一標識和第二標識的第一數量字節(jié)的相對位置與第一數量存儲單元的相對位置一一對應;其中對應于所述第一數據所在存儲單元的一字節(jié)用于存儲所述第一標識,其余所有字節(jié)用于存儲其他第二標識,對應第一標識的字節(jié)內容不同于對應第二標識的字節(jié)內容;其中查找并得到第一標識及由所述第一標識找到保存第一數據的存儲單元步驟包括從第一存儲單元的第一字節(jié)開始往后一一識別;在識別到所述用于存儲第一標識的字節(jié)時,確定所述字節(jié)在第一存儲單元的連續(xù)第一數量字節(jié)中的相對位置;以及確定在第一數量存儲單元中對應所述字節(jié)的相對位置的存儲單元為保存第一數據的存儲單元。其中,所述第一數量是32,第二數量是業(yè),所述閃存存儲設備包括復數個存儲區(qū), 每個存儲區(qū)包括32個存儲單元,每個存儲區(qū)中的第一個存儲單元的前32個字節(jié)用于存儲第一標識和第二標識。其中,所述第一數量是64,第二數量是2k,所述復數個存儲單元的第一個存儲單元的前64個字節(jié)用于存儲所述第一標識和第二標識。其中,將第二數據存儲至另一存儲單元的步驟包括將第二數據存儲至第一數據所在存儲區(qū)之外的另一存儲區(qū)中另一存儲單元;所述將所述第一標識對應于第二數據所在的所述另一存儲單元的步驟包括確定第二數據所在的所述另一存儲單元在另一存儲區(qū)中的相對位置,并找到與第二數據所在的所述另一存儲單元的相對位置對應的另一存儲區(qū)的第一個存儲單元的一字節(jié),將所述第一標識存儲至所述字節(jié),使所述第一標識對應于第二數據所在的所述另一存儲單元;所述使用第二標識,并使其定義為除第二數據所在的所述另一存儲單元之外所有的存儲單元步驟包括將第一數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識。其中,將第二數據存儲至第一數據所在存儲區(qū)之外的另一存儲區(qū)中另一存儲單元之前,判斷除第一標識對應的存儲單元所在的存儲區(qū)之外所述另一存儲區(qū)是否存在空閑存儲單元;在判斷所述另一存儲區(qū)不存在空閑存儲單元時,將第二數據存儲至閃存存儲設備中其它存儲區(qū)的空閑存儲單元;確定第二數據所在存儲單元的相對位置,并找到與第二數據所在存儲單元相對位置對應的所述其他存儲區(qū)的第一個存儲單元的字節(jié),將所述第一標識存儲至所述字節(jié),使其對應第二數據所在存儲單元;
將第一數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識;以及在存儲第二數據后,對所述另一存儲區(qū)進行擦除操作。其中,在對所述另一存儲區(qū)進行擦除操作后,需要繼續(xù)存儲第三數據時,包括將第三數據存儲至所述另一存儲區(qū)的其中一空閑存儲單元;確定第三數據所在存儲單元的相對位置,并找到與第三數據所在存儲單元的相對位置對應的另一存儲區(qū)的第一個存儲單元的字節(jié),將所述第一標識存儲至所述字節(jié),使其對應第三數據所在存儲單元;將第二數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識。本發(fā)明是這樣實現(xiàn)的,一種閃存存儲設備的數據存儲裝置,所述閃存存儲設備包括復數個存儲單元,所述裝置包括標識查找模塊,用于查找并得到第一標識,其中,所述第一標識對應于第一數據所在的存儲單元,所述第一數據為最新保存的數據;數據查找模塊,用于根據所述第一標識找到保存第一數據的存儲單元;數據存儲模塊,用于將第二數據存儲至另一存儲單元;標識處理模塊,用于將所述第一標識對應于第二數據所在的所述另一存儲單元。其中,所述標識處理模塊,還用于使用第二標識,并使所述第二標識對應于除第二數據所在的所述另一存儲單元之外所有存儲單元。其中,所述標識處理模塊,還用于修改所述第一標識的存儲位置,使修改后的第一標識所在存儲位置對應于所述第二數據所在的所述另一存儲單元。其中,所述閃存存儲設備的存儲單元數量為第一數量,每個存儲單元均有第二數量個字節(jié),在所述第一數量存儲單元中第一個存儲單元有第一數量個字節(jié)分別用于存儲第一標識和第二標識,所述第二數量大于所述第一數量;所述第一個存儲單元中分別用于存儲第一標識和第二標識的第一數量字節(jié)的相對位置與第一數量存儲單元的相對位置一一對應;其中,對應于所述第一數據所在存儲單元的一字節(jié)用于存儲所述第一標識,其余所有字節(jié)用于存儲其他第二標識,對應第一標識的字節(jié)內容不同于對應第二標識的字節(jié)內容;其中,所述標識查找模塊,還用于從存儲區(qū)第一存儲單元的第一字節(jié)開始往后一一識別,在識別到對應第一標識的字節(jié)時,確定所述字節(jié)在第一存儲單元的連續(xù)第一數量字節(jié)中的相對位置,所述數據查找模塊在第一數量存儲單元中確定所述字節(jié)的相對位置的存儲單元為保存第一數據的存儲單元。其中,所述第一數量是32,第二數量是業(yè),所述閃存存儲設備包括復數個存儲區(qū), 每個存儲區(qū)包括32個存儲單元,每個存儲區(qū)中的第一個存儲單元的前32個字節(jié)用于存儲所述第一標識和第二標識。其中,所述第一數量是64,第二數量是2k,所述復數個存儲單元的第一個存儲單元的前64個字節(jié)用于存儲所述第一標識和第二標識。其中,所述數據存儲模塊,還用于將第二數據存儲至第一數據所在存儲區(qū)之外的另一存儲區(qū)中另一存儲單元;所述標識處理模塊,還用于確定第二數據所在的所述另一存儲單元在另一存儲區(qū)的相對位置,并找到與第二數據所在的所述另一存儲單元的相對位置對應的另一存儲區(qū)的第一個存儲單元的一字節(jié),將所述第一標識存儲至所述字節(jié),使所述第一標識對應于第二數據所在的所述另一存儲單元;以及用于將第一數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識。其中,所述裝置還包括判斷模塊和擦除模塊,其中,所述數據存儲模塊在將第二數據存儲至第一數據所在存儲區(qū)之外的另一存儲區(qū)中另一存儲單元時,所述判斷模塊用于判斷除第一標識對應的存儲單元所在的存儲區(qū)之外所述另一存儲區(qū)是否存在空閑存儲單元;在所述判斷模塊判斷在判斷所述另一存儲區(qū)不存在空閑存儲單元時,所述數據存儲模塊將第二數據存儲至閃存存儲設備中其它存儲區(qū)的空閑存儲單元,所述標識處理模塊確定第二數據所在所述的另一存儲單元在另一存儲區(qū)中的相對位置,并找到與第二數據所在存儲單元的相對位置對應的另一存儲區(qū)中第一個存儲單元的一字節(jié),將所述第一標識存儲至所述字節(jié),使所述第一標識對應于第二數據所在所述的另一存儲單元,并且將第一數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識;以及所述擦除模塊用于在所述數據存儲模塊存儲第二數據后對所述另一存儲區(qū)進行擦除操作。其中,在所述擦除模塊對所述另一存儲區(qū)進行擦除操作后,需要繼續(xù)存儲第三數據時,所述數據存儲模塊還用于將第三數據存儲至所述另一存儲區(qū)的其中一空閑存儲單元,所述標識處理模塊確定第三數據所存儲單元的相對位置,并找到與第三數據所在存儲單元的相對位置對應的另一存儲區(qū)的第一個存儲單元的一字節(jié),將所述第一標識存儲至所述字節(jié),使其對應第三數據所在存儲單元,并且將第二數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識。


圖1是本發(fā)明提供的閃存存儲設備的數據存儲方法實施例之一的流程圖;圖2是本發(fā)明提供的閃存存儲設備的數據存儲方法實施例之二的流程圖;圖3是本發(fā)明提供的閃存存儲設備的數據存儲方法實施例之三的流程圖;圖4是本發(fā)明提供的閃存存儲設備的數據存儲方法實施例之四的流程圖;圖5是本發(fā)明提供的閃存存儲設備的數據存儲方法實施例之五的流程圖;圖6是本發(fā)明提供的閃存存儲設備的內部劃分實施例之一示意圖;圖7是本發(fā)明提供的閃存存儲設備的內部劃分實施例之一示意圖;圖8是本發(fā)明提供的閃存存儲設備的內部劃分實施例之二示意圖;圖9是本發(fā)明提供的閃存存儲設備的數據擦寫裝置實施例結構圖。
具體實施例方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。圖1示出了本發(fā)明提供的閃存存儲設備的數據存儲方法實施例之一的流程。在本發(fā)明實施例中,所述閃存存儲設備包括復數個存儲單元。在步驟SlOl中,查找并得到第一標識。其中,所述第一標識對應于第一數據所在的存儲單元位置,所述第一數據為最新保存的數據。在步驟S102中,根據所述第一標識找到保存第一數據的存儲單元。在步驟S103中,將第二數據存儲至另一存儲單元。在步驟S104中,將所述第一標識對應于第二數據所在的所述另一存儲單元。顯然,本發(fā)明實施例中,每次存儲用戶數據的存儲單元和上次存儲用戶數據的存儲單元不同,可以有效地利用多個存儲單元輪轉的進行數據的存儲。當然,只要能夠使得用戶數據能夠在不同存儲區(qū)內的不同存儲單元進行輪轉存儲,均在本發(fā)明保護范圍之內,此處不一一列舉。圖2示出了本發(fā)明提供的閃存存儲設備的數據存儲方法實施例之二的流程。在步驟S201中,將第二數據存儲至另一存儲單元。在步驟S202中,修改第一標識的存儲位置,使修改后的第一標識所在存儲位置對應第二數據所在的所述另一存儲單元的位置。在步驟S203中,使用第二標識,并使其對應于除第二數據所在的所述另一存儲單元之外所有存儲單元。本發(fā)明實施例中,通過使用不同的第一標識和第二標識,由第一標識對應第二數據的所在的所述另一存儲單元,由第二標識對應于未存儲最新保存的數據的存儲單元,可以快速有效的通過查找第一標識來找到每次最新保存的數據的存儲單元,進而選擇未存儲數據的存儲單元進行下次數據的存儲,可以有效快速的進行數據的存儲。圖3示出了本發(fā)明提供的閃存存儲設備的數據存儲方法實施例之三的流程。本發(fā)明提供圖3所示數據存儲方法來查找并得到第一標識及由所述第一標識找到保存第一數據的存儲單元。在步驟S301中,從復數個存儲單元中第一存儲單元的第一字節(jié)開始往后一一識別。在步驟S302中,在識別到所述用于存儲第一標識的字節(jié)后,確定所述字節(jié)在第一存儲單元的連續(xù)第一數量字節(jié)中的相對位置。在步驟S303中,確定在第一數量存儲單元中對應所述字節(jié)的相對位置的存儲單元為保存第一數據的存儲單元。本發(fā)明實施例中,通過對第一存儲單元的字節(jié)有順序且逐個進行識別,直到識別到對應第一標識的字節(jié),可以準確地根據第一標識來對應地找到第一數據所在的存儲單元,從而進行下一步的數據存儲。在本發(fā)明實施例中,所述閃存存儲設備的存儲單元數量為第一數量,每個存儲單元均有第二數量個字節(jié),在所述第一數量存儲單元中第一個存儲單元有第一數量個字節(jié)分別用于存儲第一標識和第二標識,所述第二數量大于所述第一數量;所述第一個存儲單元中分別用于存儲第一標識和第二標識的第一數量字節(jié)的相對位置與第一數量存儲單元的相對位置一一對應;其中,對應于所述第一數據所在存儲單元的一字節(jié)用于存儲所述第一標識,其余所有字節(jié)用于存儲其他第二標識,對應第一標識的字節(jié)內容不同于對應第二標識的字節(jié)內容。優(yōu)選的,所述第一數量是32,第二數量是業(yè),所述閃存存儲設備復數個存儲區(qū),每個存儲區(qū)包括32個存儲單元,每個存儲區(qū)中的第一個存儲單元的前32個字節(jié)用于存儲第一標識和第二標識。優(yōu)選的,所述第一數量是64,第二數量是2k,所述復數個存儲單元的第一個存儲單元的前64個字節(jié)用于存儲所述第一標識和第二標識。圖4示出了本發(fā)明提供的閃存存儲設備的數據存儲方法實施例之四的流程。在步驟S401中,在將第二數據存儲至第一數據所在存儲區(qū)之外的另一存儲區(qū)中另一存儲單元之前,判斷除第一標識對應的存儲單元所在的存儲區(qū)之外所述另一存儲區(qū)是否存在空閑存儲單元。若判斷另一存儲器存在空閑單元,則執(zhí)行以下步驟。在步驟S402中,將第二數據存儲至所述另一存儲區(qū)的其中一空閑存儲單元。在步驟S403中,確定第二數據所在的所述另一存儲單元在另一存儲區(qū)中的相對位置,并找到與第二數據所在的所述另一存儲單元的相對位置對應的另一存儲區(qū)的第一個存儲單元的一字節(jié),將所述第一標識存儲至所述字節(jié),使所述第一標識對應于第二數據所在的所述另一存儲單元。在步驟S404中,將第一數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識。若此時需要存儲第三數據,則返回執(zhí)行步驟S401中判斷除第一標識對應的存儲單元所在的存儲區(qū)之外所述另一存儲區(qū)是否存在空閑存儲單元,也就是說,判斷第二數據所在存儲區(qū)之外的另一存儲區(qū)中是否存在空閑存儲單元。接下來步驟同上,此處不再詳述。若判斷另一存儲器不存在空閑存儲單元,則執(zhí)行以下步驟。在步驟S405中,將第二數據存儲至閃存存儲設備中其它存儲區(qū)的空閑存儲單元。執(zhí)行分別與S403和S404相同的S406和S407,使得第一標識對應于第二數據所在存儲單元,第二標識對應于除第二數據所在存儲單元之外的其他所有存儲單元。在步驟S408中,在存儲第二數據后,對所述另一存儲區(qū)進行擦除操作。在步驟S409中,在對所述另一存儲區(qū)進行擦除操作后,需要繼續(xù)存儲第三數據時,由于擦除后的另一存儲區(qū)存在空閑存儲單元,則直接將第三數據存儲至所述另一存儲區(qū)的其中一空閑存儲單元。在步驟S410中,確定第三數據所在存儲單元的相對位置,并找到與第三數據所在存儲單元的相對位置對應的另一存儲區(qū)的第一個存儲單元的字節(jié),將所述第一標識存儲至所述字節(jié),使其對應于第三數據所在存儲單元。在步驟S411 中,將第二數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識。通過上述步驟可知,在當前存儲區(qū)不存在空閑存儲單元即寫滿數據、向另一存儲區(qū)存儲新的數據時,即便發(fā)生斷電等異常,也不會導致數據丟失。除采用第二數據所在的存儲單元位置來對應第一標識存儲的字節(jié)位置外,還可以是用將第二數據的地址賦值于第一標識。圖5示出了本發(fā)明提供的閃存存儲設備的數據存儲方法實施例之五的流程。在步驟S501中,將第二數據存儲至第一數據所在存儲區(qū)的另一空閑存儲單元。在步驟S502中,將所述第一標識對應于第二數據所在所述另一存儲單元。
在步驟S503中,使用第二標識,并使其對應于除第二數據所在的所述另一存儲單元之外所有存儲單元。在具體實施過程中,為便于描述,將第一數據所在的存儲區(qū)稱為第一存儲區(qū),另一存儲區(qū)為第二存儲區(qū)。在所述第一存儲區(qū)和第二存儲區(qū)之間確定對應第一標識所在存儲區(qū)的步驟包括分別讀取所述第一存儲區(qū)和第二存儲區(qū)各自的前業(yè)存儲單元,所述前業(yè)存儲單元的連續(xù)前32個字節(jié)中,各字節(jié)的相對位置與所述存儲區(qū)中32個業(yè)空間存儲單元的相對位置一一對應,其中第一標識采用所述字節(jié)的第一內容標記,其余所有字節(jié)采用第二標識,以第一標識在前業(yè)存儲單元的連續(xù)32個字節(jié)中的存儲位置,對應為記錄所述存儲第二數據的存儲單元在存儲區(qū)的位置;在讀取到第一標識的字節(jié)時,確定具有第一標識的存儲區(qū)為對應最新數據標記的存儲區(qū)。在具體實施過程中,在判斷第一存儲區(qū)未寫滿時,可以將第二數據存儲至第一存儲區(qū)的其中一空閑存儲單元,同時將所述第一標識存儲至第一存儲區(qū)的第一個存儲單元中相應位置處的字節(jié)中,使第一標識對應第二數據所在存儲單元的位置,將對應第二存儲區(qū)的第一標識去除。在具體實施過程中,不管第一存儲區(qū)是否已經寫滿,都可以將第二數據存儲至第二存儲區(qū)的其中一空閑存儲單元,同時將所述第一標識存儲至第二存儲區(qū)的第一個存儲單元中相應位置處的字節(jié)中,使第一標識對應第二數據所在存儲單元的位置,將對應第一存儲區(qū)的第一標識去除。關于本發(fā)明更具體的實施例描述如下。其中,在閃存存儲設備中,大部分空間存放的是程序數據,小部分(大概5個左右存儲區(qū)Bank)存放的是用戶數據,用戶數據的數據量通常在2KB以內。本發(fā)明實施例將以其中兩個存儲區(qū)Bank為例進行說明,對兩個存儲區(qū)Bank進行標識,譬如標識為第一存儲區(qū) Bank61和第二存儲區(qū)Banli62。每個存儲區(qū)Bank的存儲空間為64KB,本發(fā)明實施例將第一存儲區(qū)Banli61和第二存儲區(qū)Bank62劃分為64個存儲單元,每個存儲區(qū)Bank包括32個存儲單元,每個存儲單元的存儲空間是2KB,請參閱圖6及圖7。當用戶在通過包含上述閃存存儲設備的電視收看TV節(jié)目的過程中,如果調整了用戶數據,那么用戶數據會被依次存入第一存儲區(qū)Bank61或第二存儲區(qū)Banlc62的某一個存儲單元內。本發(fā)明實施例按照各個存儲區(qū)的標識,逐次且有順序的將各存儲區(qū)內的存儲單元進行標識,譬如,第一存儲區(qū)BanMl中的存儲單元被編號為奇數,分別是B(6inndexl, 3... ,63(2η+1, η = 0, .. ,31);第二存儲區(qū)Banlc62中的存儲單元被編號為偶數,分別是 B(62)Index2,4. · · ,64(2m, m = 1,· ·,32)。將每個存儲區(qū)Bank第1個存儲單元的前32個字節(jié)編號為奇數B(61)_1,3..., 63 (2n+l,η = 0,. .,31);第二存儲區(qū)Bank62中第1個存儲單元的前32個字節(jié)編號為偶數 Β(62)_2,4· · · ,64(2m, m = 1,· ·,32)。在具體實施過程中,系統(tǒng)開機時分別讀取所述第一存儲區(qū)Bank61和第二存儲區(qū) Bank62各自的第1個存儲單元,所述第1個存儲單元的連續(xù)32個字節(jié)中,各字節(jié)的相對位置與所述存儲區(qū)中32個存儲單元的相對位置一一對應。在本發(fā)明實施例中,最新數據標記采用所述字節(jié)的第一標識,譬如0x3F,其余所有字節(jié)采用第二標識,譬如OxlF。以第一標識0x3F的最新數據標記在32個字節(jié)中的位置,對應為記錄所述存儲最新用戶數據的存儲單元在存儲區(qū)的位置;在讀取到第一標識0x3F的字節(jié)時,確定具有第一標識0x3F的存儲區(qū)為對應最新數據標記的存儲區(qū)。舉例來說,假如系統(tǒng)掃描后發(fā)現(xiàn)在第一存儲區(qū)BanMl的第1個存儲單元的第2個字節(jié)B(61)_3中存放的數值是第一標識0x3F,而其他數值均為第二標識OxlF,那么系統(tǒng)會根據這個結果,從第一存儲區(qū)BanMl中對應于第2個字節(jié)B(61)_3的第2個存儲單元B(61) hded來讀取系統(tǒng)關機前最后保存的用戶數據(即最新數據)。此時,如果用戶需要改變將用戶數據,譬如將音量從20調整到21,即需要根據最新用戶數據“音量20”的存儲單元 B(61)Index3來存儲下次用戶數據“音量21”,并將最新用戶數據更新為“音量21”,那么系統(tǒng)相應地進行下面三個動作,請參閱圖7,圖中短虛線箭頭表示的是存入第二標識OxlF,與虛線箭頭相連的實線箭頭表示的是存入第一標識0x3F,長虛線箭頭則標示用戶數據依次交替跨區(qū)存儲的方式。Cl)、將最新用戶數據存儲到第二存儲區(qū)Banlc62的第2個存儲單元B (62) Index40c2)、在第一存儲區(qū)Bank61的第1個存儲單元中的第2個字節(jié)B(61)_3中存儲OxlF 以替換之前的數值0x3F。c3)、在第二存儲區(qū)Bank62的第1個存儲單元中的第2個字節(jié)B (62) _4中存儲0x3F 以替換之前的數值OxlF。顯然,通過上述步驟,最新用戶數據存放到存儲單元B (6 hdeM中。同樣,當進行下一次用戶數據改變時,譬如將音量從21調整到22,系統(tǒng)會相應地進行下面三個動作dl)、將最新用戶數據存儲到第一存儲區(qū)BanMl的第3個存儲單元B (61) IndeX5。d2)、在第二存儲區(qū)Bank62的第1個存儲單元中的第2個字節(jié)B (62)_4中存儲OxlF 以替換之前的數值0x3F。d3)、在第一存儲區(qū)Bank61的第1個存儲單元中的第3個字節(jié)B(61)_5中存儲0x3F 以替換之前的數值OxlF。顯然,通過上述步驟,最新用戶數據存放到B (61) Index5中。通過上面的描述不難看出,本發(fā)明實施例將第一存儲區(qū)Bank61和第二存儲區(qū) Bank62分成64個存儲單元,存儲用戶數據時,用戶數據會在64個存儲單元中輪換進行存儲。譬如第一次用戶數據存儲在存儲單元B (61) IndeX3,第二次用戶數據存儲在存儲單元
B (62) Index4,第三次用戶數據存儲在存儲單元B (61) Index5......按如此交替輪換的原
則進行數據存儲。當用戶數據再次存儲至到上次寫過的存儲單元時(譬如再次存儲至存儲單元B (61) Index3),需要等到62次之后。因此,同一存儲單元被重復存儲的幾率極大的降低,從而達到延長閃存存儲設備壽命的目的。在具體實施過程中,當第一存儲區(qū)BanMl已經存儲滿用戶數據,最新用戶數據存儲在B(6inndex63,將下次用戶數據存儲到第二存儲區(qū)Banlc62中的最后一個存儲單元 (B (62) Index64),并且更新最新用戶數據為存儲在B (62) Index64中(使第一標識0x3F對應于B(62)IndeX64),那么按照以上交替輪換的原則,此時兩個存儲區(qū)均已存滿用戶數據。 因此,若要繼續(xù)進行用戶數據存儲,需要將第一存儲區(qū)BanMl整個64KB擦除。此時若發(fā)生斷電,存儲在字節(jié)B (62) _64的第一標識0x3F和存儲在存儲單元B (62) Index64的最新用戶數據依然被保留在第二存儲區(qū)Banlc62中。再次開機時,會根據第二存儲區(qū)Bank62第1個存儲單元中的字節(jié)B(6》_64記錄的第一標識0x3F,找到用戶數據所屬的存儲單元B(62) Index640顯然,在發(fā)生斷電等異常時,本發(fā)明很好的保護了用戶數據不被丟失。依次地,當最新用戶數據被存儲在擦除后的第一存儲區(qū)BanMl中第一個存儲單元B (61) Index3,再次存儲用戶數據時,需要將已經存滿的第二存儲區(qū)Bank62整個64KB的空間擦除。此時如果發(fā)生斷電,存儲在字節(jié)B(61)_3的第一標識0x3F和存儲在存儲單元 B(61)Index3的最新用戶數據依然被保留在第一存儲區(qū)BanMl中。再次開機時,會根據第一存儲區(qū)BanMl第1個存儲單元中的字節(jié)B (61)_3記錄的第一標識0x3F,找到用戶數據所屬的存儲單元B(61) Index3和其中的最新用戶數據。顯然,在發(fā)生斷電等異常時,本發(fā)明很好的保護了用戶數據不被丟失。而且,在本發(fā)明實施例中,在任意時刻,第一存儲區(qū)Bank61和第二存儲區(qū)Banli62 的第一個存儲單元中只有一個字節(jié)的存儲數值0x3F,其余61個字節(jié)都存儲的是OxlF,因此,系統(tǒng)在開機時檢索到0x3F,然后從相對應的存儲單元中讀取到最新的用戶數據,再根據最新用戶數據的存儲位置進行下次用戶數據的存儲。在具體實施過程中,在一個輪換周期內,每次存儲用戶數據的存儲單元和上次存儲用戶數據的存儲單元不同,只要使得用戶數據能夠依次在不同存儲區(qū)內的不同存儲單元即可,均在本發(fā)明保護范圍之內。請參閱圖8,圖8為在第一存儲區(qū)Bank61和第二存儲區(qū)Banli62內進行數據連續(xù)存儲的示意圖,其存儲原理與在第一存儲區(qū)BanMl和第二存儲區(qū)Banlc62內輪轉存儲的原理類似,同樣引入第一標識來對應最新用戶數據的存儲單元,再根據最新用戶數據的存儲位置進行下次用戶數據的存儲。本發(fā)明實施例將第一存儲區(qū)BanMl和第二存儲區(qū)Banlc62 分成64個存儲單元,其中第一個存儲單元B (61) Indexl的前64字節(jié)用以存儲第一標識和第二標識,存儲用戶數據時,用戶數據會在其他63個存儲單元中依次存儲,第一存儲單元的前64個字節(jié)位置與64個存儲單元一一對應。參照圖8所示,如果第一次用戶數據存儲在存儲單元B (61) hdex2,那么第二次用戶數據存儲在存儲單元B (61) hdex3,第三次用戶
數據存儲在存儲單元B(6inndex4......按如此連續(xù)存儲的原則進行數據存儲。當用戶數
據再次存儲至到上次寫過的存儲單元時(譬如再次存儲至存儲單元B (61) Index3),需要等到63次之后對整個U8KB的空間進行擦除然后再按照以上規(guī)則重復寫入用戶數據。同一存儲單元被重復存儲的幾率極大的降低,從而達到延長閃存存儲設備壽命的目的。圖9示出了本發(fā)明提供的閃存存儲設備的數據擦寫裝置的結構。所述閃存存儲設備包括復數個存儲單元。其中,標識查找模塊91查找并得到第一標識。所述第一標識對應于第一數據所在的存儲單元,所述第一數據為最新保存的數據。數據查找模塊92根據所述第一標識找到保存第一數據的存儲單元。數據存儲模塊93將所述第二數據存儲至另一存儲單元。標識處理模塊94用于將所述第一標識對應于除所述第二數據所在的所述另一存儲單元之外所有存儲單元。在具體實施過程中,所述標識處理模塊94還使用第二標識,并使所述第二標識對應于除第二數據所在的所述另一存儲單元之外所有的存儲單元,以及,修改第一標識的存儲位置,使修改后的第一標識所在存儲位置對應于所述第二數據所在的所述另一存儲單兀。其中,所述閃存存儲設備的存儲單元數量為第一數量,每個存儲單元均有第二數量個字節(jié),在所述第一數量存儲單元中的第一個存儲單元有第一數量個字節(jié)分別用于存儲第一標識和第二標識,所述第二數量大于所述第一數量;所述第一個存儲單元中分別用于存儲第一標識和第二標識的第一數量字節(jié)的相對位置與第一數量存儲單元的相對位置一一對應;其中,對應于所述第一數據所在存儲單元的一字節(jié)用于存儲所述第一標識,其余所有字節(jié)用于存儲其他第二標識,對應第一標識的字節(jié)內容不同于對應第二標識的字節(jié)內容。其中,所述標識查找模塊91,還用于從存儲區(qū)第一存儲單元的第一字節(jié)開始往后一一識別,在識別到所述用于存儲第一標識的字節(jié)時,確定所述字節(jié)在第一存儲單元的連續(xù)第一數量字節(jié)中的相對位置,所述數據查找模塊92在第一數量存儲單元中確定對應所述字節(jié)的相對位置的存儲單元為保存第一數據的存儲單元。優(yōu)選的,所述第一數量是32,第二數量是業(yè),所述閃存存儲設備包括至少兩個存儲區(qū),每個存儲區(qū)包括32個存儲單元,每個存儲區(qū)中的第一個存儲單元的前32個字節(jié)用于存儲第一標識和第二標識。所述數據存儲模塊93,還用于將第二數據存儲至第一數據所在存儲區(qū)之外的另一存儲區(qū)中空閑存儲單元。所述標識處理模塊94,還用于確定第二數據所在的所述另一存儲單元在另一存儲區(qū)中的相對位置,并找到與第二數據所在的所述另一存儲單元的相對位置對應的另一存儲區(qū)的第一個存儲單元的一字節(jié),將所述第一標識存儲至所述字節(jié),使所述第一標識對應于第二數據所在的所述另一存儲單元;以及將第一數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識。請參閱圖9,所述數據存儲模塊在將第二數據存儲至第一數據所在存儲區(qū)之外的另一存儲區(qū)中空閑存儲單元時,判斷模塊95判斷所述另一存儲區(qū)是否存在空閑存儲單元; 在所述判斷模塊95判斷所述另一存儲區(qū)存在空閑存儲單元時,所述數據存儲模塊93將第二數據存儲至另一存儲區(qū)中空閑存儲單元。請參閱圖9,判斷模塊95判斷所述另一存儲區(qū)不存在空閑存儲單元時;所述數據存儲模塊93將第二數據存儲至閃存存儲設備中其它存儲區(qū)的空閑存儲單元,所述標識處理模塊94確定第二數據所在的所述另一存儲單元在另一存儲區(qū)中的相對位置,并找到與第二數據所在存儲單元相對位置相對應的另一存儲區(qū)的第一個存儲單元的一字節(jié),將所述第一標識存儲至所述字節(jié),使所述第一標識對應于第二數據所在的所述另一存儲單元,并且將第一數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識;以及在所述數據存儲模塊93存儲第二數據后,所述擦除模塊96對所述另一存儲區(qū)進行擦除操作。在所述擦除模塊96對所述另一存儲區(qū)進行擦除操作后,需要繼續(xù)存儲第三數據時,所述數據存儲模塊93將第三數據存儲至所述另一存儲區(qū)的其中一空閑存儲單元;所述標識處理模塊94確定第三數據所在存儲單元的相對位置,并找到與第三數據所在存儲單元的相對位置對應的另一存儲區(qū)的第一個存儲單元的一字節(jié),將所述第一標識存儲至所述字節(jié),使其對應第三數據所在的存儲單元,并且將第二數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識。 以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種閃存存儲設備的數據存儲方法,所述閃存存儲設備包括復數個存儲單元,其特征在于,所述方法包括以下步驟查找并得到第一標識,所述第一標識對應于第一數據所在的存儲單元,所述第一數據為最新保存的數據;根據所述第一標識找到保存所述第一數據的存儲單元;將第二數據存儲至另一存儲單元;以及將所述第一標識對應于第二數據所在的所述另一存儲單元。
2.如權利要求1所述的閃存存儲設備的數據存儲方法,其特征在于,所述方法還包括以下步驟使用第二標識,并使其對應于除第二數據所在的所述另一存儲單元之外所有存儲單元。
3.如權利要求2所述的閃存存儲設備的數據存儲方法,其特征在于,將所述第一標識對應于第二數據所在的所述另一存儲單元步驟包括修改第一標識的存儲位置,使修改后的第一標識所在存儲位置對應于第二數據所在的所述另一存儲單元的位置。
4.如權利要求3所述的閃存存儲設備的數據存儲方法,其特征在于所述閃存存儲設備的存儲單元數量為第一數量,每個存儲單元均有第二數量個字節(jié), 在所述第一數量存儲單元中第一個存儲單元有第一數量個字節(jié)分別用于存儲第一標識和第二標識,所述第二數量大于所述第一數量;所述第一個存儲單元中分別用于存儲第一標識和第二標識的第一數量字節(jié)的相對位置與第一數量存儲單元的相對位置一一對應;其中,對應于所述第一數據所在存儲單元的一字節(jié)用于存儲所述第一標識,其余所有字節(jié)用于存儲其他第二標識,對應第一標識的字節(jié)內容不同于對應第二標識的字節(jié)內容; 其中,查找并得到第一標識及由所述第一標識找到保存第一數據的存儲單元步驟包括從第一存儲單元的第一字節(jié)開始往后一一識別;在識別到所述用于存儲第一標識的字節(jié)時,確定所述字節(jié)在第一存儲單元的連續(xù)第一數量字節(jié)中的相對位置;以及確定在第一數量存儲單元中對應所述字節(jié)的相對位置的存儲單元為保存第一數據的存儲單元。
5.如權利要求4所述的閃存存儲設備的數據存儲方法,其特征在于所述第一數量是32,第二數量是業(yè),所述閃存存儲設備包括復數個存儲區(qū),每個存儲區(qū)包括32個存儲單元,每個存儲區(qū)中的第一個存儲單元的前32個字節(jié)用于存儲所述第一標識和第二標識。
6.如權利要求4所述的閃存存儲設備的數據存儲方法,其特征在于所述第一數量是64,第二數量是業(yè),所述復數個存儲單元的第一個存儲單元的前64個字節(jié)用于存儲所述第一標識和第二標識。
7.如權利要求5所述的閃存存儲設備的數據存儲方法,其特征在于 所述將第二數據存儲至另一存儲單元的步驟包括將第二數據存儲至第一數據所在存儲區(qū)之外的另一存儲區(qū)中另一存儲單元; 所述將所述第一標識對應于第二數據所在存儲單元的步驟包括 確定第二數據所在的所述另一存儲單元在另一存儲區(qū)中的相對位置,并找到與第二數據所在的所述另一存儲單元的相對位置對應的另一存儲區(qū)的第一個存儲單元的一字節(jié), 將所述第一標識存儲至所述字節(jié),使所述第一標識對應于第二數據所在的所述另一存儲單元;以及所述使用第二標識,并使其對應于除第二數據所在的存的所述另一儲單元之外所有存儲單元步驟包括將第一數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識。
8.如權利要求7所述的閃存存儲設備的數據存儲方法,其特征在于將第二數據存儲至第一數據所在存儲區(qū)之外的另一存儲區(qū)中另一存儲單元之前,判斷除第一標識對應的存儲單元所在的存儲區(qū)之外的所述另一存儲區(qū)是否存在空閑存儲單元;在判斷所述另一存儲區(qū)不存在空閑存儲單元時,將第二數據存儲至閃存存儲設備中其它存儲區(qū)的空閑存儲單元;確定第二數據所在存儲單元的相對位置,并找到與第二數據所在存儲單元相對位置對應的所述其他存儲區(qū)的第一個存儲單元的字節(jié),將所述第一標識存儲至所述字節(jié),使其對應第二數據所在存儲單元;將第一數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識;以及在存儲第二數據后,對所述另一存儲區(qū)進行擦除操作。
9.如權利要求8所述的閃存存儲設備的數據存儲方法,其特征在于,在對所述另一存儲區(qū)進行擦除操作后,需要繼續(xù)存儲第三數據時,所述方法包括將第三數據存儲至所述另一存儲區(qū)的其中一空閑存儲單元;確定第三數據所在存儲單元的相對位置,并找到與第三數據所在存儲單元的相對位置對應的另一存儲區(qū)的第一個存儲單元的字節(jié),將所述第一標識存儲至所述字節(jié),使其對應第三數據所在存儲單元;將第二數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識。
10.一種閃存存儲設備的數據存儲裝置,所述閃存存儲設備包括復數個存儲單元,其特征在于,所述裝置包括標識查找模塊,用于查找并得到第一標識,其中,所述第一標識對應于第一數據所在的存儲單元,所述第一數據為最新保存的數據;數據查找模塊,用于根據所述第一標識找到保存所述第一數據的存儲單元;數據存儲模塊,用于將第二數據存儲至另一存儲單元;以及標識處理模塊,用于將所述第一標識對應于第二數據所在的所述另一存儲單元。
11.如權利要求10所述的閃存存儲設備的數據存儲裝置,其特征在于所述標識處理模塊,還用于使用第二標識,并使所述第二標識對應于除第二數據所在的所述另一存儲單元之外所有存儲單元。
12.如權利要求11所述的閃存存儲設備的數據存儲裝置,其特征在于所述標識處理模塊,還用于修改所述第一標識的存儲位置,使修改后的第一標識所在存儲位置對應于所述第二數據所在的所述另一存儲單元的位置。
13.如權利要求12所述的閃存存儲設備的數據存儲裝置,其特征在于所述閃存存儲設備的存儲單元數量為第一數量,每個存儲單元均有第二數量個字節(jié), 在所述第一數量存儲單元中的第一個存儲單元有第一數量個字節(jié)分別用于存儲第一標識和第二標識,所述第二數量大于所述第一數量;所述第一個存儲單元中分別用于存儲第一標識和第二標識的第一數量字節(jié)的相對位置與第一數量存儲單元的相對位置一一對應;其中,對應于所述第一數據所在存儲單元的一字節(jié)用于存儲所述第一標識,其余所有字節(jié)用于存儲其他第二標識,對應第一標識的字節(jié)內容不同于對應第二標識的字節(jié)內容;其中,所述標識查找模塊,還用于從存儲區(qū)第一存儲單元的第一字節(jié)開始往后一一識別,在識別到所述用于存儲第一標識的字節(jié)時,確定所述字節(jié)在第一存儲單元的連續(xù)第一數量字節(jié)中的相對位置,所述數據查找模塊在第一數量存儲單元中確定對應所述字節(jié)的相對位置的存儲單元為保存第一數據的存儲單元。
14.如權利要求13所述的閃存存儲設備的數據存儲裝置,其特征在于所述第一數量是32,第二數量是業(yè),所述閃存存儲設備包括復數個存儲區(qū),每個存儲區(qū)包括32個存儲單元,每個存儲區(qū)中的第一個存儲單元的前32個字節(jié)用于存儲所述第一標識和第二標識。
15.如權利要求13所述的閃存存儲設備的數據存儲裝置,其特征在于所述第一數量是64,第二數量是業(yè),所述復數個存儲單元的第一個存儲單元的前64個字節(jié)用于存儲所述第一標識和第二標識。
16.如權利要求14所述的閃存存儲設備的數據存儲裝置,其特征在于所述數據存儲模塊,還用于將第二數據存儲至第一數據所在存儲區(qū)之外的另一存儲區(qū)中另一存儲單元;以及所述標識處理模塊,還用于確定第二數據所在的所述另一存儲單元在另一存儲區(qū)中的相對位置,并找到與第二數據所在的所述另一存儲單元的相對位置對應的另一存儲區(qū)的第一個存儲單元的一字節(jié),將所述第一標識存儲至所述字節(jié),使所述第一標識對應于第二數據所在的所述另一存儲單元;以及用于將第一數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識。
17.如權利要求16所述的閃存存儲設備的數據存儲裝置,其特征在于所述裝置還包括判斷模塊和擦除模塊,其中,所述數據存儲模塊在將第二數據存儲至第一數據所在存儲區(qū)之外的另一存儲區(qū)中另一存儲單元時,所述判斷模塊用于判斷除第一標識對應的存儲單元所在的存儲區(qū)之外的所述另一存儲區(qū)是否存在空閑存儲單元;在所述判斷模塊判斷在判斷所述另一存儲區(qū)不存在空閑存儲單元時,所述數據存儲模塊將第二數據存儲至閃存存儲設備中其它存儲區(qū)的空閑存儲單元,所述標識處理模塊確定第二數據所在的所述另一存儲單元在另一存儲區(qū)中的相對位置,并找到與第二數據所在的所述另一存儲單元的相對位置對應的另一存儲區(qū)的第一個存儲單元的字節(jié),將所述第一標識存儲至所述字節(jié),使所述第一標識對應于第二數據所在的所述另一存儲單元,并且將第一數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識;以及所述擦除模塊用于在所述數據存儲模塊存儲第二數據后對所述另一存儲區(qū)進行擦除操作。
18.如權利要求17所述的閃存存儲設備的數據存儲裝置,其特征在于在所述擦除模塊對所述另一存儲區(qū)進行擦除操作后,需要繼續(xù)存儲第三數據時,所述數據存儲模塊還用于將第三數據存儲至所述另一存儲區(qū)的其中一空閑存儲單元,所述標識處理模塊確定第三數據所在存儲單元的相對位置,并找到與第三數據所在存儲單元的相對位置對應的另一存儲區(qū)的第一個存儲單元的字節(jié),將所述第一標識存儲至所述字節(jié),使其對應第三數據所在存儲單元,并且將第二數據所在存儲區(qū)的第一個存儲單元中用于存儲第一標識的字節(jié)修改為存儲第二標識。
全文摘要
本發(fā)明公開了一種閃存存儲設備及其數據存儲方法和裝置,所述閃存存儲設備包括至少兩個存儲單元,所述方法包括查找并得到第一標識,所述第一標識對應于第一數據所在的存儲單元,所述第一數據為最新保存的數據;根據所述第一標識找到保存第一數據的存儲單元;將第二數據存儲至另一存儲單元;將所述第一標識對應于第二數據所在的所述另一存儲單元。本發(fā)明中,將第一標識與存儲數據的存儲單元建立對應關系,在第一標識對應的存儲單元之外的存儲單元進行第二數據的存儲,再將存儲第二數據的存儲單元與第一標識建立對應關系,有效地利用多個存儲單元進行數據的存儲,延長了閃存存儲設備的使用壽命。
文檔編號G06F12/02GK102231136SQ20111019405
公開日2011年11月2日 申請日期2011年7月12日 優(yōu)先權日2011年7月12日
發(fā)明者吳偉, 李大騰, 王瑞卿 申請人:晨星半導體股份有限公司, 晨星軟件研發(fā)(深圳)有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1