SRAM 单元与灵敏放大器:大阵列的一位是怎么存、怎么读的
更新时间:2026-09-12。本文是「集成电路大类 · 芯片设计」**进阶层(intermediate)**数字逻辑第四十三篇。寄存器堆用一堆触发器存数据,深阵列那样做面积会爆炸。真实 Cache、SRAM 宏的最小单位是精巧的 6T 位单元,配上位线和灵敏放大器,这一篇讲清它的存、读、写机制。
本文要回答的问题
- 6T SRAM 单元里哪 6 个管,数据具体存在哪里(为什么掉电就丢)?
- 写操作怎么「强行」改翻转叉耦合的两个反相器?
- 读操作为什么不是直接把值推到位线,而是先预充、再轻微拉低、再放大?
- 什么是读破坏、静态噪声容限 SNM、写裕量?它们如何影响尺寸设计?
- 为什么位线只摆一点点电压?灵敏放大器怎么检出微小差分?
一、6T 单元:两个反相器背靠背 + 两个访问门
经典 6T 单元:
- 存储锁存:反相器 I1、I2 交叉耦合(I1 输出接 I2 输入,I2 输出接 I1 输入),两个互补节点 Q、Q̄ 互相锁定,只要不断电就稳定保存 1 bit——这是锁存器的最小双稳态环;
- 访问管 A1、A2:两个 NMOS 传输管,栅极都接字线 WL,分别把 Q 接到位线 BL、Q̄ 接互补位线 BLB。
VDD
I1 ⇄ I2 (两个反相器交叉耦合,Q 与 Q̄ 互补锁定)
| |
A1 A2 (访问管,栅极都接字线 WL)
| |
BL BLB (两根互补位线,整列共享)未选中时 WL=0,A1/A2 关断,单元与位线隔离,自持状态。掉电则双稳态失去供电——这正是 SRAM「易失」的原因。
二、写:用位线强压过内部反馈
写周期先把 BL/BLB 预置成要写的互补值(写 1 则 BL=1、BLB=0),再抬高 WL 打开访问管。外部位线由强驱动的写驱动器供电,电压摆幅是轨到轨的,足以通过访问管把某一内部节点强行拉过反相器开关阈值,交叉耦合随之翻转锁定新值。能否写进去取决于访问管/下拉管的尺寸比——若内部反相器太强、外部拉不动,就写失败,这对应写裕量(WM)。
三、读:预充 → 微摆 → 灵敏放大
读不能像写那样猛拉,否则大电容位线又慢又费电,甚至读破坏内容。标准读三步:
- 预充(precharge):读之前把 BL、BLB 都充到 VDD,然后断开预充管;
- 评估(evaluate):WL 打开,单元内部为 0 的那一侧,其下拉管会通过访问管把对应位线轻微往下拉,另一根保持高,两根位线出现一个很小的差分电压(ΔV 可能只有几十~一两百 mV);
- 灵敏放大(sense):等差分建立到足够,启动灵敏放大器(通常是一对交叉耦合反相器构成的正反馈锁存器),把微小差分流式放大到轨到轨的 0/1。
只摆一点点再放大的好处:位线电容很大,全摆幅充放能耗高、慢;小摆幅 + sense amp 显著省功耗提速。代价是要精确控制「等多久再放大」,过早差分不够会读错,过晚浪费周期——这就是 SRAM 时序里 precharge/access/sense 节拍的由来。
四、读破坏、SNM 与尺寸权衡
读期间内部存 0 的节点经访问管被位线(初始为高)往上抬,若抬过对侧反相器阈值,交叉耦合可能翻转、把数据冲掉,即读破坏。抵抗它靠读静态噪声容限(RSNM):设计上让单元下拉管相对访问管足够强(管宽比 ratioed),或像 8T 单元那样加一对独立读管/读位线,把读路径与内部存储节点解耦(同时方便做双端口/寄存器堆式读)。写裕量和读裕量对尺寸比的要求相反,加上工艺缩小带来的 Vth 失配,使 6T 在先进工艺下的最小工作电压(Vmin)和良率成为大问题,需冗余列/修复辅助。
五、阵列视角:列复用、与 DFF/DRAM 的分界
- 列复用:一条 sense amp 由多列共享,列选通(类似mux/demux)决定本次读哪列,摊薄灵敏放大器面积;
- 为什么不逐位复位:深 SRAM 没有、也不需要每个单元复位管,上电内容随机,靠初始化代码或 ECC 处理,这解释了复位设计和存储器推断里「阵列不做整体复位」;
- 对比:6T/8T SRAM 是静态双稳态、速度快、单元较大;DRAM 用 1T1C 电容存电荷、单元小密度高但要定期刷新;触发器堆最灵活但面积最大。深而规则的存储交给 SRAM compiler 生成带译码/预充/灵敏放大/冗余的完整宏。
与现有篇目的衔接
- 前置:锁存器与触发器、寄存器堆、CMOS 复合门/传输门
- 配套:译码与字线、存储器推断、汉明 ECC
- 应用:片上存储器/Cache、低功耗
总结
一句话总结:SRAM 一位用 6T——两个反相器交叉耦合形成双稳态锁存(掉电即失)、两个访问管由字线控制接到互补位线 BL/BLB;写是轨到轨地用强写驱动经位线把内部节点压过开关阈值、翻转并锁定(受写裕量和管宽比约束),读则严格走「预充两根位线到高→开字线让存 0 一侧轻微下拉形成小差分→交叉耦合正反馈的灵敏放大器把几十 mV 放大到满摆幅」三步,只做小摆幅以省位线大电容的充放功耗并提速;读时内部低节点会被上抬,可能读破坏,靠下拉管对访问管的尺寸比保证读噪声容限,或用 8T 独立读路径解耦并支持双口;阵列再以列复用共享 sense amp、用冗余修复提良率,且深 SRAM 不做逐位复位——相比 1T1C 需刷新的 DRAM 和灵活但费面积的触发器堆,6T SRAM 以速度和密度居中,成为 Cache 与片上 SRAM 宏的标准单元。