開發筆記-NAND Flash Bad Block Management

來源:互聯網
上載者:User
 1)為什麼會出現壞塊由於NAND Flash的工藝不能保證NAND的Memory Array在其生命週期中保持效能的可靠,因此,在NAND的生產中及使用過程中會產生壞塊。壞塊的特性是:       當編程/擦除這個塊時,不能將某些位拉高,這會造成Page Program和Block Erase操作時的錯誤,相應地反映到Status Register的相應位。2)壞塊的分類       總體上,壞塊可以分為兩大類(1)      固有壞塊這是生產過程中產生的壞塊,一般晶片原廠都會在出廠時都會將壞塊第一個page的spare area的第6個byte標記為不等於0xff的值。(2)      使用壞塊這是在NAND Flash使用過程中,如果Block Erase或者Page Program錯誤,就可以簡單地將這個塊作為壞塊來處理,這個時候需要把壞塊標記起來。為了和固有壞塊資訊保持一致,將新發現的壞塊的第一個page的spare area的第6個Byte標記為非0xff的值。3)壞塊管理       根據上面的這些敘述,可以瞭解NAND Flash出廠時在spare area中已經反映出了壞塊資訊,因此,如果在擦除一個塊之前,一定要先check一下spare area的第6個byte是否是0xff,如果是就證明這是一個好塊,可以擦除;如果是非0xff,那麼就不能擦除。當然,這樣處理可能會犯一個錯誤―――“錯殺偽壞塊”,因為在晶片操作過程中可能由於電壓不穩定等偶然因素會造成NAND操作的錯誤。但是,為了資料的可靠性及軟體設計的簡單化,我們就要奉行“蔣委員長”的“寧可錯殺一千,也決不放過一個”的宗旨。4)補充       (1)需要對前面由於Page Program錯誤發現的壞塊進行一下特別說明。如果在對一個塊的某個page進行編程的時候發生了錯誤就要把這個塊標記為壞塊,首先就要把其他好的page裡面的內容備份到另外一個空的好塊裡面,然後,把這個塊標記為壞塊。       當然,這可能會犯“錯殺”之誤,一個補救的辦法,就是在進行完頁備份之後,再將這個塊擦除一遍,如果Block Erase發生錯誤,那就證明這個塊是個真正的壞塊,那就毫不猶豫地將它打個“戳”吧!       (2)可能有人會問,為什麼要使用spare area的第六個byte作為壞塊標記。這是NAND Flash生產商的預設約定,你可以看到Samsung,Toshiba,STMicroelectronics都是使用這個Byte作為壞塊標記的。  2004-06-09                  (轉載和引用請著名出處和作者) 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.