分享

RAM、NAND Flash、NOR Flash的区别详解

 昵称63122959 2019-06-11
一、RAM和Flash的区别

    RAM有两大类,一种称为静态RAM (Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲cache。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。

    Flash是一种存储芯片,全名叫Flash EEPROM Memory,通过程序可以修改数据,即平时所说的“闪存”。Flash又分为NAND flash和NOR flash二种。Flash闪存是非易失存储器,可以对存储器单元块进行擦写和再编程。Flash的编程原理都是只能将1写为0,而不能将0写为1。任何Flash器件的写入操作只能在空或已擦除的单元内进行,所以在Flash编程之前,必须将对应的块擦除,而擦除的过程就是把所有位都写为1的过程,块内的所有字节变为0xFF。

    而我们平时接触最多的就是RAM,即内存。内存与Flash的区别是易失性,即断电后RAM里面的数据就没了,而Flash里面的数据依然存在。NOR闪存更适合存储少量的代码。而NAND则是高数据存储密度的理想解决方案。NOR Flash的读取和我们常见的SDRAM 的读取是一样,用户可以直接运行装载在NOR Flash里面的代码,这样可以减少SRAM的容量从而节约了成本。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用 NAND Flash以外,还作上了一块小的NOR Flash来运行启动代码。

二、NAND Flash和NOR Flash的区别

1、主要区别

    NOR Flash是intel公司1988年开发的。NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash 闪存内运行,不必再把代码读到系统RAM中。NOR的优点是传输效率很高,但是工艺复杂,价格较贵。在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。NOR在开发板中应用的非常广泛,通过JTAG/JLINK把boot烧到NOR中,通电后自动运行。

    NAND Flash是东芝公司1989年发表的,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。NANDFlash的优点是容量大、便宜、改写速度快,缺点是无法寻址直接运行程序,只能存储数据。另外NAND Flash非常容易出现坏区,所以需要有校验的算法。应用NAND的困难在于Flash的管理和需要特殊的系统接口。NAND Flash适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。

2、读写速度比较

    Flash闪存是非易失存储器,可以存储器单元块进行擦写和再编程。任何Flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。执行擦除时块尺寸的不同进一步拉大了NOR和NAND之间的性能差距。统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。

NOR的读速度比NAND稍快一些。
NAND的写入速度比NOR快很多。
大多数写入操作需要先进行擦除操作。
NAND的擦除单元更小,相应的擦除电路更少。
NAND的4ms擦除速度远比NOR的5s快。
3、接口差别

    NOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。

    NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,因此,基于NAND的存储器就可以取代硬盘或其他块设备。

4、容量和成本

    NAND Flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。

    NOR Flash占据了容量为1~16MB闪存市场的大部分,而NAND Flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。

5、可靠性和耐用性

寿命(耐用性)
    在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。

位交换
    所有Flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就可能解决了。当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,在使用NAND闪存的时候,应使用EDC/ECC算法。这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。

坏块处理
    NAND器件中的坏块是随机分布的,NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。

6、易于使用

    基于NOR的闪存可以非常直接地使用,可以像其他存储器那样连接,并可以在上面直接运行代码。

    NAND由于需要I/O接口,要复杂得多。各种NAND器件的存取方法因厂家而异。在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。

7、软件支持

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

    使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被WindRiverSystem、Microsoft、QNXSoftwareSystem、Symbian和Intel等厂商所采用。驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。

 

三、NAND Flash和NOR Flash原理

1、存储数据的原理

    两种闪存都是用三端器件作为存储单元,分别为源极、漏极和栅极,与场效应管的工作原理相同,主要是利用电场的效应来控制源极与漏极之间的通断,栅极的电流消耗极小,不同的是场效应管为单栅极结构,而 Flash 为双栅极结构,在栅极与硅衬底之间增加了一个浮置栅极。

    浮置栅极是由氮化物夹在两层二氧化硅材料之间构成的,中间的氮化物就是可以存储电荷的电荷势阱。上下两层氧化物的厚度大于50埃,以避免发生击穿。

2、浮栅的重放电

    向数据单元内写入数据的过程就是向电荷势阱注入电荷的过程,写入数据有两种技术,热电子注入(hot electron injection)和F-N隧道效应(Fowler Nordheim tunneling),前一种是通过源极给浮栅充电,后一种是通过硅基层给浮栅充电。NOR 型Flash通过热电子注入方式给浮栅充电,而 NAND 则通过F-N隧道效应给浮栅充电。

    在写入新数据之前,必须先将原来的数据擦除,这点跟硬盘不同,也就是将浮栅的电荷放掉,两种Flash都是通过F-N隧道效应放电。

3、0和1

    这方面两种Flash一样,向浮栅中注入电荷表示写入了'0',没有注入电荷表示'1',所以对Flash清除数据是写1的,这与硬盘正好相反;

    对于浮栅中有电荷的单元来说,由于浮栅的感应作用,在源极和漏极之间将形成带正电的空间电荷区,这时无论控制极上有没有施加偏置电压,晶体管都将处于导通状态。而对于浮栅中没有电荷的晶体管来说只有当控制极上施加有适当的偏置电压,在硅基层上感应出电荷,源极和漏极才能导通,也就是说在没有给控制极施加偏置电压时,晶体管是截止的。如果晶体管的源极接地而漏极接位线,在无偏置电压的情况下,检测晶体管的导通状态就可以获得存储单元中的数据,如果位线上的电平为低,说明晶体管处于导通状态,读取的数据为 0,如果位线上为高电平,则说明晶体管处于截止状态,读取的数据为1。由于控制栅极在读取数据的过程中施加的电压较小或根本不施加电压,不足以改变浮置栅极中原有的电荷量,所以读取操作不会改变Flash中原有的数据。

4、连接和编址方式

    两种Flash具有相同的存储单元,工作原理也一样,为了缩短存取时间并不是对每个单元进行单独的存取操作,而是对一定数量的存取单元进行集体操作,NAND型Flash各存储单元之间是串联的,而NOR型Flash各单元之间是并联的;为了对全部的存储单元有效管理,必须对存储单元进行统一编址。

    NAND的全部存储单元分为若干个块,每个块又分为若干个页,每个页是512 byte,就是 512个8位数,就是说每个页有512条位线,每条位线下有8个存储单元;那么每页存储的数据正好跟硬盘的一个扇区存储的数据相同,这是设计时为了方便与磁盘进行数据交换而特意安排的,那么块就类似硬盘的簇;容量不同,块的数量不同,组成块的页的数量也不同。在读取数据时,当字线和位线锁定某个晶体管时,该晶体管的控制极不加偏置电压,其它的7个都加上偏置电压 而导通,如果这个晶体管的浮栅中有电荷就会导通使位线为低电平,读出的数就是0,反之就是1。

    NOR的每个存储单元以并联的方式连接到位线,方便对每一位进行随机存取;具有专用的地址线,可以实现一次性的直接寻址;缩短了Flash对处理器指令的执行时间 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多