当前位置:文档之家› NAND Flash中文版资料

NAND Flash中文版资料

NAND Flash 存储器和使用ELNEC编程器烧录NAND Flash技术应用文档Summer 翻译整理深圳市浦洛电子科技有限公司August 2006目录一. 简介 ----------------------------------------------------------------------------------- 1 二. NAND Flash与NOR Flash的区别 -------------------------------------------- 1 三. NAND Flash存储器结构描叙 --------------------------------------------------- 4 四. 备用单元结构描叙 ---------------------------------------------------------------- 6 五. Skip Block method(跳过坏块方式) ------------------------------------------ 8 六. Reserved Block Area method(保留块区域方式)----------------------------- 9 七. Error Checking and Correction(错误检测和纠正)-------------------------- 10 八. 文件系统 ------------------------------------------------------------------------------10 九. 使用ELNEC系列编程器烧录NAND Flash -------------------------------- 10 十. Invalid Block Management drop-down menu -------------------------------- 12 十一. User Area Settings3 -------------------------------------------------------- 13 十二. Solid Area Settings --------------------------------------------------------- 15 十三. Quick Program Check-box ---------------------------------------------- 16 十四. Reserved Block Area Options --------------------------------------------17 十五. Spare Area Usage drop-down menu ------------------------------------18简介NAND Flash 结构最早是在1989年由日本东芝公司引入。

如今, NAND Flash和NOR Flash已经占据了Flash市场的支配地位。

NAND Flash是一种高密度, 低功耗, 低成本, 而且可升级的器件, 它是多媒体产品导入市场的理想选择。

先进的在系统内设计也使得为降低成本, 在传统的设计应用上采用NAND Flash来替代NOR Flash成为可能。

NAND Flash与NOR Flash的区别下表是NAND 与 NOR的主要对比表。

它指出了为什么NAND存储器是高容量数据存储的完美解决方案, 尽管NOR存储器也可被用来做数据存储和执行。

从物理结构上来说, 因为它不一定要下拉整个bit-line, 所以NAND Flash 结构可以使用更小的晶体管。

一条NAND bit line就是一些连续的晶体管, 每一个晶体管只能流过少于总量的电流。

下图介绍了NAND 和 NOR 结构内晶体管是怎样被连接在一起的, 以及他们的单元大小有什么不同。

得益于NAND Flash这种更有效率的结构, 使得它每一单元的大小几乎是NOR单元的一半。

这也使得NAND Flash结构在给定的硬模内提供了更高的密度, 更高的容量, 同样也使得它的生产制程更为简单。

高容量存储应用中, NAND结构相对于NOR结构来说更为节省成本。

正如上面说介绍的, NAND Flash存储器是大容量数据存储的完美解决方案。

(典型应用: MP3播放器, 数码相机)上面所描叙的工艺是众所周知的单极单元(SLC)工艺, 通过电压的“H”或“L”,一个存储器单元保存1bit的信息。

有时候多极单元(SLC)工艺也会被用到。

在这样的应用中, 每一个存储单元能保存2bit或更多bit的信息,通过存储更多位。

相对于基于SLC结构的存储器, MLC存储器传输的速度大大降低了,同时它也产生了更高的功耗。

但是,其实这两种工艺都采用相同的I/O接口和指令。

在NOR Flash中, 所有的存储区域都保证是完好的, 同时也拥有相同的耐久性。

在硬模中专门制成了一个相当容量的扩展存储单元 — 他们被用来修补存储阵列中那些坏的部分,这也是为了保证生产出来的产品全部拥有完好的存储区域。

为了增加产量和降低生产成本, NAND Flash 器件中存在一些随机bad block 。

为了防止数据存储到这些坏的单元中, bad block 在IC烧录前必须先识别。

在一些出版物中, 有人称bad block 为“bad block”, 也有人称bad block 为“invalid block”。

其实他们拥有相同的含义, 指相同的东西。

从实际的应用上来说, NOR Flash与NAND Flash主要的区别在于接口。

NOR Flash 拥有完整的存取-映射访问接口, 它拥有专门的地址线和数据线, 类似与EPROM。

然而在NAND Flash中没有专门的地址线。

它发送指令,地址和数据都通过8/16位宽的总线(I/O接口)到内部的寄存器。

NAND Flash存储器结构描叙NAND Flash存储器由block (块) 构成, block的基本单元是page (页)。

通常来说, 每一个block由16, 32或64个page组成。

大多数的NAND Flash器件每一个page (页)内包含512个字节(或称为256个字)的Data area(数据存储区域)。

每一个page内包含有一个扩展的16字节的 Spare area(备用区域)。

所以每一个page的大小为512+16=528字节。

我们称这样的page为small page。

那些大容量的(1Gbig或更多)的NAND Flash, 它每page的容量就更大, 每page内Dataarea(数据存储区域)的大小为2048字节, Spare area(备用区域)大小为64字节。

NAND Flash的读取和烧录以页为基础, 而NOR却是以字节或字为基础 — 数据I/O寄存器匹配页的大小。

NAND Flash的擦除操作是基于block (块)的。

在NAND Flash上有三种基本的操作:读取一个页, 烧录一个页和擦除一个块。

在一个页的读取操作中, 该页内528字节的数据首先被传输到数据寄存器中, 然后再输出。

在一个页的烧录中, 该页内528字节的数据首先被写进数据寄存器, 然后再存储到存储阵列中。

在一个块的擦除操作中, 一组连续的页在单独操作下被擦除。

通常来说, 器件还提供有更多的扩张功能, 它们是:z厂商ID读取z器件操作状态读取z复位命令z不考虑CEz高速缓冲寄存器操作z OTP区域z自动读取第0页z块加锁/解锁备用单元结构描叙NAND Flash厂商在生产制程中使用Spare area(备用区域)来标识bad block, 所以这些器件被运送到客户手中时已经被标识。

从功能上来说, Spare area(备用区域)内所有的字节都可以像Data area(数据存储区域)内的字节一样被用户用来存储数据。

关于备用字节的使用, 我们推荐使用三星的标准。

Bad block (Invalid block)的管理自从NAND结构被设计用来作为低成本的多媒体存储器, 它的标准规范中是允许存在bad block 的。

只要bad block 的容量小于总容量的2% 那就是允许的。

一个block中如果有坏的存储区域, 那它就会被标识成bad block 。

bad block 列表可以存储在一个芯片中的一个好的block上, 也可以存储在同一系统的另外一颗芯片上。

bad block 列表是被要求的, 这是由于NAND Flash只能执行有限的读和擦除次数。

由于所有的Flash存储器最终都会被磨损而且不能再使用, 这个列表需要被用来跟踪记录那些在使用中发现的bad block 。

允许bad block 的存在有利于提高芯片的产量,同时也降低了成本。

因为每个block是独立的, 而且是被bit lines隔离的, 所以bad block 的存在并不会影响那些其他block的正常工作。

Bad block 的一般分为两种: 生产过程中产生的; 使用过程中产生的。

当block被发现是bad block , 一般是在该块的前两个page (页)的第517字节处用非FF来标识。

一个通用的bad block map building 算法流程如下所示:使用过程中产生的bad block 是没有被工厂标识的, 这些块是在客户处产生的。

因为NAND Flash有一个使用寿命而且它最终会磨损。

每一个块是独立的单元, 每一个块都能被擦除和烧录并且不受其它块寿命的影响。

一个好的块一般能被烧录100000到1000000次。

如果一个块在擦除一个块或烧录一个页时操作失败, 那么此块将被标识成bad block 并且以后不再访问。

如果你对bad block 进行擦除, 那么非“FFh”字节也会被擦除。

如果发生了这样的事情, 在没有对块进行测试的特定条件下, 对那些bad block 进行重新标识是非常困难。

所以如果存储bad block 列表的bad block table丢失, 重新发现并标识那些bad block 是相当困难的。

因此, 在擦除bad block 之前推荐先收集正确的bad block 信息, 在器件擦除后, 那些信息又会被重新标识上去。

在嵌入式系统中对bad block 进行管理必须要求有特殊的软件层。

因此对NAND Flash进行烧录, 必须采用正确的方式进行bad block 的管理, 该方法取决于嵌入式系统中程序的管理方式。

对bad block 的管理有很多种方式, 没有那一种方式被定义成标准方式。

相关主题