2. 存算一体基础原理

大家好,我是你们这堂课的主讲人。做了十几年芯片架构,我越来越觉得存算一体是个绕不开的方向。今天咱们先聊聊最基础的东西——存储单元和计算单元到底怎么在物理上融合的。

1.1 为什么要把存储和计算揉在一起?

传统的冯·诺依曼架构,说白了就是存储和计算分家。CPU要算个数据,得先去内存里取,算完再存回去。这个来回搬运的过程,就是著名的「存储墙」问题。我当年做AI加速器时,发现大部分功耗都耗在了数据搬运上,真正算的时间反而很少。

存算一体的思路很简单:让存储单元本身具备计算能力。数据不用挪窝,直接在存储的地方算完。这就像你办公桌上堆满了文件,不用每次去档案室取,直接在桌上处理就行。

核心优势:消除数据搬运瓶颈,功耗降低10-100倍,延迟降低5-10倍。

1.2 基于SRAM的存算一体单元

SRAM大家都很熟悉,6个晶体管组成一个存储单元。但怎么让它也能算呢?

我习惯把SRAM存算一体单元分成两类:

  • 模拟域计算:利用位线(BL)上的模拟电流累加,实现乘加运算
  • 数字域计算:在SRAM阵列外围加数字逻辑,做逐位运算

举个例子,SRAM做向量-矩阵乘法时,权重存在SRAM单元里,输入数据通过字线驱动。每个单元的电流大小代表权重和输入的乘积,所有单元的电流在位线上自然累加——这就是模拟计算。

避坑指南:我曾经在28nm工艺下做过SRAM存算一体芯片,发现模拟域的噪声问题特别头疼。位线上的电流非常微弱,稍微有点工艺偏差,结果就偏了。后来我加了一组参考单元做差分检测,才把精度提上来。

1.3 基于ReRAM的存算一体单元

ReRAM(阻变存储器)是我个人比较看好的技术。它的核心是一个金属-绝缘体-金属结构,通过施加电压改变电阻值。

ReRAM做存算一体的原理:

  • 权重用电阻值表示(高阻=0,低阻=1)
  • 输入用电压幅度表示
  • 输出电流 = 电压 / 电阻,自然实现了乘法
  • 多个单元并联,电流累加就是加法

你看,一个简单的交叉阵列(Crossbar Array),就能完成向量-矩阵乘法。这在神经网络推理中太有用了。

注意:ReRAM有个问题——电阻值会漂移。我在项目中遇到过,跑了几个小时后,某些单元的电阻值变了,导致推理精度下降。解决方案是定期做一次「刷新」操作,重新写入权重。

1.4 基于PCM的存算一体单元

PCM(相变存储器)利用硫系化合物在晶态和非晶态之间的电阻差异来存储数据。晶态电阻低,非晶态电阻高。

PCM的优势在于:

  • 多级存储能力(一个单元存多个比特)
  • 耐久性比ReRAM好
  • 与CMOS工艺兼容性好

但PCM也有短板——功耗高。写操作需要加热到600°C以上,电流很大。我建议在需要频繁更新的场景下慎用PCM。

1.5 模拟域 vs 数字域计算对比

这是个老生常谈的问题,但每次讲我都觉得有新体会。咱们直接看对比表:

对比维度 模拟域计算 数字域计算
精度 受噪声影响,通常6-8bit 可做到16bit以上
功耗 极低,每MAC约1fJ 较高,每MAC约10-100fJ
面积 小,存储即计算 大,需要额外数字逻辑
抗干扰能力 弱,对工艺偏差敏感 强,数字信号有噪声容限
设计复杂度 高,需要模拟电路设计经验 低,标准数字流程
适用场景 低精度推理(如边缘AI) 高精度训练/推理

我个人习惯是:推理用模拟域,训练用数字域。为什么?推理对精度要求没那么高,8bit够用了,模拟域省电省面积。训练需要高精度梯度回传,数字域更靠谱。

我的经验:有一次做语音唤醒芯片,要求功耗低于1mW。我试了数字域方案,功耗死活压不下去。换成模拟域后,功耗直接降到0.3mW,精度只掉了0.5%。嗯,这就是选对技术路线的价值。

1.6 三种存储技术的对比

咱们再拉个表,把SRAM、ReRAM、PCM放在一起比比:

特性 SRAM ReRAM PCM
单元面积 大(6T) 小(1T1R) 中(1T1R)
读写速度 快(~1ns) 中(~10ns) 慢(~100ns)
耐久性 无限 10^6-10^8次 10^8-10^12次
多级存储 不支持 支持(2-4bit) 支持(2-4bit)
CMOS兼容性 完美 较好 好
成本 高 低 中

你想想看,SRAM虽然面积大、成本高,但速度快、耐久性好,适合做缓存级别的存算一体。ReRAM面积小、成本低,适合做大规模存储阵列。PCM介于两者之间,但写功耗是个硬伤。

1.7 知识体系总览

下面这张图是我自己画的,把本章的核心逻辑串起来了:

存算一体基础原理知识体系 存算一体核心 SRAM存算一体 6T单元 + 位线电流累加 速度快,面积大,无限耐久 ReRAM存算一体 1T1R + Crossbar阵列 面积小,成本低,电阻漂移 PCM存算一体 相变材料 + 多级存储 耐久性好,写功耗高 计算方式选择 模拟域计算 低精度,低功耗,小面积 数字域计算 高精度,高功耗,大面积

这张图把本章的核心脉络理清了。从存算一体的核心出发,分三条技术路线——SRAM、ReRAM、PCM,每条路线都有自己的特点和适用场景。最后落到计算方式的选择上,模拟域还是数字域,取决于你的精度和功耗要求。

我的建议:刚开始接触存算一体的同学,先从SRAM模拟域方案入手。SRAM工艺成熟,设计工具链完善,踩坑了也好排查。等把模拟域那套摸透了,再去看ReRAM和PCM。