嵌入式 - 存储器类型汇总
非易失性存储器下表为大部分的非易失性存储器总览。其中传统 ROM (Mask ROM / PROM / EPROM) 已经基本淘汰新型非易失性存储器FRAM / MRAM / PCM / ReRAM目前还未大规模应用此两类不过多介绍。我们主要介绍目前市面上最常见的存储器类型如 NOR Flash、NAND Flash。以及经过封装的存储设备 SSD、eMMC、UFS。类型是否可擦写擦写方式速度容量成本典型用途Mask ROM不可出厂固化很快小~中低量产固化程序PROM一次性一次编程很快小低一次写入配置EPROM可擦紫外线整体擦除较慢小高早期固件存储EEPROM可擦字节级擦写较慢小较高参数存储NOR Flash可擦块擦除快读快中较高代码存储NAND Flash可擦块擦除快写快大低数据存储eMMC可擦内部NAND中大低嵌入式存储UFS可擦内部NAND很快大中手机存储SSD可擦内部NAND很快很大中PC/服务器FRAM可擦字节级很快小高工业/低功耗MRAM可擦位级很快中高高可靠存储PCM可擦位级快中高新型存储ReRAM可擦位级快中潜力低研究/新兴1.1 NOR FlashNOR Flash 的核心特点在于支持芯片内执行XIPeXecute In Place和随机访问其读取速度快而写入和擦除速度相对较慢。这意味着 CPU 可以直接从闪存中取指执行应用程序代码无需预先将代码拷贝到系统内存中从而显著提升系统启动速度并降低响应延迟。因此可以将 NOR Flash 理解为一种“可像内存一样读取”的 Flash 存储器。正是由于这种接近 RAM 的访问特性NOR Flash 非常适合用于存放嵌入式系统以及 PC、服务器中的固件程序Firmware。在设备上电初期系统内存尚未初始化处理器需要依赖 NOR Flash 中的启动代码完成底层硬件初始化并引导系统启动。需要注意的是由于其单位成本较高NOR Flash 通常容量较小擦除时按扇区擦除。典型应用场景包括PC 主板上的 BIOS / UEFI 固件通常存储于 SPI Flash 中以及各类 SoC 的启动代码如 ARM 开发板中的启动 Flash。1.2 NAND FlashNAND Flash 是当前最主流的非易失性存储器目前几乎所有的大容量存储设备本质上都是基于它如 SSDU盘eMMCUFS等。NAND 的特点简单来说就是容量大成本低写入快。其顺序读写速度较快但相比于 NOR 不支持代码执行和随机读写。NAND 按页读取按块擦除。NOR Flash 和 NAND Flash 对比对比维度NOR FlashNAND Flash核心优势芯片内执行 (XIP)读取速度快可靠性高写入/擦除速度快存储密度高单位成本低读取方式支持字节级随机访问像内存一样直接读取任意地址以页Page为单位进行读写不支持随机访问写入/擦除性能较慢需按块操作擦除块较大如64-128KB极快擦除块较小如8-64KB适合频繁的大数据量写入存储密度/成本密度低、成本高主要覆盖 1MB ~ 1GB 的容量范围密度高、成本低可轻松实现GB甚至TB级别的大容量存储可靠性/寿命可靠性极高位反转概率远低于NAND擦写寿命约10万次可靠性相对较低位反转较常见需要ECC校验和坏块管理擦写寿命可达百万次主要用途存储和执行程序代码如固件、Bootloader、操作系统镜像海量数据存储如SSD固态硬盘、U盘、手机存储1.3 封装设备NOR Flash 与 NAND Flash 均属于裸存储芯片仅提供基础的存储介质功能。若要构成可供主机系统直接访问的存储设备则需在芯片外部或内部集成一颗控制器。正如显示面板需要搭配显示驱动芯片才能呈现图像一样裸存储芯片也必须依赖控制器来管理复杂的物理寻址、坏块处理及磨损均衡算法。我们日常所见的标准存储产品如 eMMC、UFS、SSD正是在 NAND 裸芯片的基础上封装集成了控制器、标准通信接口及管理固件后所构成的完整存储系统。SSDSSD固态硬盘是一种基于 NAND Flash 闪存颗粒构建的半导体存储设备其核心在于通过内置的主控芯片和 FTL闪存转换层算法将底层复杂的闪存物理管理如坏块处理、磨损均衡、垃圾回收封装为标准 SATA 或 NVMe 接口从而向上位主机呈现出与传统机械硬盘完全兼容、但读写速度提升数十倍甚至百倍的块设备访问逻辑。它本质上就是将我们在上一轮提到的“裸存储芯片控制器”这一架构工程化、产品化后的最终形态用以取代机械硬盘成为现代计算机和服务器的主流数据存储介质。eMMCeMMCembedded MultiMediaCard是一种将 NAND Flash 存储芯片与控制器集成在同一封装内的嵌入式存储设备对外提供标准化的块设备接口。其内部已实现坏块管理、磨损均衡和错误校正ECC等功能并通过统一的eMMC总线接口向主机提供块设备访问服务。与 SSD 相比eMMC 通常采用更精简的控制器架构和更低的并行通道数以控制成本与功耗因此在读写性能、队列深度和满盘写稳定性上不及 NVMe 或 SATA SSD但凭借其体积小巧、引脚少、即插即用的特性长期作为IoT设备及低功耗嵌入式系统的主流系统盘选择。UFSUFS通用闪存存储在当前的智能手机上应用广泛可以理解为是eMMC的“高速公路升级版”。它最大的改进在于支持全双工通信允许设备在读取数据的同时也能写入命令而 eMMC 同一时间只能读或者写。UFS 能让手机在后台下载安装应用时前台刷微信、拍4K视频依然流畅不卡顿反应速度远超 eMMC是目前主流中高端智能手机和旗舰设备的标配存储方案。SPI FlashSPI Flash 特指采用 SPI串行外设接口总线的 NOR Flash。它不像并口 NOR Flash 那样需要大量数据引脚而是通过精简的四线或六线接口进行指令传输牺牲了部分极限读写速度却换来了极低的引脚占用和PCB布线成本。因此SPI Flash 常被视为“最轻便的启动盘”专门用以存放Bootloader 或固件代码CPU 上电后直接通过 SPI 接口读取其内部指令完成系统唤醒在路由器、单片机、电脑主板 BIOS 以及各类嵌入式设备中无处不在。二、易失性存储器易失性存储器是指断电后存储的数据会立刻丢失的一类存储器它不像我们之前聊的 Flash闪存那样具备记忆能力但是速度非常快它的主要作用是为正在运行的程序和CPU提供极高速的临时数据交换空间。不同的 RAM 依据速度和成本应用场景亦有不同。易失性存储器主要有两种静态随机存取存储器 SRAM 和动态随机存取存储器 DRAM。对于计算机结构中不同速度存储器的应用可移步此文章的2.2节查看。SRAM 的速度最快但是结构复杂导致成本极高、集成度低。一般用于CPU 内部的高速缓存L1/L2/L3 Cache是决定处理器单核性能的关键缓冲地带。DRAM 利用电容电荷存储数据因电荷会泄露必须每隔几十毫秒刷新一次动态刷新。一般用于电脑的内存条、手机/显卡的运行内存LPDDR/GDDR。它虽然在速度上略逊于 SRAM但能以较低成本实现大容量。下表是主要的易失性存储器类型类型是否需要刷新速度集成度/容量成本典型位置典型用途寄存器Register不需要极快极小极高CPU内部运算数据暂存SRAM不需要很快小~中高Cache / 片上RAM高速缓存DRAM需要较快大低主存系统内存SDRAM需要较快大低