/ 中国存储网

NOR/NAND Flash闪存原理及比较

NOR Flash和NAND Flash

NOR Flash与NAND Flash是目前市场上主要的两种非易失闪存技术(Non-Volatile Flash Memory)。

NOR和NAND的名称由来

细心的朋友会问,为什么叫NOR和NAND?NOR和NAND其实取用了电路逻辑运算中的或非(Not OR)和与非(Not AND)。

NOR的读速度比NAND稍快一些

NOR的写速度比NAND慢很多

NOR可以直接使用,而NAND需要I/O接口

NOR Flash寿命比NAND短很多

NOR Flash寿命比NAND短很多

关于闪存Flash

闪存(Flash)技术是日本人富士雄Fujio Masuoka在1980年左右为东芝工作时发明,英特尔公司于1988年推出第一款商用型NOR闪存芯片。Flash也被认为是一种EEPROM(电可擦除可编程只读存储器),区别在于传统的EEPROM以字节为单位进行擦写,而Flash则实现了以块为单位进行擦写。

NOR Flash与NAND Flash是目前市场上主要的两种非易失闪存技术(Non-Volatile Flash Memory),NOR Flash数据线和地址线分开,可以实现ram一样的随机寻址功能,可以读取任何一个字节。但是擦除仍要按块来擦。 NAND Flash同样是按块擦除,但是数据线和地址线复用,不能利用地址线随机寻址。读取只能按页来读取。(NAND Flash按块来擦除,按页来读,NOR Flash没有页) 由于NAND Flash引脚上复用,因此读取速度比NOR Flash慢一点,但是擦除和写入速度比NOR Flash快很多。NAND Flash内部电路更简单,因此数据密度大,体积小,成本也低。因此大容量的Flash都是NAND型的。小容量的2~12M的Flash多是NOR型的。 使用寿命上,NAND Flash的擦除次数是NOR的数倍。而且NAND Flash可以标记坏块,从而使软件跳过坏块。NOR Flash 一旦损坏便无法再用。 因为NOR Flash可以进行字节寻址,所以程序可以在NOR Flash中运行。嵌入式系统多用一个小容量的NOR Flash存储引导代码,用一个大容量的NAND Flash存放文件系统和内核。 

1、性能比较:

任何Flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为 0。 这就造成了NOR的写速度比较慢。 

比如,NOR Flash在64KB块进行写/擦除操作时,大概需要700ms的时间,而Nand Flash对32KB块进行操作,仅仅需要4ms。 

但是NOR的读速度比NAND稍快一些,NOR FLASH的读写是以字或字节为单位进行直接读取的,而NAND则要先发送地址信息进行寻址,然后才能开始读写数据。 

2、接口差别:

NOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。 NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。 NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。 

3、容量和成本:

NAND Flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。 NOR Flash占据了容量为1~16MB闪存市场的大部分,而NAND Flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、 Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。 

4、可靠性和耐用性:

采用Flash介质时一个需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。 

A) 寿命(耐用性)

在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。 

B) 位交换

所有Flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特(bit)位会发生反转或被报告反转了。 一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就可能解决了。 当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。 这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。 

C) 坏块处理

NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成功率太低,代价太高,根本不划算。 NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。 

5、易用性:

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

6、软件支持:

当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。 在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。 使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River system、Microsoft、QNX Software system、Symbian和Intel等厂商所采用。 驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。 NOR Flash的主要供应商是INTEL ,MICRO等厂商,曾经是Flash的主流产品,但现在被NAND Flash挤的比较难受。它的优点是可以直接从Flash中运行程序,但是工艺复杂,价格比较贵。 NAND Flash的主要供应商是SAMSUNG和东芝,在U盘、各种存储卡、MP3播放器里面的都是这种Flash,由于工艺上的不同,它比NOR Flash拥有更大存储容量,而且便宜。但也有缺点,就是无法寻址直接运行程序,只能存储数据。另外NAND Flash 非常容易出现坏区,所以需要有校验的算法。 在掌上电脑里要使用NAND Flash 存储数据和程序,但是必须有NOR Flash来启动。除了SAMSUNG处理器,其他用在掌上电脑的主流处理器还不支持直接由NAND Flash 启动程序。因此,必须先用一片小的NOR Flash 启动机器,在把OS等软件从NAND Flash 载入SDRAM中运行才行,相对复杂一些。

闪存发明者富士雄Fujio Masuoka

日本人富士雄Fujio Masuoka在1980年左右为东芝工作时发明了闪存,之所以叫Flash,是因为他的同事认为像是照相机拍照时的闪光。但当时这项技术在东芝内部未受重视,最终闪存技术得到Intel公司重视并发展起来。

图解FLASH

  • NOR和NAND的单元结构对比图

  • 闪存的读、写、擦除操作示意图

  • NOR和NAND的单元结构对比

  • NOR和NAND的特点对比图

  • NOR和NAND的性能测试对比图

  • NOR和NAND的综合比较图