性能比较
Flash 闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何 flash 器件的写入操作只能在空或已● 大多数写入操作需要先进行擦除操作。
● 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 器件上自始至终都必须进行虚拟映射。
软件的角度来考虑
1)在NOR FLASH里面可以直接执行代码,而在NAND FLASH里面不可以,在2410里面,如果选择NAND启动方式的话,NAND里的代码是被拷贝到RAM里面去执行的。
2)NAND FLASH每次取数据前要写入好像是0X55,0XAA才行,而NOR FLASH直接取到数据。
3)NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来。NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据。
4)Nor flash 带有通用的SRAM接口
5)Nand flash 器件使用复杂的I/O 口串行地存取数据
当从非NAND flash启动时
nor flash被映射到0x00000000地址(就是nGCS0,这里就不需要片内SRAM来辅助了,所以片内SRAM的起始地址还是0x40000000). 然后cpu从0x00000000开始执行(也就是在Norfalsh中执行)。