1. SRAM概述:从基本原理到SoC中的关键角色

大家好,我是老李。做芯片设计这么多年,SRAM可以说是打交道最多的模块之一。今天咱们就来聊聊SRAM的那些事儿。

说实话,SRAM这东西看着简单,但真要把它吃透,还真得下点功夫。我记得刚入行那会儿,总觉得SRAM就是个存储数据的黑盒子,直到有一次项目里SRAM漏电导致芯片功耗超标,才逼着我好好研究了一番它的内部结构。

1.1 SRAM的基本原理

SRAM,全称是Static Random Access Memory,静态随机存取存储器。说白了,就是一种只要不断电,数据就能一直保持的存储器。

为什么叫"静态"?因为它不需要像DRAM那样定期刷新。你想想看,这在实际使用中省了多少事。

SRAM的核心工作原理其实很简单:

  • 存储单元:每个bit由一个锁存器(latch)来保存
  • 读写操作:通过字线(Word Line)和位线(Bit Line)进行访问
  • 保持状态:只要供电,数据就不会丢失

核心要点:SRAM的"静态"特性来源于其双稳态电路结构。两个反相器交叉耦合,形成正反馈,能稳定地保持"0"或"1"状态。

1.2 6T单元结构详解

6T SRAM单元,就是由6个晶体管组成的存储单元。这是目前最主流的SRAM单元结构。

我给大家画个结构图,这样更直观:

6T SRAM单元结构图 VDD M2 PMOS M4 PMOS M1 NMOS M3 NMOS Q QB M5 NMOS M6 NMOS 字线 (WL) 位线 (BL) 位线 (BLB) GND PMOS上拉管 NMOS下拉管 NMOS传输管

这个6T结构,我拆开来讲:

  • M1、M3:两个NMOS下拉管,构成反相器的下拉网络
  • M2、M4:两个PMOS上拉管,构成反相器的上拉网络
  • M5、M6:两个NMOS传输管,负责读写时的通路控制

M1-M4组成两个交叉耦合的反相器,这就是存储的核心。M5和M6是访问管,由字线WL控制。

经验之谈:我在做28nm工艺的SRAM编译器时,发现6T单元的尺寸比例非常关键。M1/M3的驱动能力要强于M5/M6,否则读操作时可能会破坏存储数据。这个叫"读干扰"问题,后面我们会详细讲。

1.3 SRAM在SoC中的角色

现在的SoC芯片,说白了就是一堆IP核的集合。SRAM在其中扮演什么角色?我给你列几个关键场景:

应用场景 典型容量 性能要求
CPU缓存(L1/L2) 32KB - 2MB 超高速,1-3周期访问
GPU帧缓冲 1MB - 16MB 高带宽,多端口
网络处理器包缓存 512KB - 8MB 低延迟,高吞吐
AI加速器权重存储 1MB - 32MB 高密度,低功耗

我做过一个AI芯片的项目,里面光SRAM就占了芯片面积的60%以上。你想想看,这玩意儿有多重要。

SRAM在SoC里主要干这几件事:

  1. 缓存数据:CPU和GPU的L1/L2/L3缓存,几乎全是SRAM
  2. 临时存储:FIFO、寄存器文件、查找表
  3. 配置存储:芯片配置寄存器、状态机状态存储
  4. 数据缓冲:不同时钟域之间的数据同步

注意:SRAM的面积和功耗在先进工艺下越来越成为瓶颈。我曾经遇到一个7nm的项目,SRAM的漏电功耗占了芯片总功耗的40%。这可不是个小数目。

1.4 SRAM与DRAM的区别

很多新手会问:SRAM和DRAM到底有啥区别?我直接给你对比一下:

对比项 SRAM DRAM
存储单元 6个晶体管(6T) 1个晶体管+1个电容(1T1C)
速度 极快(1-5ns) 较慢(10-50ns)
密度 低(6倍晶体管) 高(1倍晶体管)
功耗 静态功耗较高 需要刷新,动态功耗高
刷新 不需要 需要(64ms刷新一次)
成本
典型应用 CPU缓存、寄存器 主存、内存条

为什么会这样?我解释一下:

速度差异:SRAM用锁存器存数据,信号翻转快。DRAM靠电容存电荷,充放电需要时间。我在项目中测过,同样工艺下SRAM比DRAM快3-5倍。

密度差异:6T vs 1T1C,这个差距很明显。DRAM的密度能做到SRAM的4-8倍。所以主存用DRAM,缓存用SRAM。

功耗差异:SRAM静态功耗大,因为6个管子一直在耗电。DRAM虽然静态功耗小,但需要定期刷新,这个刷新操作也耗电。

我的建议:选型时记住一个原则——速度优先选SRAM,容量优先选DRAM。如果既要速度又要容量,那就用SRAM做缓存,DRAM做主存,搞个层次化存储架构。

嗯,SRAM的基本概念就讲到这里。这些是后面深入学习SRAM编译器设计的基础,大家一定要理解透。下一节我们会讲SRAM的读写操作时序,到时候我会结合波形图来演示。


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