存储器件基础:SRAM、DRAM、Flash、RRAM、MRAM、PRAM原理与特性对比

做存算一体芯片,说白了就是在跟存储器打交道。你选什么存储器件,直接决定了你的架构能做什么、不能做什么。我这些年折腾过不少项目,从最早的SRAM宏单元到后来的RRAM阵列,踩过的坑真不少。今天咱们就把这些主流存储器件掰开揉碎了聊一聊。

SRAM:静态随机存取存储器

SRAM是我用得最多的器件,没有之一。它的基本单元是6个晶体管(6T结构),两个交叉耦合的反相器构成锁存器,再加上两个访问管。

核心特点:速度快,功耗低,但面积大。一个bit要6个管子,密度上不去。

我在做一款AI加速器时,用SRAM做片上缓存。当时觉得它读写快、不需要刷新,省心。结果呢?芯片面积被缓存吃掉了一大半。嗯,这就是代价。

  • 读操作:字线(WL)拉高,位线(BL/BLB)预充电,通过差分电压读出数据
  • 写操作:字线拉高,位线强制写入目标电平
  • 保持:只要不掉电,数据一直存在

避坑指南:我曾经在低电压设计中吃过亏。SRAM在0.8V以下,静态噪声容限急剧下降,读写容易出错。如果你要做近阈值计算,务必用定制SRAM单元,别直接用库里的标准单元。

DRAM:动态随机存取存储器

DRAM的原理很简单——一个晶体管加一个电容。电容存电荷,有电荷代表1,没电荷代表0。但电容会漏电,所以需要定期刷新。

你想想看,一个bit只要一个管子加一个电容,密度比SRAM高多了。所以DRAM才能做到GB级别。但代价是什么?速度慢,而且需要刷新控制器。

参数 SRAM DRAM
单元面积 ~100F² ~6F²
读速度 ~1ns ~10ns
写速度 ~1ns ~10ns
刷新需求 无 64ms
功耗 静态功耗高 刷新功耗高

我做过一个项目,想用DRAM做存内计算。结果发现,DRAM的刷新操作会打断计算,而且读出来的是模拟信号,需要ADC转换。折腾了半年,最后还是换成了SRAM。不是说DRAM不好,而是它不适合所有场景。

Flash:闪存

Flash是非易失性存储的王者。NOR Flash和NAND Flash,两种架构,各有千秋。

NOR Flash:随机读取快,适合存代码。但写入慢,擦除需要整块操作。

NAND Flash:密度高,成本低,适合存数据。但读取需要按页操作,随机访问慢。

注意:Flash的擦写寿命有限,一般SLC是10万次,MLC只有1万次左右。我在做存算一体芯片时,用Flash做权重存储,结果训练几次后单元就坏了。后来改用RRAM才解决问题。

Flash的编程原理是Fowler-Nordheim隧穿或热电子注入。说白了,就是让电子穿过氧化层,存到浮栅里。擦除时再把电子拉出来。这个过程对氧化层有损伤,所以寿命有限。

RRAM:阻变随机存取存储器

RRAM是我现在最看好的存算一体器件。它的原理是在金属氧化物中形成或断裂导电细丝,改变电阻值。

我参与过一个RRAM宏单元的设计项目。当时最头疼的是器件一致性——同一个晶圆上,不同单元的set电压能差20%。后来通过优化工艺和加外围补偿电路,才把良率提上去。

  • Set操作:施加正电压,形成导电细丝,电阻从高变低
  • Reset操作:施加负电压,断裂导电细丝,电阻从低变高
  • Read操作:施加小电压,读取电流大小

RRAM的优势:速度快(~ns级),功耗低,CMOS兼容性好,可三维集成。特别适合做存算一体中的权重存储。

MRAM:磁随机存取存储器

MRAM利用磁性隧道结(MTJ)的隧穿磁阻效应存储数据。两个磁性层的磁化方向平行时电阻低,反平行时电阻高。

MRAM的速度和SRAM差不多,但它是非易失的。我见过一个设计,用MRAM替代SRAM做缓存,待机功耗直接降了90%。但MRAM的写入电流大,写功耗高,这是个硬伤。

STT-MRAM(自旋转移矩MRAM)是目前的主流。它用自旋极化电流翻转磁化方向,比传统MRAM的写功耗低不少。但说实话,MRAM的存储窗口还是偏小,读干扰问题需要小心处理。

PRAM:相变随机存取存储器

PRAM利用硫系化合物在晶态和非晶态之间的电阻差异存储数据。晶态电阻低,非晶态电阻高。

PRAM的优点是 scalability 好,可以做到很高的密度。但它的写入需要加热,功耗大,速度也慢。我在评估PRAM做存算一体时发现,它的多级存储能力不错,一个单元可以存2-3个bit。但温度稳定性是个问题——环境温度高了,非晶态容易自发结晶,数据就丢了。

特性对比总结

好了,咱们把这几类器件放在一起看看。我整理了一个对比表,方便你快速参考。

特性 SRAM DRAM Flash RRAM MRAM PRAM
非易失 否 否 是 是 是 是
读速度 ~1ns ~10ns ~50ns ~10ns ~2ns ~50ns
写速度 ~1ns ~10ns ~1ms ~10ns ~5ns ~100ns
写功耗 低 中 高 低 中 高
耐久性 无限 无限 10⁴-10⁶ 10⁶-10¹² 10¹⁵ 10⁸-10¹²
密度 低 高 很高 高 中 高
CMOS兼容 完美 好 好 好 中 中

做存算一体架构时,我的建议是:

  • 计算密集、要求低延迟:用SRAM做片上缓存
  • 大容量、非易失、可重构:用RRAM或MRAM
  • 成本敏感、容量优先:考虑Flash或PRAM
  • 不要迷信单一器件:混合使用往往效果更好

我的经验:选存储器件时,别只看datasheet上的参数。一定要做硅验证,跑实际的工作负载。我见过太多项目,仿真时数据漂亮,流片回来一跑就翻车。特别是RRAM和MRAM,工艺波动大,一定要留足设计余量。

存储器件特性对比图 存储器件 存算一体基础 SRAM 6T单元 | 速度快 面积大 | 易失性 DRAM 1T1C | 密度高 需刷新 | 易失性 Flash 浮栅 | 非易失 寿命有限 | 写慢 RRAM 导电细丝 | 非易失 CMOS兼容 | 波动大 MRAM MTJ | 非易失 速度快 | 写电流大 PRAM 相变 | 非易失 多级存储 | 功耗高 易失性:SRAM、DRAM | 非易失性:Flash、RRAM、MRAM、PRAM 存算一体架构中,RRAM和MRAM是当前研究热点

这张图把六种存储器件的关系和特性都串起来了。你可以看到,易失性存储(SRAM、DRAM)和非易失性存储(Flash、RRAM、MRAM、PRAM)是两大阵营。在存算一体架构中,我们往往需要混合使用——用SRAM做快速缓存,用RRAM或MRAM做权重存储。

好了,这一章的内容就到这儿。记住,选存储器件没有银弹,关键看你的应用场景和设计约束。下一章我们会深入RRAM的器件物理和建模,那是做存算一体芯片的核心基础。