存储器是计算机系统中不可或缺的重要组成部分。它主要用于存储程序代码和数据,使计算机具备记忆和运行的功能。
存储器按其存储介质特性主要分为两大类:易失性存储器和非易失性存储器。
- 易失性存储器:在断电后数据会丢失,如 RAM。
- 非易失性存储器:即使断电也能保留数据,如 ROM、Flash,以及一些新兴技术。
一、易失性存储器(RAM)
RAM(Random Access Memory)是易失性的半导体存储器,用于存储运行中的程序和数据。
1、动态随机存储器DRAM(Dynamic RAM)
动态随机存储器(DRAM) 是一种易失性存储器,采用电容存储数据(电容带电表示 1,不带电表示 0),需要定期刷新以维持数据完整性。由于其依赖时钟信号进行数据传输,因此通常被称为同步 DRAM(SDRAM),并常采用SDR(Single Data Rate)或DDR(Double Data Rate)模式。
2、静态随机存储器SRAM
SRAM 的存储单元通过锁存器保存数据,不需要刷新。它的访问速度比 DRAM 快,但存储密度较低,成本较高。通常用于 CPU 的高速缓存 或 内部数据存储。
两者对比如下表:
特性 | DRAM | SRAM |
---|---|---|
存取速度 | 较慢 | 较快 |
集成度 | 较高 | 较低 |
生产成本 | 较低 | 较高 |
是否需要刷新 | 是 | 否 |
应用 | 用于CPU内部的高速缓存(Cache) | 外部存储 |
二、非易失性存储器(ROM)
ROM(Read Only Memory)是一种非易失性的半导体存储器,决定了存储的数据不会因为断电而丢失。尽管早期的 ROM 不能写入,但随着技术发展,现在一般包括多种可编程类型,如 EEPROM 和 Flash。
- MASK ROM:出厂时通过工艺固化的数据,不可修改。
- OTPROM(One-Time Programmable ROM):一次性可编程,不可更改。
- EPROM:需要紫外线擦除后可重新写入。
- EEPROM:支持电擦除,可以重复擦写,适用于需要动态更新数据的场景。
特性 | MASK ROM | OTPRPM | EPROM | EEPROM |
---|---|---|---|---|
数据可写性 | ❌ 不可写 | ❌ 不可写 | ✅ 可擦写 | ✅ 可擦写 |
读写速度 | ✅ 快 | ✅ 快 | ✅ 慢 | ✅ 慢 |
集成度 | ✅ 较低 | ✅ 较低 | ✅ 较低 | ✅ 较低 |
用途 | 固件存储(旧设备) | 固件存储(一次性) | 固件存储(可编程) | 固件存储(可更新) |
三、非易失性存储器(FLASH)
FLASH 存储器,又称为 Flash ROM,是一种可擦写的非易失性存储器,广泛应用于嵌入式系统、消费电子产品和数据中心。根据其结构和访问方式,FLASH 主要分为 NOR Flash 和 NAND Flash 两种。
特性 | NOR FLASH | NAND FLASH |
---|---|---|
同容量存储器成本 | 较贵 | 较便宜 |
集成度 | 较低 | 较高 |
介质类型 | 随机存储 | 连续存储 |
地址线和数据线 | 独立分开 | 共用 |
擦除单元 | 以“扇区/块”擦除 | 以“扇区/块”擦除 |
读写单元 | 可以基于字节读写 | 必须以“块”为单位读写 |
读取速度 | 较高 | 较低 |
写入速度 | 较低 | 较高 |
坏块 | 较少 | 较多 |
是否支持XIP | 支持 | 不支持 |
四、应用
在嵌入式系统中,通常使用 Flash 存储程序 + RAM 运行程序,ROM 已逐渐被 Flash 替代,但在一些低成本设备中,仍用于固定存储场景(如早期 MCU 的 Boot ROM)。
特性 | RAM | ROM | Flash |
---|---|---|---|
读写速度 | 最快 | 较慢 | 读取快、写入慢 |
掉电数据 | 丢失 | 保留 | 保留 |
用途 | 运行程序 | 固件存储(旧设备) | 程序+数据存储 |
擦写次数 | 不限 | 一次/有限 | 有限(10万次+) |
五、新兴存储器技
随着信息技术的快速发展,存储技术也在不断创新与演进。除了传统的 RAM、ROM 和 Flash 存储器,近年来涌现出一系列新兴的非易失性存储器技术,如 MRAM、ReRAM、FRAM 和 3D XPoint 等。这些技术在数据保留能力、读写速度、功耗、耐久性等方面具有显著优势,正在逐步改变存储器的格局,成为未来智能系统、物联网设备、边缘计算和高性能计算领域的重要组成部分。
存储器类型 | 原理 | 非易失性 | 读写速度 | 耐久性 | 适用场景 |
---|---|---|---|---|---|
MRAM | 基于磁性隧道结(MTJ),磁性材料的电阻状态变化 | ✅ 是 | 高 | 数十亿次 | IoT设备、控制系统、缓存 |
ReRAM | 基于材料的电阻变化(如氧化物的电阻变化) | ✅ 是 | 中 | 数百万到数亿次 | AI芯片、物联网设备 |
FRAM | 基于铁电晶体的极化状态 | ✅ 是 | 非常快 | 数百万次以上 | 数据记录、传感器数据存储 |
3D XPoint | 结合了DRAM和Flash的优点,支持逐字节访问 | ✅ 是 | 高 | 非常高 | 数据库、大数据存储 |
FPGA Block RAM | 基于SRAM,可掉电保存(支持电池备份) | ✅ 可选 | 高 | 无限次 | FPGA内部数据暂存 |
FPGA Distributed RAM | 基于逻辑单元实现的SRAM | ❌ 否 | 高 | 无限次 | 配置寄存器、状态数据 |
六、其他
1、为什么叫 NOR / NAND?
在 Flash 存储技术中:
- NOR Flash 的存储单元结构采用了类似于 NOR 逻辑门 的电路设计,支持随机访问,能够如 RAM 一样寻址单个字节。
- NAND Flash 的存储单元结构采用类似于 NAND 逻辑门 的串联设计,访问方式为 块/页,不适合直接执行代码,但适合大数据量存储。
2、什么是DDR模式和SDR模式?
DDR(Double Data Rate) 和 SDR(Single Data Rate) 是两种常用的内存数据传输模式,其主要区别在于对时钟信号的使用:
- SDR (Single Data Rate):数据仅在时钟的上升沿被采样,一个时钟周期传输一次数据;
- DDR (Double Data Rate):数据在时钟的上升沿和下降沿分别被采样,一个时钟周期可以传输两次数据,因此传输速率更高。