NOR Flash 和 NAND Flash 比较


性能比较

    Flash 闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何 flash 器件的写入操作只能在空或已
擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND 器件执行擦除操作是十分简单的,
而 NOR 则要求在进行擦除前先要将目标块内所有的位都写为 0。
  由于擦除 NOR 器件时是以 64~128KB 的块进行的,执行一个写入/擦除操作的时间为 5s,与此相反,擦除 NAND 器件
是以 8~32KB 的块进行的,执行相同的操作最多只需要 4ms。
  执行擦除时块尺寸的不同进一步拉大了 NOR 和 NADN 之间的性能差距,统计表明,对于给定的一套写入操作(尤其是
更新小文件时更多的擦除操作必须在基于 NOR 的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项
因素。
    ● NOR 的读速度比 NAND 稍快一些。
    ● NAND 的写入速度比 NOR 快很多。
    ● NAND 的 4ms 擦除速度远比 NOR 的 5s 快。

    ● 大多数写入操作需要先进行擦除操作。

    ● 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.什么是nand,什么是nor?nand启动与nor启动的区别及联系。

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 口串行地存取数据


2.ARM的nor flash与nand flash启动过程区别

当从NAND启动时

cpu会自动从NAND flash中读取前4KB的数据放置在片内SRAM里(s3c2440是soc),同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000)。cpu是从0x00000000开始执行,也就是NAND flash里的前4KB内容。因为NAND FLASH连地址线都没有,不能直接把NAND映射到0x00000000,只好使用片内SRAM做一个载体。通过这个载体把nandflash中大代码复制到RAM(一般是SDRAM)中去执行

当从非NAND flash启动时

    nor flash被映射到0x00000000地址(就是nGCS0,这里就不需要片内SRAM来辅助了,所以片内SRAM的起始地址还是0x40000000). 然后cpu从0x00000000开始执行(也就是在Norfalsh中执行)。

NOR Flash 和 NAND Flash 比较_第1张图片







你可能感兴趣的:(NOR Flash 和 NAND Flash 比较)