整理自NOR FLASH
与NAND FLASH

1:NandFlash与NorFlash典型电路图

Nor Flash接原理图

从上图可以看出,该NorFlash采用并行地址和数据总线, 其中,21bit地址总线,16bit数据总线。

该NorFlash最大可寻址2M的地址空间。实际上,该NorFlash大小为2M。所以,NorFlash可作内存使用。可以直接寻址每一个存储单元。

NandFlash的典型原理图

NandFlash没有区分地址总线和数据总线。只有一个8bit的I/O总线、6根控制线(WE、WP、ALE、CLE、CE、RE)和RB。

实际上,NandFlash数据和地址均通过8bit I/O总线串行传输的。

NOR型与NAND型闪存的区别很大,打个比方说,NOR型闪存更像内存,有独立的地址线和数据线;而NAND型更像硬盘,地址线和数据线是共用的I/O线,类似硬盘的所有信息都通过一条硬盘线传送一般。

NOR和SRAM都是可以连续空间寻址的,但是对于地址线的要求就多了,比如1MB的地址空间,需要20根地址线(2^20=1048576=1MB)。由于NAND不支持连续空间寻址,无法直接实现片内程序运行,所以要实现NAND BOOT,需要CPU端做一些特殊处理,一般都是将一定大小的程序从NAND读到CPU内部的SRAM里,从SRAM实现BOOT。

2:使用NandFlash,程序的放置与加载过程。

S3C2410满足从NandFlash上执行引导程序,为了支持NandFlash的系统引导,S3C2410具备了一个内部SRAM缓冲器。当系统启动时,NandFlash存储器的前面4KByte字节将被自动载入到SRAM中,然后系统自动执行这些载入的引导代码。

一般情况下,这4K的引导代码需要将NandFlash中程序内容拷贝到SDRAM中,在引导代码执行完毕后跳转到SDRAM执行。

自动导入模式步骤:

1、完成复位。

2、如果自动导入模式使能,NandFlash存储器的前4K字节被自动拷贝到SRAM内。

3、SRAM被映射到nGS0。

4、CPU在SRAM的4KB内开始执行引导代码。

3:NOR FALASH既然不仅可以记忆数据而且可以运行程序,是不是可以不要RAM?

理论上找一个大一点儿的norflash也应该可以,但事实上是不行的。

1、程序执行时中间要用到一些临时变量,一些临时的缓存数据,还有一些相应的堆栈 信息。这些变量与数据就要存在RAM中。理论上这些数据存在norflash中也是可以的,但这些变量是要频繁读写的,flash的擦写是有次数的(一般几万次到几百万次),对于一个高速的CPU像操作变量一样擦写flash,估计很快就挂了。

2、norflash的速度比起RAM来差得多,况且这些临时变量并不需要永久保存,可以掉丢失。

一般CPU内部都会有一小块的RAM,被称之为cache(高速缓存),常用的变量会放在这里来处理,大量的缓冲数据会放在外面的SDRAM中,这样会提高系统的速度。

4:NandFlash与NorFlash不同的连接方式

NandFlash与NorFlash具有相同的存储单元,存储原理相同但是他们的连接方式不同,所以存储管理上就有差异。

NorFlash存储单元之间采用的是并联方式,而NandFlash存储单元之间是串联方式。

NAND的结构与硬盘相似,NAND型闪存的编址方法是:全部存储单元被分成若干个块 ,每个块内又分成若干个页 ,每个页的大小为512x8bits,单元位宽为8。就是说,每个页内 有512条位线。页的大小之所以取512个字节,是为了方便闪存装置与磁盘进行数据交换,因为磁盘一个扇区也是512个字节,所以这绝不是数字上的巧合,而是刻意的安排。

Nor的结构与内存相同,Nor闪存具有专用的地址线,且存储单元是并行排布、可以实现一次性的直接寻址。

5:结构不同决定了性能不同

1)速度差异

任何闪存器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。

在写数据和擦除数据时,nand因为支持整块擦写操作,所以速度要快得多。执行一次擦除操作,nor器件需要5s,而nand器件只需要4ms,速度相差千倍。但是,在读取nand闪存中的数据时情况就不同了,因为需要先向芯片发送地址信息进行寻址,之后才能开始读取数据。而nand的地址信息包括“块号”、“快内页号”、“快内字节号”三个部分,首先选择到某一块,然后选择其中的页,最后才能定位到所操作的字节。这样,每进行一次数据访问,就需要经过三次寻址,至少占用三个时钟周期。所以nor的读取速度很快。

2)容量和成本

Nor型闪存每个存储单元都与位线相连,增加了芯片内连线的数量,不利于存储密度的提高。通常nand型闪存单元的平面只有nor器件的一半,每个nand存储单元在体积上只有nor器件的1/8。Nand 芯片的价格通常比同等容量的nor芯片便宜。NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。NOR flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储。NAND flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。

3)易用性

NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。

4)可靠性

一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。Nand闪存由于其结构特点,相邻存储单元之间交易发生位翻转而导致坏块的出现,增加了出错率。

5)耐用性

Nand 擦写次数100万次,而nor的擦写次数只有10万次。Nand与nor寿命之所以不同,是因为两者使用了不同的写入技术。Nand 采用f-n隧道效应,nor采用热电子注入方式。

6:选择nor还是nand

通过上边的介绍我们已经知道,nor闪存与nand闪存各有所长:

(1)nor的存储密度低,nand闪存的存储密度和存储容量均比较高。

(2)Nand型闪存在擦写文件时速度非常快,而nor的读取速度很快。

Nor和nand各有所长(nor读的快而nand写得快),但两种优势无法在一个芯片上得到体现。所以,设计人员在选用芯片时,只能趋利避害,依照使用目的和主要功能在两者之间进行适当的选择。一般的原则是:在大容量的多媒体应用中选用nand型闪存,而在数据/程序存储应用中选用nor型闪存。

除了速度、存储密度的因素,设计师在选择闪存芯片时,还要考虑接口设计。

NOR FLASH与NAND FLASH的更多相关文章

  1. nor flash与nand flash启动的简单比较--APPLE的ARM学习笔记一

    2010-10-08 22:26:00 A,nor flash与nand flash的一些区别 1)接口区别: NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来. NAND Fla ...

  2. 新手学习ARM,对片内ram、SDRAM、NOR FLASH和NAND FLASH启动这几个概念的理解

    片内的ram用来存储启动代码,在2440初始化sdram之前,代码就在片内ram中运行.片内ram装载的是norflash中的内容,即u-boot. uboot放在norflash里,nandflas ...

  3. nor flash 和nand flash 傻傻分不清楚

    nor flash和nand flash差别 学习嵌入式有一段时间了,刚接触nor和nand时非常是迷惑.非要逼我写一篇博客才干记清楚. 首先他们都是存储设备.统称叫做flash memory.导致他 ...

  4. 存储Flash--NOR flash和 Nand flash

    flash是存储芯片的一种,通过特定的程序可以修改里面的数据.FLASH在电子以及半导体领域内往往表示Flash Memory的意思,即平时所说的“闪存”,全名叫Flash EEPROM Memory ...

  5. nor flash和nand flash的区别

    NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,1989年,东芝公司发表了 ...

  6. NOR FLASH与NAND FLASH的区别

    NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,1989年,东芝公司发表了 ...

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

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

  8. NOR flash和NAND flash区别,RAM 和ROM区别d

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

  9. 关于Nor Flash、Nand Flash等等

    [Nor Flash] Nor Flash的“读取”和RAM很类似,只要能能够提供数据的地址,数据总线就能够正确的给出数据,但不可以直接进行“写”操作: Nor Flash的写操作,需要遵循特定的命令 ...

随机推荐

  1. TimeUnit(转)

    java.util.concurrent并发库是JDK1.5新增的,其作者是Doug Lea ,此人是个BOSS级别的天才人物了.有了他提供的类库,使得我们对多线程并发.锁有了很大的帮助,减少了并发难 ...

  2. linux之ioctl函数解析

    [lingyun@localhost ioctl_1]$ ls ipconfig.c [lingyun@localhost ioctl_1]$ cat ipconfig.c  /*********** ...

  3. Shell变量之自定义变量、环境变量

    1:环境变量        环境变量可以帮我们达到很多功能-包括家目录的变换啊.提示字符的显示啊.运行文件搜寻的路径啊等等的那么,既然环境变量有那么多的功能,问一下,目前我的 shell 环境中, 有 ...

  4. Dom4j解析Xml文件,Dom4j创建Xml文件

    Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...

  5. php读取操作大文件

    在php中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file.file_get_contents之类的函数,简简单单的几行代码就能 很漂亮的完成我们所需要的功能.但当所操作的文件是一个比较大的 ...

  6. 使用linq获得当前文件夹下的下一级满足条件的文件夹

    使用linq获得当前文件夹下的下一级满足条件的文件夹.             SPFolderCollection subAlbums = Folder.SubFolders;            ...

  7. sql存储过程通过ID删除两表中的数据。

    CREATE OR REPLACE PROCEDURE del_p --建立名为del_p 的过程 IS CURSOR get_abid --简历名为get_abid的cursor 用来存放a表的id ...

  8. Java设计模式--单列设计模式

    设计模式:解决某一类问题行知最有效的方法.java有23种设计模式 单列设计模式: 解决一个类在内存中只存在一个对象 思路:(要保证对象的唯一性) 1.为了避免其它程序建立该对象,先禁止替他类创建改对 ...

  9. MongoDB的查询

    一.Find操作 二.分页和排序 三.游标的使用 一.Find查询 事前准备:插入如下数据 db.Students.insert([ { _id:1, name:"Zhao", a ...

  10. 判断ios是app第一次启动

    首次运行的应用程序加入一些help 或者 宣传动画 现在变的很重要了. 一个有用的例子是发送一个分析实例.这可能是一个很好的方法来确定有多少人下载实用应用程序.有人会说:“但是,嘿,苹果AppStor ...