NAND 对 NOR flash – 对比和策略

来源:百度文库 编辑:神马文学网 时间:2024/05/02 05:41:01
NAND 对 NOR flash – 对比和策略
前言:这是一遍比较NOR和NAND闪存间的相对优点的高级别的白皮书,并论述了抵消每种类型弱点的软件策略。另外,还包括了避免数据丢失,提高性能和增加介质寿命的主题。这篇文章是由Datalight公司(一个嵌入式文件系统,闪存驱动和” ROM-DOS”嵌入OS的制造商)提供的。Enjoy . . . !
NAND和NOR闪存间的抉择:对比和策略
消费电子和嵌入式软件设备在非挥发性存储方面正大量的使用着闪存。一个重要的抉择就是使用那种类型的闪存设备:NAND还是NOR?
在嵌入式计算设备中(例如,PDA和蜂窝电话)NOR闪存一般都用来存储相对少量的可执行代码。正因为它的可靠性、读取操作快和随机访问能力,使得NOR非常适合用在代码存储方面,因为代码要在芯片里直接执行(XIP),它被主要被考虑用在存储固件、启动代码、操作系统和其他的很少被修改的数据上。
NAND闪存在存储设备(例如USB闪存、数码相机和MP3播放器)上的大量的数据上正逐渐成为首选的格式。高密度、低价格、较快速的写以及擦除次数、较长的复写寿命使得NAND特别适合那些连续的大量数据需要被快速载入到内存中以及重复的被新文件替换的消费媒体应用。
直到今天,对于正在被开发的复杂嵌入设备,在NAND和NOR之间做出选择并不是一件容易的事。而大量的媒体文件加大了对相对廉价的NAND芯片的需求,强大的新操作系统和运行在快速处理器上的复杂应用程序则需要那种能支持快速执行代码的NOR芯片。一个重要的例子就是smart电话和PDA,它们的应用程序性能需求都急切需要存储。但在一些场合下,同一个设备中的最佳的设计可能需要着两种flash芯片。
无论是在设备中使用那种flash芯片,都肯定要消除那些消极性能特点。NOR能快速的读取当前数据但擦除和写新数据较慢,NAND则擦除和写较快但通过串行接口读取非连续数据比较慢。而且,NAND也容易产生单位(single-bit)错误,所以为了探测和修正这些错误则要求严格的算法。
设计优良的软件策略能非常有效的增加Flash硬件的性能和可靠性。闪存管理软件的目的主要包括以下的几点:
避免数据丢失 – 大概管理闪存的最重要的目标就是保证数据不会因为一个中断操作和内存块的错误而导致丢失。有一些方法能使闪存管理软件完成这些目标。例如,在旧数据被删除之前新数据被写入和验证这方面复写操作能被管理,以便不会因为电源断电或者其他的中断导致旧数据和新数据的丢失;另外,坏块管理对于防止数据写到发生失败的内存块上,是另一种重要的安全措施。软件能检查来自工厂的坏块,典型的就像NAND,并且从一开始就避免去写这些块。当块多次的变坏时,它们就能被标识和管理以便保证它们不再被使用;最后,在介质寿命最后的那段时间,好的内存管理软件能实现一个漂亮的策略,例如用只读状态代替整个flash单元,于是当超过预定义数量的错误大量发生时就能避免数据丢失。
提高效率性能 – 介质管理软件有两种方法来提高性能,它们是后台压缩以及多线程。压缩能通过标识那些旧数据被擦除的块来回收空间,可以拷贝任何有效的数据到新位置,然后擦除这些块来使它们能够重用。例如压缩增加大量可用的介质空间并且提高写的性能。压缩也能帮助降低非连续数据的碎片来提高读操作时的性能。压缩最好在系统idle时期并在后台执行,然而这能影响紧急的操作和降解系统性能。那么,多线程系统变得也很重要,通过允许高优先级去中断低优先级的维护操作,一个多线程系统能比单线程方案减少数量级以上的读操作的等待时间。
最大化介质寿命 – 当内存的一些块包含固定的内容的时候,例如二进制代码,那么剩余的块的写和擦除操作的要求就可能增多,这可能导致一些块很早的坏掉。平均读写(Wear-leveling)算法能防止内存块的过度使用,并阻止内存区域中的一小部分“僵死”块被锁定在重复写和压缩模式中。平均读写软件能监视块的使用量,标识包含静态数据的高使用度和低使用度的区域,然后交换这些静态数据到高使用度的区域里。这在每次写操作时通过选择最优位置,能平衡写操作贯穿于全部可用的块。
NAND和NOR闪存间的抉择完全依靠于设备的技术和价格需求。无论哪种类型还是两种都使用,用内存管理软件来防止数据丢失,同时提高性能和最大化的延长闪存的寿命,还是应该谨慎一些。