|
1.為什么會出現(xiàn)壞塊
由于NAND Flash的工藝不能保證NAND的Memory Array(由NAND cell組成的陣列)在其生命周期中保持性能的可靠(電荷可能由于其他異常原因沒有被鎖起來,可參考“NOR flash和 NAND flash的掉電保存原理介紹”這篇文章。
),因此,在NAND的生產(chǎn)中及使用過程中會產(chǎn)生壞塊。壞塊的特性是:當(dāng)編程/擦除這個塊時,不能將某些位拉高,這 會造成Page Program和Block Erase操作時的錯誤,相應(yīng)地反映到Status Register的相應(yīng)位。
2.壞塊的分類
總體上,壞塊可以分為兩大類
(1) 固有壞塊
這是生產(chǎn)過程中產(chǎn)生的壞塊,一般芯片原廠都會在出廠時都會將壞塊第一個page的spare area的第6個byte標記為不等于0xff的值。出廠時,ATO solution原廠也會保證第一個塊一定不是壞塊。
(2) 使用壞塊
這是在NAND Flash使用過程中,如果Block Erase或者Page Program錯誤,就可以簡單地將這個塊作為壞塊來處理,這個時候需要把壞塊標記起來。為了和固有壞塊信息保持一致,將新發(fā)現(xiàn)的壞塊的第一個page的 spare area的第6個Byte標記為非0xff的值。
3.壞塊管理
根據(jù)上面的這些敘述,可以了解NAND Flash出廠時在spare area中已經(jīng)反映出了壞塊信息,因此,如果在擦除一個塊之前,一定要先check一下spare area的第6個byte是否是0xff,如果是就證明這是一個好塊,可以擦除;如果是非0xff,那么就不能擦除。
當(dāng)然,這樣處理可能會犯一個錯誤―――“錯殺偽壞塊”,因為在芯片操作過程中可能由于電壓不穩(wěn)定等偶然因素會造成NAND操作的錯誤。但是,為了數(shù)據(jù)的可 靠性及軟件設(shè)計的簡單化,我們就要奉行“蔣委員長”的“寧可錯殺一千,也決不放過一個”的宗旨。
4.補充
(1)需要對前面由于Page Program錯誤發(fā)現(xiàn)的壞塊進行一下特別說明。如果在對一個塊的某個page進行編程的時候發(fā)生了錯誤就要把這個塊標記為壞塊,首先就要把其他好的page里面的內(nèi)容備份到另外一個空的好塊里面,然后,把這個塊標記為壞塊。
當(dāng)然,這可能會犯“錯殺”之誤,一個補救的辦法,就是在進行完頁備份之后,再將這個塊擦除一遍,如果Block Erase發(fā)生錯誤,那就證明這個塊是個真正的壞塊,那就毫不猶豫地將它打個“戳”吧!
(2)可能有人會問,為什么要使用spare area的第六個byte作為壞塊標記。這是NAND Flash生產(chǎn)商的默認約定,你可以看到Samsung,Toshiba,ATO solution都是使用這個Byte作為壞塊標記的。
|
|