第4章:存储器件基础 — SRAM、DRAM、Flash、RRAM、MRAM、PCM 的特性对比

做存算一体设计,说白了就是在跟存储器件打交道。你选什么器件,直接决定了你的架构能做什么、不能做什么。我这些年摸过的存储器件不下十种,踩过的坑也不少。今天咱们就把主流的几种器件掰开揉碎了聊一聊。

4.1 先看一张总图:存储器的“江湖地位”

在开始逐个分析之前,我习惯先画一张图,把各种存储器的位置理清楚。你想想看,从速度最快、容量最小的寄存器,到速度最慢、容量最大的硬盘,中间其实是一个金字塔结构。

存储器金字塔与存算一体适用性 Flash / SSD 容量大、速度慢、非易失 DRAM 容量中等、速度中等、易失 SRAM 速度快、容量小、易失 RRAM/MRAM/PCM 存算一体核心器件 存算一体 消除数据搬运瓶颈 速度↑ 容量↑

这张图里我特意把 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 如何选择?我的经验总结

说了这么多,到底怎么选?我个人的经验是:

  1. 速度优先:选 SRAM 或 MRAM。SRAM 设计简单,MRAM 非易失。
  2. 容量优先:选 DRAM 或 NAND Flash。DRAM 速度快些,Flash 非易失。
  3. 存算一体专用:首选 RRAM,其次是 PCM。RRAM 在速度、功耗、模拟特性上最均衡。
  4. 成本敏感:选 Flash。工艺成熟,价格便宜。

最后说一句:没有完美的存储器件,只有最适合你应用场景的器件。做架构设计时,我建议你把几种器件组合起来用——比如用 SRAM 做缓存,RRAM 做计算存储,Flash 做长期存储。这样既能发挥各自的优势,又能规避短板。

嗯,这一章的内容就到这里。记住:选器件就像选工具,用对了地方,事半功倍。