3. 存储器件原理:SRAM、DRAM、Flash、RRAM、MRAM、PCM的工作原理与特性对比

做存算一体芯片,说白了就是在跟存储器件打交道。你选什么存储单元,直接决定了你的架构能做什么、不能做什么。我这些年摸过的存储器件不下十几种,踩过的坑也不少。今天咱们就把主流的几种——SRAM、DRAM、Flash、RRAM、MRAM、PCM——挨个捋一遍。

3.1 SRAM:速度之王,面积之殇

SRAM,静态随机存取存储器。它的基本单元是6个晶体管组成的锁存器结构。为什么叫“静态”?因为它只要不断电,数据就能一直保持,不需要刷新。

工作原理:说白了就是两个反相器交叉耦合,形成正反馈。写入时,通过位线强制翻转节点状态;读取时,预充电后通过位线放电速度判断存储值。

我在做一款AI加速器时,最开始用的就是SRAM作为计算存储单元。速度快是真快,延迟不到1ns。但面积大得让人头疼——6T结构,每比特要6个晶体管,密度上不去。

核心特性:
  • 读写速度:~1ns,极快
  • 单元面积:~120-200F²,较大
  • 功耗:静态功耗较高(漏电问题)
  • 易失性:断电丢失数据
  • 耐久度:近乎无限(10^16次以上)
我的经验:SRAM做存算一体,适合做小规模、高速度的缓存级计算。比如卷积神经网络的第一层,数据复用率高,用SRAM做近存计算效果不错。但别指望用它做大容量存储,芯片面积会爆炸。

3.2 DRAM:容量与速度的折中

DRAM,动态随机存取存储器。每个单元只有一个晶体管加一个电容。为什么叫“动态”?因为电容会漏电,需要定期刷新。

工作原理:电容存电荷,有电荷代表1,没电荷代表0。读取时,电容通过晶体管放电到位线上,灵敏放大器检测微小的电压变化。嗯,这里要注意——读取是破坏性的,读完必须重写。

我曾经在一个边缘AI项目里试过用DRAM做存算一体。容量确实大,但刷新操作太烦人了。每64ms要刷新一次,计算过程中还得穿插刷新指令,调度起来很麻烦。

参数 DRAM SRAM
单元结构 1T1C 6T
单元面积 ~6-8F² ~120-200F²
读写速度 ~10-50ns ~1ns
是否需要刷新 是(64ms周期) 否
易失性 是 是
避坑指南:我曾经在一个项目中忽略了DRAM的刷新对计算连续性的影响。结果发现,当计算负载高时,刷新请求被延迟,导致数据丢失。后来不得不加了一个刷新控制器,提前调度。记住——DRAM的刷新不是可以随便忽略的。

3.3 Flash:非易失的霸主

Flash存储器,包括NOR Flash和NAND Flash。它的核心是浮栅晶体管——在控制栅和沟道之间多了一层浮栅,用来存储电荷。

工作原理:通过隧穿效应将电子注入浮栅或从浮栅拉出。浮栅有电子时,阈值电压升高,代表0;没有电子时,阈值电压低,代表1。写入需要高电压(~10-20V),擦除更麻烦,需要整块擦除。

Flash做存算一体有个天然优势——非易失,断电不丢数据。但缺点也很明显:写入速度慢(μs级),擦除更慢(ms级),而且有写入次数限制(~10^5次)。

我记得有个做神经网络权重存储的项目,想用Flash做原位计算。结果训练一次就要擦写几百万次,Flash很快就报废了。后来我们改用RRAM才解决这个问题。

Flash的关键限制:
  • 写入速度:~10μs-1ms
  • 擦除速度:~1-100ms
  • 耐久度:~10^4-10^5次
  • 擦除粒度:块级擦除(不能按字节擦)

3.4 RRAM:电阻式的新星

RRAM,阻变随机存取存储器。它的结构很简单——金属-绝缘体-金属的三明治结构。通过施加电压,在绝缘体中形成或断裂导电细丝,改变电阻值。

工作原理:初始状态是高阻态。施加一个形成电压后,绝缘体中产生导电细丝,变成低阻态。再施加一个反向电压,细丝断裂,回到高阻态。低阻态代表1,高阻态代表0(或者反过来,看设计)。

RRAM是我个人比较看好的存算一体候选器件。为什么?因为它天然支持模拟计算——电阻值可以连续变化,实现多比特存储。我在做模拟存算一体芯片时,用的就是RRAM阵列做矩阵向量乘法。

我的建议:RRAM做存算一体,重点看两个参数:开关比(高阻/低阻比值,至少10倍以上)和一致性(不同单元之间的电阻分布)。我踩过的坑是——同一批芯片,不同单元的forming电压差异很大,需要做统计建模。

3.5 MRAM:磁存储的未来

MRAM,磁随机存取存储器。利用磁性隧道结(MTJ)的隧穿磁阻效应来存储数据。两个磁性层,一个固定,一个自由。自由层的磁化方向决定电阻高低。

工作原理:平行磁化时,电阻低(代表0);反平行磁化时,电阻高(代表1)。写入通过自旋转移矩(STT)效应——用电流改变自由层的磁化方向。

MRAM的速度接近SRAM,密度接近DRAM,而且非易失。听起来很完美对吧?但它的写入电流比较大,而且MTJ的制造工艺还不成熟,良率是个问题。

我参与过一个MRAM的评估项目,发现它的读写速度确实快(~10ns),但写入功耗比预期高了不少。而且高温下数据保持能力会下降——嗯,这是磁存储的固有特性。

特性 RRAM MRAM PCM
存储机制 电阻变化(细丝) 磁阻变化(MTJ) 相变(晶态/非晶态)
读写速度 ~10-50ns ~10-30ns ~50-100ns
耐久度 ~10^6-10^8次 ~10^15次 ~10^8-10^9次
多比特能力 强(模拟电阻) 弱(2态为主) 中(多级电阻)
工艺兼容性 好(CMOS兼容) 中(需要磁性材料) 好(CMOS兼容)

3.6 PCM:相变存储的取舍

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

工作原理:写入时,通过大电流快速加热到熔点以上然后急冷,材料变成非晶态(高阻);用中等电流加热到结晶温度以上并保持一段时间,材料变成晶态(低阻)。读取用小电流,不改变相态。

PCM有个很有意思的特性——中间态。通过控制结晶程度,可以实现多级存储。我在做高密度存储方案时,曾经用PCM实现了每单元4比特(16个电阻态)。但问题是,中间态的稳定性不太好,温度波动会导致电阻漂移。

注意:PCM的写入功耗比较高,因为需要加热。而且相变材料的疲劳问题——反复相变后,材料会逐渐失效。我曾经测试过一批PCM器件,在10^8次写入后,电阻窗口明显缩小了。

3.7 特性对比总结

好了,六种器件都讲完了。咱们用一张表做个对比,方便你选型时参考。

参数 SRAM DRAM Flash RRAM MRAM PCM
易失性 是 是 否 否 否 否
读速度 ~1ns ~10ns ~50ns ~10ns ~10ns ~50ns
写速度 ~1ns ~10ns ~1ms ~50ns ~30ns ~100ns
单元面积 ~150F² ~8F² ~4F² ~4F² ~20F² ~4F²
耐久度 ∞ ∞ 10^5 10^8 10^15 10^9
多比特 否 否 是(MLC) 是 弱 是
写功耗 低 中 高 低 中 高
选型建议:
  • 要极致速度、小容量缓存?选SRAM
  • 要大容量、成本敏感?选DRAM或Flash
  • 要做模拟存算一体、多比特计算?优先考虑RRAM
  • 要非易失、高耐久度?MRAM是首选
  • 要密度高、工艺成熟?PCM也是个选项
存储器件特性对比雷达图 速度 密度 耐久度 非易失 多比特 写功耗 SRAM DRAM Flash RRAM 注:各维度为相对比较,非精确数值

这张雷达图是我自己画的,直观展示了六种器件在不同维度上的相对表现。你看,SRAM在速度上独占鳌头,但密度和功耗就差一些。RRAM和PCM在多个维度上比较均衡,适合做存算一体的候选。Flash在非易失和密度上表现不错,但速度和耐久度是短板。

选型没有绝对的好坏,关键看你的应用场景。我个人建议,做存算一体芯片设计时,先明确你的核心需求——是要速度、密度、耐久度,还是非易失性?然后对照这张表,基本就能锁定候选器件了。

想要更多资料,联系可可