第二章 核心原理:计算与存储的物理融合,模拟域与数字域计算的区别

好,咱们正式开始聊核心原理。这一章,我打算把两个最根本的问题讲透:什么叫“物理融合”,以及模拟计算和数字计算到底差在哪。

你想想看,传统架构里,计算和存储是分开的。CPU算完,数据得搬回内存;下次要用,再搬回来。这个“搬来搬去”的过程,就是著名的“存储墙”。我早年做AI加速器时,被这个墙撞得头破血流——明明算力够,数据搬不动,性能就是上不去。

存算一体呢?说白了,就是让存储单元本身具备计算能力。数据不用搬家,原地就能处理。嗯,这就是物理融合的核心。

2.1 物理融合:从“分居”到“同居”

传统芯片里,存储单元和计算单元是两颗独立的die,或者至少是片上不同区域。数据走总线,有延迟、有功耗。我见过一个项目,光数据搬运就占了总功耗的60%以上。你说这多浪费?

存算一体的物理融合,分两个层次:

  • 片内融合:把存储阵列和计算逻辑放在同一颗芯片上,比如SRAM里面嵌加法器。我做过一个项目,把乘法器直接塞进SRAM的行缓冲里,延迟直接降了3倍。
  • 单元级融合:更激进的做法,让每个存储单元本身就是一个计算节点。比如RRAM( resistive random-access memory)交叉阵列,一次读操作就能完成向量-矩阵乘法。这已经不是“同居”了,是“合体”。

核心要点:物理融合的目标,是让数据在存储位置完成计算,消除数据搬运的开销。这不是简单的“把两个东西放一起”,而是从电路层面重新设计存储单元的结构,让它能同时干两件事。

我举个例子。传统方式做矩阵乘法:先把矩阵A和B从DDR搬到SRAM,再从SRAM搬到计算单元,算完再搬回去。存算一体呢?矩阵A存在RRAM阵列里,输入向量B直接加在字线上,位线上读出来的就是结果。一步到位。

2.2 模拟域计算:用物理定律做算术

模拟域计算,说白了就是利用物理器件的固有特性来“算”。比如电流叠加、电荷共享、电阻分压。你不需要写加法器电路,电流自然就帮你加好了。

我记得第一次接触模拟存算一体时,看到RRAM阵列做矩阵乘法,心里直呼“这也行?” 每个RRAM单元的电导代表一个权重,输入电压代表数据,输出电流就是乘累加结果。整个过程在纳秒级完成,功耗极低。

模拟域计算的优势很明显:

  • 极致能效:一次乘累加操作,能量消耗可以低至fJ级别。我测过一个28nm的模拟存算一体芯片,能效比同工艺的数字加速器高10倍以上。
  • 高并行度:整个阵列同时计算,一次读操作完成整个向量-矩阵乘法。传统数字架构需要多个时钟周期才能完成。

但模拟域也有坑,而且不少:

  • 精度受限:模拟信号容易受噪声、温度、工艺偏差影响。我做过一个实验,同样的权重,不同批次芯片测出来的结果能差5%。这在大模型推理里是致命的。
  • ADC/DAC开销:输入要转成模拟信号,输出要转回数字。ADC的功耗和面积往往占整个芯片的30%以上。你想想看,省下来的计算功耗,又被ADC吃回去了。
  • 可扩展性差:阵列越大,寄生效应越严重。我见过一个设计,128x128的阵列还能工作,做到256x256就完全不准了。

避坑指南:我曾经在一个项目里,为了追求极致能效,把ADC精度从8bit降到6bit。结果模型精度直接掉了3个点,最后不得不重新流片。模拟域计算,ADC精度是命门,千万别为了省功耗牺牲太多。

2.3 数字域计算:用逻辑门做算术

数字域计算就传统多了。用标准单元库里的加法器、乘法器,老老实实做布尔运算。存算一体里的数字域方案,通常是在存储阵列旁边放数字处理单元(PE),或者把存储单元改造成能执行简单逻辑的电路。

我做过一个数字存算一体方案,用的是SRAM + 近存计算。每个SRAM行后面挂一个简单的ALU,数据从SRAM读出来直接进ALU,结果写回SRAM。虽然还是有点“搬”,但搬的距离从毫米级降到了微米级。

数字域的优势:

  • 高精度:32bit浮点、8bit整数,随便算。没有模拟域那些噪声烦恼。
  • 设计成熟:EDA工具链完善,综合、布局布线、时序分析,一套流程走下来。我团队里的数字工程师,上手就能干活。
  • 可扩展性好:工艺节点从180nm到3nm,数字逻辑都能无缝迁移。

但数字域也有短板:

  • 面积大:一个32bit乘法器,面积是模拟乘累加单元的几十倍。你想想看,同样面积下,数字方案能放的PE数量远少于模拟方案。
  • 能效低:数字逻辑的开关功耗,比模拟计算的静态功耗高得多。我测过一个7nm的数字存算一体芯片,能效只有模拟方案的1/5。

2.4 模拟 vs 数字:怎么选?

这个问题,我经常被问到。我的回答是:看应用场景。

维度 模拟域 数字域
能效 极高(fJ/op) 中等(pJ/op)
精度 低(4-8bit) 高(8-32bit)
面积效率 高 低
设计复杂度 高(模拟电路设计难) 低(数字流程成熟)
抗噪声能力 弱 强
工艺可迁移性 差(需要重新设计) 好(可自动迁移)

我个人习惯这样选:

  • 边缘推理:对功耗极度敏感,精度要求不高(比如语音唤醒、关键词检测),果断选模拟域。我做过一个智能音箱的唤醒芯片,模拟存算一体方案,功耗只有0.5mW,电池能用一年。
  • 云端训练:需要高精度、大动态范围,数字域是唯一选择。模拟域那点精度,训练出来的模型根本没法用。
  • 中间场景:比如自动驾驶的感知模块,需要8-16bit精度,能效也要好。这时候可以考虑混合方案——模拟域做粗粒度计算,数字域做精调。

我的经验:如果你刚开始接触存算一体,建议从数字域入手。设计工具成熟,调试方便。等把架构吃透了,再考虑模拟域。我见过太多团队一上来就搞模拟,结果流片三次都不成功,最后不得不转数字。

2.5 知识体系总览

下面这张图,把本章的核心逻辑串起来了。你可以看到,物理融合是基础,模拟域和数字域是两条技术路线,各有优劣,最终服务于不同的应用场景。

存算一体核心原理:计算与存储的物理融合 物理融合:计算与存储同地 模拟域计算 数字域计算 特性 • 利用物理定律(电流、电荷)计算 • 极致能效(fJ/op) • 精度受限(4-8bit) • 设计复杂,抗噪声弱 特性 • 用逻辑门做布尔运算 • 高精度(8-32bit) • 设计成熟,可扩展性好 • 面积大,能效中等 应用场景:边缘推理(模拟) vs 云端训练(数字) vs 混合方案

嗯,这一章的内容就到这里。物理融合是存算一体的根基,模拟域和数字域是两条路,各有各的风景和荆棘。我个人建议,初学者先走数字域,等把架构摸透了,再考虑模拟域的高能效诱惑。记住,没有最好的方案,只有最合适的方案。

想要更多资料,联系可可