專(zhuān)利名稱(chēng):閃存存儲(chǔ)管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種閃存存儲(chǔ)管理方法,更具體的涉及一種基于動(dòng)態(tài)虛擬扇區(qū) 的閃存存儲(chǔ)管理方法。
技術(shù)背景隨著嵌入式系統(tǒng)的迅速發(fā)展和廣泛應(yīng)用,大量需要一種能多次編程,容量 大,讀寫(xiě)、擦除快捷、方便、簡(jiǎn)單,外圍器件少,價(jià)格低廉的非易揮發(fā)存儲(chǔ)器件。閃存(Flash Memory)存儲(chǔ)介質(zhì)就是在這種背景需求下應(yīng)運(yùn)而生的。閃存 是一種基于半導(dǎo)體的存儲(chǔ)器,具有系統(tǒng)掉電后仍可保留內(nèi)部信息,及在線擦寫(xiě) 等功能特點(diǎn),是一種替代EEPROM存儲(chǔ)介質(zhì)的新型存儲(chǔ)器。因?yàn)樗淖x寫(xiě)速度比 EEPR0M更快,在相同容量的情況下成本更低,因此閃存將是嵌入式系統(tǒng)中的一 個(gè)重要組成單元。閃存是一種長(zhǎng)壽命的非易失性(在斷電情況下仍能保持所存 儲(chǔ)的數(shù)據(jù)信息)的存儲(chǔ)器,數(shù)據(jù)刪除不是以單個(gè)的字節(jié)為單位而是以固定的區(qū) 塊為單位,區(qū)塊大小一般為256KB到2固B。閃存是電子可擦除只讀存儲(chǔ)器 (EEPROM)的變種,EEPROM與閃存不同的是,它能在字節(jié)水平上進(jìn)行刪除和重 寫(xiě)而不是整個(gè)芯片擦寫(xiě),這樣閃存就比EEPROM的更新速度快。由于其斷電時(shí)仍 能保存數(shù)據(jù),閃存通常被用來(lái)保存設(shè)置信息,如在電腦的BIOS (基本輸入輸出 程序)、PDA(個(gè)人數(shù)字助理)、數(shù)碼相機(jī)中保存資料等。閃存包括NOR型和NAND型閃存,N0R型與NAND型閃存的區(qū)別很大,具體 的,NOR型閃存更像內(nèi)存,有獨(dú)立的地址線和數(shù)據(jù)線,但價(jià)格比較貴,容量比 較??;而MND型更像硬盤(pán),地址線和數(shù)據(jù)線是共用的1/0線,類(lèi)似硬盤(pán)的所有 信息都通過(guò)一條硬盤(pán)線傳送一般,而且NAND型與N0R型閃存相比,成本要低一 些,而容量大得多。因此,N0R型閃存比較適合頻繁隨機(jī)讀寫(xiě)的場(chǎng)合,通常用于存儲(chǔ)程序代碼并直接在閃存內(nèi)運(yùn)行,手機(jī)就是使用NOR型閃存的大戶(hù),所以 手機(jī)的"內(nèi)存"容量通常不大;NAND型閃存主要用來(lái)存儲(chǔ)資料,我們常用的閃 存產(chǎn)品,如閃存盤(pán)、數(shù)碼存儲(chǔ)卡都是用NAND型閃存。由于Flash讀寫(xiě)存儲(chǔ)的編程特點(diǎn),有必要對(duì)其進(jìn)行存儲(chǔ)過(guò)程管理,以使整 個(gè)系統(tǒng)性能得以改善。Flash自身具有以下特性(1) Flash在物理結(jié)構(gòu)上分成若干個(gè)區(qū)塊(Block),區(qū)塊之間相互獨(dú)立;(2) 由于Flash的寫(xiě)操作只能將數(shù)據(jù)位從l寫(xiě)成O,不能從O寫(xiě)成l,所 以在對(duì)存儲(chǔ)器進(jìn)行寫(xiě)入之前必須先執(zhí)行擦操作,將預(yù)寫(xiě)入的數(shù)據(jù)位初始化為1。 擦除操作的最小單位是一個(gè)區(qū)塊,而不是單個(gè)字節(jié);(3 )塊的擦寫(xiě)壽命有次數(shù)限制;(4) Flash在使用過(guò)程中,可能導(dǎo)致某些區(qū)塊的損壞。區(qū)塊一旦損壞,將 無(wú)法進(jìn)4于》務(wù)復(fù);(5) 由于Flash固有的電器特性,在讀寫(xiě)數(shù)據(jù)過(guò)程中,偶然會(huì)產(chǎn)生一位 或幾位數(shù)據(jù)錯(cuò)誤,這稱(chēng)為位反轉(zhuǎn)。位反轉(zhuǎn)無(wú)法避免,只能通過(guò)其他手段對(duì)結(jié)果 進(jìn)行事后處理;(6) 塊擦除的時(shí)間比較長(zhǎng)。目前有一種基于靜態(tài)虛擬扇區(qū)的Flash存儲(chǔ)管理技術(shù),即把Flash中的每 個(gè)Block分為更小的虛擬邏輯塊VSS,每個(gè)扇區(qū)大小根據(jù)應(yīng)用在模塊初始化時(shí) 設(shè)定。每個(gè)Block前面的一個(gè)固定單元用于記錄本block中扇區(qū)分配的使用情 況(SAT),包括扇區(qū)屬性及扇區(qū)邏輯號(hào)。在進(jìn)行數(shù)據(jù)讀寫(xiě)和修改時(shí),以虛擬扇 區(qū)塊的大小為單位。要修改某一扇區(qū)的數(shù)據(jù)時(shí),先讀出這個(gè)扇區(qū)的內(nèi)容,重新 找一個(gè)未使用的扇區(qū),把修改后的內(nèi)容寫(xiě)入這個(gè)新扇區(qū)。然后,修改原來(lái)扇區(qū) 的屬性值為無(wú)效,修改這個(gè)新扇區(qū)的屬性為有效,拷貝VSS的ID號(hào)到新扇區(qū)對(duì) 應(yīng)的SAT單元中。這樣,當(dāng)某一個(gè)block中的SAT屬性都標(biāo)為無(wú)效時(shí),才對(duì)當(dāng) 前block進(jìn)行擦寫(xiě)??梢?jiàn),以虛擬扇區(qū)大小為單位的存儲(chǔ)管理,對(duì)Flash塊的 擦寫(xiě)次數(shù)可大大減少,從而提高了系統(tǒng)性能。但是,這種存儲(chǔ)管理技術(shù)存在以下幾個(gè)缺陷 (1 )每個(gè)Block只能存儲(chǔ)一種類(lèi)型的數(shù)據(jù),當(dāng)可用的Block個(gè)數(shù)較少而 需要存儲(chǔ)的數(shù)據(jù)類(lèi)型較多時(shí),這種方法不能使用。也就是說(shuō)不能充分利用Flash 空間。(2) 沒(méi)有考慮出現(xiàn)壞塊的情況。(3) 沒(méi)有考慮Flash的位反轉(zhuǎn)。因此,本領(lǐng)域需要一種Flash存儲(chǔ)管理方法,能夠有效的利用Flash空間, 同時(shí)能夠處理壞塊和Flash的位反轉(zhuǎn)。 發(fā)明內(nèi)容為了解決這些問(wèn)題,采用了動(dòng)態(tài)虛擬扇區(qū)技術(shù),即在同一個(gè)Block中根據(jù)應(yīng)用需要可以分配不同大小的虛擬扇區(qū),分別用來(lái)存儲(chǔ)不同類(lèi)型的數(shù)據(jù)記錄;如果確認(rèn)某個(gè)扇區(qū)有壞塊,則跳過(guò)該扇區(qū)重新寫(xiě)入數(shù)據(jù);通過(guò)CRC數(shù)據(jù)校驗(yàn)和 寫(xiě)入完成后數(shù)據(jù)比較確保數(shù)據(jù)的可靠性。具體的,本發(fā)明提供了一種閃存存儲(chǔ)管理方法,包括將閃存劃分為至少 兩個(gè)區(qū)塊,每個(gè)區(qū)塊包括數(shù)據(jù)區(qū)和扇區(qū)分配表,所述數(shù)據(jù)區(qū)被劃分為至少兩個(gè) 虛擬扇區(qū),所述扇區(qū)分配表包括每個(gè)虛擬扇區(qū)的屬性和ID邏輯號(hào),每個(gè)虛擬扇 區(qū)可以存儲(chǔ)不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)記錄,所述扇區(qū)分配表還包括每個(gè)虛擬扇區(qū)的 數(shù)據(jù)類(lèi)型ID。所述每個(gè)虛擬扇區(qū)還包括所述數(shù)據(jù)記錄的校驗(yàn)碼。所述校驗(yàn)碼為CRC校驗(yàn)碼。當(dāng)所述虛擬扇區(qū)寫(xiě)入一個(gè)數(shù)據(jù)記錄之后,讀出所述虛擬扇區(qū)的數(shù)據(jù)記錄, 與寫(xiě)入的數(shù)據(jù)記錄進(jìn)行比較,如果讀出的數(shù)據(jù)記錄與寫(xiě)入的數(shù)據(jù)記錄不相同, 則重新寫(xiě)入所述數(shù)據(jù)記錄。當(dāng)所述寫(xiě)入數(shù)據(jù)記錄和讀出數(shù)據(jù)記錄步驟重復(fù)一個(gè) 預(yù)先設(shè)定的次數(shù)之后,讀出的數(shù)據(jù)記錄與寫(xiě)入的數(shù)據(jù)記錄仍然不相同,則標(biāo)記 所述虛擬扇區(qū)的屬性為無(wú)效。所述區(qū)塊還包括一個(gè)表示所述區(qū)塊是否有數(shù)據(jù)寫(xiě)入的使用標(biāo)志。所述使用標(biāo)志處于所述區(qū)塊的最前端或最尾端。所述數(shù)據(jù)區(qū)處于所述區(qū)塊的前端,每個(gè)虛擬扇區(qū)由前向后依次排列;所述 扇區(qū)分配表處于所述區(qū)*的尾端,每個(gè)虛擬扇區(qū)的屬性和ID邏輯號(hào)由后向前依 次排列。所述數(shù)據(jù)區(qū)處于所述區(qū)塊的尾端,每個(gè)虛擬扇區(qū)由后向前依次排列;所述 扇區(qū)分配表處于所述區(qū)塊的前端,每個(gè)虛擬扇區(qū)的屬性和ID邏輯號(hào)由前向后依 次排列。所述閃存為NAND型閃存。本發(fā)聽(tīng)的閃存存儲(chǔ)管理方法可以有效提高Flash讀寫(xiě)速度、提高系統(tǒng)性能, 大大降低塊擦寫(xiě)次數(shù),提高Flash壽命;與現(xiàn)有解決方案相比,能夠更加充分 利用Flash存儲(chǔ)空間、確保數(shù)據(jù)的安全性。 附閨說(shuō)明
圖1所示為一個(gè)基于靜態(tài)虛擬扇區(qū)的Flash存儲(chǔ)管理方法的示意圖。圖2所示為一個(gè)基于靜態(tài)虛擬扇區(qū)的Flash存儲(chǔ)管理方法的扇區(qū)分配表的一個(gè)單元示意圖。圖3所示為本發(fā)明的Flash存儲(chǔ)管理方法的一個(gè)實(shí)施例的示意圖。圖4所示為本發(fā)明的Flash存儲(chǔ)管理方法的扇區(qū)分配表的一個(gè)單元實(shí)施例的示意圖。圖5所示為本發(fā)明的Flash存儲(chǔ)管理方法的一個(gè)Block數(shù)據(jù)存儲(chǔ)的實(shí)施例 的示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,并使本發(fā)明的上述目的、 特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一 步詳細(xì)的說(shuō)明?,F(xiàn)有的基于靜態(tài)虛擬扇區(qū)的Flash存儲(chǔ)管理技術(shù),即把Flash中的每個(gè) Block分為更小的虛擬邏輯塊VSS (virtual small sector),稱(chēng)為虛擬小扇區(qū),每個(gè)扇區(qū)大小才艮才居應(yīng)用在才莫塊初始4匕時(shí)i殳定。每個(gè)Block前面的一個(gè)固定單元 用于記錄本block中扇區(qū)分配的使用情況,即扇區(qū)分配表SAT,扇區(qū)分配表SAT 包括扇區(qū)屬性及扇區(qū)邏輯號(hào)。在進(jìn)行數(shù)據(jù)讀寫(xiě)和修改時(shí),以虛擬扇區(qū)塊的大小為單位。要修改某一扇區(qū) 的數(shù)據(jù)時(shí),先讀出這個(gè)扇區(qū)的內(nèi)容,重新找一個(gè)未使用的扇區(qū),把修改后的內(nèi) 容寫(xiě)入這個(gè)新扇區(qū)。然后,修改原來(lái)扇區(qū)的屬性值為無(wú)效(例如0x00),修改 這個(gè)新扇區(qū)的屬性為有效(例如0xc0),拷貝VSS的ID號(hào)到新扇區(qū)對(duì)應(yīng)的SAT 單元中。這樣,當(dāng)某一個(gè)block中的SAT屬性全部都標(biāo)為無(wú)效時(shí),才對(duì)當(dāng)前block 進(jìn)行擦寫(xiě)??梢?jiàn),以虛擬扇區(qū)大小為單位的存儲(chǔ)管理,對(duì)Flash塊的擦寫(xiě)次數(shù) 可大大減少,從而提高了系統(tǒng)性能。圖1所示為一個(gè)基于靜態(tài)虛擬扇區(qū)的Flash存儲(chǔ)管理方法的示意圖。如圖所示,整塊的Flash被劃分為了 N個(gè)Block,依次分別為BLOCK 1、BL0CK2........BLOCK N-l和BLOCK N。每個(gè)Block前面的一個(gè)固定單元(稱(chēng)為SAT區(qū))用于記 錄本Block中扇區(qū)分配的使用情況,即扇區(qū)分配表SAT,在扇區(qū)分配表SAT區(qū) 后面是寫(xiě)入的數(shù)據(jù)(稱(chēng)為數(shù)據(jù)區(qū))。數(shù)據(jù)區(qū)被分為n個(gè)虛擬扇區(qū),分別標(biāo)記為SI 1、 SI 2........ SI n-l和SI n。扇區(qū)分配表SAT包括每個(gè)虛擬扇區(qū)的屬性以及虛擬扇區(qū)的扇區(qū)邏輯號(hào),記為SI屬性位和VSS ID邏輯號(hào)表示位,如圖2 所示, 一般情況下,SI屬性位為2個(gè)bit,而VSS ID邏輯號(hào)表示位為14個(gè)bit。這種基于靜態(tài)虛擬扇區(qū)的Flash存儲(chǔ)管理方法,由于每個(gè)Block只能存儲(chǔ) 一種類(lèi)型的數(shù)據(jù),當(dāng)可用的Block個(gè)數(shù)較少而需要存儲(chǔ)的數(shù)據(jù)類(lèi)型較多時(shí),這 種方法不能使用,不能充分利用Flash空間。而且這種基于靜態(tài)虛擬扇區(qū)的 Flash存儲(chǔ)管理方法沒(méi)有考慮出現(xiàn)壞塊的情況和Flash的位反轉(zhuǎn)。本發(fā)明的Flash存儲(chǔ)管理方法是一種基于動(dòng)態(tài)虛擬扇區(qū)的Flash存儲(chǔ)管理 方法。和基于靜態(tài)虛擬扇區(qū)的Flash存儲(chǔ)管理方法不同,本發(fā)明的Flash存儲(chǔ) 管理方法在同一個(gè)Block中根據(jù)應(yīng)用需要可以分配不同大小的虛擬扇區(qū),分別 用來(lái)存儲(chǔ)不同類(lèi)型的數(shù)據(jù)記錄;如果確認(rèn)某個(gè)扇區(qū)有壞塊,則跳過(guò)該扇區(qū)重新存儲(chǔ)管理方法的一個(gè)實(shí)施例的示意圖。如圖所 示,和基于靜態(tài)虛擬扇區(qū)的Flash存儲(chǔ)管理方法相同,整塊的Flash也被劃分為了N個(gè)Block,依次分別為BLOCK 1、 BLOCK 2........ BLOCK N-l和BLOCK N。和基于靜態(tài)虛擬扇區(qū)的Flash存儲(chǔ)管理方法不同的是,本實(shí)施例的每個(gè)Block 最前面為數(shù)據(jù)區(qū),數(shù)據(jù)區(qū)被分為若干個(gè)虛擬扇區(qū),每個(gè)虛擬扇區(qū)的大小可以不同。圖中所示為i個(gè)虛擬扇區(qū),分別為SI 1、 SI 2........ SI i-1和SI i。在Block的最后是扇區(qū)分配表SAT。由于整個(gè)Block的虛擬扇區(qū)數(shù)量不確定, 而且每個(gè)虛擬扇區(qū)的大小可能大小不一,因此,本實(shí)施例中每個(gè)Block中的數(shù) 據(jù)區(qū)大小可能會(huì)不一樣,扇區(qū)分配表SAT的大小也可能不同,在數(shù)據(jù)區(qū)和扇區(qū) 分配表SAT之間也可能存在沒(méi)有使用的空白區(qū)。和基于靜態(tài)虛擬扇區(qū)的Flash存儲(chǔ)管理方法相同,本實(shí)施例的扇區(qū)分配表 SAT也包括每個(gè)虛擬扇區(qū)的屬性以及虛擬扇區(qū)的扇區(qū)邏輯號(hào),記為SI屬性位和 VSS ID邏輯號(hào)表示位。和基于靜態(tài)虛擬扇區(qū)的Flash存儲(chǔ)管理方法不同的是, 為了在一個(gè)Block中寫(xiě)入不同類(lèi)型的數(shù)據(jù),本實(shí)施例的扇區(qū)分配表SAT還包括 每個(gè)虛擬扇區(qū)的數(shù)據(jù)類(lèi)型,記為數(shù)據(jù)類(lèi)型ID表示位,如圖4所示, 一般情況下, SI屬性位為2個(gè)bit,數(shù)據(jù)類(lèi)型ID表示位和VSS ID邏輯號(hào)表示位共占用30 個(gè)bit,由于本實(shí)施例的Flash存儲(chǔ)管理方法的虛擬扇區(qū)可能較多,因此VSSID 邏輯號(hào)表示位可以比基于靜態(tài)虛擬扇區(qū)的Flash存儲(chǔ)管理方法的VSS ID邏輯號(hào) 表示位占用的bit位多,例如16個(gè)bit等等。圖5所示為本實(shí)施例的一個(gè)Block數(shù)據(jù)存儲(chǔ)的示意圖。如圖所示,由于不 同數(shù)據(jù)類(lèi)型的數(shù)據(jù)記錄長(zhǎng)度和數(shù)量不確定,所以本實(shí)施例的扇區(qū)分配表SAT不 能用固定大小的單元存儲(chǔ),同時(shí)為了方便數(shù)據(jù)讀取,本實(shí)施例的扇區(qū)分配表SAT 放到了 Block的尾部。因?yàn)樯葏^(qū)分配表SAT中的虛擬扇區(qū)數(shù)量和數(shù)據(jù)記錄的總 長(zhǎng)度都是不確定的,所以扇區(qū)分配表SAT從Block的尾部從后向前依次寫(xiě)入,而數(shù)據(jù)記錄從Block的起點(diǎn)向后依次寫(xiě)入。另外,為了檢測(cè)某個(gè)Block是否正 常使用過(guò),可以在Block的最底部寫(xiě)入一個(gè)使用標(biāo)記,使用標(biāo)記可以和一個(gè)SAT 表的長(zhǎng)度相同。由于Flash的位反轉(zhuǎn)特性,寫(xiě)入的數(shù)據(jù)并不一定正確,本實(shí)施例的Flash 存儲(chǔ)管理方法通過(guò)多種措施來(lái)保證: 一種是對(duì)每一條數(shù)據(jù)記錄進(jìn)行數(shù)據(jù)校-創(chuàng)例 如CRC校驗(yàn)),生成的校驗(yàn)碼放在數(shù)據(jù)記錄的尾部,這樣,每個(gè)數(shù)據(jù)單元的長(zhǎng)度 就變成原始數(shù)據(jù)長(zhǎng)度與校驗(yàn)碼長(zhǎng)度之和。另外一種就是在每次數(shù)據(jù)寫(xiě)入完成后, 立即讀出寫(xiě)入的數(shù)據(jù),并進(jìn)行比較,如果讀出的數(shù)據(jù)和寫(xiě)入的數(shù)據(jù)不相同則重新寫(xiě)入。當(dāng)然,上述兩種方法同時(shí)使用效果最好。若出現(xiàn)壞塊,則可能數(shù)據(jù)無(wú)法正常寫(xiě)入,經(jīng)過(guò)幾次嘗試后,仍然有問(wèn)題, 可以確定該扇區(qū)中存在壞塊,這時(shí)可以跳到下一個(gè)扇區(qū)重新寫(xiě)入數(shù)據(jù),為了保 持SAT與數(shù)據(jù)記錄的對(duì)應(yīng)關(guān)系,即使寫(xiě)入數(shù)據(jù)失敗,也要對(duì)應(yīng)寫(xiě)入SAT,只不 過(guò)需要將SAT屬性設(shè)置為無(wú)效。數(shù)據(jù)記錄的長(zhǎng)度不確定,扇區(qū)的長(zhǎng)度就不確定,那么在讀寫(xiě)數(shù)據(jù)時(shí)需要確 定起始地址,起始地址可以通過(guò)累加計(jì)算出來(lái)。因?yàn)槊恳环N數(shù)據(jù)類(lèi)型,數(shù)據(jù)記 錄長(zhǎng)度是確定的,扇區(qū)的長(zhǎng)度就是數(shù)據(jù)記錄長(zhǎng)度與CRC32校驗(yàn)碼長(zhǎng)度之和,而 SAT與扇區(qū)的位置都是——對(duì)應(yīng)的,通過(guò)SAT就可以知道數(shù)據(jù)記錄長(zhǎng)度,這樣 就可以計(jì)算出任意一個(gè)扇區(qū)的起始地址和總長(zhǎng)度。由以上的說(shuō)明可以看出,本發(fā)明的Flash存儲(chǔ)管理方法可以有效提高Flash 讀寫(xiě)速度、提高系統(tǒng)性能,大大降低塊擦寫(xiě)次數(shù),提高Flash壽命;與現(xiàn)有解 決方案相比,能夠更加充分利用Flash存儲(chǔ)空間、確保數(shù)據(jù)的安全性。同時(shí), 本發(fā)明的Flash存儲(chǔ)管理方法對(duì)Flash的位反轉(zhuǎn)和壞塊作出了相應(yīng)的處理,提 高了 Flash的可靠性。當(dāng)然,上述說(shuō)明并非是對(duì)本發(fā)明的限制,本發(fā)明也并不僅限于上述舉例, 本技術(shù)領(lǐng)域的普通技術(shù)人員在本發(fā)明的實(shí)質(zhì)范圍內(nèi)所做出的變化、改型、添加 或替換,也應(yīng)屬于本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種閃存存儲(chǔ)管理方法,包括將閃存劃分為至少兩個(gè)區(qū)塊,每個(gè)區(qū)塊包括數(shù)據(jù)區(qū)和扇區(qū)分配表,所述數(shù)據(jù)區(qū)被劃分為至少兩個(gè)虛擬扇區(qū),所述扇區(qū)分配表包括每個(gè)虛擬扇區(qū)的屬性和ID邏輯號(hào),其特征在于每個(gè)虛擬扇區(qū)可以存儲(chǔ)不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)記錄,所述扇區(qū)分配表還包括每個(gè)虛擬扇區(qū)的數(shù)據(jù)類(lèi)型ID。
2、 根據(jù)權(quán)利要求1所述的閃存存儲(chǔ)管理方法,其特征在于所述每個(gè)虛擬 扇區(qū)還包括所述數(shù)據(jù)記錄的校驗(yàn)碼。
3、 根據(jù)權(quán)利要求2所述的閃存存儲(chǔ)管理方法,其特征在于所述校驗(yàn)碼為 CRC校驗(yàn)碼。
4、 根據(jù)權(quán)利要求l所述的閃存存儲(chǔ)管理方法,其特征在于當(dāng)所述虛擬扇 區(qū)寫(xiě)入一個(gè)數(shù)據(jù)記錄之后,讀出所述虛擬扇區(qū)的數(shù)據(jù)記錄,與寫(xiě)入的數(shù)據(jù)記錄 進(jìn)行比較,如果讀出的數(shù)據(jù)記錄與寫(xiě)入的數(shù)據(jù)記錄不相同,則重新寫(xiě)入所述數(shù) 據(jù)記錄。
5、 根據(jù)權(quán)利要求4所述的閃存存儲(chǔ)管理方法,其特征在于當(dāng)所述寫(xiě)入數(shù) 據(jù)記錄和讀出數(shù)據(jù)記錄步驟重復(fù)一個(gè)預(yù)先設(shè)定的次數(shù)之后,讀出的數(shù)據(jù)記錄與 寫(xiě)入的數(shù)據(jù)記錄仍然不相同,則標(biāo)記所述虛擬扇區(qū)的屬性為無(wú)效。
6、 根據(jù)權(quán)利要求l所述的閃存存儲(chǔ)管理方法,其特征在于所述區(qū)塊還包 括一個(gè)表示所述區(qū)塊是否有數(shù)據(jù)寫(xiě)入的使用標(biāo)志。
7、 根據(jù)權(quán)利要求4所述的閃存存儲(chǔ)管理方法,其特征在于所述使用標(biāo)志 處于所述區(qū)塊的最前端或最尾端。
8、 根據(jù)權(quán)利要求1-7任一所述的閃存存儲(chǔ)管理方法,其特征在于所述數(shù) 據(jù)區(qū)處于所述區(qū)塊的前端,每個(gè)虛擬扇區(qū)由前向后依次排列;所述扇區(qū)分配表 處于所述區(qū)塊的尾端,每個(gè)虛擬扇區(qū)的屬性和ID邏輯號(hào)由后向前依次排列。
9、 根據(jù)權(quán)利要求1-7任一所述的閃存存儲(chǔ)管理方法,其特征在于所述數(shù)據(jù)區(qū)處于所述區(qū)塊的尾端,每個(gè)虛擬扇區(qū)由后向前依次排列;所述扇區(qū)分配表 處于所述區(qū)塊的前端,每個(gè)虛擬扇區(qū)的屬性和ID邏輯號(hào)由前向后依次排列。
10、根據(jù)權(quán)利要求l-7任一所述的閃存存儲(chǔ)管理方法,其特征在于所述 閃存為MND型閃存。
全文摘要
本發(fā)明提供了一種閃存存儲(chǔ)管理方法,采用了動(dòng)態(tài)虛擬扇區(qū)技術(shù),在同一個(gè)Block中根據(jù)應(yīng)用需要可以分配不同大小的虛擬扇區(qū),分別用來(lái)存儲(chǔ)不同類(lèi)型的數(shù)據(jù)記錄。具體的,本發(fā)明的閃存存儲(chǔ)管理方法包括將閃存劃分為至少兩個(gè)區(qū)塊,每個(gè)區(qū)塊包括數(shù)據(jù)區(qū)和扇區(qū)分配表,所述數(shù)據(jù)區(qū)被劃分為至少兩個(gè)虛擬扇區(qū),所述扇區(qū)分配表包括每個(gè)虛擬扇區(qū)的屬性和ID邏輯號(hào),每個(gè)虛擬扇區(qū)可以存儲(chǔ)不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)記錄,所述扇區(qū)分配表還包括每個(gè)虛擬扇區(qū)的數(shù)據(jù)類(lèi)型ID。本發(fā)明的閃存存儲(chǔ)管理方法可以有效提高Flash讀寫(xiě)速度、提高系統(tǒng)性能,大大降低塊擦寫(xiě)次數(shù),提高Flash壽命;與現(xiàn)有解決方案相比,能夠更加充分利用Flash存儲(chǔ)空間、確保數(shù)據(jù)的安全性。
文檔編號(hào)G06F12/02GK101324862SQ20081001597
公開(kāi)日2008年12月17日 申請(qǐng)日期2008年5月5日 優(yōu)先權(quán)日2008年5月5日
發(fā)明者田友強(qiáng) 申請(qǐng)人:青島海信電器股份有限公司