文档章节

NOR、NAND区别

完美世界
 完美世界
发布于 2014/06/04 22:58
字数 2698
阅读 37
收藏 0
点赞 0
评论 0

1) 闪存芯片读写的基本单位不同 

 应用程序对NOR芯片操作以“字”为基本单位。为了方便对大容量NOR闪存的管理,通常将NOR闪存分成大小为128KB或者64KB的逻辑块,有时候块内还分成扇区。读写时需要同时指定逻辑块号和块内偏移。应用程序对NAND芯片操作是以“块”为基本单位。NAND闪存的块比较小,一般是8KB,然后每块又分成页,页的大小一般是512字节。要修改NAND芯片中一个字节,必须重写整个数据块。 

 2)NOR闪存是随机存储介质,用于数据量较小的场合;NAND闪存是连续存储介质,适合存放大的数据。 

 3) 由于NOR地址线和数据线分开,所以NOR芯片可以像SRAM一样连在数据线上。NOR芯片的使用也类似于通常的内存芯片,它的传输效率很高,可执行程序可以在芯片内执行( XI P, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码 读到系统RAM中。由于NOR的这个特点,嵌入式系统中经常将NOR芯片做启动芯片使用。而NAND共用地址和数据总线,需要额外联结一些控制的输入输出,所以直接将NAND芯片做启动芯片比较难。 

 4) N AN D闪存芯片因为共用地址和数据总线的原因,不允许对一个字节甚至一个块进行的数据清空,只能对一个固定大小的区域进行清零操作;而NOR芯片可以对字进行操作。所以在处理小数据量的I/O操作的时候的速度要快与NAND的速度。比如一块NOR芯片通 常写一个字需要10微秒,那么在32位总线上写512字节需要1280毫秒;而NAND闪存写512字节需要的时间包括:512×每字节50纳秒+10微秒的寻页时间+200微秒的片擦写时间=234微秒。 

 5)NAND闪存的容量比较大,目前最大容量己经达到8G字节。为了方便管理,NAND的存储空间使用了块和页两级存储体系,也就是说闪存的存储空间是二维的,比如K9F5608UOA闪存块的大小为16K,每页的大小是512字节,每页还16字节空闲区用来存放错误校验码空间(有时也称为out-of-band,OOB空间);在进行写操作的时候NAND闪存每次将一个字节的数据放入内部的缓存区,然后再发出“写指令”进行写操作。由于对NAND闪存的操作都是以块和页为单位的,所以在向NAND闪存进行大量数据的读写时,NAND的速度要快于NOR闪存。 

 6)NOR闪存的可靠性要高于NAND闪存,这主要是因为NOR型闪存的接口简单,数据操作少,位交换操作少,因此可靠性高,极少出现坏区块,因而一般用在对可靠性要求高的地方。相反的,NAND型闪存接口和操作均相对复杂,位交换操作也很多,关键性数据更是需安错误探测/错误更正〔EDC/ECC)算法来确保数据的完整性,因此出现问题的几率要大得多,坏区块也是不可避免的,而且由于坏区块是随机分布的,连纠错也无法做到。 

 7)NAND Flash一般地址线和数据线共用,对读写速度有一定影响;而NOR Flash闪存数据线和地址线分开,所以相对而言读写速度快一些。 

NAND和NOR芯片的共性首先表现在向芯片中写数据必须先将芯片中对应的内容清空,然后再写入,也就是通常说的“先擦后写”。只不过NOR芯片只用擦写一个字,而NAND需要擦写整个块。其次,闪存擦写的次数都是有限的.当闪存的使用接近使用寿命的时候,经常会出现写操作失败;到达使用寿命时,闪存内部存放的数据虽然可以读,但是不能再进行写操作了所以为了防止上面问题的发生,不能对某个特定的区域反复进行写操作。通常NAND的可擦写次数高于NOR芯片,但是由于NAND通常是整块擦写,块内的页面中如果有一位失效整个块就会失效,而且由于擦写过程复杂,失败的概率相对较高,所以从整体上来说NOR的寿命较长。 

另一个共性是闪存的读写操作不仅仅是一个物理操作,实际上在闪存上存放数据必须使用算法实现,这个模块一般在驱动程序的MTD’ (Memory Technology Drivers)模块中或者在FTLZ (Flash Translation Layer)层内实现,具体算法和芯片的生产厂商以及芯片型号有关系。

从使用角度来看,NOR闪存与NAND闪存是各有特点的:(1)NOR的存储密度低,所以存储一个字节的成本也较高,而NAND闪存的存储密度和存储容量均比较高;(2)NAND型闪存在擦、写文件(特别是连续的大文件)时速度非常快,非常适用于顺序读取的场合,而NOR的读取速度很快,在随机存取的应用中有良好的表现。               NOR与NAND各有所长,但两种优势无法在一个芯片上得到体现。所以,设计人员在选用芯片时,只能趋其利而避其害,依照使用目的和主要功能在两者之间进行适当的选择。

NAND与NOR技术的比较

       一般的原则是:在大容量的多媒体应用中选用NAND型闪存,而在数据/程序存贮应用中选用NOR型闪存。根据这一原则,设计人员也可以把两种闪存芯片结合起来使用,用NOR芯片存储程序,用NAND芯片存储数据,使两种闪存的优势互补。事实上,这种聪明的设计早已普遍应用于手机、PocketPC、PDA及电子词典等设备中了。

      在选择存储解决方案时,设计师必须在多种因素之间进行权衡,以获得较高的性价比。以手机为例,采用支持XIP技术的NOR闪存能够直接运行OS,速度很快,既简化了设计,又降低了成本,所以许多手机都采用NOR+RAM的设计。NOR闪存的不足之处是存储密度较低,所以也有采用NAND+RAM的设计。对于这两种方案,很难说哪一种更好,因为我们不能离开具体的产品而从某一个方面单纯地去评价。追求小巧优雅的手机将需要NOR闪存支持;追求大存储容量的手机则将更多地选择NAND闪存;而同时追求功能和速度的手机则会采用NOR+NAND+RAM的设计,这种取长补短的设计能够发挥NOR和NAND各自的优势。

        除了速度、存储密度的因素,设计师在选择闪存芯片时,还需要考虑接口设计、即插即用设计和驱动程序等诸多问题,因为两种类型的闪存在上述几个方面也有很多的不同。譬如在驱动程序方面,NOR器件运行代码不需要任何的软件支持,而在NAND器件上进行同样操作时就需要存储技术驱动程序(MTD)的支持。虽然NAND和NOR器件在进行写入和擦除操作时都需要MTD,但对于NAND来说驱动程序的开发难度更大,因为NAND闪存的纠错和坏块处理功能都需要通过驱动程序来实现。

使用性差异

在使用性上体现出的差异也是与NOR和NAND自身的架构设计分不开的,首先在接口方面,NOR的设计有明显的传统闪存的特征,因此实际应用起来相对于NAND全新的复杂I/O设计要容易得多。而且,在使用NAND闪存时,必须先写入驱动程序,才能继续执行其他操作。

其次,在可重复擦写的能力方面,NAND的每块可擦写次数在10万至100万次之间,NOR则只是它的1/10,而且NAND的每个擦除块的容量也只有NOR的1/8至1/2,这就表明,每个块的擦写的频率要少于NOR闪存,从而有助于延长使用寿命。在数据的保存时间上,两者都差不多,为10年的水平。

不过,由于串联的架构,NAND的晶体管之间更容易造成影响,使逻辑0变成逻辑1,并且也很难发现出问题的晶体管,这种现象可称为位翻转(Bit-Flipping),这就需要动用EDC/ECC(错误检测码/错误修正码)来进行校正,这方面的问题NOR则较少出现。

另外,NAND在使用中还存在着坏块管理的问题,在NAND闪存中,由于坏块是随机分布的,因此需要进行扫描并将坏块打上标记,就像对付硬盘中的坏扇区一样。目前的产品中,可最多允许出现80个坏块。坏块的存在使得向NAND闪存写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND闪存上自始至终都必须进行虚拟映射。

在软件支持程度方面,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。

在NOR闪存上运行代码不需要任何的软件支持,在NAND闪存上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR闪存在进行写入和擦除操作时都需要MTD。

使用NOR闪存时所需要的MTD要相对少一些,许多厂商都提供用于NOR闪存的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。


© 著作权归作者所有

共有 人打赏支持
完美世界
粉丝 10
博文 149
码字总数 134011
作品 0
西城
高级程序员
[解读] 同是NAND Flash闪存(SSD)技术,MLC和SLC差距为何如此之大?

width="auto" src="http://ss.csdn.net/p?http://mmbiz.qpic.cn/mmbiz/oRL2fUHmGZC2rKxxlqeyKrUzuvVq8Vkn0WG6YS5fbtDGYB68b21PeqnnoZuqPtpB0PkvP6wPh0wpLj1cJbiczBA/0?wxfmt=gif&wxfrom=5&wx......

btb5e6nsu1g511eg5xeg ⋅ 01/09 ⋅ 0

对Nand flash读操作的分析

前几天大致分析了u-boot针对smdk2410的源码,了解了启动的流程,但是对板上许多硬件的驱动过程还不太清楚。smdk2410源码中有针对Nor Flash的初始化和读取,但源码中没有对Nand Flash的操作,...

nothingfinal ⋅ 2012/04/01 ⋅ 0

U-boot在S3C2440上的移植详解(三)---支持NAND FLASH启动

5)准备进入u-boot的第二阶段(在u-boot中添加对我们开发板上Nand Flash的支持)。 目前u-boot中还没有对2440上Nand Flash的支持,也就是说要想u-boot从Nand Flash上启动得自己去实现了。 首...

宁宁爸 ⋅ 2015/11/26 ⋅ 0

SylixOS nand驱动框架理解

1.适用范围 该应用笔记适用于帮助用户在SylixOS下使用nandflash器件。 2.原理概述 2.1nandflash存储结构 nandflash存储结构如图2-1所示,下面以mini2440开发板上的k9f1g08系列nandflash为例,...

jiangheng12138 ⋅ 2017/02/06 ⋅ 0

RAM 和 NAND 之间的区别?

RAM 是指内存,那NAND是指什么呢?我把两者搞混了。 在一个小主机的存储上,显示了2个内部存储空间,一个是说1G,一个是2G。但销售当时是说:RAM:1G,NAND:4G。我是不是 被骗了?...

stevenwong ⋅ 2012/11/10 ⋅ 1

Yaffs 文件系统分析

1 Yaffs文件系统结构 1.1 简介 1.1.1 应用场合 Yaffs(Yet Another Flash File System)文件系统是专门针对NAND闪存设计的嵌入式文件系统,目前有YAFFS和YAFFS2两个版本,两个版本的主要区别...

鉴客 ⋅ 2011/10/01 ⋅ 0

U盘中SLC、MLC和TLC三者闪存类型的优缺点及区别

SLC = Single-Level Cell,即 1bit/cell,速度快寿命长,价格超贵(约 MLC 3 倍以上的价格),约 10 万次擦写寿命。 MLC = Multi-Level Cell,即 2bit/cell,速度一般寿命一般,价格一般,约...

lixiaokai2008 ⋅ 2015/12/14 ⋅ 0

嵌入式s5vp210裸机 flash-history

一.Flash简介 1.发展情况 2.对比差异 2.1RAM和ROM RAM(random access memory,随机访问存储器,特点是任意字节读写,掉电丢失 ROM(read only memory,只读存储器,类似于Flash SD卡之类的,用...

xun2lei ⋅ 04/19 ⋅ 0

norflash芯片内执行(XIP)

为什么程序不能直接在nandflash上执行?出于这个疑惑带来了这篇博文,是我在网上找了很多资料后总结的,假如有误,希望马上指出来,免得我误人子弟。谢谢! 首先认识下nandflash和norflash:...

zjy900507 ⋅ 2017/07/11 ⋅ 0

完成嵌入式学习前,这些概念要搞清~

ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM...

dp29sym41zygndvf ⋅ 04/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 26分钟前 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 33分钟前 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 40分钟前 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 50分钟前 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

容器之查看minikue的environment——minikube的环境信息

执行如下命令 mjduan@mjduandeMacBook-Pro:~/Docker % minikube docker-envexport DOCKER_TLS_VERIFY="1"export DOCKER_HOST="tcp://192.168.99.100:2376"export DOCKER_CERT_PATH="/U......

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

mysql远程连接不上

设置了root所有hosts远程登录,可是远程登录还是失败,原因可能如下: 登录本地数据库 mysql -uroot -p123456 查询用户表 mysql> select user,host,password from mysql.user; 删除密码为空的...

冰公子 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部