FLASH概述

    Flash 是存储芯片的一种,通过特定的程序可以修改里面的数据。Flash 存储器又称闪存,它结合了ROM 和RAM 的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM 的优势), U 盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash 全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader 以及操作系统或者程序代码或者直接当硬盘使用(U 盘)。

 

目前Flash 主要有两种NOR Flash 和NADN Flash。NOR Flash 的读取和我们常见的SDRAM 的读取是一样,用户可以直接运行装载在NOR FLASH 里面的代码,这样可以减少SRAM 的容量从而节约了成本。NAND Flash 没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash 比较廉价。用户不能直接运行NAND Flash 上的代码,因此好多使用NAND Flash 的开发板除了使用NAND Flah 以外,还作上了一块小的NOR Flash 来运行启动代码。一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH 应用是嵌入式系统采用的D O C(Disk On Chip)和我们通常用的"闪盘",可以在线擦除。NOR Flash 和NAND Flash 是现在市场上两种主要的非易失闪存技术。Intel 于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM 和EEPROM 一统天下的局面。紧接着,1989年,东芝公司发表了NAND Flash 结构,强调降低每比特的成本,有更高的性能,并且像磁盘一样可以通过接口轻松升级。NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash 闪存内运行,不必再把代码读到系统RAM 中。NOR 的传输效率很高,在1~4MB 的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。NAND 的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND 的困难在于Flash 的管理和需要特殊的系统接口。通常NOR 的速度比NAND稍快一些,而NAND 的写入速度比NOR 快很多,在设计中应该考虑这些情况。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu Mxic,而生产NAND Flash 的主要厂家有Samsung 和Toshiba 及Hynix。

 

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 的擦除单元更小,相应的擦除电路更少。

 

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

 

NAND flash 的单元尺寸几乎是NOR 器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。NOR flash 占据了容量为1~16MB 闪存市场的大部分,而NAND flash 只是用在8~128MB 的产品当中,这也说明NOR 主要应用在代码存储介质中,NAND 适合于数据存储,NAND 在CompactFlash、Secure Digital、PC Cards 和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器件上自始至终都必须进行虚拟映射。

  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值