如何將“壞塊”進行有效利用
被廣泛應用于手機、平板等數碼設備中的Nand Flash由于工藝原因無法避免壞塊的存在,但是我們可以憑借高科技變廢為寶,將“壞塊”進行有效的利用,從而滿足我們的應用需求,讓壞塊不“壞”。
本文引用地址:http://www.j9360.com/article/201610/311611.htm要想變廢為寶,有效利用壞塊。我們首先要弄明白什么是“壞塊”,做到知己知彼,才能為我所用。壞塊的特點是當編程或者擦除這個塊時,不能將某些位拉高,從而造成編程和塊擦除操作時的錯誤,這種錯誤可以通過狀態寄存器的值反映出來。這些無效塊無法確定編程時的狀態,就是大家常說的“壞塊”。那么這些“壞塊”是怎么產生的呢?

圖1 壞塊示意圖
由于工藝上的問題,Nand Flash中不可避免的會出現出廠壞塊(出廠時允許存在2%數量的壞塊),同時在Nand Flash的使用過程中也會產生新的壞塊。Nand Flash每個塊的最大擦除次數大約為100萬次,如果超過這個次數,也會變成壞塊。除了上述情況之外,壞塊的產生原因還有很多,比如存儲單元錯誤、地址線錯誤等……
那么重點來了,既然不能完全地消除“壞塊”,那么我們可以選擇將它利用起來,實現一些特殊且必要的功能。為什么說能將壞塊“變廢為寶”呢?除了上文中介紹的幾種類型的壞塊,我們在一些特殊情況下需要人為地將Nand Flash芯片的某些塊標記為壞塊。比如某塊非常不穩定以致超出了系統ECC的糾錯范圍,這個時候需要將此塊標記為壞塊;或者我們想驗證燒寫方案的壞塊處理部分是否正確時,也需要制作出一些壞塊以供測試驗證;還有為了滿足某類系統的特性,需要制作指定的壞塊,比如我們一開始提到的UBI文件系統。這些特殊情況需要我們有目的性的設置指定壞塊,滿足相應的需求。
清楚了什么是壞塊以及壞塊是怎么產生的,那么我們下面來看看怎么人為地設置壞塊,讓壞塊為我們所用,達到“變廢為寶”的目的
首先,我們要知道什么是芯片的“壞塊標記位”(英文簡稱BI)。對于不同的器件,壞塊標志位不盡相同。通常對于512字節/頁的NandFlash芯片,壞塊標記位在第0、1頁(或別的頁)備用區的第5個字節,對于2K字節/頁的芯片壞塊標記位置在第0個字節。

圖2 壞塊標記位
那么從原理上來說,我們只需要在芯片某塊的BI位置按照芯片手冊上的規定寫入特定的數值,就可以將該塊標記為壞塊。大部分芯片的壞塊標記值為“非0xff”即被認為是壞塊,然而有些芯片是“0x00”才被認為是壞塊,而且壞塊標記所在頁也是變化的,所以為了統一,我們使用一個通用有效的方法:將整塊寫數值0x00。致遠電子自主研發的6000F-PLUS編程器及配套的SmartPRO III軟件,可以很方便的完成壞塊的標記。
評論