一種nandflash的狀態檢測及映射方法
2023-06-08 20:55:56
專利名稱:一種nand flash的狀態檢測及映射方法
一種NAfJD FLASH的狀態檢測及映射方法
技術領域:
本發明涉及一種NAND FLASH器件的領域。背景技術:
EEPROM(電可擦寫可編程只讀存儲器)的市場應用範圍很廣泛,但是其缺點也很明顯,寫入速度慢,至少IOms的寫等待時間,而且寫操作次數有限制,並且總體存儲容量有限。NAND FLASH及NOR FLASH是現在市場上兩種主要的非易失快閃記憶體技術。NOR FLASH 存儲器存儲容量大,但其存儲特性又導致在使用過程中存在存取不靈活的特點。NAND FLASH是嵌入式領域較為常用的固態大容量存儲器,具有掉電後不丟失數據,容量較大,改寫速度快,價格低廉等優點。但是NAND FLASH中存在隨機分布的壞塊缺陷, 對NAND FLASH的介質檢測及映射標記就是一個需要解決的問題。在使用NAND FLASH時,必須先寫入驅動程序,才能繼續執行其他操作,向NAND FLASH寫入信息需要相當的技巧,因為不能向壞塊寫入,這就意味著在NAND FLASH上自始至終都必須進行虛擬映射,NAND FLASH 中的壞塊是隨機分布的,對可靠性有一定的影響。
發明內容本發明要解決的技術問題,在於提供一種NAND FLASH的狀態檢測及映射方法,它能夠根據NAND FLASH存儲器的特性,進行處理,以確保使用的可靠性。本發明是這樣實現的一種NAND FLASH的狀態檢測及映射方法,具體包括如下步驟步驟10、在存儲器的頭部根據存儲器的信息建立映射表,所述映射表包括表標識單元、表信息單元、映射單元和數據校驗單元;步驟20、對存儲器進行初始化掃描以發現壞塊,並將壞塊的信息在映射表中標記出來;步驟30、對映射表進行備份,創立備份表,用戶在向存儲器寫入數據的時候,根據映射表的信息,再進行操作;步驟40、存儲器在使用過程中通過校驗算法對存儲器進行檢測監控,如發現壞塊, 則對映射表進行更新。進一步的,所述表標識單元為對每一映射表起標識作用的固定字符。進一步的,所述表信息單元包括了存儲器版本號、存儲器容量、塊數量、塊大小、頁大小。進一步的,所述數據校驗單元用於存儲採用32Bit的CRC校驗方法獲得的用於校驗的校驗值,該校驗值是從映射表表頭的表標識單元開始,對整個映射表的數據結構除最後的數據校驗單元外,使用CRC校驗方法對每個字節做循環校驗運算計算出的校驗值。所述步驟30進一步包括首先判斷映射表是否有效,若有效則直接根據映射表的CN 102541676 A信息進行操作,若無效則搜索備份表,並判斷備份表是否有效,若備份表有效,則根據該備份表更新映射表,並根據映射表的信息進行操作,若備份表無效,則掃描存儲介質創建映射表,創立備份表,再根據映射表的信息進行操作。本發明具有如下優點本發明提出一種NAND FLASH的狀態檢測及映射方法,根據NANDFLASH存儲器的特性,通過軟體的方法進行處理,以確保使用的可靠性,本發明方法簡單易行,靈活實用,在保證穩定性的基礎上,將檢測出的各種狀態體現在映射表中,然後根據映射表,進行合理的各種操作。
下面參照附圖結合實施例對本發明作進一步的說明。圖1為本發明的映射表結構示意圖。圖2為本發明在向存儲器中寫數據的流程示意圖。
具體實施方式本發明具體包括如下步驟步驟10、在存儲器的頭部根據存儲器的信息建立映射表,如圖1,所述映射表包括表標識單元、表信息單元、映射單元和數據校驗單元;所述表標識單元為對每一映射表起標識作用的固定字符。所述表信息單元包括了存儲器版本號、存儲器容量、塊數量、塊大小、頁大小。所述數據校驗單元為採用32Bit的CRC校驗方法獲得的用於校驗的校驗值。該校驗值是從映射表表頭的表標識單元開始,對整個映射表的數據結構除最後的數據校驗單元外,使用循環校驗算法(CRC)對每個字節做循環校驗運算,計算出的校驗值存儲在映射表的數據結構最後4位元組的數據校驗單元(即CRC存儲欄位)。步驟20、對存儲器進行初始化掃描以發現壞塊,並將壞塊的信息在映射表中標記出來;步驟30、對映射表進行備份,創立備份表,目的是為了防止在更新的過程中意外中斷照成映射表數據無法恢復的情況,因此可以創建多個備份表以防止數據丟失,實際使用中映射表1個、備份表3個,為「1+3」,結合圖2,用戶在向存儲器寫入數據的時候,根據映射表的信息,再進行操作。首先判斷映射表是否有效,若有效則直接根據映射表的信息進行操作,若無效則搜索備份表,並判斷備份表是否有效,若備份表有效,則根據該備份表更新映射表,並根據映射表的信息進行操作,若備份表無效,則掃描存儲介質創建映射表,創立備份表,再根據映射表的信息進行操作。系統讀取映射表的信息,再進行相應的操作。例如存儲器某個地址有壞塊,映射表中會將該具體的狀態做出標識,而當存儲數據需要用到該數據塊時,系統在讀取映射表時, 就會根據映射表上的具體狀態做出相對應的skip (跳過)處理的操作,在跳轉程序、計算地址的時候也需要對具體狀態做出相應操作。步驟40、存儲器在使用過程中通過校驗算法對存儲器進行檢測監控,如發現壞塊, 則對映射表進行更新;每次映射表更新,都需要需要進行備份,使用過程中使用ECC(Error Correcting Code)校驗算法來監控。
以上所述,僅為本發明較佳實施例而已,故不能依此限定本發明實施的範圍,即依本發明專利範圍及說明書內容所作的等效變化與修飾,皆應仍屬本發明涵蓋的範圍內。
權利要求
1.一種NAND FLASH的狀態檢測及映射方法,其特徵在於具體包括如下步驟步驟10、在存儲器的頭部根據存儲器的信息建立映射表,所述映射表包括表標識單元、表信息單元、映射單元和數據校驗單元;步驟20、對存儲器進行初始化掃描以發現壞塊,並將壞塊的信息在映射表中標記出來;步驟30、對映射表進行備份,創立備份表,用戶在向存儲器寫入數據的時候,根據映射表的信息,再進行相應的操作;步驟40、存儲器在使用過程中通過校驗算法對存儲器進行檢測監控,如發現壞塊,則對映射表進行更新。
2.根據權利要求1所述的一種NANDFLASH的狀態檢測及映射方法,其特徵在於所述表標識單元為對每一映射表起標識作用的固定字符。
3.根據權利要求1所述的一種NANDFLASH的狀態檢測及映射方法,其特徵在於所述表信息單元包括了存儲器版本號、存儲器容量、塊數量、塊大小、頁大小。
4.根據權利要求1所述的一種NANDFLASH的狀態檢測及映射方法,其特徵在於所述數據校驗單元用於存儲採用32Bit的CRC校驗方法獲得的用於校驗的校驗值,該校驗值是從映射表表頭的表標識單元開始,對整個映射表的數據結構除最後的數據校驗單元外,使用CRC校驗方法對每個字節做循環校驗運算計算出的校驗值。
5.根據權利要求1所述的一種NANDFLASH的狀態檢測及映射方法,其特徵在於所述步驟30進一步包括首先判斷映射表是否有效,若有效則直接根據映射表的信息進行操作,若無效則搜索備份表,並判斷備份表是否有效,若備份表有效,則根據該備份表更新映射表,並根據映射表的信息進行操作,若備份表無效,則掃描存儲介質創建映射表,創立備份表,再根據映射表的信息進行操作。
全文摘要
本發明提供一種NAND FLASH的狀態檢測及映射方法,具體包括如下步驟10、在存儲器的頭部根據存儲器的信息建立映射表,所述映射表包括表標識單元、表信息單元、映射單元和數據校驗單元;20、對存儲器進行初始化掃描以發現壞塊,並將壞塊的信息在映射表中標記出來;30、對映射表進行備份,創立備份表,用戶在向存儲器寫入數據的時候,根據映射表的信息,再進行操作;40、存儲器在使用過程中通過校驗算法對存儲器進行檢測監控,如發現壞塊,則對映射表進行更新。本發明方法簡單易行,靈活實用,在保證穩定性的基礎上,將檢測出的各種狀態體現在映射表中,然後根據映射表進行合理的各種操作。
文檔編號G06F11/10GK102541676SQ20111043780
公開日2012年7月4日 申請日期2011年12月22日 優先權日2011年12月22日
發明者郭鑫俊 申請人:福建新大陸通信科技股份有限公司