新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > NAND Flash的壞塊管理設(shè)計(jì)

        NAND Flash的壞塊管理設(shè)計(jì)

        作者: 時(shí)間:2010-11-15 來源:網(wǎng)絡(luò) 收藏

        d.JPG


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

        e.JPG
        如果 Flash在執(zhí)行擦除或?qū)懖僮鬟^程時(shí)發(fā)生斷電,則所操作的塊內(nèi)的數(shù)據(jù)具有不確定性。下次讀該塊的內(nèi)容時(shí),可能發(fā)生無法糾正的ECC錯(cuò)誤。為了能處理這種情況,圖4中的torture處理,其實(shí)現(xiàn)原理就是選擇一些數(shù)據(jù)寫入該塊,再讀出,如果不一致則該塊已變成壞塊。



        關(guān)鍵詞: 設(shè)計(jì) 管理 Flash NAND

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 大英县| 苗栗市| 遂平县| 玛纳斯县| 浠水县| 柘荣县| 西丰县| 尼玛县| 济南市| 安陆市| 弥渡县| 吴旗县| 房产| 吴堡县| 祥云县| 江津市| 常宁市| 普定县| 定陶县| 阳谷县| 凤阳县| 怀柔区| 垫江县| 静乐县| 霍城县| 丰顺县| 巴林右旗| 山东省| 和静县| 东平县| 辽阳市| 广安市| 城市| 泰兴市| 福贡县| 乌苏市| 孟村| 汾西县| 丰顺县| 绿春县| 会泽县|