NOR FLASH与NAND FLASH的详细区别

        Flash 是常见的用于存储数据的半导体器件,它具有容量大、可重复擦写、按“扇区/块”擦除、掉电后数据可继续保存的特性。常见的Flash 主要有NOR Flash 和Nand Flash 两种类型,它们的特性如表 37.1.2.1.1 所示。NOR 和 NAND 是两种数字门电路,可以简单地认为 Flash 内部存储单元使用哪种门作存储单元就是哪类型的 Flash。U 盘,SSD,eMMC 等为 NAND 型,而NOR Flash 则根据设计需要灵活应用于各类 PCB 上,如BIOS,手机等。 

        NOR 与NAND 在数据写入前都需要有擦除操作,但实际上NOR Flash 的一个bit 可以从1变成0,而要从0 变 1 就要擦除后再写入NAND Flash 这两种情况都需要擦除。擦除操作的最小单位为“扇区/块”,这意味着有时候即使只写一字节的数据,则这个“扇区/块”上之前的数据都可能会被擦除。 
        NOR 的地址线和数据线分开,它可以按“字节”读写数据,符合 CPU 的指令译码执行要求,所以假如NOR 上存储了代码指令,CPU 给NOR 一个地址,NOR 就能向CPU 返回一个数据让CPU 执行,中间不需要额外的处理操作,这体现于表 37.1.2.1.1 中的支持XIP 特性(eXecute In Place)。因此可以用 NOR Flash 直接作为嵌入式MCU 的程序存储空间。 
        NAND 的数据和地址线共用,只能按“块”来读写数据,假如NAND 上存储了代码指令, CPU 给NAND 地址后,它无法直接返回该地址的数据,所以不符合指令译码要求。 
        若代码存储在 NAND 上,可以把它先加载到 RAM 存储器上,再由 CPU 执行。所以在功能上可以认为 NOR 是一种断电后数据不丢失的 RAM,但它的擦除单位与 RAM 有区别,且读写速度比RAM 要慢得多。 
        Flash 也有对应的缺点,我们在使用过程中需要尽量去规避这些问题:一是Flash 的使用寿命,另一个是可能的位反转。 
        使用寿命体现在:读写上是 FLASH 的擦除次数都是有限的(NOR Flash 普遍是 10 万次左右),当它的使用接近寿命的时候,可能会出现写操作失败。由于 NAND 通常是整块擦写,块内有一位失效整个块就会失效,这被称为坏块。使用 NAND Flash 最好通过算法扫描介质找出坏块并标记为不可用,因为坏块上的数据是不准确的。 
        位反转是数据位写入时为 1,但经过一定时间的环境变化后可能实际变为 0 的情况,反之亦然。位反转的原因很多,可能是器件特性也可能与环境、干扰有关,由于位反转的问题可能存在,所以FLASH 存储器需要“探测/错误更正(EDC/ECC)”算法来确保数据的正确性。 
        FLASH 芯片有很多种芯片型号,在我们的 norflash.h 头文件中有定义芯片 ID 的宏定义,对应的就是不同型号的 NOR FLASH 芯片,比如有:W25Q128、BY25Q128、NM25Q128,它们是来自不同的厂商的同种规格的NOR FLASH 芯片,内存空间都是 128M 字,即 16M 字节。

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成为不掉头发的工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值