0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详细剖析NorFlash和NandFlash的区别

MCU开发加油站 2018-01-31 10:25 次阅读

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存储器。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 闪存
    +关注

    关注

    16

    文章

    1687

    浏览量

    114224
  • 读写
    +关注

    关注

    0

    文章

    28

    浏览量

    15441
  • nandflash
    +关注

    关注

    0

    文章

    48

    浏览量

    20113
  • NORFlash
    +关注

    关注

    0

    文章

    21

    浏览量

    9167

原文标题:NorFlash和NandFlash区别

文章出处:【微信号:mcugeek,微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NorFlashNandFlash对比

    本帖最后由 ORCAD__PCB 于 2012-8-9 14:24 编辑 NorFlashNandFlash对比
    发表于 08-09 14:22

    2440nandflash下载和启动的问题

    吗,我的疑惑是:程序不是已经存到nandflash了吗,上电后硬件自动copy 4K到内存,应该重启也可执行的,nandflash要怎么下载才能重启继续运行?2)开关打到norflash g运行原来
    发表于 10-24 21:20

    各位高手,我在下载数据到norflashnandflash时,老是提示错误,但部分功能则能运行如图所示,请问大家这是什么原因?

    各位高手,我在下载数据到norflashnandflash时,老是提示错误,但部分功能则能运行如图所示,请问大家这是什么原因?几乎每个数据下载同有类似问题,我是刚入门,希望得到大家的解惑。我的环境:win7-64bit+ADS1.2+ARM9+TQ2440/S3C244
    发表于 02-24 18:32

    请问stm32内部集成的flash是norflash还是nandflash?

    stm32内部集成的flash是norflash还是nandflash?
    发表于 06-06 03:37

    请问tftp 30000000 lcd.bin是下载到nandflash还是norflash

    tftp 30000000 lcd.bin是下载到nandflash还是norflash
    发表于 08-28 23:51

    请问把uImage烧到norflash的命令是什么?

    我的nandflash已经坏了,只有norflash可以进入u-boot, 以前老师视频里面的,方法都是 把uImage烧到 nandfalsh里面的,但是我现在的nandflash已经坏了,我想请问,把uImage烧到
    发表于 09-19 03:11

    请问CC2530的Flash是NorFlash还是NandFlash

    我想问一下CC2530的Flash 是NorFlash还是NandFlash?谢谢!
    发表于 04-01 09:43

    求大神详细剖析GM的VOLT车

    求大神详细剖析GM的VOLT车
    发表于 05-18 06:14

    几种掉电不丢数据的存储设备的区别

    首先谈一下几种掉电不丢数据的存储设备的区别:1.Norflash:可擦写,贵,在Norflash上可以直接运行代码!2.Nandflash:可擦写,便宜,只能用于存储数据;3.磁盘:就
    发表于 11-03 07:02

    ARM的程序是不是直接可以从nandFlash或者norflash直接运行

    ARM的程序是不是直接可以从nandFlash或者norflash直接运行?理论上不用RAM也可以,是吧?不过nandFlash要初始化才能使用,对吧?那么,有没有不用初始化就能使用的空间呢,就像单片机。
    发表于 11-23 14:32

    如何对STM32MP1 QUADSPI上的NorFlashNandFlash进行配置呢

    我正在设计一个基于 STM32MP1 的电路板,这是我第一次使用 QUADSPI。我需要在 NorFlash (MLO + U-boot) 上启动,我的 Linux 文件系统将在 NandFlash
    发表于 12-19 08:51

    NorFlashNandFlash对比分析哪个好?

    1、接口对比 NorFlash带有通用的SRAM接口,可以轻松地挂接在CPU的地址、数据总线上,对CPU的接口要求低。 NandFlash器件使用复杂的I/O口来串行地存取数据,8个引脚用来传送控制
    发表于 06-26 08:13

    NorFlashNandFlash、eMMC闪存三者对比

    NAND Flash式东芝在1989年的国际固态电路研讨会(ISSCC)上发表的, 要在NandFlash上面读写数据,要外部加主控和电路设计。
    发表于 09-19 09:11 2.3w次阅读

    Linux经常出现的3道基础面试题快来复习吧

    一请问uboot启动过程都做了些什么?二为什么uboot要关掉cache? 三nandflashnorflash区别,对norflash的操作方式的理解?
    的头像 发表于 12-31 10:40 3356次阅读

    sd nand与nand flash的区别

    大家知道目前主流的存储芯片大致可以分为NORFlashNANDFlash。容量需要大一点的话,就会用采用NANDFlash。但用NANDFlash会有哪些问题呢?第一,
    的头像 发表于 07-07 15:37 597次阅读
    sd nand与nand flash的<b class='flag-5'>区别</b>?