ROM用来存储程序代码,系统配置参数及系统运行过程中需要记录的各种信息。
目前常用的存储类型有Serial Flash、串行F-RAM、NAND Flash等。
FLASH:在线进行电擦写,掉电后信息不丢失的存储器。低功耗、大容量,可整片或分扇区在线编程和擦除,通常用于存放程序代码、常量表以及一些在系统掉电后需要保存的用户数据等。
NOR和NAND是现在市场上两种主要的非易失闪存技术。
NOR FLASH的特点是芯片内执行(XIP, Execute In Place就位执行),这样应用程序可以直接在FLASH闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
NAND结构能提供极高的存储单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。
接口差别:
NOR带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。
NAND器件使用复杂的I/O口来串行存取数据,各个产品或厂商的方法个不相同。8个引脚用来传送控制、地址和数据信息。
NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。
容量和成本:
NAND的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。
NOR占据了容量1-16MB闪存市场的大部分,而NAND只是用在8-128MB的产品当中,这也就说明了NOR主要应用于代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。
同时NAND受到位反转和坏块的影响其单元尺寸几乎是NOR FLASH的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了成本。NAND中每个块的最大擦写次数是一百万次,而NOR FLASH的擦写次数是十万次,因此NAND更具有优势。,需要ECC算法和标记坏块对这些现象进行相应处理。
寿命:
在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。但位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。
坏块处理:
NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。
NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。
易于使用:
可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。
由于需要I/O接口,NAND要复杂的多。各种NAND器件的存取方法因厂家而已。
在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师决不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。
软件支持:
当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。
在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作是,通常需要驱动程序,也就是闪存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。
使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TureFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。
驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。
ONENAND是针对消费类电子和下一代移动手机市场而设计的,一种高可靠性嵌入式存储设备。其集成了SRAM的缓存和逻辑接口,既实现NOR Flash的高速读取速度,又保留了NAND-Flash的大容量数据存储的优点。基于ONENAND的芯片组的主要目标将是3G电话。写速度为17MB/s的这种存储器能保证对超过HSDPA规定的连续数据流无线下载。除多媒体手机设计外,ONENAND肯定是混合硬盘用非易失性缓冲器一个有价值的选择。目前,采用60nm工艺技术的芯片可提供高达2Gb的存储容量。
ONENAND/NAND/ Nor 三种Flash的区别
应用需求 | NAND-Flash | NOR Flash | ONENAND |
快速随机读取 | √ | ||
快速顺序读取 | √ | √ | √ |
快速 写/编程 | √ | √ | |
同时擦除多个块 | √ | √ (最大个块) | |
擦除的挂起/恢复 | √ | √ | |
写回 | √(错误检测) | √ (错误检测与纠正) | |
锁/解锁/紧锁 | √ | √ | |
错误纠正 | 外部 (硬件/软件) | 不需要 | 内置 |
扩展性 | √ | √ | |
接口 | 复杂的I/O口 | SRAM接口 | |
读写的基本单位 | 页面,大小一般512字节 | 字 | |
读速度 | 稍慢 | 稍快 | |
写速度 | 很快 | 慢 | |
擦出速度 | 快(4ms) | 慢(5s) | |
容量 | 可以做的很大,适合于数据存储 | 主要用于代码存储 |
ATMEL的Serial flash(AT45XXX Data Flash,AT25XXX BIOS Flash):
品牌 | 存储器类型 | 型号 | 存储空间 | 接口类型 |
ATMEL | Data Flash | AT45DB011D | 1Mb | - |
AT45DB021D | 2Mb | - | ||
AT45DB041D | 4Mb | - | ||
AT45DB081D | 8Mb | - | ||
AT45DB161D | 16Mb | - | ||
AT45DB321D | 32Mb | - | ||
AT45DB2D | Mb | - | ||
BIOS Flash | AT25DF041A | 4Mb | SPI | |
AT25DF081A | 8Mb | |||
AT25DF321A | 32Mb | |||
AT25DF1A | Mb |
品牌 | 存储器类型 | 接口 类型 | 封装 | 型号 | 存储 空间 | 最大工作 电流 | 最大读写 频率 | 电压 |
RAMTRON | 串行F-RAM | I2C | SOIC8 | FM24V01 | 128kb | 1.0mA | 3.4MHz | 3.3V |
FM24V02 | 256kb | |||||||
FM24V05 | 512kb | |||||||
FM24V10 | 1Mb | |||||||
FM24CL04B | 4kb | 300uA | 1.0MHz | 3.3V | ||||
FM24CL16B | 16kb | |||||||
FM24CLB | kb | |||||||
FM24C04B | 4kb | 400uA | 1.0MHz | 5.0V | ||||
FM24C04C(NEW) | 4kb | |||||||
FM24C16B | 16kb | |||||||
FM24C16C | 16kb | |||||||
FM24CB | kb | |||||||
FM24CC (NEW) | kb | |||||||
SPI | SOIC8 | FM25W256 | 256kb | 2mA | 20MHz | 3.3V或5V | ||
FM25V01 | 128kb | 2.5mA | 40MHz | 3.3V | ||||
FM25V02 | 256kb | 2.5mA | ||||||
FM25V05 | 512kb | 3mA | ||||||
FM25V10 | 1Mb | 3mA | ||||||
TDFN8 EIASOIC8 | FM25H20 | 2Mb | 10mA | |||||
SOIC8 | FM25C04B | 4kb | 4mA | 20MHz | 5V | |||
FM25C04C (NEW) | 4kb | |||||||
FM25C160B | 16kb | |||||||
FM25C160C (NEW) | 16kb | |||||||
FM25040B | 4kb | |||||||
FM250B | kb | |||||||
FM250C (NEW) | kb | |||||||
FM25L04B | 4kb | 3mA | 20MHz | 3.3V | ||||
FM25L16B | 16kb | |||||||
FM25CLB | kb |
K9XXXXXXXX-XXXXXXX,适合大批量数据存储。
XX:代表存储容量,存储容量等级包括:4M/8M/16M/32M/M/128M/256M/512M和1G/2G/4G/8G/16G/24G/32G/48G/G/96G/128G/256G/384G/512G。
供电电压有1.8V,3.3V,5V三个常用等级。