NAND Flash產(chǎn)生壞塊原因
由于NAND Flash的工藝不能保證NAND的Memory Array在其生命周期中保持性能的可靠,因此,在NAND的生產(chǎn)中及使用過(guò)程中會(huì)產(chǎn)生壞塊。壞塊的特性是:當(dāng)編程/擦除這個(gè)塊時(shí),不能將某些位拉高,這會(huì)造成Page Program和Block Erase操作時(shí)的錯(cuò)誤,相應(yīng)地反映到Status Register的相應(yīng)位。總體上,壞塊可以分為兩大類(lèi):
1.固有壞塊
這是生產(chǎn)過(guò)程中產(chǎn)生的壞塊,一般芯片原廠都會(huì)在出廠時(shí)都會(huì)將壞塊第一個(gè)page的spare area的第6個(gè)byte標(biāo)記為不等于0xff的值。
2.使用壞塊
這是在NAND Flash使用過(guò)程中,如果Block Erase或者Page Program錯(cuò)誤,就可以簡(jiǎn)單地將這個(gè)塊作為壞塊來(lái)處理,這個(gè)時(shí)候需要把壞塊標(biāo)記起來(lái)。為了和固有壞塊信息保持一致,將新發(fā)現(xiàn)的壞塊的第一個(gè)page的spare area的第6個(gè)Byte標(biāo)記為非0xff的值。
我們了解了NAND Flash出廠時(shí)在spare area中已經(jīng)反映出了壞塊信息,因此,如果在擦除一個(gè)塊之前,一定要先check一下spare area的第6個(gè)byte是否是0xff,如果是就證明這是一個(gè)好塊,可以擦除;如果是非0xff,那么就不能擦除。當(dāng)然,這樣處理可能會(huì)犯一個(gè)錯(cuò)誤―――“錯(cuò)殺偽壞塊”,因?yàn)樵谛酒僮鬟^(guò)程中可能由于電壓不穩(wěn)定等偶然因素會(huì)造成NAND操作的錯(cuò)誤。但是,為了數(shù)據(jù)的可靠性及軟件設(shè)計(jì)的簡(jiǎn)單化,我們就要奉行“蔣委員長(zhǎng)”的“寧可錯(cuò)殺一千,也決不放過(guò)一個(gè)”的宗旨。
補(bǔ)充說(shuō)明:
1.需要對(duì)前面由于Page Program錯(cuò)誤發(fā)現(xiàn)的壞塊進(jìn)行一下特別說(shuō)明。如果在對(duì)一個(gè)塊的某個(gè)page進(jìn)行編程的時(shí)候發(fā)生了錯(cuò)誤就要把這個(gè)塊標(biāo)記為壞塊,首先就要把其他好的page里面的內(nèi)容備份到另外一個(gè)空的好塊里面,然后,把這個(gè)塊標(biāo)記為壞塊。當(dāng)然,這可能會(huì)犯“錯(cuò)殺”之誤,一個(gè)補(bǔ)救的辦法,就是在進(jìn)行完頁(yè)備份之后,再將這個(gè)塊擦除一遍,如果Block Erase發(fā)生錯(cuò)誤,那就證明這個(gè)塊是個(gè)真正的壞塊,那就毫不猶豫地將它打個(gè)“戳”吧!
2.可能有人會(huì)問(wèn),為什么要使用spare area的第六個(gè)byte作為壞塊標(biāo)記。這是NAND Flash生產(chǎn)商的默認(rèn)約定,你可以看到Samsung,Toshiba,STMicroelectronics都是使用這個(gè)Byte作為壞塊標(biāo)記的。
遠(yuǎn)通聯(lián)達(dá)