Nand Flash存储器是flash存储器的一种,为固态大容量内存的完成供给了廉价有用的解决计划。NAND存储器具有容量较大,改写速度快等长处,适用于很多数据的存储,如嵌入式产品中包含数码相机、记忆卡、体积细巧的U盘等。
1989年,东芝公司宣布了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存储空间中预留出一些块作为保存块,当遇到坏块时,在预留的保存块中选一个块来替换坏块,将本来写到坏块的数据写到替换块中;
4) BBT(Bad block table)
此办法中心是越过坏块,可是越往后需求在NAND闪存指定方位写入一个坏块表(Bad block table),下图是BBT的结构图。
NAND运用需求留意的点大致收拾如上,实际运用中会有灵敏的运用计划,需求熟知NAND特性、编程器原理的工程师才干规划出适宜的计划加以运用。P800Flash极速编程器交融了ZLG致远电子三代Flash编程器的特色,全面支撑eMMC、NOR、NAND Flash的烧录,可供给完善的编程解决计划。