第4章:存储器件基础 — SRAM、DRAM、Flash、RRAM、MRAM、PCM 的特性对比
做存算一体设计,说白了就是在跟存储器件打交道。你选什么器件,直接决定了你的架构能做什么、不能做什么。我这些年摸过的存储器件不下十种,踩过的坑也不少。今天咱们就把主流的几种器件掰开揉碎了聊一聊。
4.1 先看一张总图:存储器的“江湖地位”
在开始逐个分析之前,我习惯先画一张图,把各种存储器的位置理清楚。你想想看,从速度最快、容量最小的寄存器,到速度最慢、容量最大的硬盘,中间其实是一个金字塔结构。
这张图里我特意把 RRAM、MRAM、PCM 放在了金字塔的中间偏上位置。为什么?因为它们既有接近 SRAM 的读写速度,又有 Flash 的非易失特性。说白了,它们就是存算一体架构的“天选之子”。
4.2 SRAM — 最快但最“贵”的存储
SRAM 是静态随机存取存储器。它的基本单元是 6 个晶体管(6T),数据以锁存器形式保存,不需要刷新。
核心特点:
- 速度极快:读写延迟通常在 1-5 ns
- 功耗较高:6 个晶体管一直处于导通状态
- 面积大:一个 bit 需要 6 个晶体管,集成度低
- 易失性:掉电数据丢失
我在做第一代存算一体芯片时,用的就是 SRAM 作为计算存储单元。当时觉得它速度快、设计简单,结果流片回来发现面积超标了——一个 256KB 的 SRAM 阵列,占了将近 40% 的芯片面积。嗯,这就是 SRAM 的代价。
我的建议:SRAM 适合做小容量的缓存或寄存器文件。在存算一体架构中,如果你只需要几百 KB 的存储,SRAM 是首选。但超过 1MB,我建议你考虑其他方案。
4.3 DRAM — 容量与速度的折中
DRAM 是动态随机存取存储器。它的基本单元是 1 个晶体管加 1 个电容(1T1C),数据以电荷形式存储在电容中。
为什么会叫“动态”?因为电容会漏电,需要定期刷新。我记得第一次做 DRAM 控制器时,被刷新逻辑搞得头大——每 64ms 要刷新一次,刷新期间不能读写,这给时序设计带来了不少麻烦。
| 参数 | SRAM | DRAM |
|---|---|---|
| 单元结构 | 6T | 1T1C |
| 读写速度 | 1-5 ns | 10-50 ns |
| 集成度 | 低 | 高 |
| 是否需要刷新 | 否 | 是 |
| 功耗 | 较高 | 较低(但刷新有额外功耗) |
避坑指南:我曾经在一个项目中直接用 DRAM 做存算一体计算,结果发现刷新操作严重干扰了计算连续性。后来不得不加了一层 SRAM 缓存来缓冲。记住:DRAM 的刷新特性决定了它不适合做频繁随机访问的存算一体设计。
4.4 Flash — 非易失的“老大哥”
Flash 存储器是目前最成熟、应用最广泛的非易失存储器。NOR Flash 和 NAND Flash 是两大分支。
- NOR Flash:随机读取快,适合代码存储。写入慢,擦除需要整块操作。
- NAND Flash:顺序读写快,密度高,适合大容量数据存储。但坏块管理是个麻烦事。
Flash 在存算一体中的应用,主要是做权重存储。我做过一个基于 NOR Flash 的存算一体加速器,利用 Flash 单元的模拟特性做乘累加运算。效果不错,但写入速度太慢——训练一次权重,要等好几分钟。
Flash 的存算一体优势:
- 非易失,掉电不丢数据
- 成熟的制造工艺,成本低
- 可以模拟存储,实现模拟计算
劣势:
- 写入速度慢(μs 级)
- 擦写次数有限(10^5-10^6 次)
- 高电压操作(10V+)
4.5 RRAM — 阻变存储器的“新星”
RRAM(阻变随机存取存储器)是我个人最看好的存算一体器件。它的工作原理是利用电致电阻效应,通过施加电压改变氧化物薄膜的电阻值。
RRAM 的结构很简单:金属-绝缘体-金属(MIM)。你想想看,一个器件就两个端子,比 Flash 的浮栅结构简单多了。
我为什么看好 RRAM?
- 速度快:读写延迟 < 10 ns
- 功耗低:操作电压 < 3V
- 可微缩:理论上可以做到 5nm 以下
- 模拟特性好:可以多级存储,实现高精度计算
我在 2020 年参与过一个 RRAM 存算一体项目,用 40nm 工艺做了一个 1Mb 的阵列。实测下来,单次乘累加运算的能效比传统数字方案高了 10 倍。但问题也有——器件的良率和一致性还需要提升。
4.6 MRAM — 磁存储的“速度之王”
MRAM(磁随机存取存储器)利用磁性隧道结(MTJ)的磁阻效应来存储数据。它的核心优势是速度——读写延迟可以做到 1-3 ns,几乎和 SRAM 相当。
MRAM 的单元结构是 1T1MTJ,一个晶体管加一个磁性隧道结。数据通过改变自由层的磁化方向来存储,方向平行是低阻态(0),反平行是高阻态(1)。
| 特性 | MRAM | RRAM | PCM |
|---|---|---|---|
| 读写速度 | 1-3 ns | 5-10 ns | 50-100 ns |
| 耐久性 | 10^15 次 | 10^6-10^8 次 | 10^8-10^9 次 |
| 多级存储 | 困难 | 容易 | 容易 |
| 功耗 | 中等 | 低 | 高(需要加热) |
注意:MRAM 的写入电流较大,而且对温度敏感。我曾经在高温环境下测试 MRAM 阵列,发现数据保持时间明显缩短。如果你要做工业级或车规级产品,这一点必须考虑进去。
4.7 PCM — 相变存储器的“老将”
PCM(相变存储器)利用硫系化合物在晶态和非晶态之间的电阻差异来存储数据。晶态是低阻,非晶态是高阻。
PCM 的写入需要加热——把材料加热到 600°C 以上才能改变相态。这导致它的写入功耗比较高,而且写入速度也慢(几十到几百纳秒)。
但 PCM 有一个独特的优势:多级存储能力非常强。通过控制加热脉冲的幅度和宽度,可以实现 4 级甚至 8 级存储。我在一个项目中用 PCM 实现了 4-bit 的权重存储,精度完全够用。
PCM 的存算一体应用场景:
- 大规模神经网络权重存储
- 需要高精度模拟计算的场景
- 对写入速度要求不高的推理任务
4.8 如何选择?我的经验总结
说了这么多,到底怎么选?我个人的经验是:
- 速度优先:选 SRAM 或 MRAM。SRAM 设计简单,MRAM 非易失。
- 容量优先:选 DRAM 或 NAND Flash。DRAM 速度快些,Flash 非易失。
- 存算一体专用:首选 RRAM,其次是 PCM。RRAM 在速度、功耗、模拟特性上最均衡。
- 成本敏感:选 Flash。工艺成熟,价格便宜。
最后说一句:没有完美的存储器件,只有最适合你应用场景的器件。做架构设计时,我建议你把几种器件组合起来用——比如用 SRAM 做缓存,RRAM 做计算存储,Flash 做长期存储。这样既能发挥各自的优势,又能规避短板。
嗯,这一章的内容就到这里。记住:选器件就像选工具,用对了地方,事半功倍。