微机原理NAND FLASH 和NOR FLASH区别.docx
《微机原理NAND FLASH 和NOR FLASH区别.docx》由会员分享,可在线阅读,更多相关《微机原理NAND FLASH 和NOR FLASH区别.docx(20页珍藏版)》请在冰豆网上搜索。
微机原理NANDFLASH和NORFLASH区别
NANDFLASH和NORFLASH区别
NOR和NAND是现在市场上两种主要的非易失闪存技术。
Intel于1988年首先开发出NORflash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。
紧接着,1989年,东芝公司发表了NANDflash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。
但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。
相“flash存储器”经常可以与相“NOR存储器”互换使用。
许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。
而NAND则是高数据存储密度的理想解决方案。
NOR的特点是芯片内执行(XIP,eXecuteInPlace),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。
NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。
应用NAND的困难在于flash的管理和需要特殊的系统接口。
性能比较
flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。
任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。
NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。
由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。
执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。
这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。
●NOR的读速度比NAND稍快一些。
●NAND的写入速度比NOR快很多。
●NAND的4ms擦除速度远比NOR的5s快。
●大多数写入操作需要先进行擦除操作。
●NAND的擦除单元更小,相应的擦除电路更少。
接口差别
NORflash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。
NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。
8个引脚用来传送控制、地址和数据信息。
NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。
容量和成本
NANDflash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。
NORflash占据了容量为1~16MB闪存市场的大部分,而NANDflash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、SecureDigital、PCCards和MMC存储卡市场上所占份额最大。
可*性和耐用性采用flahs介质时一个需要重点考虑的问题是可*性。
对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。
可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可*性。
寿命(耐用性)在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。
NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。
位交换所有flash器件都受位交换现象的困扰。
在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。
一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。
如果只是报告有问题,多读几次就可能解决了。
当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。
位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。
这个问题对于用NAND存储多媒体信息时倒不是致命的。
当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可*性。
坏块处理
NAND器件中的坏块是随机分布的。
以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。
NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。
在已制成的器件中,如果通过可*的方法不能进行这项处理,将导致高故障率。
易于使用可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。
由于需要I/O接口,NAND要复杂得多。
各种NAND器件的存取方法因厂家而异。
在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。
向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。
软件支持当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。
在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。
使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被WindRiverSystem、Microsoft、QNXSoftwareSystem、Symbian和Intel等厂商所采用。
驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。
IntelFlash芯片i28f160,i28f320:
i28F320B:
64*64K,64个blocks,4M空间,每个block64K,第一个64K由8个8*8K小blocks组成.
每个Black可以被独立擦写(寿命周期)100,000次以上
Flash操作的大概步骤:
flash读写操作中,读应该很简单,和RAM一样,写就复杂一点.
Intel TE28F320C3的flash是4M空间
flash空间,划分成许多的block,Intel TE28F320C3的flash是4M空间,64个block,每个block由64K.
要对所有的block单独进行操作, 每个操作结束,都需要判断状态,
每个block操作的大概步骤如下:
1.unlock
2.erase
3.check empty
所有的block完成上述操作,且状态正确,才能进行下一步,写
4.write
NAND闪存(K9F1208U0A)的数据存储结构分层为:
1设备(Device)=4096块(Block);1块=32页/行(Page/row);1页=528B=数据块(512B)+OOB块(16B)
在每一页中,最后16个字节(又称OOB)在NAND闪存命令执行完毕后设置状态,剩余512个字节又分为前半部分和后半部分。
可以通过NAND闪存命令00h/01h/50h分别对前半部、后半部、OOB进行定位,通过NAND闪存内置的指针指向各自的首地址。
NAND闪存的操作特点为:
擦除操作的最小单位是块;NAND闪存芯片每一位只能从1变为0,而不能从0变为1,所以在对其进行写入操作之前一定要将相应块擦除;OOB部分的第6字节为坏快标志,即如果不是坏块该值为FF,否则为坏块;除OOB第6字节外,通常用OOB的前3个字节存放NAND闪存的硬件ECC(校验寄存器)码;
flash有NOR和NAND等不同的形式。
以下从我们做layout的角度来看他们的区别,如下2图:
Figure
(1) figure
(2)
看过上图,layoutengineer们最先得出的结论应该是什么呢?
对!
是尺寸,即size不同。
显然,NOR的cell都是单个的,而NAND的cell却是可以串联起来(省了contact的面积)。
由此,组成cellarray时size区别也就明显了,不难得出结论是NAND的面积远小于NOR。
(面积小代表什么?
成本啊,嘿嘿!
)
单个独立的basiccell,虽然缺点是拉大了面积,但优点也是显而易见的。
也就是可以精确到每一个bit,并且是可以独立的。
就这点来看,如果是读NOR的优势明显,而NAND却需要打开(figure1)垂直方向上的所有MOS,才能确认到是哪个bit,因此引发我们想像到,
(1),要把无关的MOS都打开,不是增加了读出时间吗?
(2),如果垂直方向上有一个MOS损坏了,其他的MOS不也就无效了吗?
这个想法事实没有错。
(1),说明NOR的读出速度优于NAND;
(2),Designer需要更多注意到这一点上来,而且要保证,如果有损坏就不再去读到这些MOS。
因此,出于安全考虑,在编程方面也会注意不使用NANDflash来灌code,也就是代码存储器要使用NORFlash。
再回到面积上来,面积大最直接的讲,就是很困难做大,想在有限的空间内,放入更多的cell就要提高工艺水平和设计水平,目的只有一个――缩小size。
NAND在读的方面输给了NOR,但写入的速度却比NOR要强了不少。
结论是NAND的写速度快于NOR。
但怎么讲,目前flash的写入速度都不是很快。
闪存名称的由来主要就是因为其存储介质是FlashMemory,有多种技术能实现半导体存储,其中主要有NAND(与非)和NOR(异或)两种。
而我们如今用的“大容量”闪盘基本都是NAND型的,这是为什么呢?
最主要的原因是:
两者容量/单位成本!
其次是速度!
都有很大不同,因此应用场合有所不同。
先来讲讲速度
Flash闪存是非易失存储器(所谓非易失性即掉电仍旧能保存信息的特性),可以对称为块的存储器单元“块”进行擦写和再编程。
NAND电子盘模块结构图,内部不存在存储控制器,我们可以简单地认为某容量(比如32MB)内部分成一个个小方块似的存储空间,每个空间内都能存储一定量大小的信息。
NOR型闪存的块大小为64~128KB,而NAND型闪存块的大小为8~32KB,在上一篇中介绍的三星闪存块头大小就是16KB,整个32MB容量是由2000个这样大小的存储空间组成。
任何Flash闪存的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除操作。
NAND闪存执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位(bit)都写为0。
NAND型的单元排列是串行的,而NOR型则是并行的。
在NAND型闪存中,存贮单元被分成页,由页组成块。
根据容量不同,块和页的大小有所不同,而组成块的页的数量也会不同,如8MB的模块,页大小为(512+16)Byte、块大小为(8K+256)Byte;而2MB模块,页大小为(256+8)Byte、块大小为(4K+128)Byte。
该三星闪存芯片的页大小为(512+16)Byte,块大小为(16K+512)Byte
NAND型存贮单元的读写是以块和页为单位来进行的,像硬盘多过像传统的内存。
实际上,NAND型的FlashMemory可以看做是顺序读取的设备,它仅用8比特的I/O端口就可以存取按页为单位的数据。
正因为这样,它在读和擦文件、特别是连续的大文件时,与NOR型的FlashMemory相比速度相当的快。
但NAND型的不足在于随机存取速度较慢,而且没有办法按字节写;这些方面就恰好是NOR型的优点所在:
NOR型随机存取速度较快,而且可以随机按字节写。
正因为这些特点,所以NAND型的FlashMemory适合用在大容量的多媒体应用中,而NOR型适合应用在数据/程序存贮应用中。
好了,我们来看一下两者写入/擦除的速度有何不同:
NOR NAND
写入/擦除一个块操作时间1~5s 2~4ms
读性能 1200~1500KB 600~800KB
写性能 <80KB 200~400KB
大家看到,根本不是一个数量等级上的,大概相差1000倍!
所以NOR型闪存比NAND慢了很多——尤其是在写入数据时。
为什么会慢呢?
除了执行动作“与非”比“异或”操作快很多外(这个在基础电子学中说得非常明白),另一个原因是NOR的每块体积大,肥肉多,电子要把其一口吞掉实在是需要多花费功夫的。
而且,执行擦除操作时尺寸的不同进一步拉大了两者之间的性能差距。
我们把两者总结如下:
※NOR的读速度比NAND稍快一些;
※NAND的写入速度比NOR快很多;
※NAND的4ms擦除速度远比NOR的5s快;
※大多数写入操作需要先进行擦除操作;
※NAND的擦除单元更小,相应的擦除电路更少。
但是,速度问题就这么简单吗?
我们再来看看两者接口的不同对速度造成的影响。
NOR
NAND
接口/总线
SRAM接口/独立的地址数据总线
8位地址/数据/控制,I/O接口复杂
读取模式
随机读取快
串行地存取数据
我们看到,NOR因为有足够的地址引脚来寻址,Cell索引表与每个WordLine及BitLine相连,可以很容易地随机存取其内部的每一个字节,而NAND却不同,Cell表紧密连接,一串中只有前后Cell才与BitLine相连,因此集成度较高,处理速度较慢——尤其是随机读取时需要一串串查找。
再来讲讲成本、容量和寿命的区别
NAND成本较低,单元尺寸约为NOR的一半,生产过程简单,同样大小可以做更大的容量。
容量及应用场合1~16MB,主要用于存储代码8MB~1GB,主要用于存储数据,比如CompactFlash、SecureDigital、PCCards和MMC存储卡从电子制造成本方面说,越小精密度越高的东西反而成本越低(这与做MP3不同),当然,采用先进制造工艺比如.18微米工艺能大幅降低成本。
最后说说可靠性和寿命问题
NOR NAND
擦写次数(耐用性) 约10万次 约100万次
位交换(bit位反转) 少 较多
关键性数据需要错误探测/错误更正(EDC/ECC)算法
坏块处理无,因为坏块故障率少、随机分布,无法修正
我们看到,NAND闪存除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些,而且寿命较长,是NOR的十倍左右。
其次,NAND因为是内部是半导体存储模块(晶体管),很难保证寿命期内没有任何坏块出现(晶体管在高温、震动或者疲劳读写情况下容易失效),我们通常是通过对闪存进行初始化扫描发现坏块,并将其标记为不可用——这样一来,闪盘的容量会越来越少,不信你连续格式化100次,看看有没有“缩水”的?
这很好地解释了闪盘容量“神秘”减少的原因。
闪盘的驱动决定了存储的数据决不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。
简单地说,NOR型闪存像内存,存储程序代码为主,CPU能直接处理,我们可以称之为CodeFlash;NAND型闪存像硬盘,存储数据为主,容量大,我们称之为DataFlash。
总之,鉴于NAND型闪存拥有大容量低成本高速度小体积的先天优势,它当然是作为闪盘的首选存储介质啦!
NOR和NAND是现在市场上两种主要的非易失闪存技术。
Intel于1988年首先开发出NORflash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。
紧接着,1989年,东芝公司发表了NANDflash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。
但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。
相“flash存储器”经常可以与相“NOR存储器”互换使用。
许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。
而NAND则是高数据存储密度的理想解决方案。
NOR的特点是芯片内执行(XIP,executeInPlace),这样应用程序可以接在flash闪存内运行,不必再把代码读到系统RAM中。
NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。
应用NAND的困难在于flash的管理和需要特殊的系统接口。
性能比较
flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。
任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。
NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。
由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。
执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时更多的擦除操作必须在基于NOR的单元中进行。
这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。
●NOR的读速度比NAND稍快一些。
●NAND的写入速度比NOR快很多。
●NAND的4ms擦除速度远比NOR的5s快。
●大多数写入操作需要先进行擦除操作。
●NAND的擦除单元更小,相应的擦除电路更少。
接口差别
NORflash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。
NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。
8个引脚用来传送控制、地址和数据信息。
NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。
容量和成本
NANDflash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。
NORflash占据了容量为1~16MB闪存市场的大部分,而NANDflash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、SecureDigital、PCCards和MMC存储卡市场上所占份额最大。
可靠性和耐用性
采用flahs介质时一个需要重点考虑的问题是可靠性。
对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。
可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。
寿命(耐用性)
在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。
NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。
位交换
所有flash器件都受位交换现象的困扰。
在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。
一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。
如果只是报告有问题,多读几次就可能解决了。
当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。
位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。
这个问题对于用NAND存储多媒体信息时倒不是致命的。
当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。
坏块处理
NAND器件中的坏块是随机分布的。
以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。
NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。
在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。
易于使用可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。
由于需要I/O接口,NAND要复杂得多。
各种NAND器件的存取方法因厂家而异。
在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。
向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。
软件支持
当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。
在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。
使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被WindRiverSystem、Microsoft、QNXSoftwareSystem、Symbian和Intel等厂商所采用。
驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗。
闪存(FlashMemory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位,区块大小一般为256KB到20MB。
闪存是电子可擦除只读存储器(EEPROM)的变种,EEPROM与闪存不同的是,它能在字节水平上进行删除和重写而不是整个芯片擦写,这样闪存就比EEPROM的更新速度快。
由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本输入输出程序)、PDA(个人数字助理)、数码相机中保存资料等。
另一方面,闪存不像RAM(随机存取存储器)一样以字节为单位改写数据,因此不能取代RAM。
闪存卡(FlashCard)是利用闪存(FlashMemory)技术达到存储电子信息的存储器,一般应用在数码相机,掌上电脑,MP3等小型数码产品中作为存储介质,所以样子小巧