NOR flash与NAND flash的区别

FLASH存储器又称为闪存,它也是可重复擦写的储器,部分书籍会把FLASH存储器称为FLASH ROM,但它的容量一般比EEPROM大得多,且在擦除时,一般以多个字节为单位。如有的FLASH存储器以4096 个字节为扇区,最小的擦除单位为一个扇区。根据存储单元电路的不同,FLASH存储器又分为NOR FLASH 和NAND FLASH,见下表。

NOR FLASH 与NAND FLASH 特性对比
特性 NOR FLASH NAND FLASH
同容量存储器成本 较贵 较便宜
集成度 较低 较高
介质类型 随机存储 连续存储
地址线和数据线 独立分开 共用
擦除单元 以“扇区/块”擦除 以“扇区/块”擦除
读写单元 可以基于字节读写 必须以“块”为单位读写
读取速度 较高 较低
写入速度 较低 较高
坏块 较少 较多
是否支持XIP 支持 不支持

NOR与NAND的共性是在数据写入前都需要有擦除操作,而擦除操作一般是以“扇区/块”为单位的。而NOR与NAND特性的差别,主要是由于其内部“地址/数据线”是否分开导致的。

由于NOR的地址线和数据线分开,它可以按“字节”读写数据,符合CPU的指令译码执行要求,所以假如NOR上存储了代码指令,CPU给NOR一个地址,NOR 就能向CPU 返回一个数据让CPU 执行,中间不需要额外的处理操作。

而由于NAND的数据和地址线共用,只能按“块”来读写数据,假如NAND上存储了代码指令,CPU给NAND 地址后,它无法直接返回该地址的数据,所以不符合指令译码要求。表中的最后一项“是否支持XIP”描述的就是这种立即执行的特性(eXecute In
Place)。

若代码存储在NAND上,可以把它先加载到RAM存储器上,再由CPU执行。所以在功能上可以认为NOR是一种断电后数据不丢失的RAM,但它的擦除单位与RAM有区别,且读写速度比RAM要慢得多。

另外,FLASH的擦除次数都是有限的(现在普遍是10万次左右),当它的使用接近寿命的时候,可能会出现写操作失败。由于NAND通常是整块擦写,块内有一位失效整个块就会失效,这被称为坏块,而且由于擦写过程复杂,从整体来说NOR坏块少,寿命更长。由于可能存在坏块,所以FLASH存储器需要“探测/错误更正(EDC/ECC)”算法来确保数据的正确性。
由于两种FLASH 存储器特性的差异,NOR FLASH一般应用在代码存储的场合,如嵌入式控制器内部的程序存储空间。而NAND FLASH一般应用在大数据量存储的场合,包括SD卡、U盘以及固态硬盘等,都是NAND FLASH类型的。

另可参考: NOR flash 和NAND flash区别深入分析

猜你喜欢

转载自blog.csdn.net/zuixin369/article/details/86103264