最新動態

聯繫我們

地址:深圳市南山區高新中區麻雀嶺工業區M-7棟中鋼塔樓西三樓

電話:0755-26971006

手機:13751075276

郵箱:sales@acroview.com

剖析NAND Flash的編程結構

時間:2020-11-21   訪問量:1677
剖析NAND Flash的编程结构

上一篇文章我们介绍了NAND Flash和NOR Flash的区别,从结构及原理上看,NOR Flash这种类似ROM的结构方式,使得他编程简单,所以使用的工程师也很多,要不是成本太高,NAND Flash根本无法生存。

NAND Flash由于价格低廉,存储容量大,越来越受到消费者的喜爱,特别是需要存储大量数据的消费者。那NAND Flash的编程又要注意哪些呢?

分区(Partition)

定义分区的实质是定义数据会如何写入NAND Flash,不同内容的数据写到对应的地址中。一般用户会有多个区,比如boot、kernel、fs、user等分区。

分区的描述:分区的地址范围(起始块、结束块),镜像文件大小(Image Size)。

分区的数据存储:镜像文件是从分区的起始块开始存放,如果分区中有坏块,将使用坏块处理策略替换坏块,直到镜像文件结束,如果分区中不够好块存放镜像文件,则烧录失败。

如下图是跳过坏块的镜像文件分区烧写示意图:

剖析NAND Flash的编程结构

備用區(OOB)的ECC

ECC 存在於NAND 每頁的備用區(Spare Area)中,它允許外部系統發現主區的數據是否有誤。在大多數情況下,ECC 算法可以糾正誤碼,NandFlash在使用中也可能會出現壞塊,所以ECC是非常有必要的。


不同的用戶會可能會使用不同的ECC算法,一般來說ECC算法由處理器供應商提供,如果編程器軟件中無這個ECC算法,則需要用戶提供ECC算法源代碼。


如果用戶不使用調入文件,而是使用讀母片的方式燒錄,並且無動態數據,則可以不考慮ECC算法,因為母片中的備用區已計算好ECC,直接將母片的備用區拷貝至其他芯片即可。


壞塊管理(Bad Block Management)

壞塊處理策略定義了在遇到壞塊時算法應該如何處理,基本的壞塊處理策略有:跳過壞塊、替換錶(預留塊區Reserve BlockArea,RBA)等等。


● 硬拷貝

硬拷貝其實就是遇到壞塊什麼都不處理,不管好塊還是壞塊直接燒寫,即使校驗數據不一致也不報錯;

剖析NAND Flash的编程结构

● 跳過壞塊

跳過壞塊就是遇到壞塊跳到下一個好塊燒;

剖析NAND Flash的编程结构

● 替換錶

就是預留一些塊作為保留塊,是用於替換壞塊用,當遇到壞塊時,在保留區中選一個塊來替換,將原來寫到壞塊的數據寫到替換塊中。

剖析NAND Flash的编程结构

● BBT(Bad block table)

其實就是使用跳過壞塊,然後在Nand閃存指定位置寫入一個壞塊表(Bad block table),下圖是BBT的結構圖。

剖析NAND Flash的编程结构

轉自:致遠電子


手機雲網站

親,掃一掃添加微信為好友