存储技术全解析:从芯片到系统
引言
在计算机和嵌入式系统中,各种存储技术扮演着不同的角色,它们的性能特点和应用场景各不相同。很多人对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 Flash | NAND 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各代技术规格对比:
特性 | HBM1 | HBM2 | HBM2E | HBM3 | HBM3E |
---|---|---|---|---|---|
发布年份 | 2015 | 2016 | 2019 | 2021 | 2023 |
每引脚带宽 | 1Gbps | 2Gbps | 3.6Gbps | 6.4Gbps | 9.2Gbps |
堆栈层数 | 4层 | 4-8层 | 8-12层 | 8-12层 | 12-16层 |
每堆栈容量 | 1-4GB | 2-8GB | 8-24GB | 16-32GB | 24-48GB |
每堆栈带宽 | 128GB/s | 256GB/s | 460GB/s | 819GB/s | 1.2TB/s |
多堆栈总带宽 | 512GB/s | 1TB/s | 1.84TB/s | 3.27TB/s | 4.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.1 | UFS 3.0 | UFS 3.1 | UFS 4.0 |
---|---|---|---|---|
发布年份 | 2015 | 2018 | 2020 | 2022 |
每通道速率 | 600MB/s | 1450MB/s | 1450MB/s | 2100MB/s |
总理论带宽 | 1.2GB/s | 2.9GB/s | 2.9GB/s | 4.2GB/s |
通道数 | 2(全双工) | 2(全双工) | 2(全双工) | 2(全双工) |
特殊功能 | 基本功能 | 深度休眠 | WriteBooster 性能调节 原子写入 | 更低功耗 更高可靠性 |
相对功耗 | 基准 | -30% | -30% | -46% |
UFS相比eMMC的优势:
特性 | UFS 3.1 | eMMC 5.1 |
---|---|---|
最大带宽 | 2.9 GB/s | 400 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:用于高性能计算和图形处理,提供极高带宽