NorFlash和NandFlash区别

Flash编程原理都是只能将1写为0,而不能将0写成1.所以在Flash编程之前,必须将对应的块擦除,而擦除的过程就是将所有位都写为1的过程,块内的所有字节变为0xFF.因此可以说,编程是将相应位写0的过程,而擦除是将相应位写1的过程,两者的执行过程完全相反。

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

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

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

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

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

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

(7)NANDFlash一般地址线和数据线共用,对读写速度有一定影响;NORFlash闪存数据线和地址线分开,相对而言读写速度快一些.NANDFlash和NORFlash芯片的共性

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

另一个共性是闪存的读写操作不仅仅是一个物理操作,实际上在闪存上存放数据必须使用算法实现,这个模块一般在驱动程序的MTD’(Memory Technology Drivers)模块中或者在FTLZ (Flash Translation Layer)层内实现,具体算法和芯片的生产厂商以及芯片型号有关系.通过比较可以发现,NAND更适用于复杂的文件应用,但是由于NAND芯片的使用相对复杂,所以对文件系统有较高的要求.

(8)接口对比
NorFlash带有通用的SRAM接口,可以轻松地挂接在CPU的地址、数据总线上,对CPU的接口要求低。NorFlash的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中.如uboot中的ro段可以直接在NorFlash上运行,只需要把rw和zi段拷贝到RAM中运行即可.

NandFlash器件使用复杂的I/O口来串行地存取数据,8个引脚用来传送控制、地址和数据信息。由于时序较为复杂,所以一般CPU最好集成NandFlash控制器.另外由于NandFlash没有挂接在地址总线上,所以如果想用NandFlash作为系统的启动盘,就需要CPU具备特殊的功能,如s3c2410在被选择为NandFlash启动方式时会在上电时自动读取NandFlash的4k数据到地址0的SRAM中.如果CPU不具备这种特殊功能,用户不能直接运行NandFlash上的代码,那可以采取其他方式,比如好多使用NandFlash的开发板除了使用NandFlash以外,还用上了一块小的NorFlash来运行启动代码.

(9)容量和成本对比
相比起NandFlash来说,NorFlash的容量要小,一般在1~16MByte左右,一些新工艺采用了芯片叠加技术可以把NorFlash的容量做得大一些.在价格方面,NorFlash相比NandFlash来说较高,如目前市场上一片4Mbyte的AM29lv320 NorFlash零售价在20元左右,而一片128MByte的k9f1g08 NandFlash零售价在30元左右. NandFlash生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,这样也就相应地降低了价格.

(10)可靠性性对比
NandFlash器件中的坏块是随机分布的,以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算.Nand器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用.在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。而坏块问题在NorFlash上是不存在的.
在Flash的位翻转(一个bit位发生翻转)现象上,NAND的出现几率要比NorFlash大得多.这个问题在Flash存储关键文件时是致命的,所以在使用NandFlash时建议同时使用EDC/ECC等校验算法.

(11)升级对比
NorFlash的升级较为麻烦,因为不同容量的NorFlash的地址线需求不一样,所以在更换不同容量的NorFlash芯片时不方便.通常我们会通过在电路板的地址线上做一些跳接电阻来解决这样的问题,针对不同容量的NorFlash. 而不同容量的NandFlash的接口是固定的,所以升级简单.

(12)读写性能对比
写操作:任何flash器件的写入操作都只能在空或已擦除的单元内进行.NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1.擦除NOR器件时是以64~128KB的块进行的,执行一个擦除/写入操作的时间约为5s.擦除NAND器件是以8~32KB的块进行的,执行一个擦除/写入操作最多只需要4ms. 读操作:NOR的读速度比NAND稍快一些.

(13)文件系统比较
Linux系统中采用MTD来管理不同类型的Flash芯片,包括NandFlash和NorFlash.支持在Flash上运行的常用文件系统有cramfs、jffs、jffs2、yaffs、yaffs2等.cramfs文件系统是只读文件系统.如果想在Flash上实现读写操作,通常在NorFlash上我们会选取jffs及jffs2文件系统,在NandFlash上选用yaffs或yaffs2文件系统.Yaffs2文件系统支持大页(大于512字节/页)的NandFlash存储器。

原文链接:
https://blog.csdn.net/zm1_1zm/article/details/74625939?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164422021216781683960214%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164422021216781683960214&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_ulrmf~default-2-74625939.pc_search_insert_ulrmf&utm_term=++++++++++++++++norflash%E5%92%8Cnandflash%E5%8C%BA%E5%88%AB++++++++++++++++++++++++++++++&spm=1018.2226.3001.4187

NorFlash和NandFlash区别相关推荐

  1. NorFlash与NandFlash有什么区别

    关注.星标公众号,不错过精彩内容 编辑:黄工 素材来源:网络 FLASH存储器又称闪存,主要有两种:NorFlash和NandFlash.在实际开发中,设计者可以根据产品需求来进行闪存的合理选择.下面 ...

  2. 嵌入式开发之NorFlash 和NandFlash

    嵌入式开发之NorFlash 和NandFlash 转自:http://blog.csdn.net/tigerjb/article/details/9322035 [摘要]:作为一个嵌入式工程师,要对 ...

  3. NandFlash系列之一:NorFlash与NandFlash对比

    NandFlash系列之一:NorFlash与NandFlash对比 作者:刘洪涛,华清远见嵌入式学院高级讲师. FLASH存储器又称闪存,主要有两种:NorFlash和NandFlash,下面我们从 ...

  4. flash分类:NORflash和NANDflash

    flash分类:NORflash和NANDflash 目前市场上的flash 从结构上大体可以分为AND.NAND.NOR 和DiNOR 等几种.其中NOR 和DiNOR的特点为相对电压低.随机读取快 ...

  5. littlefs文件系统适配norflash和nandflash

    littlefs文件系统适配norflash和nandflash 文章目录 littlefs文件系统适配norflash和nandflash 测试对象 题记: 程序如下(nand flash+nor ...

  6. 【UEFI基础】NorFlash和NandFlash以及SpiFlash

    NorFlash和NandFlash 无论是NorFlash还是NanFlash,当我们提到它们的的时候都是指存储芯片. 两者的差异最主要的是实现原理上,至于原理是什么,并不是本文的重点,不过也应该原 ...

  7. 闪存中的NorFlash、NandFlash及eMMC三者的区别

    (转载自http://www.veryarm.com/1200.html) 快闪存储器(英语:Flash Memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器.这 ...

  8. 内存、ram、 rom、 norflash,nandflash详细区别

    1.什么是内存      什么是内存呢?在计算机的组成结构中,有一个很重要的部分,就是存储器.存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作.存储器的种类 ...

  9. Norflash和Nandflash的区别

    NOR flash和NAND flash的区别 一般而言,flash分为nor和nand2种,简单的说就是用or门和and门搭建的2种flash.目前用为海量存储器的flash都是nand结构,而一些 ...

最新文章

  1. 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
  2. .Net高并发解决思路(转)
  3. PHP面向对象的进阶学习
  4. dvd管理器java_Java DVD管理器 基础示例代码下载
  5. Excel工作表密码保护的破解
  6. Quartz集群部署
  7. GitHub上Java的Bloom Bloom实现
  8. 三星s9php禁用列表,ADB禁用列表
  9. 卷积面试题(最重要)
  10. 不用也要知道的几种算法(PHP版本)
  11. 网络性能测试之pathrate的安装使用
  12. 软件工程学习之七大实际开发模型的讲解,及模块化设计的理念
  13. 使用MLM和TLM训练XLM
  14. Mac操作指南:访问Windows共享文件
  15. 生物信息学|基于多尺度特征融合的药物-药物相互作用预测
  16. RH358配置电子邮件传输--配置仅发送电子邮件服务
  17. PVC地板IMO船舶防火测试认证注意事项
  18. lucene 学习笔记之飞龙在天
  19. 怎么在多层循环中直接跳出循环
  20. H5×××等链接被微信拦截(被封锁、被屏蔽、被和谐)后最好的解决方法

热门文章

  1. svn提交代码报错:A conflict in the working copy obstructs the current operation,解决办法
  2. python里的π怎么输入_【后端开辟】python里的π怎样输入
  3. 《计算机网络》第二章作业
  4. Diffusion Model
  5. ArcSDE版本学习总结
  6. 什么是陀螺仪的dr算法_一种基于DR/GPS/MM的组合定位系统数据融合算法
  7. [2008北京奥运会]08奥运开幕式NBC版的字幕/解说词
  8. 单片机系统的电磁兼容性设计
  9. Vultr Debian8系统一键快速DD安装Windows7系统
  10. 面向对象分割:结合eCognition与python