NandFlash和NorFlash的异同
Nand-Flash于NOR-Flash的最大差别在于它是以页面(Page)的形式进行读写访问的;而NOR-Flash是线性空间访问的。通常的
Nand-Flash的结构如下:512Bytes=1Page;32Pages=1Block;N个Blocks构成单颗IC。看到这样的结构,如果您
熟悉FAT16文件系统,您会发现怎么
Nand-Flash的结构同FAT16分区的硬盘如此相似!(在FAT16分区的硬盘中:512Bytes=1Sector;32Sectors=
1Cluster;N个Clusters构成此FAT16分区),这也就是为何Nand-Flash会被列为SSFD(Solid-State
Flash Disk)的原因。
CF卡有TrueIDE、Memory Map等工作模式。当CF卡定义为TrueIDE模式时,CF卡就等同与IDE硬盘,对CF卡的驱动与IDE硬盘的方式完全一样。唯一的不同在于CF卡的50PIN引脚中有一些需要进行特殊处理罢了。
from: http://www.dz863.com/Embedded-Systems-Design/Embedded-Design/NandFlash-NorFlash.htm
一. NAND和NOR的比较
NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR
flash技术,彻底改变了原先由EPROM 和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND
flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR
和NAND闪存。相"flash存储器"经常可以与相"NOR存储器"互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因
为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而
NAND则是高数据存储密度的理想解决方案。NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在
flash闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大
影响了它的性能。NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特
殊的系统接口。
二.性能比较
flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash
器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则
要求在进行擦除前先要将目标块内所有的位都写为0。由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相
反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差
距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权
衡以下的各项因素。
☆ NOR的读速度比NAND稍快一些;
☆ NAND的写入速度比NOR快很多;
☆ 大多数写入操作需要先进行擦除操作;
☆ NAND的擦除单元更小,相应的擦除电路更少。
三.接口差别
NOR
flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NAND器件使用复杂的I/O口来串行地存取数据,各个产品
或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基
于NAND的存储器就可以取代硬盘或其他块设备。
四.容量和成本
NAND
flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。NOR
flash占据了容量为1~16MB闪存市场的大部分,而NAND
flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、
Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。
五.可靠性和耐用性
采用flahs介质时一个
需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较
NOR和NAND的可靠性。寿命(耐用性)
在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸
要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。位交换所有flash器件都受位交换现象的困扰。在某些情况下(很少见,
NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导
致系统停机。如果只是报告有问题,多读几次就可能解决了。当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问
题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。这个问题对于用NAND存储多媒体信息时倒不是致命
的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。坏块处理NAND器件中的坏块是随机
分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可
用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。易于使用可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,
并可以在上面直接运行代码。由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。在使用NAND器件时,必须先写入驱动程
序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映
射。
六.软件支持
当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括
性能优化。在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),
NAND和NOR器件在进行写入和擦除操作时都需要MTD。使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这
其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software
System、Symbian和Intel等厂商所采用。驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗
平衡。
本文在介绍NandFlash和NorFlash的异同的同时,也回答了什么是NandFlash,什么是NorFlash
NAND是高密度数据存储的理想方案,而NOR则最适合代码存储――这通常是低密度的。

表1 NOR闪存和NAND闪存的比较
从SLC到MLC(Multi-Level Cell)
为了适应对低成本、高性能的嵌入式存储不断增长的需求,NAND密度的增长已经超过摩尔定律,每12个月翻一番。2003年MLC的出现使NAND
闪存技术的发展产生了飞跃。由于SLC每个单元只能存储1b,而MLC中每个单元可存储2b,这使得在给定的闪存裸片上,MLC
NAND的密度提高了近80%。因此,MLC NAND有优越的成本结构,但是,它也有固有的缺陷:性能和可靠性都不如SLC NAND。
虽然MLC NAND在成本结构上有所突破,但该技术固有的局限性使它很难集成到现实的应用当中。MLC NAND需要更先进的闪存管理算法和控制来正确处理该技术的以下几个缺陷。
- 写入速度慢
尽管其读取速度与SLC NAND相当,MLC NAND的写入速度较慢。
- 可靠性低
SLC NAND的出错率为每页(512字节)1b,而目前MLC NAND的出错率是其4倍,未来产品的出错率还有可能更高。另外,MLC NAND产生坏块(bad block)的平均水平也较高,将近5%,因此它需要更有效的管理机制。
- 闪存管理不兼容
MLC NAND和SLC NAND的基本机制不同。例如,MLC NAND需要顺序写入,而SLC NAND的写入是无序的。
嵌入式闪存
NAND闪存技术和工艺的进展比芯片组更快。以智能手机的芯片组为例,它从2003年底开始支持small-block SLC
NAND闪存。同年的早些时候large-block SLC和MLC
NAND就已经出现了。到2005年底为止,终于有一些支持large-block NAND闪存的芯片组出现了,但仍没有能够支持MLC
NAND闪存的芯片组。NAND闪存最初是在2001年随EFD(嵌入式闪存驱动)一起进入手机市场的。EFD在同一个芯片上集成了闪存介质和闪存控制,
还带有闪存管理软件。
EFD对NAND闪存的存取是通过像NOR一样的接口,使得它很容易集成到芯片组。EFD还提供了芯片内执行启动区(XIP boot block),使得将NOR闪存完全从主机系统转移成为可能,这显著缩小了材料的尺寸。
由于工艺上不断的压缩,并转向MLC NAND闪存技术,NAND闪存技术的质量降低了,这使EFD变得更加重要。它使得手机设计师不再需要克服利用NAND闪存的障碍了。
很多NAND闪存制造商目前都提供EFD方案,包括Sandisk的iNAND、Samsung的OneNAND以及M-Systems的DiskOnChip,Toshiba也销售DiskOnChip。
迎接挑战
除了不断适应可靠性下降这一技术挑战,其他挑战也相继出现了。首先,是对NAND闪存可靠的分配,这个需求不但很高而且在不断增长。第二个挑战就是最新闪存工艺的实现,这可以从每年NAND闪存价格的大幅下降中受益。
EFD的标准化
为实现开发成本最小化,OEM设计出支持多个方案的平台。由于一个平台的使用寿命大约两年,设计出能够支持最新NAND技术的平台几乎是不可能的。对在主机上运行的闪存管理软件的更新和考察是个费时费力的工作。很多时候,设计师不得不推迟使用最新的NAND技术。
新一代的EFD采用了新的手段,例如M-Systems的DOC H3,它将闪存管理软件作为EFD控制的固件,如图1所示。这一改进的构造使得在已有的平台上使用最先进的NAND技术时能实现即插即用的集成。

图1 闪存管理软件成为EFD控制的固件
从现在到未来
由于手机市场不断提供更多的服务,越来越复杂,对存储容量指数级的增长证明了从基于NOR闪存的手机向基于NAND闪存手机的转变。第二代EFD将使手机制造商支持新的能实现即插即用的NAND技术,帮助他们更快的将新型的、高密度的手机推向市场。