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次以上)
3.2 DRAM:容量与速度的折中
DRAM,动态随机存取存储器。每个单元只有一个晶体管加一个电容。为什么叫“动态”?因为电容会漏电,需要定期刷新。
工作原理:电容存电荷,有电荷代表1,没电荷代表0。读取时,电容通过晶体管放电到位线上,灵敏放大器检测微小的电压变化。嗯,这里要注意——读取是破坏性的,读完必须重写。
我曾经在一个边缘AI项目里试过用DRAM做存算一体。容量确实大,但刷新操作太烦人了。每64ms要刷新一次,计算过程中还得穿插刷新指令,调度起来很麻烦。
| 参数 | DRAM | SRAM |
|---|---|---|
| 单元结构 | 1T1C | 6T |
| 单元面积 | ~6-8F² | ~120-200F² |
| 读写速度 | ~10-50ns | ~1ns |
| 是否需要刷新 | 是(64ms周期) | 否 |
| 易失性 | 是 | 是 |
3.3 Flash:非易失的霸主
Flash存储器,包括NOR Flash和NAND Flash。它的核心是浮栅晶体管——在控制栅和沟道之间多了一层浮栅,用来存储电荷。
工作原理:通过隧穿效应将电子注入浮栅或从浮栅拉出。浮栅有电子时,阈值电压升高,代表0;没有电子时,阈值电压低,代表1。写入需要高电压(~10-20V),擦除更麻烦,需要整块擦除。
Flash做存算一体有个天然优势——非易失,断电不丢数据。但缺点也很明显:写入速度慢(μs级),擦除更慢(ms级),而且有写入次数限制(~10^5次)。
我记得有个做神经网络权重存储的项目,想用Flash做原位计算。结果训练一次就要擦写几百万次,Flash很快就报废了。后来我们改用RRAM才解决这个问题。
- 写入速度:~10μs-1ms
- 擦除速度:~1-100ms
- 耐久度:~10^4-10^5次
- 擦除粒度:块级擦除(不能按字节擦)
3.4 RRAM:电阻式的新星
RRAM,阻变随机存取存储器。它的结构很简单——金属-绝缘体-金属的三明治结构。通过施加电压,在绝缘体中形成或断裂导电细丝,改变电阻值。
工作原理:初始状态是高阻态。施加一个形成电压后,绝缘体中产生导电细丝,变成低阻态。再施加一个反向电压,细丝断裂,回到高阻态。低阻态代表1,高阻态代表0(或者反过来,看设计)。
RRAM是我个人比较看好的存算一体候选器件。为什么?因为它天然支持模拟计算——电阻值可以连续变化,实现多比特存储。我在做模拟存算一体芯片时,用的就是RRAM阵列做矩阵向量乘法。
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个电阻态)。但问题是,中间态的稳定性不太好,温度波动会导致电阻漂移。
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在速度上独占鳌头,但密度和功耗就差一些。RRAM和PCM在多个维度上比较均衡,适合做存算一体的候选。Flash在非易失和密度上表现不错,但速度和耐久度是短板。
选型没有绝对的好坏,关键看你的应用场景。我个人建议,做存算一体芯片设计时,先明确你的核心需求——是要速度、密度、耐久度,还是非易失性?然后对照这张表,基本就能锁定候选器件了。
想要更多资料,联系可可