存算一体 CIM:把乘加搬进 SRAM/RRAM 阵列,从物理上拆内存墙
更新时间:2026-09-25。前一篇内存墙 HBM 带宽算清了一笔账:大模型 batch=1 解码时算术强度只有约 1 FLOP/byte,芯片绝大多数时间在等数据。量化、拼 batch、GQA 都是在「搬得更少、摊得更薄」上做文章,而存算一体(Compute-in-Memory,CIM;也称 Processing-in-Memory,PIM)给出的是另一条思路——干脆不搬:让矩阵乘加在权重所在的存储阵列内部直接发生。这一篇讲它背后的两条物理定律、数字与模拟两条技术路线、ADC 开销和精度边界,以及与它气质相近的类脑计算(脉冲神经网络 SNN)。AI 芯片能效账的基础可配合阅读 AI 芯片能效,低比特量化的落点见 INT8/INT4 量化与校准,传统乘加器的精度设计见 MAC 单元精度设计。
本文要回答的问题
- 存算一体到底「一体」在哪里?为什么说它是从物理上而不是调度上绕开内存墙?
- 模拟 CIM 怎样用欧姆定律做乘法、用基尔霍夫电流定律做一列的加法?
- 一个 128×128/256×256 阵列里,多 bit 权重和输入怎么编码?为什么阵列边缘要排满 ADC/DAC?
- 数字 CIM 和模拟 CIM 差在哪:谁吃 ADC 开销,谁的精度和工艺迁移更省心?
- 为什么 CIM 主战场是 INT8、INT4 乃至二值网络,而不是 FP16?阵列利用率和外围面积怎么算?
- 类脑计算的脉冲神经网络为什么事件驱动、能效能到 fJ/spike 量级,离实用还有多远?
一、从内存墙到存算一体:消灭搬运,而不是加快搬运
先复述矛盾的核心。冯·诺依曼架构里,存储和计算是两块物理分离的电路:权重躺在 HBM 或 DRAM 里,运算发生在张量核的乘加器中,数据每被用一次就要沿「HBM→NoC→片上 SRAM→寄存器→乘加器」走一个来回。搬运能耗随导线电容和距离上升,而乘加本身的能耗随工艺缩小持续下降,于是在先进工艺上,把一个操作数从几十毫米外搬来的能耗,可以比做一次乘法高出一两个数量级。HBM 通过缩短距离、加宽总线把每 bit 搬运压到 2~3pJ,但它没有改变「用一次搬一次」的结构。
存算一体反过来提问:神经网络 90% 以上的运算都是矩阵乘加,而乘加恰好是一种极规整的操作——权重按行列排成阵列,输入按行广播,每列求一个加权和。存储阵列本身就是按行列组织的:字线(Word Line)选通行,位线(Bit Line)贯穿列,单元就坐在行列交叉点上。那么能否让「读」这个动作本身就完成计算?这就是 CIM 的全部出发点:权重烧写或写入后常驻单元,输入驱动字线,位线上自然汇集出一列的乘加结果,一次读出,整个过程中权重一个 bit 都没有移动。被搬的只剩输入和输出,数据量远小于权重本身。
图中上下两条路径的差别要读准确:冯氏路径(上)移动的是权重本体,距离长、反复发生;CIM 路径(下)权重在阵列里不动,流动的只是输入电压/脉冲和每列一个的累加结果。内存墙的本质是搬运能耗和带宽占比过高,CIM 不是把路修宽,而是让绝大部分路程消失——这是它与所有带宽工程最根本的区别。
二、模拟 CIM 的物理:欧姆定律做乘法,基尔霍夫定律做加法
模拟存算一体的原理简单到可以用两条中学物理定律概括。存储单元在选中时等效为一个电导 G,加在字线上的输入用电压 V 表示。由欧姆定律,流过该单元的电流 I = G·V——电导编码权重、电压编码输入,电流就是两者的乘积。同一条位线上挂着一列(比如 128 个或 256 个)单元,它们的电流全部汇进这根位线;由基尔霍夫电流定律,节点电流等于各支路之和,于是位线总电流就是一整列乘积累加:
- I(第 j 列)= Σᵢ Gᵢⱼ · Vᵢ,i 从 1 到阵列行数。
乘法和 128 路(或 256 路)加法在电流建立的物理过程中一次完成,延迟就是导线和器件的 RC 时间,不占时钟周期、不走逻辑门。这正是模拟 CIM 能效想象空间的来源:计算的代价退化为给位线充放电的电荷。
读懂这张图需要区分两种主流单元介质。其一是 SRAM CIM:单元仍是常规 6T 或为计算定制的 8T/10T SRAM,单管只存 1 bit,权重的多 bit 靠多个单元组合(电容分压、电流按比例叠加)或多周期位串行实现;好处是工艺完全标准、可随先进工艺迁移、良率与 SRAM 编译器成熟。其二是 RRAM(阻变存储器)和 Flash:器件电导本身连续可调,一个单元理论上可存多位(如 3~6 bit),存储密度和权重原地驻留的优势更大,但面临电导漂移、读写耐久、阵列良率和模拟器件偏差的长期挑战。无论哪种介质,图右侧的 ADC 都绕不开:电流域的模拟结果必须转回数字,才能进入后续的数字网络层。
三、一颗阵列的完整账:128×128、多 bit 权重与外围的 ADC
把原理落成工程参数。公开文献和 ISSCC 类会议上报道的模拟 CIM 宏,阵列规模大量取 128×128 或 256×256——行列再大,位线电容和漏电流把累加精度拖垮;再小,则 ADC 等外围电路摊不薄。权重精度以 INT8 为主流上限,INT4、二值网络更常见;输入经过 DAC 变成电压幅度或脉冲宽度,8 bit 输入常用位串行拆成 8 个周期逐位送入,每个周期做一位的乘加、移位后在数字域累加。这意味着「一次物理乘加」与「一个完整 INT8 矩阵乘」之间隔着多个周期和外围运算,宣传峰值 TOPS 与系统有效算力之间常有数量级差距,看数据手册时必须问清分子如何计。
最大的工程现实是 ADC 开销。一个 256 列的阵列,每列(或几列分时复用一个)需要一个 ADC,在几百 MHz 的节奏下做 5~8 bit 量化。ADC 是模拟电路,面积和功耗都不随数字工艺等比例缩小,在已发表的 CIM 宏中,ADC/DAC 加采样保持等外围电路常占整宏 50%~70% 以上的面积和功耗,真正存储单元和阵列反而成了配角。换句话说,存算一体省掉了权重搬运,却把成本转移给了数模/模数转换;整机能效由「阵列内模拟乘加」和「阵列口 ADC」两段共同决定,只宣传前者是不完整的账。工程上的应对包括:降低单 ADC 精度(INT4 网络只需粗量化)、多列共享一个 ADC 分时转换、把部分偏置与归一化并入读出电路。
阵列利用率是另一本账。权重形状(如 4096×4096 的全连接层)与物理阵列(256×256)之间要切块映射,不同阵列规模、层形状、位串行周期数下,空闲单元和 ADC 空转普遍存在;处理卷积时还涉及输入复用与行间数据排布。因此系统级能效——把所有时钟周期、所有外围电路都摊进去——通常显著低于宏单元峰值。公开论文中模拟 CIM 宏的峰值能效常在几十到上百 TOPS/W(INT8/低比特),整芯片落地后几 TOPS/W 到二三十 TOPS/W 是更常见的现实量级,对比同时期数字加速器的 10 TOPS/W 上下,优势真实但没有「免费午餐」。
四、数字 CIM vs 模拟 CIM:两条路线的取舍
并非所有存算一体都走电流模拟域。数字 CIM(也称 digital-in-memory 或近存计算的紧密形态)把定制的布尔逻辑(AND、全加器、进位链)做到 SRAM 阵列的列边缘或阵列间:读出的多个 bit 在本地直接做数字乘加,只有短距离互连,没有 DAC,也不依赖线性电流求和。它牺牲了模拟域「物理定律白送的并行加法」,换来三件事:没有 ADC、精度由位宽决定而不受器件偏差支配、设计流程与标准工艺完全兼容。
| 对比维度 | 数字 CIM | 模拟 CIM | 类脑 SNN |
|---|---|---|---|
| 计算介质 | SRAM + 列边缘布尔逻辑/全加器 | SRAM 分压或 RRAM/Flash 可变电导,电流域求和 | CMOS 数字神经元 + 片上突触存储(可含 RRAM) |
| 典型精度 | INT8 起,可至更高 | INT8 上限,INT4/二值更舒服 | 脉冲时间/频率编码,等效低比特 |
| ADC/DAC 开销 | 无 | 最大头,常占宏 50%~70% 面积功耗 | 仅传感器接口处需要 |
| 能效量级(公开口径) | 数~20 TOPS/W,整芯片口径 | 宏峰值几十~上百 TOPS/W,系统级打折明显 | 以 fJ~pJ/spike 计,待机近零 |
| 工艺迁移与成熟度 | 最好,标准数字流程 | SRAM 路线可迁移;RRAM 需特殊工艺,偏差/耐久待解 | 数字路线可流片,软件生态最不成熟 |
| 适合场景 | 边缘推理、可控精度的通用矩阵乘 | 极低功耗语音/视觉、端侧 INT4 模型 | 事件传感器、常开感知、超低功耗控制 |
这张表是本篇的决策骨架。三类技术共享「数据少动」的哲学,但计算介质和代价结构完全不同:数字 CIM 用逻辑门换确定性,模拟 CIM 用物理定律换极致并行但背上 ADC,SNN 则把「什么都不做时不耗能」推到极致。
顺带厘清一个常被混用的概念:近存计算(Near-Memory Computing)与存内计算。前者把计算单元放到存储旁边——典型如在 HBM 堆栈或逻辑底座里集成简单的向量逻辑,让计算发生在 DRAM 控制器近处、数据少走一段互连线,但权重仍要从单元阵列读到逻辑里;后者(本篇的模拟 CIM)让计算发生在存储单元本身的读操作中,单元阵列就是算力。DRAM-PIM 路线(厂商已披露在 HBM/DRAM 内集成可编程计算单元的产品)介于两者之间:受 DRAM 工艺限制只能做数字逻辑、阵列利用率和带宽按行激活粒度结算,但胜在容量大、可直接对接数据中心工作负载,与片上 SRAM/RRAM CIM 形成「大容量、粗粒度」对「小容量、极致能效」的互补。选型时先问权重在哪、数据还要走多远,再问落在模拟域还是数字域,顺序不要反。
五、精度、利用率与面积:为什么 CIM 主攻 INT8 以下
模拟路线的精度天花板由一连串模拟非理想因素共同决定:RRAM 电导的写入偏差和温度漂移、SRAM 分压对工艺角的敏感、位线 IR drop、电源噪声、亚阈值漏电。一列 256 个电流相加时,信号要在很大的动态范围内保持线性,而 ADC 的有效 bit 数又直接限定累加结果的分辨能力。8 bit 乘法的部分积累加需要 16 bit 以上的中间精度,全模拟保持这个精度在面积上不成立,所以工程做法是「低 bit 模拟乘加 + 数字域移位累加与高精度部分和」,模拟段只承担 INT4~INT8 的局部运算。这与模型侧的量化趋势恰好咬合:端侧推理的主流精度本来就在向 INT8、INT4 迁移,校准方法见 INT8/INT4 量化与校准。
面积账同样指向低比特。每降一个 bit,DAC 周期数、ADC 分辨率、单元组合数量同步下降,外围面积近似按比例缩小,而网络精度损失在现代量化算法下往往只有一两个百分点。于是 CIM 的商业逻辑是:用架构换取「在老工艺上实现高能效低比特推理」——成熟工艺上 SRAM 便宜、模拟器件性能足够、NRE 低,边缘端不需要也跑不动 FP16 大模型。反过来,FP16 数据中心推理不是 CIM 当前的战场:精度需求让 ADC 代价失控,而 HBM 侧带宽工程仍在快速演进。与传统数字 MAC 的设计取舍对照可看 MAC 单元精度设计。
还需注意系统集成的落差:CIM 宏给出的是矩阵乘能力,完整芯片仍需控制器、权重加载通路(RRAM 写入选时模型更新)、层间数字缓冲和与主控的接口。已流片的学术原型多在单网络、固定权重演示;走向通用推理芯片,阵列规模(常以几十到上百个宏拼接)、宏间互连和软件编译栈才是决定量产成熟度的环节。
六、类脑计算:脉冲、事件驱动与 fJ/spike 量级
类脑(neuromorphic)计算与存算一体同源但更激进:它模仿的不只是突触的存储位置,还有神经元的通信方式。传统神经网络以固定时钟、逐层精确的数值矩阵乘推进;脉冲神经网络(Spiking Neural Network,SNN)里神经元只在膜电位累积超过阈值时发出一个脉冲(spike),信息编码在脉冲的有无和时间里,没有事件就没有翻转。突触权重存在每个核的本地 SRAM(研究路线也用 RRAM/PCM),脉冲到达时做一次累加——这本身就是细粒度的存算一体。
事件驱动带来的能效账分两半。活动时,一次突触传输(一次存储读加一次加法)在优化的全定制数字设计里可做到 pJ 乃至亚 pJ 量级;生物对照中,突触传递的化学与电过程综合能耗估计在几 fJ 到十几 fJ/spike 量级,人脑以约 20W 功耗支撑约 10¹⁵ 个突触的实时运算,这个能效密度是工程目标的参照系。静默时,没有脉冲的核理论上零翻转、功耗近零——这对常开类负载(关键词唤醒、事件相机、振动/步态监测)价值极大:事件相机只在像素亮度变化时输出,静态场景下数据率和功耗可以低到微瓦量级。公开的大型类脑系统(如 TrueNorth、Loihi 系列及其多芯片系统)已验证百万级神经元、几十毫瓦到百瓦级的可扩展性,证明路线在器件层面成立。
但 SNN 的短板同样清楚。训练方法不成熟:脉冲发放不可微,时间反向传播代价大,很多系统采用「ANN 训练后转 SNN」的折中,精度仍落后同比特 ANN;擅长的是时序、稀疏事件任务,在稠密视觉和大语言模型这类高占空比工作上,事件驱动的稀疏性消失,能效优势难以兑现。因此今天的现实分工是:类脑芯片深耕边缘常开感知与低维控制,存算一体(尤其数字 CIM 和 SRAM 模拟 CIM)承接通用低比特推理,二者长期可能合流——用 RRAM 做突触、用脉冲或宽脉冲做模拟输入,正是不少研究原型的共同形态。
这一篇在知识体系里的位置
- 想先理解 CIM 要拆的那堵墙和带宽账的完整推导 → 内存墙 HBM 带宽;
- 想建立能效、TOPS/W、每 bit 能耗的整体概念 → AI 芯片能效;
- 想理解 CIM 为什么与低比特天然匹配、校准如何保精度 → INT8/INT4 量化与校准;
- 想对照传统数字乘加器的精度与面积取舍 → MAC 单元精度设计;
- 想看规则稠密阵列在数字域的极致形态(脉动阵列) → AI 加速器脉动阵列。
总结
存算一体的本质是让权重在 SRAM/RRAM/Flash 阵列里常驻不动,用欧姆定律 G·V 做乘法、基尔霍夫电流定律在 128×128 或 256×256 位线上一次完成整列乘加,把搬运对象从权重本体压缩为输入与每列一个结果,从物理上而不是调度上拆内存墙;模拟 CIM 宏峰值能效可达几十至上百 TOPS/W,但 ADC/DAC 常占整宏 50%~70% 的面积功耗,加上阵列利用率损耗,系统级口径只有几到二三十 TOPS/W,且精度受器件非理想性限制而主攻 INT8/INT4;数字 CIM 不要 ADC、精度与工艺迁移更省心,类脑 SNN 以事件驱动做到 fJ~pJ/spike、待机近零但训练与生态未成熟——三条路线共享「数据少动」哲学,分别落子通用边缘推理、极低功耗感知与常开智能。