RAM、ROM存储基础

在嵌入式系统和单片机开发中,存储器是至关重要的组成部分。常见的存储器类型包括RAM(随机存取存储器)、ROM(只读存储器)、FLASH和EEPROM(可电擦除可编程的只读存储器)。

一、RAM(随机存取存储器)

什么是RAM?

RAM(Random Access Memory)是一种易失性存储器,意味着断电后数据会丢失

在单片机中,RAM主要用于存储临时变量、存储动态分配的数据。

1.1 关键参数与指标

  • 容量:在PC中RAM就是16G、8G的那种DDR内存条,通过PCIe实现通信;不过在单片机中大一点的RAM空间也才512KBM,小的话更是可怜;

  • 速度:较快,访问速度通常与CPU的主频同步,一般在几十MHz到几百MHz之间;此外由于RAM直接由CPU访问,读写速度远高于外部存储器(Flash、EEPROM);

二、ROM(只读存储器)

什么是ROM?

ROM(Read-Only Memory)是一种非易失性存储器,意味着断电后数据不会丢失。

在单片机中,ROM通常用于存储固件和启动代码、存储常量数据。

ROM有多种类型,且每种只读存储器都有各自的特性和适用范围。从其制造工艺和功能上分,ROM有五种类型,即掩膜编程的只读存储器MROM(Mask-programmedROM)、可编程的只读存储器PROM(Programmable ROM)、可擦除可编程的只读存储器EPROM(Erasable Programmable ROM)、可电擦除可编程的只读存储器 EEPROM(Elecrically Erasable Programmable ROM)和快擦除读写存储器(Flash Memory)

2.1 关键参数与指标

  • 容量:在PC中ROM不知道在哪,一般就是存BIOS之类的,通常在16MB左右;

  • 速度:类型太多,一般也在几十MHz到几百MHz之间;

三、FLASH(闪存)

首先毫无疑问的是Flash属于ROM的一种;Flash存储器是一种非易失性存储器,结合了RAM和ROM的优点。它允许快速读写数据,并且断电后数据不会丢失。

在单片机中,Flash存储器主要用于:存储程序代码、存储配置数据和用户数据、固件。

3.1 关键参数与指标

  • 容量:通常以KB或MB为单位,表示Flash可以存储的数据量。
  • 耐久性:表示Flash可以承受的编程/擦除次数,通常在10万次以上。(频繁写入、擦除可能导致寿命缩短)
  • 访问速度:以MHz为单位,表示Flash的读写速度。

3.2 NAND Flash技术

NAND Flash是一种非易失性存储器,广泛应用于嵌入式系统、消费电子、数据中心和存储设备中。与NOR Flash相比,NAND Flash具有更高的存储密度和更低的成本,但其读写特性有所不同。

NAND Flash 的特点:

  • 高存储密度:单位面积内可以存储更多数据。
  • 块擦除操作:数据以块(Block)为单位进行擦除,而不是以字节或字为单位。
  • 顺序访问:适合大容量数据的连续读写,但不支持随机访问。

页(Page)和块(Block)
页(Page):NAND Flash的最小读写单位,通常为4KB、8KB 或 16KB。
块(Block):NAND Flash的最小擦除单位,通常由多个页组成(如 64 页或 128 页)。

通过时序图配置Flash芯片,即可驱动Flash完成初始化、擦写等动作。

3.3 NOR Flash技术

NOR Flash 的特点:

  • 随机访问:支持以字节或字为单位直接访问数据,适合代码执行。
  • 高可靠性:数据存储稳定,适合存储关键代码和配置数据。
  • 较慢的写入和擦除速度:与NAND Flash相比,NOR Flash的写入和擦除速度较慢。

3.4 NAND Flash与NOR Flash特性对比

特性 NOR Flash NAND Flash
随机访问 支持,适合代码执行 不支持,适合顺序访问
容量 较小(几KB到几百MB) 较大(几GB到几TB)
写入/擦除速度 较慢 较快
耐久性 较高(10万到100万次) 较低(几千到几万次)
成本 较高 较低
应用场景 代码存储、配置数据 大容量数据存储

3.5 Flash常见问题

坏块(Bad Block) NAND Flash在生产和使用过程中可能会产生坏块。坏块是无法正常读写或擦除的存储块。解决方法:

  • 使用坏块管理(Bad Block Management, BBM)机制。(比较复杂,需要单独再理解下)
  • 在文件系统中标记坏块并避免使用。

写放大(Write Amplification) 由于NAND Flash的擦除操作以块为单位,而写入操作以页为单位,可能导致写放大现象。写放大会降低存储器的寿命和性能。解决方法:

  • 使用磨损均衡(Wear Leveling)算法。
  • 优化文件系统和存储管理策略。

数据保持(Data Retention) NAND Flash 中的数据可能会随着时间的推移而丢失,尤其是在高温环境下。解决方法:

  • 定期刷新数据。
  • 使用纠错码(ECC)检测和纠正数据错误。

四、EEPROM(电可擦可编程只读存储器)

EEPROM(Electrically Erasable Programmable Read-Only Memory)是一种可以通过电信号擦除和编程的非易失性存储器。它的特点是:

  • 非易失性:断电后数据不会丢失。
  • 电可擦写:可以通过电信号擦除和重新编程。
  • 字节级擦写:可以按字节擦写,而不需要像Flash那样按块擦除。

当然EPROM(Erasable Programmable Read-Only Memory)也是一种非易失性存储器,但是EPROM需要紫外线擦除,随着技术的发展,EEPROM和Flash逐渐取代了EPROM。

4.1 关键参数与指标

  • 容量:EEPROM的容量通常较小,范围从几字节到几百KB
  • 耐久性:EEPROM的擦写次数通常为10万次到100万次,具体取决于存储单元的类型。
  • 访问速度:读取速度,通常在几十ns到几百ns之间;写入速度,较慢,通常在几ms到几十ms之间。

4.2 EEPROM与NOR Flash特性对比

特性 EEPROM Flash
擦写单位 字节 块(通常为4KB或更大)
擦写次数 10 万到 100 万次 1千到10万次
容量 较小(几字节到几百 KB) 较大(几 KB 到几 GB)
写入速度 较慢(几 ms 到几十 ms) 较快(几 µs 到几 ms)
成本 较高 较低
应用场景 小容量、频繁修改的数据 大容量、较少修改的数据

results matching ""

    No results matching ""