ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SRAM还是RRAM?存算一体芯片选型对比与决策指南

SRAM还是RRAM?存算一体芯片选型对比与决策指南 开场存算一体芯片这两年是真的火但不少人一上来就被“选 SRAM 还是 RRAM”这个问题卡住了。做 AI 推理加速、边缘低功耗设备、还是传感器内预处理方案选错了后面流片一遍的成本和时间都是真金白银。我自己在几个项目里评估过基于 SRAM 的存算一体宏单元也陪团队查过 RRAM 的工艺 PDK今天就把这两种路线摆在一起从工作原理、工艺成熟度、电路代价、量产可靠性几个角度做个系统对比顺便给一张可以直接抄作业的选型决策表。这篇文章适合以下几类人正在做存算一体芯片架构选型的工程师、准备立项做 AI 加速器但还没定技术路线的团队负责人、以及想了解为什么 2024 年之后 SRAM 存算一体开始“回暖”、而 RRAM 却在部分场景被冷落的研究生和产品经理。内容不绕弯子直接说选型里必须关心的那些事。1. 存算一体为什么重新回到牌桌上1.1 冯·诺依曼瓶颈与存算一体的反转逻辑传统芯片的性能天花板早就不是晶体管不够快而是数据在存储器和计算单元之间搬运太慢、太耗电。用大白话说CPU 就像一个厨师内存是冰箱算一道菜要反复从冰箱拿食材时间全耗在“来回走路”上了。这个“走路”的过程在芯片里就是访存功耗和数据总线延迟。存算一体的核心逻辑很简单把计算直接放进存储器里让数据待在原处完成运算省掉大量搬运。矩阵乘加这类 AI 计算特别适合这么做因为神经网络推理的本质就是反复读取权重和激活值做乘加累加权重如果能“住在”存储阵列里运算效率就能大幅提升。这里有个容易混淆的点市场上有“存内计算Computing-in-Memory”和“存算一体Processing-in-Memory”两种说法很多文章混用但严格来说存内计算强调在存储单元内部或阵列内部完成计算存算一体的范围更宽还包括把计算逻辑贴近存储阵列放、但不一定在单元内做运算的方案。本文讨论的 SRAM CIM 和 RRAM CIM 都属于典型的存内计算路线。1.2 SRAM 和 RRAM 在存算一体版图里的位置从存储介质角度看SRAM 和 RRAM 代表了两条截然不同的路线前者是成熟得不能再成熟的易失性存储工艺和模型完善但面积大、贵后者是非易失性存储的新贵密度高、可断电保存数据但工艺尚在爬坡期良率和可靠性挑战很大。在学术论文里基于 SRAM 的存算一体论文数量一直不少原因是它和标准数字 CMOS 工艺兼容度极高不需要特殊材料原型验证快。RRAM 存算一体则更多出现在需要低功耗、可断电部署的场景里比如 IoT 设备端推理、某些专用边缘芯片它的卖点是能量效率理论上更高但代价是外围电路复杂度和工艺成熟度风险。选型时千万不要只看技术指标而要把“这条路线能不能在你们团队的目标工艺节点下按时、按预算做出符合良率要求的产品”当作最高优先级。SRAM 路线更像是“确定性很高、但优化空间有限”RRAM 路线则是“上限很高、坑也深”。2. 两种存储技术的底层差异选型的物理课2.1 SRAM 工作原理与性能边界SRAM 即静态随机存取存储器每个存储单元通常由 6 个晶体管构成6T 结构依靠两个交叉耦合的反相器保持状态只要不掉电数据就不会丢。因为这个特性它的访问速度极快几乎是所有存储器里最快的档次也不需要像 DRAM 那样定期刷新。在存算一体实现方式上SRAM CIM 通常把权重存在 6T 或改进型单元里通过位线输出电压或电流来反映“权重×输入”的乘积结果然后在同一列上做电流累加再用 ADC 读出并数字化。这本质上是利用存储单元阵列的模拟特性做多行并行乘法累加。关于 sram 工作原理还有几个重要细节会影响选型首先是单元面积6T SRAM 单元面积大概在 100 到 200 F² 之间比 1T1R 的 RRAM 单元典型面积 10~50 F²大一到两个数量级其次是读干扰问题虽然 SRAM 读写稳定性设计已经很成熟但在存算一体模式下多个字线同时导通会改变单元的工作点必须小心控制位线电压摆幅否则可能把存储数据改写了最后是漏电功耗SRAM 在先进工艺下静态漏电不可忽视这对低功耗场景是硬伤。2.2 RRAM 工作原理与性能边界RRAM阻变随机存取存储器的核心是一个金属-绝缘体-金属结构的阻变器件通过施加电压脉冲让器件在高阻态和低阻态之间切换从而存储数据。因为不需要持续供电RRAM 天然具备非易失特性断电后数据依然保留。在存算一体应用中RRAM 通常以 1T1R一个晶体管加一个阻变器件阵列形式出现把权重映射为单元的电导值。当输入电压对应激活值施加在字线上时流过每个单元的电导电流就是“权重×输入”的结果在位线上自然累加再用 ADC 读出。相比 SRAMRRAM 单元面积小、密度高且权重可以直接存成模拟电导值理论上能做到很高的单位面积算力。但 RRAM 的短板也很突出阻变窗口高阻与低阻的比值有限通常一个数量级左右导致多比特权重映射困难器件电导存在波动性需要复杂的写校验和参考电路来补偿耐久性只有 10⁵ 到 10⁶ 次写周期远低于 SRAM 的无限次读写。这些都不是“以后能解决”的小问题而是直接决定你电路架构设计难度的核心约束。2.3 核心参数对比表对比维度SRAM 存算一体RRAM 存算一体单元结构6T/8T 晶体管1T1R 或交叉阵列单元面积约 100~200 F²约 10~50 F²非易失性无断电丢数据有断电保留读写速度亚纳秒级纳秒级写较慢耐久性近乎无限10⁵~10⁶ 次多比特能力较容易靠数字/模拟混合较难电导窗口有限静态功耗中等偏高极低非易失工艺成熟度极高各代工厂标准库中等特定工艺节点可选外围电路复杂度相对简单偏置、参考、校验电路复杂良率与量产风险低中高这张表里 SRAM 唯一的“硬伤”就是面积大和非易失性缺失RRAM 则是在制造和可靠性上明显吃力。看起来两者各有千秋但落到真实产品选型时场景约束会很快帮你在它们之间做减法。3. SRAM 存算一体方案选型要点3.1 SRAM 存算一体适合哪些场景先说结论SRAM 存算一体最适合“数据生命周期短、计算精度要求高、工艺节点领先”的实时推理场景。举几个具体例子。一是端侧语音关键词唤醒模型很小权重只有几十 KB但要求极低延迟和低功耗SRAM CIM 能让权重常驻在片上免去反复从外部存储加载数据的开销。二是视频编解码和图像信号处理里的滤波算法这类算法通常有实时性要求而且权重更新频繁SRAM 的无限耐久性就显得很香。三是大模型推理中的部分算子加速比如 Attention 里的 QKV 乘法和输出投影权重虽然不是每毫秒都变但 SRAM CIM 和数字计算单元结合能起到“暴力卸载乘加负载”的效果。要注意的是SRAM 是易失性存储一旦掉电权重全丢。如果产品有“断点续算”“低功耗待机后秒醒”这类需求SRAM 路线需要额外配备非易失存储做权重备份和恢复这部分的面积和功耗成本经常被低估。3.2 关键电路指标位线摆幅、ADC 精度、阵列组织设计一个 SRAM CIM 宏单元最容易被问到的三个指标是位线摆幅、ADC 位宽和阵列规模。位线摆幅决定了计算精度和功耗。摆幅越大信噪比越高但每做一次计算要耗费的功耗也越大而且对存储单元稳定性的威胁更大。实践中常用做法是控制摆幅在 100~200 mV 左右并用差分位线抵消共模噪声。我见过一个团队为了追求精度把摆幅拉到 300 mV结果低电压下的写稳定性测试惨不忍睹。ADC 精度是另一个大头。理论上位线上的电流累加结果是模拟量送入 ADC 量化后才能和数字流水线衔接。ADC 每增加 1 bit面积和功耗大致翻倍所以千万别贪心。业内常用的经验法则是在 8 bit 权重、8 bit 激活的量化条件下读电路 ADC 做到 6~7 bit 足够剩下误差交给算法侧做量化感知训练去补偿。阵列组织方面常见选择是每 64 或 128 行共享一条位线做累加列方向并排放置多个子阵列再拼出更大的 MAC 阵列。行数越多单次计算吞吐越高但位线电容越大、累积噪声越大。选 64 还是 128一定要结合你们目标工作频率去仿别照搬论文参数。3.3 从 NVIDIA 的 SRAM 布局得到的信号最近有个搜索词是“sramnvidia”这里多说两句。NVIDIA 在 GPU 里有大量 SRAM 用作寄存器堆、共享内存和缓存同时他们也在 ISSCC 等会议上展示过基于 SRAM 的存内计算相关研究。这释放的信号不是“NVIDIA 下一块 GPU 马上要用存算一体”而是他们在认真评估 SRAM CIM 作为特定算子加速器的可行性以及在为未来架构储备知识产权。对我们做选型的人来说参考价值在于如果连重量级玩家都在 SRAM CIM 上投入资源说明这条路线至少在“灵活性和数字生态兼容性”上有不可替代的优势。我们的产品设计也应该优先考虑让 SRAM CIM 宏单元能像普通 SRAM 一样挂进 SoC 总线这样既能做存储用又能切到计算模式一鱼两吃降低工程风险。3.4 SRAM 的 EMA 引脚到底是什么搜索热词里有一个“sram的ema pin是干嘛的”这里单独解释一下很多工程师第一次接触带扩展功能的 SRAM 接口时都会被这个缩写困惑。EMA 并不是所有 SRAM 都有的标准引脚它通常指“扩展模式访问Extended Mode Access”相关信号出现在一些支持配置寄存器扩展的 SRAM 或伪 SRAM 接口里。当这个引脚有效时地址线会被解读为寄存器地址而不是存储单元地址主机可以借此配置芯片的低功耗模式、输出驱动强度、延迟参数等。如果你只是做普通的存算一体宏单元多半不会碰到这个引脚但如果你在集成某款带扩展模式的商业 SRAM IP看到 EMA 引脚一定要仔细查 datasheet不要直接接地或悬空。把它拉高可能让你意外进入配置模式导致存储访问行为异常。这个坑我在项目 review 时见过不止一次。4. RRAM 存算一体方案选型要点4.1 RRAM 存算一体适合哪些场景RRAM 存算一体的高光场景集中在“低功耗 非易失 权重不常更新”这个交集里。最典型的就是电池供电的 IoT 设备端推理比如智能门锁的人脸识别、工业振动传感器的异常检测、助听器的环境音分类。这些设备往往几个月才更新一次模型但要求待机功耗尽可能低、上电后能立刻开始推理权重必须掉电不丢。RRAM CIM 可以直接把神经网络权重写成非易失电导值上电后一个时钟周期就能开始计算不用等待权重搬移这在微瓦级功耗预算下是巨大的优势。另一个适合的场景是持续运行的传感器数据预处理比如可穿戴设备里的 PPG 信号分析。数据流是一直来的但设备经常处于极低占空比唤醒状态RRAM 的低静态功耗优势能直接转化为待机时间的延长。不过如果你想做的产品需要频繁在线学习、每秒钟更新权重RRAM 的耐久性马上会成为瓶颈。10⁵ 次写循环听起来不少但如果一秒写一次一天就是 86400 次不到两天就磨穿了。这类需求还是老实选 SRAM。4.2 阻变窗口、耐久性、良率如何权衡RRAM 选型里最核心的一组矛盾是阻变窗口、耐久性和良率之间的三角关系。阻变窗口如果设计得大一些高低阻态区分度好读错率低但需要的写电压和电流更大会加速器件磨损降低耐久性。反过来如果把写条件调弱来延长寿命窗口变小多比特权重映射就更难做良率也会因为工艺波动而下滑。实践上很多团队会选择“低阻态目标值取中间区域”的策略也就是不要把低阻态压得太低留出对抗工艺波动的余量。良率问题更直接。RRAM 的阻变层厚度只有几纳米工艺波动对电导一致性影响很大设计时会发现阵列角落的单元和中心单元电导偏差明显。常见对策是加写校验循环写入后读一次不达标再写直到满足目标电导范围。这个做法能显著提升良率但代价是写功耗和时间成倍增加。如果你所在公司没有和代工厂联合开发 RRAM 工艺的条件我建议尽量使用代工厂已经量产验证的嵌入式 RRAM IP而不是自己设计单元版图。自己画单元这事儿适合高校和研究机构做原型不适合商业流片节奏。4.3 外围电路成本与偏置电路设计很多人只盯着 RRAM 单元本身低估了外围电路的工作量。RRAM CIM 宏单元的外围电路包括写驱动、限流电路、参考电阻阵列、读出放大器和写校验逻辑任何一部分没做好都会让阵列的实际精度远低于论文仿真值。偏置电路尤其关键。RRAM 单元的读电压必须精确控制在阻变阈值之下否则会造成读干扰也就是读一次数据就变了。典型读电压在 0.1~0.3 V 区间而写电压在 1~3 V 区间两者差距很大电源设计上要避免寄生电容耦合造成尖峰。参考电阻阵列也要多留几个档位。由于不同 batch 流片的器件电导分布可能漂移如果参考值是固定的遇到整体偏移就会系统性读出错误。预留可调节的参考档位配合量产测试阶段的校准流程是很多团队的实用经验。5. 选型决策框架从算力、精度、功耗、成本四个维度把关5.1 计算负载类型和连续矩阵乘的匹配度选型第一步是反过来审视你们的目标工作负载而不是先比存储器件参数。如果负载是大量“连续的大矩阵乘法”比如大模型推理里的 GEMM 算子存储阵列越大越好、数据复用越多越好RRAM 的密度优势能放大到极致因为权重可以大规模地填进阵列里。如果负载是“碎片化的小规模算子”比如奖赏函数计算、控制逻辑中的小矩阵处理SRAM 的灵活性更合适。RRAM 阵列往往需要整行整列地做运算单个小矩阵可能只占阵列很小一部分利用率上不去优势就发挥不出来。一个实用做法是对你们模型做算子剖析把计算图里每个算子的输入输出尺寸、权重大小、调用频率列出来算一算如果映射到 64×64 或 128×128 的存储阵列上利用率能达到多少。利用率低于 50% 的算子其实不太适合硬塞进存算一体单元。5.2 精度敏感与模拟误差容忍度精度是存算一体最容易被销售 PPT 夸大的点。SRAM CIM 和 RRAM CIM 都有模拟计算的固有误差但来源不同。SRAM CIM 的误差主要来自位线累加时的噪声和 ADC 量化误差因为计算过程和存储数据分离误差稳定性较好在不同温度和电压下表现相对一致。RRAM CIM 的误差则复杂得多器件电导的时变漂移、不同单元之间的工艺偏差、温度和电压对阻变状态的影响都会在计算中累积。这就导致一个问题芯片出厂时测试精度可能是 99%跑了一段时间后因为电导漂移可能降到 90%。如果你的产品是安防、工业控制这类对结果稳定性要求极高的场景我强烈建议先做一个“误差注入”实验用软件模拟在权重上加一定比例的随机噪声看最终模型精度退化多少。这个实验成本极低但能帮你在项目早期就认清模拟计算的真实代价。5.3 工艺成熟度与供应链成本对比选型时还要考虑一个非常现实的问题你们团队能流片的工艺节点里RRAM 是否可用以及可用密度和可靠性参数到底是什么水平。SRAM 在所有主流工艺节点都有标准单元库从 180 nm 到 5 nm随便选。RRAM 目前主要在特定工艺节点量产比如 40 nm 或 28 nm 的嵌入式 RRAM 选项更先进节点的成熟度还在爬坡。如果你们项目要求用 12 nm 以下节点做高性能计算RRAM 大概率不是现实选项。成本方面值得注意一个隐藏项“改写成本”。RRAM 虽然单元密度高但写校验循环、偏置电路、参考电路的面积开销经常被低估。我自己见过一个 RRAM 宏单元设计存储阵列本身面积不大可外围电路面积几乎是阵列面积的 2 倍最后整体面积和同容量的 SRAM 方案差不了太多。如果你们的产品是一次性量产、对成本极度敏感我建议除了芯片 BOM 成本之外把“量产测试时间”也算进去。RRAM 的写校验和参考校准会增加测试工时良率损失也会直接摊到单颗成本里。5.4 决策矩阵与打分表把上面这些维度综合成一张打分表可以快速给不同项目做初筛。以下是我在项目里常用的一套权重打分逻辑你们可以按实际需求调整权重。评估维度权重建议SRAM CIM 得分RRAM CIM 得分工艺成熟度0.25105电路复杂度0.2084单位面积算力0.1569非易失能力0.10110精度稳定性0.1594量产良率0.1594加权总分1.007.75.1这个表的一个典型应用场景是如果项目对非易失能力权重提到 0.3比如低功耗 IoT 设备那么 RRAM 得分会反超。反之如果团队在第一颗芯片上更看重“一次流片成功、快速上市”SRAM 的成熟优势会非常明显。6. 实操中的坑与经验6.1 常见问题速查表下面这几类问题在实际项目里出现频率最高我把排查思路列成速查表方便你们踩坑时快速定位。问题现象可能原因排查思路SRAM CIM 低电压下计算错误率陡增位线摆幅过大或工作点设置不当降低摆幅检查时序余量必要时增加写辅助电路RRAM 写入后数据随时间漂移电导保持性不足温度影响提高写入强度但在耐久性上做权衡增加保持性实验STT 模式换算的功耗比仿真高很多阵列外围电路功耗未计入统一用宏单元级仿真别只算核心阵列功耗不同批次芯片精度差异大工艺偏差导致电导分布偏移增加生产校准步骤调整参考电阻档位芯片初次上电推理结果全错权重未正确初始化检查非易失存储上电读取路径确认权重加载时序还要提醒一句无论选哪种路线样片测试阶段的“温度循环测试”和“老化测试”一定要做足。存算一体芯片的模拟特性对温度敏感常温下表现良好的芯片在 –20℃ 或 85℃ 下可能完全变样。6.2 我的选型经验与优先级建议踩过几次坑之后我个人的经验是第一颗存算一体芯片如果没有特别硬性的非易失需求优先选 SRAM 路线。原因很简单SRAM 的工程确定性高团队可以把精力集中在算法映射、ADC 设计和系统集成这些真正产生差异化的环节而不是耗费在器件工艺驯服上。等到团队积累了足够的存算一体设计经验、产品迭代到第二代或第三代再评估是否引入 RRAM。第二代芯片的架构通常更稳定这时候把易失性权重换成非易失性往往比第一代就同时蹚两条新技术路线要靠谱得多。如果你确实需要在第一代就做 RRAM我的建议是缩小阵列规模、降低权重位数比如从 4 bit 降到 2 bit先把完整链路跑通再用软件层面的精度补偿抵消硬件位宽损失。这个策略在好几个实际产品里被验证过比一开始就追求高精度映射更容易落地。6.3 关于仿真工具链的一个提醒最后分享一个容易忽略的工具链问题。SRAM CIM 宏单元通常可以在传统 SRAM 编译器生成的模型基础上扩展仿真工具链成熟模型精度高RRAM CIM 则往往需要厂商提供专门的器件模型如 Verilog-A 模型不同厂商模型参数差异很大而且有些模型在统计波动仿真上做得不够精细。选型前一定让 FAE 提供完整的 Monte Carlo 仿真结果和硅片实测数据对比别只看典型值仿真曲线。我见过一个项目用过一组很激进的 RRAM 模型参数仿真精度数据漂亮得发指一到实测数据直接掉了两个数量级的良率。做芯片选型这件事本质是在信息不完整的情况下做工程决断。SRAM 和 RRAM 没有绝对优劣只有适不适合你的场景、你的团队、你的产品周期。想清楚这一点再回头去翻 datasheet答案其实已经在你心里了。
返回列表