久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > NAND Flash的壞塊管理設計

NAND Flash的壞塊管理設計

作者: 時間:2010-11-15 來源:網絡 收藏

d.JPG


③只發現一張最高版本并且有效地壞塊表Vn+1,并且有1張有效壞塊表Vn——發生在寫第二張Vn+1突然掉電,并且之前寫第二張Vn也發生掉電;
④僅發現一張壞塊表V0——發生在系統寫第二張V0時掉電,此時系統需重新掃描建立映射表V1;
⑤沒有發現任何壞塊表——系統最初狀態;
⑥兩個完整的壞塊表Vn+1,但num_bad_blk不一樣——這種情況發生在更新第二個壞塊表Vn+1時,寫的時候出錯,產生一個新的壞塊,從而第二次更新的壞塊表Vn+1的壞塊數增加了。
對于情況①,只需在系統最初建立前建立好映射關系即可。
對于情況②,它經常出現在系統在寫或者擦除數據塊時突然斷電,導致數據或者ECC變化,從而讀導致ECC不正確。實際上Fl-ash塊并沒有壞。根據此種情況,將首先為此塊分配一個映射塊,并把數據拷入映射塊。接著對此塊進行torture操作,如果發現它為好塊,則將之前映射操作撤銷,將數據重新拷入此好塊。如果此塊確實已壞,則將此塊標記為壞塊,并更新映射表。
對于情況③,分配一個新的映射塊,把有效數據寫入新塊,并建立映射信息。
對于情況④,分配一個新的映射塊,并將此塊查出,然后建立映射信息。
對于情況⑤,掃描整個,建立映射表Vn、V0。
對于情況⑥,則采用壞塊多的映射表Vn+1,并用它更新Vn+2、Vn+2。
2.2.2 壞塊及上層接口實現
該模塊實現基于上節所述壞塊算法對Flash的所有有效塊的使用。它主要是處理運行中產生壞塊的情況,并讓上層程序屏蔽此信息。
Flash的壞塊包含如下三種類型:
◆Flash上存在的出廠壞塊;
◆讀過程發生比特反轉而被視為的壞塊;
◆操作過程(讀,寫,擦除)中產生的新的壞塊。
對于此模塊主要完成后兩種動態壞塊類型的處理過程。對于出廠壞塊,只需在初始化時檢測出來并將其映射到一個好塊,以后的讀寫過程中對映射塊操作即可。
對于運行中產生的壞塊,從操作類型(讀、寫、擦除)來進行分別處理。
①讀過程中的比特反轉導致ECC錯誤,由于比特反轉是工藝決定的,且是不可避免的隨機行為,所以不能簡單地根據ECC錯誤就將其當作壞塊處理。具體處理流程如圖4所示,通過torture操作判斷此“壞塊”已真正成為壞塊。

e.JPG
如果 Flash在執行擦除或寫操作過程時發生斷電,則所操作的塊內的數據具有不確定性。下次讀該塊的內容時,可能發生無法糾正的ECC錯誤。為了能處理這種情況,圖4中的torture處理,其實現原理就是選擇一些數據寫入該塊,再讀出,如果不一致則該塊已變成壞塊。



關鍵詞: 設計 管理 Flash NAND

評論


相關推薦

技術專區

關閉