NorFlash与NandFlash区别及在mini2440上的应用

http://blog.csdn.net/qikaibinglan/article/details/5444170

NorFlash与NandFlash区别

FLASH存储器又称闪存,主要有两种:NorFlash和NandFlash,下面我们从多个角度来对比介绍一下。在实际开发中,设计者可以根据产品需求来进行闪存的合理选择。

1、接口对比

1、NorFlash带有通用的SRAM接口,可以轻松地挂接在CPU的地址、数据总线上,对CPU的接口要求低。

2、NorFlash的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。如uboot中的ro段可以直接在NorFlash上运行,只需要把rw和zi段拷贝到RAM中运行即可。

1、NandFlash器件使用复杂的I/O口来串行地存取数据,8个引脚用来传送控制、地址和数据信息。由于时序较为复杂,所以一般CPU最好集成NAND控制器

2、由于NandFlash没有挂接在地址总线上,所以如果想用NandFlash作为系统的启动盘,就需要CPU具备特殊的功能,如:s3c2410在被选择为NandFlash启动方式时会在上电时自动读取NandFlash的4k数据到地址0的SRAM中。如果CPU不具备这种特殊功能,用户不能直接运行NandFlash上的代码,那可以采取其他方式,比如好多使用NandFlash的开发板除了使用NandFlash以外,还用上了一块小的NorFlash来运行启动代码。

2、容量和成本对比

相比起NandFlash来说,NorFlash的容量要小,一般在1~16MByte左右,一些新工艺采用了芯片叠加技术可以把NorFlash的容量做得大一些。

在价格方面,NorFlash相比NandFlash来说较高,如目前市场上一片4Mbyte的AM29lv320 NorFlash零售价在20元左右,而一片128MByte的k9f1g08 NandFlash零售价在30元左右。

NandFlash生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,这样也就相应地降低了价格。

3、可靠性对比

NAND器件中的坏块是随机分布的,以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。而坏块问题在NorFlash上是不存在的。

在Flash的位翻转(一个bit位发生翻转)现象上,NAND的出现几率要比NorFlash大得多。这个问题在Flash存储关键文件时是致命的,所以在使用NandFlash时建议同时使用EDC/ECC等校验算法。

4、寿命对比

在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。闪存的使用寿命同时和文件系统的机制也有关,要求文件系统具有损耗平衡功能。

5、升级对比

NorFlash的升级较为麻烦,因为不同容量的NorFlash的地址线需求不一样,所以在更换不同容量的NorFlash芯片时不方便。通常我们会通过在电路板的地址线上做一些跳接电阻来解决这样的问题,针对不同容量的NorFlash。

而不同容量的NandFlash的接口是固定的,所以升级简单。

6、读写性能对比

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

读操作:NOR的读速度比NAND稍快一些。

7、文件系统比较

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

------------------------------------------------------------------------------------

目前市场上的flash 从结构上大体可以分为AND、NAND、NOR 和DiNOR 等几种。其中NOR 和DiNOR的特点为相对电压低、随机读取快、功耗低、稳定性高,而NAND 和AND 的特点为容量大、回写速度快、芯片面积小。现在,NOR 和NAND FLASH 的应用最为广泛。NOR 的特点是可在芯片内执行,这样应用程序可以直接在flash 内存内运行,不必再把代码读到系统RAM 中。NOR 的传输效率很高,但写入和檫写速度较低。而NAND 结构能提供极高的单元密度,并且写入和擦除的速度也很快,是高数据存储密度的最佳选择。这两种结构性能上的异同如下:
(1) NOR 的读速度比NAND 稍快一些。
(2) NAND 的写入速度比NOR 快很多。
(3) NAND 的擦除速度远比NOR 快。
(4) NAND 的擦除单元更小,相应的擦除电路也更加简单。
(5) NAND 闪存中每个块的最大擦写次数量是百万次,而NOR 的擦写次数是十万次[7]。
由于以上flash 的特性决定了,在嵌入式设备中,把只读属性的映象文件,如启动引导程序blob、内核、文件系统文件存放在NOR Flash中,而把一些读写类的文件,如用户应用程序等存放在NAND Flash 中。本系统平台上有一个16M大小的NOR flash,和一个64M大小的NAND Flash,根文件系统是建立在NOR Flash的后大半部分,前小半部分用来存放bootloader和kernel映像;而NAND Flash上建立了用户文件系统。为了避免频繁的读写操作对Flash 造成的伤害,系统对频繁的读写操作的文件夹采用了Ramfs文件系统。根目录下的/var,/tmp 目录为Ramfs 临时文件系统的挂载点。

在2440上的应用

S3C2440的启动时读取的第一条指令是在0x00上,分为成nand flashnor flash上启动。

 Nor flash的有自己的地址线和数据线,可以采用类似于memory的随机访问方式,在nor flash上可以直接运行程序,所以nor flash可以直接用来做boot,采用nor flash启动的时候会把地址映射到0x00上。mini2440就是直接把vivi直接烧录在nor flash上。

 Nand flashIO设备,数据、地址、控制线都是共用的,需要软件区控制读取时序,所以不能像nor flash、内存一样随机访问,不能EIP(片上运行),因此不能直接作为boot

S3C2440Bootloader烧到nand flash上启动,因为在S3C2440里有一个内置的SRAM,叫做stepping stone(垫脚石,很形象…),系统启动加电后,会把nand flash上的起始4KB的内容拷贝到SRAM里执行,这样就实现了从nand flash启动。如果bootloader小于4KB的话(像vboot),在SRAM里就能boot,大于4KB的话(u-bootvivi),在SRAM里做一些基本初始化后,再把bootloader的剩余部分拷贝到SDRAM里(>0x30000000)。

 我们使用S3C2440的时候,经常通过norflash启动,进入vivi的菜单(S3C2440Norflash已经烧录好了vivi),之后通过viviusb下载功能,把其他的bootloader下载到nand flash里,下载完成后,再通过nand flash启动,测试我们的bootloader

 NOR flash适合做代码存储并EIP的,NAND适合用来作大量数据存储的。

NANDFlash启动: NANDFlash存储器的前4K将被自动加载到Steppingstone(内部SRAM缓冲器),然后系统自动执行这些载入的启动代码,这4K的启动代码需要将NANDFlash中的内容复制到SDRAM中执行。NANDFlash的前4K空间放启动代码,SDRAM速度较快,用来执行主程序的代码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值