第一章 绪论 7-15 1.1 课题来源
7-8
1.2 研究背景与意义 8-14 1.2.1 Flash介绍 8 1.2.2 NAND Flash介绍
8-10
10-13
1.2.3 NAND Flash与NOR Flash比较 1.2.4 研究目的 13-14 1.3 论文章节安排
14-15
第二章 NAND Flash结构与原理 15-31 2.1 NAND Flash种类 15-17 2.1.1 SLC 15 2.1.2 MLC 15-17 2.2 NAND Flash结构 17-29 2.2.1 NAND Flash结构
17-22
2.2.2 NAND Flash的主要流程 22-29 2.2.2.1 读操作 22-23 2.2.2.2 页编程操作 23-25 2.2.2.3 块擦除操作 25-26 2.2.2.4 COPY-BACK编程 26-27 2.2.2.5 Two Plane相关操作 27-29 2.3 小结
29-31
第三章 NAND Flash动态坏块管理算法 31-61 3.1 NAND Flash坏块管理 31-33 3.1.1 坏块管理概念的提出
31-32
3.1.2 坏块管理的一般方法 32-33
33-56 33-35
35-55
55-56
3.2 NAND Flash动态坏块管理算法研究与实现 3.2.1 NAND Flash动态坏块管理设计思想
3.2.2 动态坏块管理算法步骤流程及具体函数实现
3.2.3 动态坏块管理算法与一般坏块管理算法比较总结 3.3 损耗平衡
56-58
3.3.1 损耗平衡原理和使用意义 3.3.2 损耗平衡算法 57-58 3.4 垃圾回收机制
58-61
56-57
NAND FLASH 内存详解与读写寻址方式
一、内存详解
NAND闪存阵列分为一系列128kB的区块(block),这些区块是 NAND器件中最小的可擦除实体。擦除一个区块就是把所有的位(bit)设置为\而所有字节(byte)设置为FFh)。有必要通过编程,将已擦除 的位从\变为\。最小的编程实体是字节(byte)。一些NOR闪存能同时执行读写操作(见下图1)。虽然NAND不能同时执行读写操作,它可以 采用称为\映射(shadowing)\的方法,在系统级实现这一点。这种方法在个人电脑上已经沿用多年,即将BIOS从速率较低的ROM加载到速率较高 的RAM上。
NAND的效率较高,是因为NAND串中没有金属触点。NAND闪存单元的大小比NOR要小(4F2:10F2)的原因,是NOR的每一个单元都需 要独立的金属触点。NAND与硬盘驱动器类似,基于扇区(页),适合于存储连续的数据,如图片、音频或个人电脑数据。虽然通过把数据映射到RAM上,能在 系统级实现随机存取,但是,这样做需要额外的RAM存储空间。此外,跟硬盘一样,NAND器件存在坏的扇区,需要纠错码(ECC)来维持数据的完整性。
存储单元面积越小,裸片的面积也就越小。在这种情况下,NAND就能够为当今的低成本消费市场提供存储容量更大的闪存产品。NAND闪存用于几乎所 有可擦除的存储卡。NAND的复用接口为所有最新的器件和密度都提供了一种相似的引脚输出。这种引脚输出使得设计工程师无须改变电路板的硬件设计,就能从 更小的密度移植到更大密度的设计上。 NAND与NOR闪存比较
NAND闪存的优点在于写(编程)和擦除操作的速率快,而NOR的优点是具有随机存取和对字节执行写(编程)操作的能力(见下图图2)。NOR的随 机存取能力支持直接代码执行(XiP),而这是嵌入式应用经常需要的一个功能。NAND的缺点是随机存取的速率慢,NOR的缺点是受到读和擦除速度慢的性 能制约。NAND较适合于存储文件。如今,越来越多的处理器具备直接NAND接口,并能直接从NAND(没有NOR)导入数据。
NAND的真正好处是编程速度快、擦除时间短。NAND支持速率超过5Mbps的持续写操作,其区块擦除时间短至2ms,而NOR是750ms。显然,NAND在某些方面具有绝对优势。然而,它不太适合于直接随机存取。
对于16位的器件,NOR闪存大约需要41个I/O引脚;相对而言,NAND器件仅需24个引脚。NAND器件能够复用指令、地址和数据总线,从而 节省了引脚数量。
复用接口的一项好处,就在于能够利用同样的硬件设计和电路板,支持较大的NAND器件。由于普通的TSOP-1封装已经沿用多年,该功能 让客户能够把较高密度的NAND器件移植到相同的电路板上。NAND器件的另外一个好处显然是其封装选项:NAND提供一种厚膜的2Gb裸片或能够支持最 多四颗堆叠裸片,容许在相同的TSOP-1封装中堆叠一个8Gb的器件。这就使得一种封装和接口能够在将来支持较高的密度。
图2 NOR闪存的随机存取时间为0.12ms,而NAND闪存的第一字节随机存取速度要慢得多
NOR闪存的随机存取时间为0.12ms,而NAND闪存的第一字节随机存取速度要慢得多
NAND基本操作
以2Gb NAND器件为例,它由2048个区块组成,每个区块有64个页(见下图):
每一个页均包含一个2048字节的数据区和64字节的空闲区,总共包含2,112字节。空闲区通常被用于ECC、耗损均衡(wear leveling)和其它软件开销功能,尽管它在物理上与其它页并没有区别。NAND器件具有8或16位接口。通过8或16位宽的双向数据总线,主数据被 连接到NAND存储器。在16位模式,指令和地址仅仅利用低8位,而高8位仅仅在数据传输周期使用。
擦除区块所需时间约为2ms。一旦数据被载入寄存器,对一个页的编程大约要300μs。读一个页面需要大约25μs,其中涉及到存储阵列访问页,并将页载入16,896位寄存器中。
除了I/O总线,NAND接口由6个主要控制信号构成:
1.芯片启动(Chip Enable, CE#):如果没有检测到CE信号,那么,NAND器件就保持待机模式,不对任何控制信号作出响应。
2.写使能(Write Enable, WE#): WE#负责将数据、地址或指令写入NAND之中。 3.读使能(Read Enable, RE#): RE#允许输出数据缓冲器。
4.指令锁存使能(Command Latch Enable, CLE): 当CLE为高时,在WE#信号的上升沿,指令被锁存到NAND指令寄存器中。
5.地址锁存使能(Address Latch Enable, ALE):当ALE为高时,在WE#信号的上升沿,地址被锁存到NAND地址寄存器中。