核心原理:计算存储一体化、近存计算与存内计算的区别、模拟与数字存算一体

好,咱们进入正题。这一节我打算把几个容易搞混的概念彻底讲清楚。说实话,我刚入行那会儿,也花了很长时间才理清「近存计算」和「存内计算」到底差在哪。你想想看,这两个词就差一个字,但背后的架构思想完全不同。

1. 计算存储一体化:为什么要「一体化」?

先聊个大背景。传统的冯·诺依曼架构,计算和存储是分开的。CPU 算完一步,得去内存里取下一步的数据。这个「取数据」的过程,消耗的时间是计算本身的几十倍甚至上百倍。这就是著名的「存储墙」问题。

我参与过一个视频编解码的项目,瓶颈根本不在算力,而在数据搬运。GPU 算得飞快,但数据从 DDR 搬过来要等几百个周期。说白了,芯片大部分时间在「等数据」,而不是「算数据」。

计算存储一体化的核心思想就一句话:让数据少跑路,让计算靠近数据。把存储和计算揉在一起,减少数据搬运的开销。这不是某一种具体技术,而是一类架构思路的总称。

核心痛点:数据搬运的能耗和延迟,远大于计算本身。一体化就是为了解决这个。

2. 近存计算 vs 存内计算:一字之差,天壤之别

这两个词经常被混用,但在我眼里,它们完全是两码事。我习惯用一个比喻来解释:

  • 近存计算:把计算单元搬到存储器的「隔壁」。就像你把厨房搬到餐厅旁边,端菜快了,但菜还是得从厨房端出来。
  • 存内计算:直接在「餐厅里」做菜。存储单元本身就能做计算,数据根本不用搬出去。

具体来说:

特性 近存计算 存内计算
计算单元位置 靠近存储阵列,但物理分离 集成在存储阵列内部
数据搬运距离 短(芯片级或片内总线) 极短(单元级或位线级)
典型代表 HBM + 近存处理器、3D 堆叠 ReRAM 交叉阵列、SRAM 存内计算
实现难度 中等(封装和互连技术) 高(器件和电路设计)
适用场景 大模型推理、数据中心 边缘计算、低功耗 AI

嗯,这里要注意:近存计算目前工业界落地更多,因为技术成熟度更高。存内计算虽然潜力大,但器件一致性、精度等问题还在攻关。我曾经在一个存内计算的项目里踩过坑——模拟计算的精度受工艺偏差影响太大,最后不得不加数字校准电路,面积直接翻倍。

3. 模拟存算一体 vs 数字存算一体

存内计算内部,又分两大流派:模拟和数字。这俩的区别,说白了就是「用物理定律算」还是「用逻辑门算」。

3.1 模拟存算一体

模拟存算一体,利用的是存储单元的物理特性直接完成计算。比如在 ReRAM 交叉阵列里,电流的大小由存储的电阻值和输入电压决定。基尔霍夫电流定律自动完成了乘累加运算。你想想看,一个阵列里成百上千个单元同时计算,效率极高。

但问题也很明显:

  • 精度受限:模拟信号容易受噪声、温度、工艺偏差影响。我见过一个设计,8-bit 的精度在实际芯片上只能跑到 5-bit。
  • ADC/DAC 开销:输入要数模转换,输出要模数转换。这些转换器的面积和功耗,有时候比计算本身还大。
  • 可编程性差:一旦电路固定,计算模式就很难改了。

避坑指南:我曾经在一个低功耗语音识别项目里尝试全模拟方案,结果 ADC 的功耗占了总功耗的 60%。后来我学乖了——模拟存算一体适合「计算密集、精度要求不高」的场景,比如稀疏矩阵运算、近似推理。

3.2 数字存算一体

数字存算一体,是在存储单元旁边集成数字计算逻辑。每个存储单元或子阵列里,放一个简单的加法器或乘法器。数据在存储阵列内部以数字形式完成计算,结果直接输出。

优点很明显:

  • 精度可控:数字计算,位宽是多少就是多少,没有模拟误差。
  • 设计流程成熟:可以用标准数字库设计,EDA 工具支持好。
  • 可扩展性强:容易做多 bit 的乘累加,也容易支持不同数据格式。

缺点呢?

  • 面积开销:每个存储单元旁边加数字逻辑,面积比纯存储阵列大不少。
  • 能效不如模拟:数字逻辑的开关功耗,在极致低功耗场景下不如模拟方案。

我个人习惯,在需要高精度或频繁切换任务的场景里,优先选数字方案。比如做 Transformer 推理,数字存算一体更容易支持 FP16 或 INT8 的混合精度。

4. 一张图看懂三者关系

下面这张 SVG 图,我画了三者的层级关系。你一看就明白:

计算存储一体化 近存计算 计算单元靠近存储阵列 存内计算 计算在存储单元内部完成 存内计算的两条技术路线 模拟存算一体 数字存算一体 图:计算存储一体化的技术分层与路线选择

5. 实际选型建议

说了这么多理论,到底怎么选?我根据实际项目经验,给几个参考:

  • 如果你做数据中心的大模型推理:优先考虑近存计算。HBM + 近存处理器是目前最成熟的方案。我去年参与的一个 LLM 推理项目,就是用近存方案把带宽利用率从 30% 提到了 70%。
  • 如果你做边缘端的低功耗 AI:可以试试数字存算一体。精度可控,设计流程成熟。我建议先从 SRAM 基的数字存算一体入手,别一上来就碰 ReRAM 模拟方案。
  • 如果你做极致低功耗的传感器节点:模拟存算一体有优势,但要做好精度损失的准备。记得预留校准和冗余单元。

小技巧:不管选哪种方案,都建议先做系统级仿真。把数据搬移的能耗、计算的能耗、ADC/DAC 的能耗全部建模。很多时候,你以为的「存内计算省电」,实际上被接口电路吃掉了。

好了,这一节的核心内容就这些。记住三个关键词:近存是「靠近」,存内是「内部」,模拟靠物理定律,数字靠逻辑门。下次跟人聊存算一体,别再把近存和存内搞混了。