注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Java鸟

真才实料

 
 
 

日志

 
 

嵌入式系统中闪存Flash的种类与选择详解  

2012-07-18 16:10:49|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

嵌入式硬件系统一般都需要有软件的支持才能够正常工作,嵌入式系统需要为软件提供相应的存储空间。在以往的单片机系统内,一般使用ROM(Read Only Memory)或EPROM(Erasable Programmable Read Only Memory)存储程序。由于现有的嵌入式系统越来越复杂,原有的ROM由于容量、灵活性差等的限制,无法满足日益复杂的应用要求。

闪存(Flash Memory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位(注意:NOR Flash 为字节存储。),区块大小一般为256KB到20MB。闪存是电子可擦除只读存储器(EEPROM)的变种,闪存与EEPROM不同的是,它能在字节水平上进行删除和重写而不是整个芯片擦写,这样闪存就比EEPROM的更新速度快。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本输入输出程序)、PDA(个人数字助理)、数码相机中保存资料等。

随着Flash技术的成熟和普及,一些单片机芯片(如Freescale的8位单片机MC68HC908)已经开始采用片内FLASH取代过去常用的片内ROM或EPROM,使单片机具有了在线编程写入或擦除的功能。

可以毫不夸张的说,Flash已经是目前嵌入式最为主要的存储介质。早在二十多年前,Flash Memory就已经被发明出来。在这么多年的发展过程中,Flash Memory技术经过了多次变革和发展,但其变化的总体趋势一直都是:存储容量越来越大、数据读写速度越来越快、性能价格比越来越高。目前日益普及的手机、数码相机、数字摄像机、路由器、交换机等都已广泛利用Flash Memory作为永久性存储器,只不过由于它封装在设备内部,只有开发商和设计人员直接接触、了解它而已。随着U盘的普及,Flash Memory正在被越来越多的普通用户熟悉和关注。

FLASH作为一种安全、快速的存储体,以其体积小、容量大、成本低、掉电数据不丢失等一系列优点,成为了嵌入式系统中数据和程序最主要的载体。FLASH在结构和操作方式上与硬盘、EEROM等其他存储介质有较大区别,闪存的数据删除不是以单个的字节为单位而是以固定的区块为单位,区块大小一般为256KB到20MB。

闪存是电可擦除只读存储器(EEPROM)的变种,EEPROM与闪存不同的是,它能在字节水平上进行删除和重写而不是整个芯片擦写,这样闪存就比EEPROM的更新速度快。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS、PDA、数码相机中保存资料等。另一方面,闪存不像RAM一样以字节为单位改写数据,因此不能取代RAM。

闪存属于内存器件的一种。不过闪存的物理特性与常见的内存有根本性的差异:目前各类 DDR 、 SDRAM 或者 RDRAM 都属于挥发性内存,只要停止电流供应内存中的数据便无法保持,因此每次电脑开机都需要把数据重新载入内存;闪存则是一种不挥发性( Non-Volatile )内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。

1. 根据结构的不同可以将闪存分成NOR FLASH和NAND FLASH两种。但不管哪一种都具有如下特点:

(1)区块结构

FLASH在物理结构上分成若干个区块,区块之间相互独立。比如NOR FLASH把整个Memory分成若干个Sector,而NAND FLASH把整个Memory分成若干个Block;

(2)先擦后写

由于FLASH的写操作只能将数据位从1写成0,不能从0写成1,所以在对存储器进行写入之前必须先执行擦操作,将预写入的数据位初始化为1。擦操作的最小单位是一个区块,而不是单个字节。

(3)操作指令

除了NOR FLASH的读,FLASH的其它操作不能像RAM那样,直接对目标地址进行总线操作。比如执行一次写操作,它必须输入一串特殊的指令(NOR FLASH),或者完成一段时序(NAND FLASH)才能将数据写入到FLASH中。

(4)位反转

由于FLASH固有的电器特性,在读写数据过程中,偶然会产生一位或几位数据错误。这就是位反转。位反转无法避免,只能通过其他手段对结果进行事后处理。

(5)坏块

FLASH在使用过程中,可能导致某些区块的损坏。区块一旦损坏,将无法进行修复。如果对已损坏的区块进行操作,可能会带来不可预测的错误。尤其是NAND FLASH在出厂时就可能存在这样的坏块(已经被标识出)。

 

2. NOR Flash与NAND Flash的比较

(1)NOR Flash与NAND Flash各自特点

NOR型与NAND型闪存的区别很大,打个比方说,NOR型闪存更像内存,有独立的地址线和数据线,但价格比较贵,容量比较小;而NAND型更像硬盘,地址线和数据线是共用的I/O线,类似硬盘的所有信息都通过一条硬盘线传送一般,而且NAND型与NOR型闪存相比,成本要低一些,而容量大得多。因此,NOR型闪存比较适合频繁随机读写的场合,通常用于存储程序代码并直接在闪存内运行,手机就是使用NOR型闪存的大户,所以手机的“内存”容量通常不大;NAND型闪存主要用来存储资料,我们常用的闪存产品,如闪存盘、数码存储卡都是用NAND型闪存。  单片机闪存
这里我们还需要端正一个概念,那就是闪存的速度其实很有限,它本身操作速度、频率就比内存低得多,而且NAND型闪存类似硬盘的操作方式效率也比内存的直接访问方式慢得多。因此,不要以为闪存盘的性能瓶颈是在接口,甚至想当然地认为闪存盘采用USB2.0接口之后会获得巨大的性能提升。   前面提到NAND型闪存的操作方式效率低,这和它的架构设计和接口设计有关,它操作起来确实挺像硬盘(其实NAND型闪存在设计之初确实考虑了与硬盘的兼容性),它的性能特点也很像硬盘:小数据块操作速度很慢,而大数据块速度就很快,这种差异远比其他存储介质大的多。这种性能特点非常值得我们留意。   闪存存取比较快速,无噪音,散热小。用户打算购置的话可以不考虑太多,同样存储空间买闪存。如果硬盘空间大就买硬盘,也可以满足用户应用的需求。

NOR 的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在闪存内运行,不必再把代码读到系统 RAM 中。NOR 的传输效率很高,在 1~4MB 的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。

NAND 结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快,容量大、芯片面积小、单元密度高、擦除速度快、成本低等特点这也是为何所有的 U 盘都使用 NAND 闪存做为存储介质的原因。应用 NAND 的困难在于闪存和需要特殊的系统接口。

(2)性能比较

任何闪存器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。

1) NOR的读速度比NAND稍快一些。

2) NAND的写入速度比NOR快很多。

3) NAND的4ms擦除速度远比NOR的5s快。大多数写入操作需要先进行擦除操作。

4) AND的擦除单元更小,相应的擦除电路更少。

(3)接口差别

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

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

(4)容量和成本

NAND 闪存的单元尺寸几乎是NOR闪存的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。
    NOR 闪存占据了1~16MB 闪存市场的大部分,而NAND闪存只是用在8MB以上的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于资料存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。

(5)可靠性和耐用性

采用闪存介质时一个需要重点考虑的问题是可靠性。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。

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

所有闪存器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR 多),一个比特位会发生反转或被报告反转了。一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就可能解决了。

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

  评论这张
 
阅读(297)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018