如何將“壞塊”進行有效利用
被廣泛應用于手機、平板等數(shù)碼設備中的Nand Flash由于工藝原因無法避免壞塊的存在,但是我們可以憑借高科技變廢為寶,將“壞塊”進行有效的利用,從而滿足我們的應用需求,讓壞塊不“壞”。
本文引用地址:http://butianyuan.cn/article/201610/311611.htm要想變廢為寶,有效利用壞塊。我們首先要弄明白什么是“壞塊”,做到知己知彼,才能為我所用。壞塊的特點是當編程或者擦除這個塊時,不能將某些位拉高,從而造成編程和塊擦除操作時的錯誤,這種錯誤可以通過狀態(tài)寄存器的值反映出來。這些無效塊無法確定編程時的狀態(tài),就是大家常說的“壞塊”。那么這些“壞塊”是怎么產生的呢?
圖1 壞塊示意圖
由于工藝上的問題,Nand Flash中不可避免的會出現(xiàn)出廠壞塊(出廠時允許存在2%數(shù)量的壞塊),同時在Nand Flash的使用過程中也會產生新的壞塊。Nand Flash每個塊的最大擦除次數(shù)大約為100萬次,如果超過這個次數(shù),也會變成壞塊。除了上述情況之外,壞塊的產生原因還有很多,比如存儲單元錯誤、地址線錯誤等……
那么重點來了,既然不能完全地消除“壞塊”,那么我們可以選擇將它利用起來,實現(xiàn)一些特殊且必要的功能。為什么說能將壞塊“變廢為寶”呢?除了上文中介紹的幾種類型的壞塊,我們在一些特殊情況下需要人為地將Nand Flash芯片的某些塊標記為壞塊。比如某塊非常不穩(wěn)定以致超出了系統(tǒng)ECC的糾錯范圍,這個時候需要將此塊標記為壞塊;或者我們想驗證燒寫方案的壞塊處理部分是否正確時,也需要制作出一些壞塊以供測試驗證;還有為了滿足某類系統(tǒng)的特性,需要制作指定的壞塊,比如我們一開始提到的UBI文件系統(tǒng)。這些特殊情況需要我們有目的性的設置指定壞塊,滿足相應的需求。
清楚了什么是壞塊以及壞塊是怎么產生的,那么我們下面來看看怎么人為地設置壞塊,讓壞塊為我們所用,達到“變廢為寶”的目的
首先,我們要知道什么是芯片的“壞塊標記位”(英文簡稱BI)。對于不同的器件,壞塊標志位不盡相同。通常對于512字節(jié)/頁的NandFlash芯片,壞塊標記位在第0、1頁(或別的頁)備用區(qū)的第5個字節(jié),對于2K字節(jié)/頁的芯片壞塊標記位置在第0個字節(jié)。
圖2 壞塊標記位
那么從原理上來說,我們只需要在芯片某塊的BI位置按照芯片手冊上的規(guī)定寫入特定的數(shù)值,就可以將該塊標記為壞塊。大部分芯片的壞塊標記值為“非0xff”即被認為是壞塊,然而有些芯片是“0x00”才被認為是壞塊,而且壞塊標記所在頁也是變化的,所以為了統(tǒng)一,我們使用一個通用有效的方法:將整塊寫數(shù)值0x00。致遠電子自主研發(fā)的6000F-PLUS編程器及配套的SmartPRO III軟件,可以很方便的完成壞塊的標記。
評論