NAND Flash存储器相关的基本概念

Flash存储器是一种非易失性存储设备,其类型包括:

NAND flash和NOR flash的比较:NOR Flash的特点是片内执行,即它的读取操作和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码。但是NORFlash比NAND Flash贵,一般适合用于存放系统的启动代码。NAND Flash不能片内执行,但它具有容量大,改写速度快的优点。且NAND Flash比较廉价,适合用于存放大量数据。但是NAND Flash比较容易出现位反转问题,在使用中一般需要进行ECC数据校验。

一、NAND Flash 组织结构

以下是K9K8G08U0A NAND Flash的组织图:

块:

块是NAND Flash擦除操作的最小单位。如上图所示,该NAND芯片中总共有8192个块,每个块中又包含64页。每个块大小为(128K+4K)Byte,所以总的芯片容量为8192*(128K+4K)Byte=8448Mbits。

页:

页是读写操作的最小单位。如上图所示,该芯片中每个块包含64页,总共有64*8192页。每个页大小为(2K+64)Bytes,其中2K是真正用于存放数据的区域,而64Bytes是OOB区域。

OOB区域:

00B区域是页中的空闲区,其作用是:1、存放坏块标记,2、存放ECC校验值,3、存储和文件系统相关的数据。一般的芯片中每512Bytes数据区会分配16Bytes的OOB区域,所以这里2K的数据区就分配了64Bytes的OOB区域。

常见的NAND Flash内部只有一个chip,每个chip只有一个plane。而有些复杂的容量更大的NAND Flash内部有多个chip,每个chip有多个plane。

二、NAND Flash引脚说明

2.CLE:Command Latch Enable,命令锁存使能,在输入命令之前,要先在模式寄存器中,设置CLE使能

3.ALE:Address Latch Enable,地址锁存使能,在输入地址之前,要先在模式寄存器中,设置ALE使能

4.CE#:Chip Enable,芯片使能,在操作Nand Flash之前,要先选中此芯片,才能操作

5.RE#:Read Enable,读使能,在读取数据之前,要先使CE#有效。

6.WE#:Write Enable,写使能,在写取数据之前,要先使WE#有效。

7.WP#:Write Protect,写保护

8.R/B#:Ready/BusyOutput,就绪/忙,主要用于在发送完编程/擦除命令后,检测这些操作是否完成,忙,表示编程/擦除操作仍在进行中,就绪表示操作完成.

9.Vcc:Power,电源

10.Vss:Ground,接地

11.N.C:Non-Connection,未定义,未连接。

三、NAND Flash命令

NAND Flash的操作都是通过发送命令来实现的,以下是某NAND Flash芯片的命令集。其中有的操作需要两个命令,如页编程操作(就是写操作),其中第一个命令实际上只是将数据写到NAND Flash的页缓冲区,需要发送第二个命令后,NAND Flash才会将数据真正的写入某个页中。

四、地址周期

NAND Flash的地址周期需要根据具体的NAND芯片来决定,现在大的NAND Flash一般有5个地址周期,以前小的可能只有4个地址周期。物理地址=块大小*块号+页大小*页号+页内地址。如下为某NAND芯片的地址周期,其中前两个地址周期称为列地址,表示页内地址。后3个地址周期称为行地址,A12~A17为页号,A18~A30为块号(具体的范围需要根据NAND 芯片决定)。

五、坏块

坏块种类:

第一种是出厂时就有的坏块,称为factory bad block,在出厂前就会对其做标记。

第二种是在使用过程中产生的坏块,称为worn-out bad block。在使用过程中进行块擦除时出错了,说明这个块坏了,这个时候就需要将这个块标记为坏块。

坏块标记:

NAND Flash坏块标记的位置三种情况:每个块的第1页、第1页和第2页、最后1页。对于小页(512Bytes大小),坏块标记是在OOB区域的第6个字节。对于大页(如2K大小),坏块标记是在OOB区域的第1个字节。如果坏块标记字节是0xff,则说明这个块是好块,否则就是坏块。

坏块管理:

没有什么可凭仗,只有他的好身体,没有地方可去,只想到处流浪。

NAND Flash存储器相关的基本概念

相关文章:

你感兴趣的文章:

标签云: