NAND Flash与NOR Flash究竟有何不同|半导体行业观察
来源:内容由 微信公众号 半导体行业观察 (ID:icbank) 翻译自「embedded」,作者 Avinash Aravindan,谢谢。
嵌入式系统设计人员在选择闪存时必须考虑许多因素:使用哪种类型的Flash架构,是选择串行接口还是并行接口,是否需要校验码(ECC)等。如果处理器或控制器仅支持一种类型的接口,则会限制选项,因此可以轻松选择内存。但是,情况往往并非如此。例如,一些FPGA支持串行NOR闪存、并行NOR闪存和NAND闪存来存储配置数据,同样,它们也可以用来存储用户数据,这使得选择正确的存储器件更加困难。本文将讨论闪存的不同方面,重点放在NOR闪存和NAND闪存的差异方面。
存储架构
闪存将信息存储在由浮栅晶体管制成的存储单元中。这些技术的名称解释了存储器单元的组织方式。在NOR闪存中,每个存储器单元的一端连接到源极线,另一端直接连接到类似于NOR门的位线。在NAND闪存中,几个存储器单元(通常是8个单元)串联连接,类似于NAND门(参见图1)。
NOR Flash(左)具有类似NOR门的架构。NAND Flash(右)类似于NAN
NOR Flash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100%已知的零件寿命。缺点包括较大的单元尺寸导致每比特的较高成本和较慢的写入和擦除速度。
相比之下,与NOR闪存相比,NAND闪存具有更小的单元尺寸和更高的写入和擦除速度。缺点包括较慢的读取速度和I / O映射类型或间接接口,这更复杂并且不允许随机访问。值得注意的是,NAND Flash中的代码执行是通过将内容映射到RAM来实现的,这与直接从NOR Flash执行代码不同。另一个主要缺点是存在坏块。NAND闪存通常在部件的整个生命周期内出现额外的位故障时具有98%的良好位,因此,器件内需要ECC功能。
存储容量
与NOR闪存相比,NAND闪存的密度要高得多,主要是因为其每比特成本较低。NAND闪存通常具有1Gb至16Gb的容量。NOR闪存的密度范围从64Mb到2Gb。由于NAND Flash具有更高的密度,因此主要用于数据存储应用。
擦除/读写
在NOR和NAND闪存中,存储器被组织成擦除块。该架构有助于在保持性能的同时保持较低的成本,例如,较小的块尺寸可以实现更快的擦除周期。然而,较小块的缺点是芯片面积和存储器成本增加。由于每比特成本较低,与NOR闪存相比,NAND闪存可以更经济高效地支持更小的擦除块。目前,NAND闪存的典型块大小为8KB至32KB,NOR Flash为64KB至256KB。
NAND闪存中的擦除操作非常简单,而在NOR闪存中,每个字节在擦除之前都需要写入“0”。这使得NOR闪存的擦除操作比NAND闪存慢得多。例如,NAND闪存S34ML04G2需要3.5ms才能擦除128KB块,而NOR闪存S70GL02GT则需要约520ms来擦除类似的128KB扇区。这相差近150倍。
如前所述,NOR闪存具有足够的地址和数据线来映射整个存储区域,类似于SRAM的工作方式。例如,具有16位数据总线的2Gbit(256MB)NOR闪存将具有27条地址线,可以对任何存储器位置进行随机读取访问。在NAND闪存中,使用多路复用地址和数据总线访问存储器。典型的NAND闪存使用8位或16位多路复用地址/数据总线以及其他信号,如芯片使能,写使能,读使能,地址锁存使能,命令锁存使能和就绪/忙碌。NAND Flash需要提供命令(读,写或擦除),然后是地址和数据。这些额外的操作使NAND闪存的随机读取速度慢得多。例如,NAND闪存S34ML04G2需要30μS,而NOR闪存S70GL02GT需要120nS。因此,NOR比NAND快250倍。
为了克服或减少较慢读取速度的限制,通常以NAND闪存中的页方式读取数据,每个页是擦除块的较小子部分。仅在每个读取周期开始时使用地址和命令周期顺序读取一页的内容。NAND闪存的顺序访问持续时间通常低于NOR闪存设备中的随机访问持续时间。利用NOR Flash的随机访问架构,需要在每个读取周期切换地址线,从而累积随机访问以进行顺序读取。随着要读取的数据块的大小增加,NOR闪存中的累积延迟变得大于NAND闪存。因此,NAND Flash顺序读取可以更快。但是,由于NAND Flash的初始读取访问持续时间要长得多,两者的性能差异只有在传输大数据块时才是明显的,通常大小要超过1 KB。
在两种Flash技术中,只有在块为空时才能将数据写入块。NOR Flash的慢速擦除操作使写操作更慢。在NAND Flash中,类似于读取,数据通常以页形式编写或编程(通常为2KB)。例如,单独使用NAND闪存S34ML04G2 写入页面需要300μS。
为了加快写入操作,现代NOR Flashes还采用类似于页面写入的缓冲区编程。例如,前文所述的NOR闪存S70GL02GT,支持缓冲器编程,这使其能够实现与单词相似写入超时多字节编程。例如,512字节数据的缓冲区编程可以实现1.14MBps的吞吐量。
能耗
NOR闪存在初始上电期间通常需要比NAND闪存更多的电流。但是,NOR Flash的待机电流远低于NAND Flash。两个闪存的瞬时有功功率相当。因此,有效功率由存储器活动的持续时间决定。NOR Flash在随机读取方面具有优势,而NAND Flash在擦除,写入和顺序读取操作中消耗的功率相对较低。
可靠性
保存数据的可靠性是任何存储设备的重要性能指标。闪存会遭遇称为位翻转的现象,其中一些位可以被反转。这种现象在NAND闪存中比在NOR闪存中更常见。出于产量考虑,NAND闪存随附着散布的坏块,随着擦除和编程周期在NAND闪存的整个生命周期中持续,更多的存储器单元变坏。因此,坏块处理是NAND闪存的强制性功能。另一方面,NOR闪存带有零坏块,在存储器的使用寿命期间具有非常低的坏块累积。因此,当涉及存储数据的可靠性时,NOR Flash具有优于NAND Flash的优势。
可靠性的另一个方面是数据保留,这方面,NOR Flash再次占据优势,例如,NOR Flash闪存S70GL02GT提供20年的数据保留,最高可达1K编程/擦除周期,NAND闪存S34ML04G2提供10年的典型数据保留。
编程和擦除周期的数量曾是一个需要考虑的重要特性。这是因为与NOR闪存相比,NAND闪存用于提供10倍更好的编程和擦除周期。随着技术进步,这已不再适用,因为这两种存储器在这方面的性能已经很接近。例如,S70GL02GT NOR和S34ML04G2 NAND都支持100,000个编程 - 擦除周期。但是,由于NAND闪存中使用的块尺寸较小,因此每次操作都会擦除较小的区域。与NOR Flash相比,其整体寿命更长。
表1提供了本文中讨论的主要内容摘要。
NOR闪存和NAND闪存的主要特性与一般和具体比较数据的比较。
通常,NOR闪存是需要较低容量、快速随机读取访问和更高数据可靠性的应用的理想选择,例如代码执行所需。NAND闪存则非常适用于需要更高内存容量和更快写入和擦除操作的数据存储等应用。
NOR Flash 和 NAND Flash 的区别
参考于《ARM嵌入式系统开发典型模块》一书,仅用于笔记学习,如果侵删
Flash Memory是一种非易失性的存储器。
Flash 按照结构可以分为 nor flash 和 nand flash两大类,两者的读取速率差不多。
NOR flash的特点就是芯片内执行,这样应用程序可以直接在 flash 内存内运行,不必再把代码读到系统 RAM 中。nor flash 的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
鉴于NOR Flash擦写速度慢,成本高等特性,NOR Flash主要应用于小容量、内容更新少的场景,例如PC主板BIOS、路由器系统存储等。
NAND FLASH写入性能好,大容量下成本低。目前,绝大部分手机和平板等移动设备中所使用的eMMC内部的Flash Memory都属于NAND FLASH。PC中的固态硬盘中也是使用NAND FLASH。
NAND flash 结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用nand flash 的困难在于flash 的管理和需要的特殊接口。
总结nor flash 和 nand flash的差别在以下的几个方面
1、容量和成本
nor flash 的容量大小为1MB~32MB ,而nand flash 的为16MB~512MB。nand flash 的单元尺寸几乎是nor flash 的一半,由于生产的过程更为简单,因此价格也是相对低。
2、性能差别
(1)nor flash 的读速度比 nand flash稍快一些
(2)nor flash 的写入速度比 nand flash 慢了很多
(3)nand flash 的4ms擦除速度远比nor flash 的5s 快
(4)nand flash 的擦除单元更小,相应的擦除电路也久更小
3、接口差别
nor flash 的接口和RAM一样,而 nand flash 是使用I/O口来串行地存取数据。
3.1 NOR Flash根据与CPU端接口的不同,可以分为Parallel NOR Flash和SPI NOR FLASH两类。
NAND FLASH 需要通过专门的NFI(NAND FLASH Interface)与Host端进行通信,如下图所示:
4、易用性
使用nor flash 的相对简单,可以非常直接地使用基于 nor flash 地内存,可以像其他存储器那样连接,还可以直接在上面运行代码
而使用 nand flash 的话就复杂了,需要I/O接口,必须先写入驱动程序,才可以继续执行其他的操作。
5、耐用性
在nand flash内存中的每个块的最大擦除写次数是100万次,而nor flash 的擦写次数是10万次。
NAND FLASH根据每个存储单元内存储比特个数的不同,可以分为SLC(Single-LevelCell)、MLC(MulTI-LevelCell)和TLC(Triple-LevelCell)三类。其中,在一个存储单元中,SLC可以存储1个比特,MLC可以存储2个比特,TLC则可以存储3个比特。每一个存储单元内部通过不同的电压等级来表示其所存储的信息。在SLC中,存储单元的电压被分为两个等级,分别表示0和1两个状态,即1个比特;在MLC中,存储单元的电压则被分为4个等级,分别表示00011011四个状态,即2个比特位;同理,在TLC中,存储单元的电压被分为8个等级,存储3个比特信息。
NAND FLASH的单个存储单元存储的比特位越多,读写性能会越差,寿命也越短,但是成本会更低。
6、坏块处理
nand flash 器件中的坏处是随机分布的
nand flash 器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。
7、位交换
所有flash器件都受位交换现象的困扰。在某些情况下(很少见,nand flash发生的次数要比nor flash多),一个比特位会发生反转或被报告反转了。
一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就可能解决了。当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。
这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。
8、主要用途
nor flash常用于保存代码和关键数据。nand flash 用于保存数据。
9、软件支持
当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。
在NOR器件上运行代码不需要任何的软件支持,
在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),
NAND和NOR器件在进行写入和擦除操作时都需要MTD。
使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。
驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。
相关问答
为什么我的电脑安装不了flashplayer,他说与ie浏览器发生冲突...IE浏览器要分系统的,XP的有64位和32位的系统,WIN7的也是。要下对应的IE版本才...你是不是开着网页装的FLASHPLAYER啊有用(0)回复系统自带的IE是和系统捆绑在...
adobe flash player在360极速浏览器被禁用怎么处理?-ZOL问答讲道理Flashplayer是大部分浏览器都会用到的不该被禁啊....有用(0)回复vkwangweisky建议打开软件管家,在里边找到最新Flash插件,安装就可以了。有用(0)回.....
主板BIOS的 FLASH RAM或EPROM错误,如何维修?AwardBIOS:1短:系统正常启动2短:常规错误。解决方法:重设BIOS1长1短:RAM或主板出错1长2短:显示器或显示卡错误1长3短:键盘控制器错误1长9短:主板FLASH...
为何 flash 在导出影片后不能播放-ZOL问答像as语句的flash,像舞台上只有一帧(影片剪辑元件),如转视频格式(avi或gif格式)...以a按钮为例,先命名,如a_btn;剪辑a命名为a_mc主时间轴代码可为AS2代码a_btn.....
华硕电脑开机一直出现aptio setup utility-copyright (c) 201...如果安装的是克隆版系统或者win7可用以下方法试试在BIOS设置中找到Security标签,找到SecureBOOTmenu项,回车找到SecureBOOTControl项,回车将Ena...
P4在格式化过程中没电关机了 再打开后显示 flash error 而且...内存卡是不是坏了有用(0)回复这应该是系统调用错误,误删除了系统文件。报售后吧。有用(0)回复不能格式化,连接电脑没反应,那就应该是中病毒了,要拿去修...
你好,我的小米4线刷不成功,miflash刷机时显示partition tabl...在flash_all.bat文件中开始位置增添“fastboot%*flashpartition"%~dp0images\gpt_both0.bin"||@echo&...
华硕开机显示 ASUS Tek.Easy Flash Utility 是什么問題-ZOL问答BIOSROMEASYFLASHUTILITYU1.12应该是个跟刷BIOS有关的功能ALT+F4就是关...我的刚刚这样好了,看其他的说主板坏了啥的好吓人!第一次解答哎!有用(1...
flash 导入PDF格式为什么文字不能正常显示 - ??雯? 的回答 - 懂得坏了
flash 的读音 flash 是读福辣虚,还是读福累虚,我在网上找的发音...[最佳回答]错是福来n屎福烂屎都差不多后者比较接近.flæ最后一个音标为安的接近音.是鹅挨连读的音你看它音标的设计就知道了是两个音标合在一起的...