
因为公众号平台更改了推送规则。记得点右下角的大拇指“赞”和红心“推荐”。这样每次新文章推送,就会第一时间出现在订阅号列表里。
基于SRAM的加速器近期引发了社交媒体上关于内存的广泛讨论。它之所以特别吸引人,是因为它避免了使用HBM和CoWoS封装,而这两者都面临严重的供应限制。
然而,关于SRAM到底是什么,以及它与现有的HBM解决方案有何不同,人们存在很多误解。此外,还普遍存在一种错误的担忧,认为SRAM会影响未来AI加速器中HBM的需求。
本文将探讨SRAM与HBM的优缺点,并客观分析每种存储器在AI推理中的作用。我们将从结构、可扩展性、容量、带宽方面对SRAM与HBM进行比较。
SRAM概述
SRAM是一种常用于处理器中的存储器形式,可存储数字信息而无需持续刷新。一旦将0或1写入SRAM单元,只要电源供应存在,其状态就会一直保持,除非被有意更改。
SRAM在计算中的应用与计算机本身一样古老。它最常用于寄存器以及低层缓存,通常被称为L1-L3(L1离处理器最近,L3离得最远)。SRAM的主要优势在于其极快的访问速度,能够以绝对最小的延迟将数据传输给处理器。事实上,目前没有任何其他内存技术能超越SRAM的访问速度,即使是HBM也无法做到。
SRAM的超低延迟和低功耗源于其与处理器都位于芯片上的特性。然而,SRAM在性能上的优势却体现在其存储容量上有所不足。在每平方毫米的芯片面积内,可容纳的SRAM数量仅为DRAM的5到6分之一。HBM通过垂直堆叠12至16块DRAM芯片来进一步提升存储容量,因此HBM的实际存储能力轻松达到SRAM的80倍以上。
与HBM不同,SRAM通常不会单独制造,而是与GPU一起封装(存在例外情况)。为了充分发挥SRAM的性能优势,它必须与处理器位于同一芯片上。
通过将SRAM芯片堆叠在计算芯片之上,可以增加SRAM容量,这与AMD在其3D V-Cache技术中采用的方法类似。但目前尚未有像DRAM那样以12至16层堆叠来构建HBM的多层堆叠SRAM产品。过去一些有趣的实现方式曾将SRAM芯片拆分,并与HBM一同封装;不过这些内容将在后续文章中讨论。
在接下来的章节中,我们将重点探讨SRAM的具体特性,重新回顾这些概念。
单元结构:6T SRAM 与1T1C DRAM
要真正理解SRAM 与DRAM 之间的差异,关键在于了解它们的基本构成组件及其与工艺技术的关联。
6T SRAM
每个SRAM单元通常采用如下的六晶体管(6T)结构实现。该结构包含一个四晶体管交叉耦合的CMOS反相器,称为“双稳态锁存器”,用于保持单元的状态;以及两个NMOS访问晶体管,用于读取和写入单元数据。这种6T SRAM结构被布置在2*2网格上,通过向行和列施加控制电压来控制每个单元的状态。访问晶体管的栅极连接到网格的列,也称为bitlines(BL、BL');栅极则连接到行,也称为wordlines(WL)。

该6T单元格可执行三种操作:保持、读取和写入。下图展示了通过BL和WL上的电压实现这三种状态的方式。
保持:WL被设置为低电平(例如0伏),从而关闭了访问晶体管。只要Vdd供电,双稳态锁存器中的反相器就会保持其0或1的状态。
读取:WL被设置为高电平(Vdd);BL和BL’被设置为Vdd。根据内部存储的位值,其中一个访问晶体管会根据0或1存储的位置,轻微拉低BL或BL'。检测放大器会判断是哪条位线(BL或BL')被拉低,并确定内部位的状态。
写入:将WL设置为高电平;然后强制BL上拉0V或VDD(即BL'上的VDD或0V),以将双稳态锁存器的内部位状态设为0或1。

SRAM单元的工作原理是通过存储信息,无需像DRAM那样持续刷新即可保存数据,并且比特值的读写方式也与此类似。
1T1C DRAM
DRAM单元的内部结构比SRAM简单得多,仅由一个晶体管与一个电容串联构成(1T1C)。由于仅包含两个元件,其结构极为简单,因此在芯片的同一区域中可以容纳更多的DRAM单元,而SRAM则需要六个晶体管。
晶体管是一种N型MOS器件,用作电容的接入晶体管。当通过字线向其栅极施加电压,使该接入晶体管导通时,电容便被充电,此时单元格表示为1的状态。通常施加的字线电压比nMOS晶体管的阈值电压高出Vdd,从而确保电容能够获得完整的Vdd电压进行充电。

当WL电压设置为较低电平,即0V时,访问晶体管会关闭,电容与BL断开连接。根据电容是否带电,DRAM单元分别表示1或0。然而,该单元无法无限保持在此状态。电荷最终会开始泄漏,因此必须进行刷新以维持其状态;这就是DRAM的原理。
向DRAM单元写入数据非常简单。将BL设置为高电压,以使访问晶体管导通。根据位的状态是1还是0,将位线电压设置为Vdd或0。几纳秒后,将字线设置为低电压,使电荷被锁在电容中。
在最简单的情况下,从DRAM单元读取数据的过程是:首先将字线预充电至Vdd/2。当WL被激活以导通晶体管时,如果电容已充电(存储1位),则BL电压会高于Vdd/2;如果电容已放电(存储0位),则电压会低于Vdd/2。通过使用检测放大器来检测这些电压差,从而判断位的状态。实际上,DRAM的检测过程要复杂得多,但以上内容可帮助理解其基本工作原理。
工艺与密度扩展
SRAM
尽管6T单元结构中的设计权衡和工艺技术可能相当复杂,但有一个关键点需要强调:如果晶体管可以做得更小,我们就可以将更多晶体管集成在一起,从而提高存储器的密度。
在平面晶体管的早期,每一代更小的晶体管都会带来更高密度的SRAM内存。这种情况一直持续到Dennard scaling结束为止,随着每一代晶体管尺寸的缩小,亚阈值漏电问题也日益严重。亚阈值漏电是指晶体管在关闭状态下泄漏的电流,这本应是完全避免的现象。此外,由于晶体管尺寸越来越小,其性能存在较大差异,导致双稳态锁存器意外地翻转位状态,从而引发比特错误。

向14纳米节点的FinFET工艺迁移,使得晶体管尺寸更小,并且对硅沟道的控制能力更强,从而实现了部分SRAM的进一步缩放。然而,在5-7纳米节点附近,SRAM的缩放似乎趋于平缓。这一点在台积电N3E工艺中表现得尤为明显,其位元单元尺寸与N5工艺相同(0.021平方微米)。
台积电N2工艺采用全栅极晶体管,实现了自N5以来首次的SRAM制程缩小,位单元尺寸降至0.0175平方微米,约缩小了17%。而英特尔在2025年ISSCC上公布的18A工艺仍保持0.021平方微米的位尺寸,未出现显著缩小。
本质上,我们已达到当前技术能力在SRAM方面的极限。每两年翻倍的SRAM密度时代已经一去不复返。目前能实现的最高SRAM存储密度约为38 Mb/mm²。
当发展到互补型FET(CFET)时,即NMOS与PMOS叠加结构,有可能实现进一步的SRAM尺寸缩小。双稳态锁存器包含两个反相器,随着CFET技术的进步,这些器件也将变得更小。此外,研究人员正在探索MRAM和FeRAM等激进替代方案,这些技术可能带来在规模上的重大突破。
DRAM
DRAM中使用的1T1C单元经过独特设计,以最大化存储密度。DRAM芯片采用专为存储设计的特殊工艺制造,其命名方式与用于SRAM的先进逻辑节点(如5nm、3nm、2nm)不同,分别称为1a、1b、1c。
存储工艺节点采用高宽比电容结构,在晶体管上方堆叠电容,通常使用铪或氧化锆等高介电常数的介质材料,以最大化电容并最小化漏电。访问晶体管的尺寸相当于10纳米逻辑晶体管或更大,因为单元格尺寸的限制因素是电容而非晶体管。若进一步缩小沟道晶体管,则会增加漏电和成本。
DRAM在提升存储密度方面也面临挑战。过去20年中,DRAM单元的尺寸一直停留在6F²,其中F代表存储单元的半间距。为了提高DRAM的密度,需要缩小电容和晶体管以减小F值,但多年来在这一领域进展缓慢,因为通过光刻技术难以实现显著的缩小。

下一次飞跃将出现在采用4F2单元结构时,这意味着存储单元将并排堆叠,彼此之间没有空隙。这需要一种垂直通道晶体管,可能使用氧化铟镓锌(IGZO)通道,并结合真正意义上的三维DRAM单元结构,而这种技术正受到Neo Semiconductor等初创企业的积极追求。
容量
总体而言,就容量而言,无论是HBM、LPDDR还是GDDR,所有DRAM技术都优于SRAM。如上所述,它们的单元结构存在根本性差异,这直接影响了在特定芯片面积内可容纳多少内存。以HBM3e为例,其密度约为每平方毫米200兆字节的DRAM;而在台积电N3E节点中,1平方毫米的硅晶片仅能容纳约38兆字节的SRAM。
HBM还受益于垂直堆叠技术。目前,HBM3e堆叠中的每个DRAM芯片面积为11毫米*11毫米,容量为3GB(24Gb)。像Blackwell Ultra这样的GPU使用了八个12层的HBM3e堆叠,总内存可达288GB(12层*3GB*8个堆叠)。

相比之下,SRAM在芯片面积上直接与计算资源及其他片上资源竞争。每增加1兆字节的SRAM,都会以牺牲计算单元、互连或控制逻辑为代价,因此其尺寸始终处于权衡之中。因此,即使在大型加速器中,片上SRAM在每颗芯片上通常会限制在几百兆字节。
以下是Blackwell Ultra GPU的芯片图,展示了其结构以及争夺芯片面积的各种模块。L2缓存采用SRAM构建,增大其容量将导致GPU集群变小,总计算浮点数也相应降低。

容量对模型并行性的影响
现代LLM规模庞大,即使具备HBM,也常常需要将模型分片部署在多个GPU或XPU上,因为其内存需求超过了单个GPU的可用空间。实现这一目标的两种常见方法是张量并行和流水线并行,它们在模型如何在设备间划分方面有所不同。下图展示了这两种方法。
张量并行(层内并行)将单个层内的矩阵乘法任务分配到多个GPU上,而流水线并行(层间并行)则将Transformer层本身在多个GPU之间进行划分。

实际上,这些策略通常会结合使用。例如,一个拥有126层的LLaMA-405B模型可能会分布在两个DGX-H100节点上,每个节点配备八个H100 GPU。在每个节点内部采用张量并行技术,而流水线并行则将两个节点连接起来。

在基于SRAM的加速器中,由于每个芯片可用内存有限,相同型号的模型通常会被分布在更多的芯片上。这使得编译器和运行时系统需要承担更大的责任,以高效地对设备之间的任务进行划分与协调,从而导致整体协调过程变得越来越复杂且效率低下。虽然设计这类系统是完全可行的,但会增加复杂性,并需要精心的协调工作,以避免效率损失。
带宽性能
内存带宽等于内存接口的宽度乘以数据传输速率。对于任何内存系统,都可以通过增加接口宽度(更多并行数据通道)、提高运行速度或两者结合来提升带宽。在带宽方面,有三个因素使SRAM优于DRAM。
1. SRAM带宽比HBM高出一个数量级。
以NVIDIA B200为例:
每个HBM3e提供约1 TB/s的带宽;8个则可实现峰值DRAM带宽达8 TB/s。
在1.98 GHz的GPU时钟频率下,基于片上SRAM的L1缓存可有效提供约37.5 TB/s的带宽。具体计算如下:
Cache line大小,即SRAM的宽度 = 128 byte
时钟频率为1.98 GHz,SRAM可在每个时钟周期内被访问。
148 个流式多处理器(SMs)
(128 byte cache line*1.98 GHz *148个SM ≈ ~37.5 TB/s。)
除了现有的缓存层次结构外,Blackwell的第五代Tensor Core还引入了TMEM,即每个SM专用的256 KB SRAM,专为Tensor Core运算而设计。微基准测试结果表明,TMEM“每SM可提供16 TB/s的读取带宽和8 TB/s的写入带宽,且该带宽与L1/SMEM带宽叠加运行,而非与其他资源竞争。”TMEM的引入凸显了高度专用、紧耦合于计算过程的片上SRAM结构所释放出的性能潜力。
除了GPU之外,Groq LPU还支持基于SRAM的加速器,可提供约80 TB/s的片上内存带宽,而d-Matrix的Corsair PCIe卡则可提供高达150 TB/s的内存带宽。
2. SRAM带宽与计算量成正比,而HBM的引脚数有限。
由于DRAM芯片位于逻辑芯片外部,其性能在本质上受到接口宽度的限制,更具体地说,是内存与xPU之间实际可支持的I/O引脚数量的限制。若要提高每引脚的数据传输速率,就必须牺牲数据流在铜制互连上的信号完整性,而这种互连正是连接内存芯片与xPU的关键部分。
例如,HBM3e 在计算芯片与每个内存堆叠之间使用1024 位的数据总线,每条通道最高运行速度可达9.6 Gbps,每个堆叠的带宽约为1.2 TB/s。要提高带宽,需要提升信号传输速率或增加总线宽度。在HBM2、HBM2e、HBM3 和HBM3e 四代产品中,总线宽度一直保持在1024 位。直到HBM4 时代,随着微凸点间距显著缩小,接口宽度才首次翻倍至2048 位。未来接口宽度的进一步提升,可能只能通过采用混合键合技术实现,而不再依赖目前使用的热压缩键合方式。
SRAM的缩放模型与DRAM不同,因为它直接集成在逻辑芯片上,其带宽不受外部引脚或固定内存接口的限制。相反,SRAM的带宽主要取决于架构中实例的数量以及SRAM与计算单元之间的耦合程度。随着新一代XPU增加更多计算单元,设计者可以在这些单元附近添加更多的分布式SRAM,从而在不依赖更快的信号传输或更宽的片外总线的情况下,提升芯片上的总体带宽。
例如,一个使用8级HBM内存的XPU,其带宽约为8 TB/s,必须由所有计算单元共享。当每个计算单元都连接有90 TB/s接口带宽的SRAM时,总内存带宽会随计算单元数量增加而提升——每个计算单元都有独立连接的SRAM。因此,100个核心将拥有900 TB/s的内存带宽。
在GPU中,这种扩展体现在缓存结构与计算功能一同复制的方式上。SM是NVIDIA GPU的基本执行单元,每个SM都配备了独立的L1缓存,该缓存以SRAM实现。随着NVIDIA从A100升级到H100再到B200,SM的数量从108增加到132,再增至148。由于每个SM都有独立的L1缓存,SM数量的增加也意味着可以并行运行的SRAM访问点数量随之增加,从而提升了GPU可使用的片上总内存带宽。

通过增加SRAM数据路径的宽度,例如扩大缓存行宽或增加缓存组数,也可以提升带宽,从而进一步提高每周期能传输的数据量。综合来看,这些因素意味着SRAM的带宽在计算需求增长时,可比DRAM更紧密地实现扩展,而DRAM的带宽受限于芯片外接口和固定的引脚数量。
3. DRAM的理论带宽 ≠ 实际带宽。
实际上,DRAM从未达到其宣传的全部带宽。其中一部分带宽因DRAM工作方式固有的结构效率问题而损失,包括:
周期性刷新周期
bank冲突
行激活和预充电延迟

以刷新为例,DRAM单元基于电容,会随着时间推移发生漏电,因此必须定期刷新以保持数据。对于HBM3e,刷新间隔为每3900纳秒(tREFI),在此期间内存不可用的时间为350纳秒(tRFC)。仅此一项就已导致近8%的带宽损耗,而尚未考虑任何访问模式或并发情况。

另一个重要因素是行局部性,通常用页面命中和页面未命中来描述。DRAM被组织成行(或页面)。当某一行被激活时,其内容会被加载到感知放大器中,从而使得对该行的后续访问能够快速进行。如果多次访问命中同一行,则激活成本得以摊薄。但当访问在不同行之间跳转时,必须先关闭当前行并激活新的行,这一过程代价高昂,会显著降低有效带宽。下图展示了页面命中与页面未命中之间的时序差异。

然后是bank冲突问题。DRAM单元被组织成bank和bank组,为了实现最高的带宽,连续的内存访问应针对不同的bank组。

如果访问命中同一bank组内的不同bank,则会产生额外的延迟。该行为由时间参数tCCD_S(短列间延迟)和 tCCD_L(长列间延迟)来表示,如下图所示。

相比之下,SRAM 没有这些结构上的低效。它没有刷新操作、行激活,也没有页面命中或页面未命中的行为。如果核心每周期都能发出一次内存请求,SRAM 就能在每周期内完成响应。换句话说,SRAM 的可用带宽实际上等于其理论带宽。
原文链接:
https://www.viksnewsletter.com/p/a-close-look-at-sram-for-inference
高端微信群介绍 | |
创业投资群 | AI、IOT、芯片创始人、投资人、分析师、券商 |
闪存群 | 覆盖5000多位全球华人闪存、存储芯片精英 |
云计算群 | 全闪存、软件定义存储SDS、超融合等公有云和私有云讨论 |
AI芯片群 | 讨论AI芯片和GPU、FPGA、CPU异构计算 |
5G群 | 物联网、5G芯片讨论 |
第三代半导体群 | 氮化镓、碳化硅等化合物半导体讨论 |
存储芯片群 | DRAM、NAND、3D XPoint等各类存储介质和主控讨论 |
汽车电子群 | MCU、电源、传感器等汽车电子讨论 |
光电器件群 | 光通信、激光器、ToF、AR、VCSEL等光电器件讨论 |
渠道群 | 存储和芯片产品报价、行情、渠道、供应链 |

< 长按识别二维码添加好友 >
加入上述群聊

带你走进万物存储、万物智能、
万物互联信息革命新时代
