NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR
flash技术,彻底改变了原先由EPROM和EEPROM一统
天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成
本,更高的性能,并且象磁盘一样可以通过接口
轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。
  相“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清
楚NAND闪存技术相对于NOR技术的优越之处,因
为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高
数据存储密度的理想解决方案。
  NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash
闪存内运行,不必再把代码读到系统RAM中。
NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除
速度大大影响了它的性能。
  NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也
很快。应用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~128M
B的产品当中,这也说明NOR主要应用在代码存
储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和M
MC存储卡市场上所占份额最大。
可靠性和耐用性
  采用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器件上自始至终都必须进行虚拟映射。
软件支持
  当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和
闪存管理算法的软件,包括性能优化。
  在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常
需要驱动程序,也就是内存技术驱动程序(MTD
),NAND和NOR器件在进行写入和擦除操作时都需要MTD。
  使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软
件,这其中包括M-System的TrueFFS驱动,该驱
动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所
采用。
  驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和
损耗平衡。

NOR和NAND的区别相关推荐

  1. NOR 与 NAND的区别对比分析

    *为便于理解并省去容量单位转换的麻烦,以下容量单位均使用Byte单位(128Mbit=16MByte) 前言: NOR FLASH 是市场上两种主要的非易失闪存技术之一.Intel于1988年首先开发 ...

  2. NOR flash和NAND flash区别,RAM 和ROM区别

    NOR flash和NAND flash区别,RAM 和ROM区别 ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory ...

  3. nor flash 和nand flash 区别

    今天笔试,遇到一个题目,没想明白,就在网上看下高手们的看法 :nor flash  和nand  flash 区别 NOR FLASH 与NAND FLASH 1:以下是NandFlash与NorFl ...

  4. Nor 与Nand Flash 区别

    FLASH与EEPROM区别: 他们的存储单元基本一致,只是FLASH的存储单元的源极都是连在一起的,因此,擦除是会一起擦除,而EEPROM是可以按字节独立擦除的,技术上,FLASH是结合EPROM和 ...

  5. flash 和 eeprom 区别和关系、nor flash和nand flash区别

    1.FLASH存储器和EEPROM存储器的区别 2.EEPROM介绍及与Flash区别_VirtuousLiu的博客-CSDN博客_eeprom 3.基础--ROM, RAM, FLASH, SSD, ...

  6. nor和nand的区别 emmc 字符设备和块设备

    nand和nor的区别 0.nor是随机存储介质,支持随机写(字节单位),可以片内运行程序,而nand连续存储介质,支持按块读写,需要把程序搬到其他存储介质运行(比如ram) 1.NAND Flash ...

  7. NOR flash 和NAND flash区别深入分析

    闪存芯片读写的基本单位不同     应用程序对NOR芯片操作以"字"为基本单位.为了方便对大容量NOR闪存的管理,通常将NOR闪存分成大小为128KB或者64KB的逻辑块,有时候块 ...

  8. EMMC与Nand的区别

    1.背景 今天偶然在一个群里看到有人聊EMMC和Nand,相信很多嵌入式er都用过或者至少听说过这2种板载存储芯片,但是很多人不清楚这2种的差异,也不明白什么时候应该用EMMC什么时候用Nand,如何 ...

  9. eMMC和Nand的区别

    在MPU系统的设计中会经常使用到存储,有eMMC和Nand的选择,那么如何选择这两个需要从概念上区分一下,各自有优劣,需要仔细甄别. 1.Nand是这样的 Nand是一种flash,所以又叫NandF ...

最新文章

  1. python第一个公开发行版_Python基础篇【第一篇】:python入门
  2. 复数的物理意义是什么
  3. Java Machine Learning Tools Libraries--转载
  4. java 原子类能做什么_Java原子类中可以靠版本号比较为什么还需要CAS操作??
  5. jmeter脚本_性能工具之Jmeter脚本python启动
  6. matlab 编辑器设置,编辑器设置,包括语言、备份和显示设置
  7. 收藏 | EfficientNet模型的完整细节
  8. async与await详解
  9. Drawing with GoogLeNet
  10. FireEye 红队失窃工具大揭秘之:分析复现 Confluence路径穿越漏洞 (CVE-2019-3398)
  11. python 拟合线,拟合函数
  12. MATLAB | 老版本也能用,默认设置让简单的代码画出炫酷的图像
  13. 汇编语言程序设计思维导图
  14. C# CAD批量转换为图片
  15. 北邮校长方滨兴将离职 临别奉送学生“六好”锦囊
  16. NR 5G 系统信息
  17. vim 多窗口切换和其他的一些快捷方法
  18. lnmp单独安装php,lnmp 环境,再单独安装php7.2 的版本,多版本php 同时运行
  19. MFC模拟 Windows 文件可视化系统
  20. 为什么8G运行内存的电脑,开几个WORD文档,运行内存就被占满了,WPS很占用内存吗

热门文章

  1. 苏交换大间谍地点 柏林分界桥谍影重重
  2. 利用三元组对稀疏矩阵进行压缩存储并实现矩阵的转置运算
  3. 社交系统ThinkSNS品牌10周年庆
  4. OpenFire源码学习之二十二:openfie对用户的优化(下)
  5. QSettings 类
  6. 苹果cmsv10黑色自适应好看的炫酷简约带会员中心模板
  7. 华为mate30用不用鸿蒙系统,华为Mate20大降价 Mate30会搭载鸿蒙系统吗?
  8. C语言学习(十一)小数在内存中是如何存储的?定点数与浮点数各自的优势在哪?规格化浮点数与非规格化浮点数又表示什么?
  9. 【C语言创建文件代码示例】
  10. 基于thinkPHP5.0开发,傻瓜式安装小程序及公众号商城