3、硬件基础:SRAM、RRAM、PCM、MRAM等存储介质在存算一体中的应用

聊到存算一体,很多人第一反应是“把计算搬到存储器里”。这个想法听起来简单,但真正落地时,存储介质的选择就成了第一个拦路虎。我这些年接触过的项目中,至少有三分之一是在选型阶段就踩了坑。

不同的存储介质,物理特性天差地别。有的适合做缓存,有的适合做权重存储,有的则更适合做模拟计算。咱们一个一个来看。

3.1 SRAM:最成熟的“老大哥”

SRAM,静态随机存取存储器。这东西大家太熟了,CPU的L1/L2缓存就是它。在存算一体里,SRAM主要用来做近存计算,也就是把计算单元和存储单元挨得很近,减少数据搬运。

核心优势:速度快,工艺成熟,和CMOS逻辑工艺完全兼容。

致命短板:面积大,6个晶体管才能存1个bit,静态功耗也不小。

我在做一款边缘AI芯片时,试过用SRAM做权重存储。结果呢?一个8MB的SRAM阵列,占了芯片面积的40%还多。你说这谁受得了?

SRAM在存算一体里的典型用法是数字存算一体。比如用SRAM阵列配合数字乘法器,做向量-矩阵乘法。这种方式精度高,但能效比受限于SRAM本身的漏电。

我的建议:SRAM适合做小规模、高精度的存算单元。如果你需要处理8-bit以上的精度,SRAM是稳妥的选择。但别指望用它做大容量存储,那成本扛不住。

3.2 RRAM:阻变存储器,存算一体的“新星”

RRAM,全称是Resistive Random-Access Memory。它通过改变材料的电阻值来存储数据。说白了,就是给一个电压,电阻就变了,而且这个变化是非易失的——断电了数据还在。

RRAM为什么适合存算一体?因为它天然支持模拟计算。你想想看,电阻值可以连续变化,那不就是模拟权重吗?把多个RRAM单元连成阵列,输入电压信号,输出电流信号,电流的大小就是乘加结果。这就是最经典的“存内计算”范式。

我记得有一次调试RRAM阵列,发现写入一致性特别差。同一个电压写进去,有的单元电阻变了10%,有的变了50%。后来查了半天,发现是工艺波动导致的。嗯,这玩意儿虽然潜力大,但良率和可靠性还是得看工艺水平。

特性 RRAM SRAM
存储密度 高(1T1R结构) 低(6T结构)
读写速度 纳秒级 亚纳秒级
非易失性 是 否
模拟计算能力 强 弱
工艺兼容性 需额外工艺层 完全兼容CMOS

注意:RRAM的电阻状态会随温度漂移。如果你做的是工业级产品,温度范围-40°C到85°C,那RRAM的权重保持特性必须仔细验证。我曾经吃过这个亏,产品在高温下推理精度直接掉了2个点。

3.3 PCM:相变存储器,速度与容量的“平衡者”

PCM,Phase-Change Memory。它利用硫系化合物在晶态和非晶态之间的电阻差异来存储数据。晶态电阻低,非晶态电阻高。加热到不同温度,就能在两种状态间切换。

PCM在存算一体里的定位有点尴尬。它的速度比RRAM慢一些,但密度比SRAM高很多。我见过一些团队用PCM做权重存储,配合外围的数字计算单元。说白了,就是把PCM当成一个高密度、非易失的“硬盘”来用,计算还是交给数字电路。

不过,PCM有一个很头疼的问题——电阻漂移。随着时间推移,非晶态的电阻会慢慢变大。这对模拟计算来说是致命的,因为权重值会变。你想想看,训练好的模型,放了一个月,推理结果就不对了,这谁受得了?

避坑指南:我曾经在PCM上做过一次实验,发现漂移问题可以通过“刷新”操作缓解——定期给PCM单元重新写入一次数据。但这样会带来额外的功耗和延迟。所以,如果你对精度要求极高,PCM可能不是最佳选择。

3.4 MRAM:磁存储器,未来的“全能选手”?

MRAM,Magnetoresistive Random-Access Memory。它利用磁性隧道结(MTJ)的磁化方向来存储数据。两个磁层的方向相同,电阻低;方向相反,电阻高。切换磁化方向需要电流,但保持状态不需要功耗。

MRAM的速度接近SRAM,密度接近DRAM,而且是非易失的。听起来很完美对吧?但它的写入功耗是个大问题。传统的STT-MRAM(自旋转移矩MRAM)写入电流很大,导致写操作比读操作慢得多、功耗高得多。

在存算一体里,MRAM目前更多是研究阶段。我见过一些学术论文用MRAM做模拟计算,但实际产品很少。原因很简单:MRAM的电阻变化范围太小了,通常只有20%-30%,而RRAM可以有100倍以上的变化范围。这意味着MRAM做模拟计算时,信噪比不够好。

我的看法:MRAM在存算一体领域,短期内更适合做数字存算一体。比如用MRAM替代SRAM做缓存,利用它的非易失性和高密度。至于模拟计算,还得等SOT-MRAM(自旋轨道矩MRAM)这类新技术成熟。

3.5 四种介质的对比与选型建议

说了这么多,咱们来总结一下。这四种介质各有各的脾气,选型时得看你的具体需求。

  • 追求精度和速度:选SRAM。代价是面积大、成本高。
  • 追求高密度和模拟计算:选RRAM。但要接受工艺波动和温度漂移。
  • 需要非易失性和中等密度:选PCM。但要处理电阻漂移问题。
  • 想要全能型选手:关注MRAM。但目前还不够成熟。

我个人习惯是:先定精度,再定介质。如果应用场景需要8-bit以上精度,我倾向于用SRAM或数字方案。如果精度要求不高(比如4-bit甚至1-bit),那RRAM的模拟计算优势就体现出来了。

下面这张图是我自己整理的,展示了四种介质在存算一体中的定位和关系。

存算一体存储介质选型框架 SRAM 速度最快,工艺最成熟 适合:数字存算一体、缓存 缺点:面积大、静态功耗高 推荐精度:8-bit以上 RRAM 密度高,支持模拟计算 适合:模拟存算一体、权重存储 缺点:工艺波动、温度漂移 推荐精度:4-bit以下 PCM 非易失,中等密度 适合:权重存储、数字存算 缺点:电阻漂移、速度较慢 推荐精度:4-8 bit MRAM 速度快,非易失,高密度 适合:未来存算一体、缓存 缺点:写入功耗高、电阻变化小 推荐精度:研究阶段 ← 速度慢 · 速度快 → ← 密度低 · 密度高 → 选型建议:先定精度需求,再选介质;SRAM保底,RRAM突破,PCM过渡,MRAM看未来

最后说一句,没有完美的存储介质,只有最适合你场景的。做存算一体设计,本质上就是在速度、密度、功耗、精度之间做权衡。我见过太多人一上来就追求“最先进”的介质,结果项目做到一半发现工艺不成熟,又回头用SRAM。嗯,选型这事,稳一点总没错。

想要更多资料,联系可可