Nand Flash壞塊處理

2021-08-21 04:12:20 字數 2076 閱讀 9434

nand flash儲存器是flash儲存器的一種,為固態大容量記憶體的實現提供了廉價有效的解決方案。nand儲存器具有容量較大,改寫速度快等優點,適用於大量資料的儲存,如嵌入式產品中包括數位相機、記憶卡、體積小巧的u盤等。

2023年,東芝公司發表了nand flash結構,強調降低每位元的成本,更高的效能,並且像磁碟一樣可以通過介面輕鬆公升級。經過十幾年的發展,nand應用越來越廣泛,但是大多數工程師卻仍然不知道關於nand應用的一些難點:分割槽、ecc糾錯、壞塊管理等。只有真正了解nand特性的工程師,才能在應用上得心應手,不會被nand flash所絆倒。

分割槽

定義分割槽的實質是定義資料會如何寫入nand flash,不同內容的資料寫到對應的位址中。一般使用者會有多個區,比如boot、kernel、fs、user等分割槽。

分割槽的描述:分割槽的位址範圍(起始塊、結束塊),映象檔案大小(image size)。

分割槽的資料儲存:映象檔案是從分割槽的起始塊開始存放,如果分割槽中有壞塊,將使用壞塊處理策略替換壞塊,直到映象檔案結束,如果分割槽中不夠好塊存放映象檔案,則燒錄失敗。

如下圖是跳過壞塊的映象檔案分割槽燒寫示意圖:

ecc(錯誤更正)演算法

ecc 存在於nand 每頁的備用區(spare area)中,它允許外部系統發現主區的資料是否有誤。在大多數情況下,ecc 演算法可以糾正誤碼,nandflash在使用中也可能會出現壞塊,所以ecc是非常有必要的。

不同的使用者會可能會使用不同的ecc演算法,一般來說ecc演算法由處理器**商提供,如果程式設計器軟體中無這個ecc演算法,則需要使用者提供ecc演算法源**。

如果使用者不使用調入檔案,而是使用讀母片的方式燒錄,並且無動態資料,則可以不考慮ecc演算法,因為母片中的備用區已計算好ecc,直接將母片的備用區拷貝至其他晶元即可。

壞塊管理

壞塊處理策略定義了在遇到壞塊時演算法應該如何處理,基本的壞塊處理策略有:跳過壞塊、替換表(預留塊區reserve blockarea,rba)等等,下面分別對幾種壞塊處理方案進行說明。

1、硬拷貝

硬拷貝其實就是遇到壞塊什麼都不處理,不管好塊還是壞塊直接燒寫按順序燒寫資料,即使校驗資料不一致也不報錯,這是最簡單、直接的處理方法,但是只能適用於資料不需管理的方案;

2、跳過壞塊

跳過壞塊就是燒錄資料時,遇到壞塊即跳過此壞塊,將資料順延燒到下乙個好塊,這樣可以保證所有的資料都能燒寫到nand儲存空間中,但是並不知道資料究竟燒到了哪一位;

3、替換表

此方法是將nand儲存空間中預留出一些塊作為保留塊,當遇到壞塊時,在預留的保留塊中選乙個塊來替換壞塊,將原來寫到壞塊的資料寫到替換塊中;

此方法核心是跳過壞塊,但是跳過後需要在nand快閃儲存器指定位置寫入乙個壞塊表(bad block table),下圖是bbt的結構圖。

nand應用需要注意的點大致整理如上,實際使用中會有靈活的應用方案,需要熟知nand特性、程式設計器原理的工程師才能設計出合適的方案加以運用。p800flash極速程式設計器融合了zlg致遠電子三代flash程式設計器的特點,全面支援emmc、nor、nand flash的燒錄,可提供完善的程式設計解決方案。

nand flash壞塊管理OOB,BBT,ECC

0.nand的操作管理方式 nand flash的管理方式 以三星flash為例,一片nand flash為乙個裝置 device 1 device x blocks 1 block x pages 1 page 528 bytes 資料塊大小 512bytes oob 塊大小 16bytes,除o...

nand flash壞塊管理OOB,BBT,ECC

0.nand的操作管理方式 nand flash的管理方式 以三星flahs為例,一片nand flash為乙個裝置 device 1 device x blocks 1 block x pages 1 page 528 bytes 資料塊大小 512bytes oob 塊大小 16bytes,除o...

NAND Flash產生壞塊原因

由於nand flash的工藝不能保證nand的memory array在其生命週期中保持效能的可靠,因此,在nand的生產中及使用過程中會產生壞塊。壞塊的特性是 當程式設計 擦除這個塊時,不能將某些位拉高,這會造成page program和block erase操作時的錯誤,相應地反映到statu...