第1章:AI芯片存储架构——从存储墙到存算一体

大家好,我是你们的老朋友。今天咱们聊聊AI芯片里最让人头疼、也最值得深挖的一个话题——存储架构。

说实话,我入行那会儿,大家更关注计算单元有多强。什么TOPS啊、MAC阵列啊,吹得天花乱坠。但后来发现,很多芯片理论算力很高,实际跑起来却大打折扣。为什么?说白了,数据喂不进去。这就是经典的“存储墙”问题。

我个人习惯把AI芯片的存储架构比作一个城市的物流系统。计算单元是工厂,存储是仓库。工厂再快,仓库发货慢,或者路堵了,产能就是上不去。今天,我们就来拆解这个系统。

1.1 存储层次结构:为什么不能只用一种存储器?

你想想看,如果让你设计一个芯片,你会只用一种存储器吗?肯定不会。因为单一存储器无法同时满足“大容量”和“高速度”。

AI芯片的存储层次,通常分为三级:

  • 寄存器文件(Register File):离计算单元最近,速度最快,但容量极小(几十KB)。
  • 片上SRAM(On-Chip SRAM):速度较快,容量在几MB到几十MB之间。这是AI芯片的“主战场”。
  • 片外DRAM/HBM:容量大(GB级别),但访问延迟高,带宽受限。

嗯,这里要注意:HBM(高带宽存储器)虽然也是DRAM,但它通过3D堆叠和硅中介层,把带宽做到了传统DDR的十几倍。我在项目中遇到过,用HBM2E的芯片,带宽能到460GB/s,而普通DDR4只有25GB/s左右。差距就是这么悬殊。

存储层级 典型容量 访问延迟 带宽 功耗/bit
寄存器 ~64KB ~1ns 极高 极低
SRAM ~32MB ~2-5ns ~100GB/s
HBM ~16GB ~100ns ~1TB/s
DDR4 ~64GB ~200ns ~25GB/s

从这张表能看出什么?每往下一级,容量提升一个数量级,但延迟也增加一个数量级。所以,AI芯片设计的核心就是:让数据尽量待在SRAM里,少去DRAM里“串门”

1.2 数据复用策略:如何让数据“一鱼多吃”?

AI计算有个特点:数据复用率极高。比如卷积操作,同一个权重会被多个输入像素反复使用。如果每次都用从DRAM里取,那带宽再大也不够用。

我建议从三个维度来考虑数据复用:

  • 时间复用:同一个数据在不同时间点被多次使用。比如权重在多个卷积窗口间共享。
  • 空间复用:同一个数据在同一时间被多个计算单元使用。比如广播机制。
  • 局部复用:数据在相邻计算单元间传递,避免重复从存储器读取。

举个例子,一个3x3的卷积核,在输入特征图上滑动。如果每次滑动都重新读一遍权重,那带宽浪费是惊人的。正确的做法是:把权重加载到SRAM的局部缓冲区,然后在计算阵列内循环使用

核心原则:每从DRAM读一次数据,至少要让它参与10次以上的计算,否则你的带宽效率就不及格。

我曾经在一个项目中,因为没做好数据复用,导致芯片实际性能只有理论峰值的30%。后来重新设计了数据流,把权重和输入特征图都做了分块缓存,性能直接翻了三倍。嗯,这个坑我踩过,你们就别再踩了。

1.3 带宽与延迟优化:别让数据在路上堵车

带宽和延迟,是两个不同的概念。带宽是“路有多宽”,延迟是“路有多长”。AI芯片对两者都很敏感。

优化带宽,我常用的手段有:

  • 数据压缩:比如对稀疏权重进行编码,减少传输量。
  • 突发传输:一次请求读一整块数据,而不是零散地读。
  • 多通道并行:HBM本身就是多通道的,要充分利用。

优化延迟,则更考验架构设计:

  • 预取(Prefetching):在计算当前数据时,提前把下一批数据从DRAM搬到SRAM。
  • 乒乓缓冲(Ping-Pong Buffer):用两个缓冲区交替工作,一个在计算,一个在加载,隐藏延迟。
  • 存储体冲突避免:多个请求不要同时访问同一个存储体,否则会排队。

小技巧:在设计数据流时,可以用“流水线深度”来量化延迟隐藏的效果。一般来说,流水线深度在4-8级比较合适,太深了控制逻辑复杂,太浅了隐藏不了延迟。

1.4 近存计算与存内计算:把计算搬到存储器里

前面讲的都是怎么优化数据传输。但有没有更激进的做法?有,就是把计算直接搬到存储器里。

近存计算(Near-Memory Computing):把计算逻辑放在存储器旁边,比如HBM的基底逻辑层。这样数据不用走太远,延迟和功耗都大幅降低。

存内计算(In-Memory Computing):更彻底,直接在存储单元里做计算。比如用SRAM阵列做矩阵乘法,或者用ReRAM做模拟计算。

我记得在2019年,我参与过一个存内计算的项目。当时我们用SRAM单元实现了简单的向量-矩阵乘法,功耗只有传统方案的十分之一。但问题也很明显:精度受限,而且工艺不成熟。

避坑指南:我曾经在存内计算上栽过跟头。当时太乐观,以为能直接替代传统架构。结果发现,存内计算的灵活性很差,只适合特定类型的计算(比如矩阵乘法)。如果你的AI模型里有很多非线性操作(如Softmax、LayerNorm),存内计算就力不从心了。所以,近存计算是更务实的选择

1.5 知识体系总览

为了让你更直观地理解本章的知识结构,我画了一张图。这张图展示了存储架构的核心逻辑:从存储层次,到数据复用,再到带宽优化,最后到近存/存内计算。

AI芯片存储架构知识体系 存储层次结构 寄存器 → SRAM → HBM → DDR 容量递增,速度递减,功耗递增 数据复用策略 时间复用 | 空间复用 | 局部复用 目标:每从DRAM读一次,参与10次以上计算 带宽与延迟优化 数据压缩 | 突发传输 | 预取 | 乒乓缓冲 核心:隐藏延迟,提升有效带宽 近存计算 vs 存内计算 近存:计算靠近存储器 | 存内:在存储单元内计算 数据流方向

这张图从左到右,从上到下,展示了存储架构的演进路径。你会发现,越往下,离计算单元越近,数据搬运的成本越低。这也是为什么近存计算和存内计算会成为未来趋势。

好了,第一章的内容就到这里。记住,存储架构不是孤立的,它和计算单元、数据流、编译器都紧密相关。后面我们会逐步展开。


公众号:蓝海资料掘金营,微信deep3321