关于FLASH、EEPROM、RAM、ROM等

本文深入解析EEPROM、Flash、RAM与ROM四种存储器技术,从专业角度阐述它们各自的特点与应用。重点区分了EEPROM与Flash的擦写方式、容量与价格差异,以及RAM与ROM的存储特性和用途。同时,文章对比了NOR Flash与NAND Flash的不同,展示了Flash在嵌入式系统中的广泛应用。最后,概述了存储器技术的未来趋势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 综述

 

2 EEPROM和FLASH

从专业角度来讲,EEPROM、EPROM、FLASH都是基于一种浮栅管单元(Floating gate transister)的结构,但是各有区别。

EPROM的浮栅处于绝缘的二氧化硅层中,充入的电子只能用紫外线的能量来激出。

EEPROM的单元是由FLOTOX(Floating- gate tuneling oxide transister)及一个附加的Transister 组成,由于FLOTOX 的特性及两管结构,所以可以单元读/写。

FLASH是结合EPROM 和EEPROM 技术达到的,很多FLASH 使用雪崩热电子注入方式来编程,擦除和EEPROM 一样用 Fowler-Nordheim tuneling。但主要的不同是,FLASH 对芯片提供大块或整块的擦除,这就 降低了设计的复杂性,它可以不要 EEPROM 单元里那个多余的Tansister,,所以可以做到高集成度,大容量,另FLASH 的浮栅工艺上也不同,写入速度更快。

其实以上都是废话,对于我们用户而言,我们只需要知道下面的信息,而且我们基本上只会用打拼EEPROM或FLASH:

1、EEPROM 可以(是可以还是只能?)按"位"擦写,而FLASH 只能一大片一大片的擦。

2、EEPROM 一般容量都不大,如果大的话,EEPROM 相对与FLASH 就没有价格上的优势了。 市面上卖的stand alone 的EERPOM 一般都是在64KB 以下,而FLASH 一般都是8M以上。 

3、EERPOM 一般用于低端产品,读的速度不需要那么快其实也是可以做的和FLASH 差不多的。 

4、因EEPROM 的存储单元是两个管子而FLASH 是一个(SST 的除外,类似于两管), 所以CYCLING 的话,EEPROM 比FLASH 要好一些,到1000K 次也没有问题的。

总的来说,对与用户来说,EEPROM 和FLASH 没有大的区别,只是EEPROM 是低端产品, 容量低,价格便宜,但是稳定性较FLASH 要好一些。 但对于EEPROM 和FLASH 的设计来说,FLASH 则要难的多,不论是从工艺上的还是从外围 电路设计上来说。

3 RAM和ROM

ROM(Read Only Memory只读存储器) 和RAM (Random Access Memory随机存储器)指的都是半导体存储器。ROM 掉电不丢失,RAM 掉电丢失。典型的RAM 就是计算机的内存。 

3.1 RAM的2大类

RAM 有两大类,一种称为静态RAM(Static RAM即SRAM)"静态"是指只要不掉电,存储在SRAM 中的数据就不会丢失。另一种称为动态RAM(Dynamic RAM,即DRAM)。

SRAM速度非常快,是目前读写最 快的存储设备了,但是非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU 的一级缓 冲,二级缓冲。DRAM 保留数据的时间很短,速度 也比SRAM 慢,不过它还是比任何的ROM 都要快,但从价格上来说DRAM 相比SRAM 要便宜很多,计算机内存就是DRAM 的。 

DRAM 分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、 SGRAM 以及WRAM 等,这里介绍其中的一种DDR RAM。DDR RAM(Date-Rate RAM)也称作DDR SDRAM, 这种改进型的RAM 和SDRAM 是基本一样的,不同之处在于它可以在一个时钟读写两次数据, 这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势, 事实上击败了Intel 的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高 速DDR RAM 来提高带宽,这可以大幅度提高3D 加速卡的像素渲染能力。 

3.2 ROM

ROM 也有很多种,PROM 是可编程的ROM,PROM 和EPROM(可擦除可编程ROM)。两者区别是,PROM 是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能 使用了,而EPROM 是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种 EEPROM 是通过电子擦出,价格很高,写入时间很长,写入很慢。 举个例子,手机软件一般放在EEPROM 中,我们打电话,有些最后拨打的号码,暂时是存 在SRAM 中的,不是马上写入通过记录(通话记录保存在EEPROM 中),因为当时有很重要工作(通 话)要做,如果写入,漫长的等待是让用户忍无可忍的。 

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

4 FLASH

目前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 应用是嵌入式系统采用的DOC(Disk On Chip) 和我们通常用的"闪盘",可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu 和Toshiba,而生产NAND Flash 的主要厂家有Samsung 和Toshiba。 

### 不同类型内的特点和用途 #### EEPROM (Electrically Erasable Programmable Read-Only Memory) EEPROM 是一种可多次编程的只读储器,允许通过电子方式擦除并重新编程特定的数据位。其主要特点是能够在不移除芯片的情况下进行数据更新,并能在断电后保持数据不变。 - **特点**: 支持按字节操作;具有较高的耐久性和可靠性。 - **用途**: 广泛应用于需要频繁修改少量配置参数的应用场景中,如微控制器中的固件升级、网络设备设置等[^1]。 ```cpp // 示例:向EEPROM写入一个整数 #include <EEPROM.h> void setup() { int address = 0; long valueToSave = 123; // 要保的数值 EEPROM.put(address, valueToSave); } ``` #### RAM (Random Access Memory) RAM 属于易失性储器,在电源关闭时会丢失所信息。它支持快速随机访问任何位置上的数据单元,这使得 CPU 可以高效地执行程序指令。 - **特点**: 访问速度极快,适合临时放正在处理的信息。 - **分类**: - SRAM(静态随机储器): 使用双稳态触发器实现非破坏性的读/写功能,适用于高速缓(cache)[^3]。 - DRAM(动态随机储器): 需要定期刷新才能维持数据状态,通常构成系统的主内部分。 ```c++ // C++ 中声明变量占用RAM空间的例子 int main(){ int a = 5; // 'a' 储在RAM中 return 0; } ``` #### ROM (Read-Only Memory) ROM 是一种不可变或难以改变内容的记忆体形式,即使失去供电也能长久保留已记录的内容。传统意义上的 ROM 主要是用来固化一些基本输入输出系统(BIOS)或其他启动加载程序。 - **特点**: 制造完成后几乎不可能更改其中的内容,除非采用特殊手段。 - **现代应用**: 如今更多指的是那些出厂前被预置好固定软件代码的产品内部使用的闪器件。 ```assembly section .text global _start ; 必须让链接器知道入口点的位置 _start: ; 这里的代码会被烧录到ROM中 mov eax, 4 ; sys_write 系统调用号 ... ``` #### FLASH Flash 储器结合了EPROMEEPROM 的优点,既具备后者的小规模改写的灵活性又拥有前者的大容量特性。分为 NOR 和 NAND 两种架构: - **NOR Flash** - 特点: 提供类似于 RAM 的接口,可以直接从中执行代码; - 应用领域: 小型嵌入式系统的引导加载程序储介质。 - **NAND Flash** - 特点: 更高的密度和更低的成本,但不具备直接执行的能力; - 应用实例: 大量用于移动电话、数码相机和其他便携式电子产品内的大规模数据储解决方案[^4]。 ```bash # Linux下查看flash分区命令示例 cat /proc/mtd ``` #### Cache (高速缓冲储器) Cache 是位于处理器核心与较慢的主要储之间的一层小型却非常迅速的工作区。它的在是为了弥补CPU运算速率远高于外部访的速度差异问题,从而提高整个计算平台的整体性能表现。 - **工作原理**: 当CPU请求某个地址处的数据时,如果该数据已经在 cache 中,则称为命中(hit),否则就叫未命中(miss),此时需从更底层的储层次获取所需资料填充进来。 - **级别划分**: L1/L2/L3 缓逐级增大同时也逐渐减慢,越靠近CPU的部分响应时间越短但是单位成本也越高.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值