存算一体架构:跳出冯·诺依曼墙的技术破局与现实边界
过去15年里,通用芯片的算力提升已经追不上数据搬运的能耗占比。某流片团队2023年的实测数据显示,7nm制程下,单次从DRAM读取64bit数据的能耗,是同制程浮点运算能耗的128倍。
很多人把这种现象归因于制程进步放缓。错。根源是从1945年沿用至今的计算逻辑框架——存储单元和计算单元物理分离,所有的计算操作都需要把数据从存储端搬到计算端,再把结果搬回去。
7nm制程冯诺依曼架构数据搬运能耗对比柱状图
上世纪60年代就有学者提出,为什么不能把计算单元直接做在存储阵列里,让数据就在存储的位置完成计算,省掉来回搬运的步骤?这个设想躺了半个多世纪,直到近10年非易失性存储器件的工艺成熟,才从实验室的论文里走到了工程落地的阶段。
RRAM存算阵列单元电路结构示意图
别信宣传。很多厂商对外宣称的能效提升1000倍,是在8bit量化、阵列满负载并行计算、排除校准电路额外开销的理想测试环境下测出来的,一旦把计算精度提到16bit以上,能效优势会直接掉到原来的1/10都不到。剩下的MRAM、NAND闪存路线,要么速度跟不上计算的响应要求,要么擦写次数撑不住长期的计算负载,落地场景比前两条路线还要窄。
被能耗卡脖子的计算逻辑根源
传统架构的核心矛盾从来不是算力不够,而是计算单元在绝大多数时间里处于空转等待状态。CPU的ALU利用率峰值在深度学习推理负载下通常不超过15%,剩下的时间都在等内存把数据送过来。为了补这个短板,行业过去几十年堆了多少技术?多级缓存、高带宽内存、片上网络……折腾到最后,数据搬运的能耗占比反而从2000年的30%涨到了现在的80%以上。
7nm制程冯诺依曼架构数据搬运能耗对比柱状图
上世纪60年代就有学者提出,为什么不能把计算单元直接做在存储阵列里,让数据就在存储的位置完成计算,省掉来回搬运的步骤?这个设想躺了半个多世纪,直到近10年非易失性存储器件的工艺成熟,才从实验室的论文里走到了工程落地的阶段。
不同技术路线的落地偏差
现在行业里走的几条路线,从根上就有不一样的适配场景,根本没法放在一个维度比优劣。 基于SRAM的路线,是直接在静态随机存取存储器的阵列里集成矩阵乘加运算单元。好处是和现有CMOS工艺的兼容度极高,读写速度能和片上缓存打平,缺点是存储密度太低——做个几MB的容量就要占掉半个芯片的面积,根本没法做大容量场景。这类方案现在基本都用在端侧的轻量AI推理上,比如手机NPU里的小部分计算模块。 基于RRAM的路线,是靠阻变存储器件的阻态变化存数据,直接在阵列单元上完成向量乘法运算。优势是非易失,断电不丢数据,存储密度比SRAM高一个数量级以上。但问题也很明显:同一批流片出来的RRAM器件,阻态的离散度可能达到20%以上,根本没法直接支撑高精度计算,必须加一整套校准电路,额外的面积开销能占到整个芯片的40%。
RRAM存算阵列单元电路结构示意图
别信宣传。很多厂商对外宣称的能效提升1000倍,是在8bit量化、阵列满负载并行计算、排除校准电路额外开销的理想测试环境下测出来的,一旦把计算精度提到16bit以上,能效优势会直接掉到原来的1/10都不到。剩下的MRAM、NAND闪存路线,要么速度跟不上计算的响应要求,要么擦写次数撑不住长期的计算负载,落地场景比前两条路线还要窄。