2. SRAM与DRAM:AI芯片的“记忆双雄”

大家好,我是你们的老朋友。今天我们来聊聊AI芯片里最基础、也最关键的两个存储单元——SRAM和DRAM。说实话,我做了十几年芯片,跟这哥俩打交道的时间比跟家人还多。你想想看,没有它们,再强的算力也白搭。

很多刚入行的朋友容易混淆这两者。我刚开始做AI加速器时,也踩过坑。有一次项目赶进度,我拍脑袋选了某款DRAM做片上缓存,结果带宽死活上不去,最后只能推倒重来。嗯,从那以后,我再也不敢小看存储架构的选择了。

2.1 SRAM工作原理:快如闪电的“寄存器”

SRAM,全称静态随机存取存储器。说白了,它就是用晶体管搭出来的一个“锁存器”。只要不断电,数据就能一直保持,不需要刷新。

它的基本单元是6个晶体管(6T结构)。两个交叉耦合的反相器构成一个锁存器,再加两个传输门用于读写。我习惯把它想象成一个跷跷板——一边高,另一边就低,稳定得很。

核心要点:SRAM的“静态”二字,指的就是不需要周期性刷新。这是它和DRAM最大的区别。

读写过程其实很简单:

  • 读操作:先预充位线到高电平,然后打开字线。如果存储的是“1”,位线放电慢;如果是“0”,放电快。通过检测这个电压差,就能读出数据。
  • 写操作:强制拉低或拉高位线,然后打开字线。只要驱动能力够强,就能把锁存器翻转过来。

我在项目中遇到过一个问题:SRAM的读操作其实是破坏性的。虽然不像DRAM那么严重,但读的时候位线会放电,如果读得太频繁,可能会影响稳定性。所以设计时一定要留足时序裕量。

2.2 DRAM工作原理:密度至上的“电容桶”

DRAM就完全不一样了。它用一个晶体管加一个电容(1T1C)来存储数据。电容里有没有电荷,代表“1”或“0”。

你想想看,电容会漏电啊!所以DRAM必须定期刷新,一般每64ms要刷新一遍。这就是“动态”二字的由来。

避坑指南:我曾经在一个边缘AI项目里,直接用DDR4做模型参数存储。结果发现刷新操作占用了大量带宽,导致推理延迟飙升。后来我改用SRAM做缓存,才把延迟降下来。记住:DRAM的刷新开销,在高实时性场景下是个大坑。

DRAM的读写流程:

  1. 读操作:打开字线,电容上的电荷会共享到位线上。通过灵敏放大器检测微小的电压变化(只有几百毫伏)。读完后,电容里的电荷会被破坏,所以必须立即写回去。
  2. 写操作:强制位线到目标电平,打开字线,给电容充电或放电。

这里有个关键点:DRAM的读操作是破坏性的。每次读完,数据就没了,必须马上恢复。这也是为什么DRAM的访问延迟比SRAM高很多。

2.3 两者对比:各有千秋

我整理了一张对比表,方便大家直观理解:

特性 SRAM DRAM
存储单元 6个晶体管 1个晶体管+1个电容
速度 极快(1-3ns) 较慢(10-50ns)
密度 低(6T/bit) 高(1T1C/bit)
功耗 静态功耗高 刷新功耗高
是否需要刷新 否 是(64ms周期)
读操作 非破坏性 破坏性(需恢复)
成本 高 低

从这张表能看出来,SRAM和DRAM其实是互补的。SRAM快但贵,适合做片上缓存;DRAM便宜但慢,适合做主存。

2.4 在AI芯片中的应用

AI芯片对存储的要求很特殊。我参与过几款AI加速器的设计,总结下来有几点:

  • 权重存储:模型参数通常很大(几百MB到几GB),用DRAM更划算。但为了减少带宽压力,我会在片上放一块SRAM做权重缓存。
  • 激活值存储:中间计算结果,数据量中等,但访问频率极高。我建议用SRAM,因为延迟敏感。
  • 查找表(LUT):比如量化用的缩放因子,数据量小但需要快速访问。SRAM是首选。

个人经验:我习惯在AI芯片里设计一个三级存储架构:L1 SRAM(几KB,单周期访问)、L2 SRAM(几百KB,几个周期)、L3 DRAM(几GB,几十个周期)。这样既能保证性能,又能控制成本。

举个例子,我做过一个边缘AI芯片,目标功耗只有1W。我用了256KB的SRAM做片上缓存,外加64MB的LPDDR4。推理时,权重先加载到SRAM,然后逐层计算。这样DRAM的访问次数减少了80%,功耗也降下来了。

2.5 知识体系图

下面这张图展示了SRAM和DRAM在AI芯片中的核心逻辑关系:

AI芯片存储体系 SRAM 6T/bit,静态存储 速度:1-3ns 应用:片上缓存、LUT DRAM 1T1C,动态存储 速度:10-50ns 应用:主存、权重存储 对比 AI芯片中的协同工作 SRAM:权重缓存 + 激活值存储 DRAM:模型参数 + 中间结果

从这张图能看出来,SRAM和DRAM在AI芯片里是分工合作的。SRAM负责快、小、贵的场景,DRAM负责大、慢、便宜的场景。两者缺一不可。

好了,这一章的内容就到这里。记住:选SRAM还是DRAM,没有绝对的好坏,关键看你的应用场景。下一章我们会深入缓存一致性,到时候再聊。

想要更多资料,联系可可