微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > nand flash读写 (一)

nand flash读写 (一)

时间:11-27 来源:互联网 点击:

文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。

6) 坏块处理

NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。现在的FLSAH一般都提供冗余块来代替坏块如发现某个块的数据发生错误(ECC校验),则将该块标注成坏块,并以冗余块代替。这导致了在NAND Flash 中,一般都需要对坏块进行编号管理,让每一个块都有自己的逻辑地址。

7) 易于使用

可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。

8) 软件支持

当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。

在掌上电脑里要使用NAND FLASH 存储数据和程序,但是必须有NOR FLASH来启动。除了SAMSUNG处理器,其他用在掌上电脑的主流处理器还不支持直接由NAND FLASH 启动程序。因此,必须先用一片小的NOR FLASH 启动机器,在把OS等软件从NAND FLASH 载入SDRAM中运行才行。

9) 主要供应商

NOR FLASH的主要供应商是INTEL ,MICRO等厂商,曾经是FLASH的主流产品,但现在被NANDFLASH挤的比较难受。它的优点是可以直接从FLASH中运行程序,但是工艺复杂,价格比较贵。

NAND FLASH的主要供应商是SAMSUNG和东芝,在U盘、各种存储卡、MP3播放器里面的都是这种FLASH,由于工艺上的不同,它比NORFLASH拥有更大存储容量,而且便宜。但也有缺点,就是无法寻址直接运行程序,只能存储数据。另外NAND FLASH非常容易出现坏区,所以需要有校验的算法。

3.NAND Flash的硬件设计

NAND FLASH是采用与非门结构技术的非易失存储器,有8位和16位两种组织形式,下面以8位的NAND FLASH进行讨论。

1) 接口信号

与NOR Flash相比较,其数据线宽度只有8bit,没有地址总线,I/O接口可用于控制命令和地址的输入,也可用于数据的输入和输出,多了CLE和ALE来区分总线上的数据类别。

信号

类型

描述

CLE

O

命令锁存使能

ALE

O

地址锁存使能

nFCE

O

NAND Flash片选

NFRE

O

NAND Flash读使能

nFWE

O

NAND Flash写使能

NCON

I

NAND Flash配置

R/nB

I

NAND Flash Ready/Busy

2) 地址结构

NAND FLASH主要以页(page)为单位进行读写,以块(block)为单位进行擦除。FLASH页的大小和块的大小因不同类型块结构而不同,块结构有两种:小块(图7)和大块(图8),小块NAND FLASH包含32个页,每页512+16字节;大块NAND FLASH包含64页,每页2048+64字节。

点击看大图

图7 小块类型NAND FLASH

点击看大图

图8 大块类型NAND FLASH

其中,512B(或1024B)用于存放数据,16B(64B)用于存放其他信息(包括:块好坏的标记、块的逻辑地址、页内数据的ECC校验和等)。NAND设备的随机读取得效率很低,一般以页为单位进行读操作。系统在每次读一页后会计算其校验和,并和存储在页内的冗余的16B内的校验和做比较,以此来判断读出的数据是否正确。

大块和小块NAND FLASH都有与页大小相同的页寄存器,用于数据缓存。当读数据时,先从NAND FLASH内存单元把数据读到页寄存器,外部通过访问NAND FLASH I/O端口获得页寄存器中数据(地址自动累加);当写数据时,外部通过NAND FLASH I/O端口输入的数据首先缓存在页寄存器,写命令发出后才写入到内存单元中。

3) 接口电路设计(以下以2410和K9F1208U为例)

2410处理器拥有专门针对 NAND设备的接口,可以很方便地和NAND设备对接,如图9所示。虽然NAND设备的接口比较简单,容易接到系统总线上,但2410处理器针对NAND设备还集成了硬件ECC校验,这将大大提高NAND设备的读写效率。当没有处理器的ECC支持时,就需

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top