存储技术全解析

描述

在计算机和嵌入式系统中,各种存储技术扮演着不同的角色,它们的性能特点和应用场景各不相同。很多人对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 :用于高性能计算和图形处理,提供极高带宽

 

    

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分