存储技术全解析:从芯片到系统 DRAM、SRAM、HBM、ROM、NOR Flash、NAND Flash、eMMC、UFS

存储技术全解析:从芯片到系统

引言

在计算机和嵌入式系统中,各种存储技术扮演着不同的角色,它们的性能特点和应用场景各不相同。很多人对DRAM、SRAM、HBM、ROM、NOR Flash、NAND Flash、eMMC、UFS 等术语感到困惑,不清楚它们之间的区别和关系,以及哪些是片上存储,哪些是片外存储。本文将系统地解析这些存储技术,并以树莓派和x86个人电脑为例,说明它们在实际系统中的应用。

存储技术分类框架

存储技术可以按照数据保存的持久性分为两大类:

存储技术

├─ 易失性存储 (断电数据丢失)

│ ├─ SRAM (静态随机存取存储器)

│ └─ DRAM 家族 (动态随机存取存储器)

│ ├─ 传统DRAM

│ ├─ SDRAM (同步动态随机存取存储器)

│ ├─ DDR SDRAM (双倍数据率SDRAM)

│ │ ├─ DDR1/2/3/4/5

│ │ └─ LPDDR (低功耗DDR)

│ └─ HBM (高带宽内存)

└─ 非易失性存储 (断电数据保留)

├─ ROM 家族 (只读存储器)

│ ├─ 掩膜ROM

│ ├─ PROM (可编程ROM)

│ ├─ EPROM (可擦除可编程ROM)

│ └─ EEPROM (电可擦除可编程ROM)

├─ Flash 家族

│ ├─ NOR Flash

│ └─ NAND Flash

└─ 新型非易失存储

├─ eMMC (嵌入式多媒体卡)

├─ SSD (固态硬盘)

└─ UFS (通用闪存存储)

Flash存储技术详解

Flash存储是一种非易失性存储器,即使断电后也能保留数据。主要分为NOR Flash和NAND Flash两种类型。

NOR Flash与NAND Flash对比

特性NOR FlashNAND Flash存储单元结构每个单元直接连接到位线和字线单元排列成串联结构随机访问能力支持(可按字节访问)不支持(按页访问)读取速度快(50-100ns)中等(25-50μs)写入速度慢(5-10μs/字节)快(200-300μs/页)擦除速度很慢(0.5-2s/块)快(1.5-3ms/块)擦除单位较大块(64KB-128KB)较小块(4KB-16KB)存储密度低高成本/比特高低耐久性(擦写次数)10万-100万次1千-10万次错误率低高(需要ECC错误纠正)坏块管理通常不需要必需XIP支持支持(可直接执行代码)不支持典型容量范围几MB-几百MB几GB-几TB典型应用BIOS/UEFI固件微控制器程序存储启动代码SSD存储介质SD卡/U盘大容量数据存储

NOR Flash详解

工作原理: NOR Flash的存储单元直接连接到位线和字线,允许随机访问任何存储单元,类似于RAM的访问方式。

主要特点:

支持随机读取,可以按字节访问读取速度快,适合存储需要直接执行的代码支持XIP(Execute In Place),程序可以直接从Flash中执行写入和擦除速度较慢容量相对较小,成本较高

应用场景:

存储启动代码和固件微控制器内部程序存储BIOS/UEFI芯片需要随机访问的小容量存储

NAND Flash详解

工作原理: NAND Flash的存储单元排列成串联结构,需要按页读取数据,不支持随机访问单个字节。 SLC MLC TLC QLC

主要特点:

高存储密度,适合大容量存储按页(2KB-16KB)读写,不支持随机字节访问写入和擦除速度快需要错误检测与纠正(ECC)和坏块管理成本较低

应用场景:

大容量数据存储SSD(固态硬盘)USB闪存驱动器SD卡和TF卡智能手机和平板电脑存储

RAM技术详解

RAM(随机存取存储器)是一种易失性存储器,断电后数据会丢失。主要分为SRAM和DRAM两大类。

SRAM(静态随机存取存储器)

工作原理: 使用双稳态电路(通常6个晶体管)存储每个位,只要有电源供应,数据就能保持不变。

主要特点:

速度极快(2-10纳秒访问时间)不需要刷新操作维持数据密度低,功耗高,成本高集成度低,占用芯片面积大

应用场景:

CPU缓存(L1/L2/L3 Cache)微控制器内部的工作内存高速缓冲区

是否片上:通常集成在CPU/微控制器内部(片上),作为缓存或工作内存

DRAM(动态随机存取存储器)

工作原理: 使用一个晶体管和一个电容存储每个位,需要定期刷新以防止数据丢失。

主要特点:

密度高,成本低,功耗中等需要定期刷新(通常每几毫秒)访问时间较长(50-100纳秒)集成度高,适合大容量存储

DRAM的主要类型:

传统DRAM:早期的DRAM技术,现已很少使用。

SDRAM(同步动态随机存取存储器):

与系统时钟同步工作支持突发传输模式,提高吞吐量访问时间10-20纳秒 DDR SDRAM(双倍数据率SDRAM):

在时钟信号的上升沿和下降沿都传输数据有多代产品:DDR、DDR2、DDR3、DDR4、DDR5每代性能提升约一倍 LPDDR(低功耗DDR):

DDR的低功耗版本,专为移动设备设计,笔记本电脑常见牺牲部分性能换取更低功耗有多代产品:LPDDR2、LPDDR3、LPDDR4、LPDDR5

应用场景:

系统主内存图形卡内存大容量临时存储

是否片上:通常是独立芯片(片外),通过内存总线连接到CPU,以DIMM或SO-DIMM形式安装

HBM(高带宽内存)

HBM是一种革命性的DRAM技术,通过3D堆叠和宽总线接口实现超高带宽,主要用于高性能计算和图形处理应用。

工作原理: HBM将多个DRAM芯片垂直堆叠,并通过硅穿孔(TSV, Through-Silicon Via)技术互连,形成一个紧凑的"内存立方体",然后通过宽接口(通常1024位)与处理器通信。

架构特点:

3D堆叠结构:

多个DRAM芯片(通常4-8层)垂直堆叠使用TSV(硅穿孔)技术进行层间互连每个堆栈形成一个"内存立方体"(memory cube) 2.5D封装技术:

HBM与处理器芯片并排放置在硅中介层(silicon interposer)上中介层提供高密度互连,替代传统PCB布线大幅缩短信号路径,降低延迟和功耗 超宽接口:

每个HBM堆栈提供1024位宽接口相比DDR4的64位宽,带宽提升16倍工作频率相对较低(2-3.6Gbps),降低功耗

HBM各代技术规格对比:

特性HBM1HBM2HBM2EHBM3HBM3E发布年份20152016201920212023每引脚带宽1Gbps2Gbps3.6Gbps6.4Gbps9.2Gbps堆栈层数4层4-8层8-12层8-12层12-16层每堆栈容量1-4GB2-8GB8-24GB16-32GB24-48GB每堆栈带宽128GB/s256GB/s460GB/s819GB/s1.2TB/s多堆栈总带宽512GB/s1TB/s1.84TB/s3.27TB/s4.8TB/s

HBM的优势:

超高带宽,远超传统DDR内存相比GDDR6,相同带宽下功耗低50%以上紧凑尺寸,节省PCB空间更低的工作频率,降低电磁干扰

HBM的局限性:

成本高,制造复杂需要特殊的2.5D封装技术容量扩展性有限供应链相对受限

应用场景:

高端GPU(如NVIDIA H100、AMD Instinct MI300)AI加速器(如Google TPU)高性能计算(HPC)系统网络交换设备高端FPGA

是否片上:通常与处理器同封装但分离芯片,采用2.5D封装技术(硅中介层)

ROM和嵌入式存储技术详解

ROM(只读存储器)

ROM是一种非易失性存储器,主要用于存储固定的程序和数据。

主要类型:

掩膜ROM:

内容在制造时固化,不可修改成本最低,适合大批量生产 PROM(可编程ROM):

可使用编程器写入一次数据,之后不可修改适合小批量生产 EPROM(可擦除可编程ROM):

可通过紫外线擦除数据,然后重新编程需要特殊的编程设备 EEPROM(电可擦除可编程ROM):

可电擦除可编程ROM,可按字节修改擦写次数有限(通常10万次左右)适合存储需要偶尔修改的配置数据

应用场景:

存储引导程序(BIOS/UEFI)微控制器程序存储存储固定配置数据

是否片上:可能是片上也可能是片外,取决于系统设计

eMMC(嵌入式多媒体卡)

eMMC是一种集成了NAND Flash和控制器的嵌入式存储解决方案,提供标准接口,简化系统设计。

主要特点:

将NAND Flash和控制器集成在一个封装中控制器处理坏块管理、磨损均衡、错误纠正等提供标准接口,简化系统设计容量通常从4GB到256GB不等性能介于原始NAND Flash和SSD之间

应用场景:

智能手机和平板电脑的主存储低端笔记本电脑嵌入式系统和单板计算机(如某些树莓派型号)

是否片上:片外,通常直接焊接在主板上

UFS(通用闪存存储)

UFS是一种高性能嵌入式存储标准,旨在替代eMMC,为移动设备提供更高性能和更低功耗。

工作原理: UFS基于SCSI架构,采用全双工通信和MIPI M-PHY物理层接口,支持命令队列和并发操作。

架构特点:

SCSI命令集:

采用成熟的SCSI命令协议支持复杂的命令队列和优先级管理兼容现有软件生态系统 全双工通信:

两条独立的单向数据通道同时支持读写操作显著提高并发性能 MIPI UniPro协议栈:

采用分层协议架构提供可靠的数据传输和错误恢复支持服务质量(QoS)管理 MIPI M-PHY物理层:

高速、低功耗的串行接口支持多种速率档位先进的电源管理功能

UFS各代技术规格对比:

特性UFS 2.1UFS 3.0UFS 3.1UFS 4.0发布年份2015201820202022每通道速率600MB/s1450MB/s1450MB/s2100MB/s总理论带宽1.2GB/s2.9GB/s2.9GB/s4.2GB/s通道数2(全双工)2(全双工)2(全双工)2(全双工)特殊功能基本功能深度休眠WriteBooster性能调节原子写入更低功耗更高可靠性相对功耗基准-30%-30%-46%

UFS相比eMMC的优势:

特性UFS 3.1eMMC 5.1最大带宽2.9 GB/s400 MB/s通信方式全双工半双工命令处理多命令队列单命令处理接口类型差分串行并行功耗效率高中

应用场景:

高端智能手机平板电脑增强现实/虚拟现实设备汽车信息娱乐系统高性能嵌入式系统

片上与片外存储

片上存储(On-chip)

片上存储是指集成在处理器芯片内部的存储器,如:

SRAM:用于CPU缓存(L1/L2/L3)小容量ROM:用于存储启动代码微控制器内部Flash:用于存储程序代码

特点:

访问速度极快(直接通过片内总线)容量有限(受芯片面积限制)成本高(增加芯片复杂度)功耗低(无需外部接口)

片外存储(Off-chip)

片外存储是指与处理器芯片分离的独立存储设备,如:

DRAM:系统主内存SSD/HDD:大容量存储外部Flash:扩展存储HBM:虽然与处理器封装在一起,但仍是独立芯片

特点:

访问速度较慢(需要通过外部总线)容量大(不受处理器芯片面积限制)成本相对较低功耗较高(需要外部接口)

实际系统中的存储架构

树莓派存储架构

以树莓派4B为例:

片上(SoC内部)存储

L1缓存:

类型:SRAM容量:32KB指令缓存 + 32KB数据缓存(每个核心)用途:最快速的CPU数据访问 L2缓存:

类型:SRAM容量:1MB(共享)用途:二级CPU缓存 ROM:

类型:掩膜ROM容量:几KB用途:存储初始引导代码

片外存储

主内存:

类型:LPDDR4 SDRAM容量:1GB/2GB/4GB/8GB(取决于型号)用途:操作系统和应用程序的运行内存 启动/系统存储:

类型:microSD卡(基于NAND Flash)容量:通常8GB-128GB(用户选择)用途:存储操作系统、应用程序和用户数据 可选扩展存储:

类型:USB外接硬盘/SSD容量:取决于外接设备用途:额外数据存储

树莓派启动流程

SoC上电后,执行片上ROM中的代码ROM代码初始化基本硬件并从SD卡加载第一阶段引导加载程序引导加载程序初始化SDRAM并加载操作系统内核操作系统加载到SDRAM并开始执行操作系统从SD卡加载其他组件和应用程序

x86个人电脑存储架构

现代x86个人电脑拥有更复杂的存储层次结构:

片上(CPU内部)存储

L1缓存:

类型:SRAM容量:通常32KB-64KB指令缓存 + 32KB-64KB数据缓存(每个核心)用途:最快速的CPU数据访问 L2缓存:

类型:SRAM容量:通常256KB-1MB(每个核心)用途:二级CPU缓存 L3缓存:

类型:SRAM容量:通常4MB-64MB(所有核心共享)用途:三级CPU缓存

片外存储

主内存:

类型:DDR4 SDRAM(现代系统)容量:通常8GB-64GB用途:操作系统和应用程序的运行内存接口:DIMM插槽 BIOS/UEFI存储:

类型:NOR Flash容量:通常8MB-32MB用途:存储系统固件(BIOS/UEFI)位置:主板上 主存储:

类型:SSD(基于NAND Flash)或HDD(机械硬盘)容量:SSD通常256GB-2TB,HDD通常1TB-8TB用途:存储操作系统、应用程序和用户数据接口:SATA、PCIe或M.2

x86 PC启动流程

系统上电后,CPU执行位于固定地址的指令,访问BIOS/UEFI(NOR Flash)BIOS/UEFI初始化基本硬件并识别启动设备从启动设备(通常是SSD)加载操作系统引导加载程序引导加载程序加载操作系统内核到主内存(DRAM)操作系统接管控制权,初始化其他组件应用程序从SSD加载到DRAM并执行

存储技术对比表

存储类型易失性典型访问时间密度成本功耗主要应用通常位置SRAM易失2-10ns非常低非常高中-高CPU缓存片上DRAM易失50-100ns中中中主内存片外SDRAM易失10-20ns中中中主内存片外DDR SDRAM易失5-15ns中-高中中-高现代主内存片外ROM非易失50-150ns中低非常低固件存储片上/片外EEPROM非易失200-300ns低中-高低配置数据片上/片外NOR Flash非易失读:50-100ns写:5-10μs擦:0.5-2s低-中中-高低代码存储片上/片外NAND Flash非易失读:25-50μs写:200-300μs擦:1.5-3ms高低低大容量存储片外

常见问题解答

问:为什么有些存储是片上而有些是片外?

答:这主要取决于性能需求、成本和物理限制:

片上存储提供最快的访问速度,但容量受限且成本高片外存储可提供更大容量,成本更低,但访问速度较慢高性能部件需要最快速的访问(如CPU缓存),必须集成在芯片内大容量存储由于物理尺寸限制无法集成在处理器芯片上

问:为什么需要这么多不同类型的存储?

答:计算机系统使用多层次存储架构来平衡性能、容量和成本:

越靠近CPU的存储越快但容量小且昂贵(如SRAM缓存)越远离CPU的存储越慢但容量大且便宜(如硬盘/SSD)不同应用场景需要不同的性能和容量特性通过组合使用这些技术,系统可以在性能和成本之间取得最佳平衡

问:Flash存储器会"磨损"是什么意思?

答:Flash存储单元有有限的擦写寿命:

每个存储单元在被擦除后会轻微退化达到擦写次数上限后(NAND约1千-10万次,NOR约10万-100万次),单元可能无法可靠存储数据这就是所谓的"磨损"现代Flash存储设备使用"磨损均衡"技术,确保所有存储单元均匀使用,延长整体寿命

问:HBM和普通DRAM有什么根本区别?

答:HBM和普通DRAM使用相同的基础存储单元技术,但在架构和接口上有根本区别:

HBM采用3D堆叠结构,通过TSV实现层间互连HBM使用超宽数据总线(1024位),而DDR SDRAM使用64位总线HBM与处理器通过硅中介层紧密集成,缩短信号路径HBM针对带宽优化,而非延迟,工作频率实际低于DDR SDRAM

总结

存储技术是一个复杂而多样化的领域,不同类型的存储技术各有优缺点和适用场景:

NOR Flash:适合存储需要直接执行的代码,如BIOS和微控制器程序NAND Flash:适合大容量数据存储,是SSD、SD卡和U盘的基础SRAM:速度极快但容量小,主要用于CPU缓存DRAM:容量大但需要刷新,是系统主内存的主要选择ROM:用于存储固定的程序和数据,如启动代码eMMC:集成了NAND Flash和控制器,适合嵌入式系统的主存储SSD:集成了NAND Flash和控制器,是现代计算机的主存储设备,提供高性能和大容量UFS:提供高性能和低延迟,是eMMC的升级版HBM:用于高性能计算和图形处理,提供极高带宽