本文主要介绍SRAM的物理结构、引脚定义及操作流程。
SRAM常见的结构有两种:四管二电阻结构和六管结构,分别如下图所示,现在基本都用的六管结构。
6T:指的是由六个晶体管组成,如图中的M1、M2、M3、M4、M5、M6。SRAM中的每一bit数据存储在由4个场效应管(M1,M2,M3,M4)构成的两个交叉耦合的反相器中。另外两个场效应管(M5,M6)是存储基本单元到用于读写的位线(Bit Line)的控制开关。
具体结构简化示意如下:
引脚 | 定义 |
VDD | 工作电压 |
VSS | 地 |
I/On | 数据线 |
UB#,LB# | 高/低字节控制 |
An | 地址线 |
WE# | 写使能 |
CE1#,CE2 | 片选 |
OE# | 输出使能 |
SRAM的基本单元有3种状态:standby(电路处于空闲),reading(读)和writing(写)。SRAM的读或写模式必须分别具有"readability"(可读)与"write stability"(写稳定)。
当外界不访问该单元时,字线WL处于低电平,此时作为控制用的M5与M6两个晶体管处于断路,把基本单元与位线隔离。由M1~M4组成的两个反相器继续保持其状态,只要保持与高、低电平的连接。
假定存储的内容为1,即在Q处的电平为高。读周期之初,两根位线预充值为逻辑1,随后字线WL充高电平,使得两个访问控制晶体管M5与M6通路。第二步是保存在Q的值传递给位线BL在它预充的电位,而泻掉nBL预充的值,这是通过M1与M5的通路直接连到低电平使其值为逻辑0(即Q的高电平使得晶体管M1通路)。在位线BL一侧,晶体管M4与M6通路,把位线连接到VDD所代表的逻辑1(M4作为P沟道场效应管,由于栅极加了nQ的低电平而M4通路)。
如果存储的内容为0,相反的电路状态将会使nBL为1而BL为0。只需要nBL与BL有一个很小的电位差,读取的放大电路将会辨识出哪根位线是1哪根是0。敏感度越高,读取速度越快。
从存储单元读出“1”的过程是:
预充BL和nBL位线到“1”电平,此时WL字线处于低电平;
使WL字线为高电平,M5和M6导通;
nBL通过M5和M1(单元存“1”时,M1一直处于导通状态)迅速放电至“0”电平,M3仍然截止;
VDD通过M4和M6对BL充电,使BL保持在“1”电平,M1仍然导通;
去掉字线WL上的高电平。
这样就完成了从存储单元读出“1”的全过程,而且是非破坏性读出。由于单元管的尺寸很小,而位线通过单元管放电的速度很慢,为了提高读出速度,只要在位线上建立起一定的电压差就可以了,而不必等到一边位线下降到低电平。通过列译码器控制的列开关,把选中的单元位线读出的微小信号差送到公共数据线,再通过公共数据线送到灵敏放大器,把微小的信号差放大为合格的高低电平,最后通过缓冲器转换成单端信号输出。
写周期之初,把要写入的状态加载到位线。如果要写入0,则设置nBL为1且BL为0。随后字线WL加载为高电平,位线的状态被载入SRAM的基本单元。这是通过位线输入驱动(的晶体管)被设计为比基本单元(的晶体管)更为强壮,使得位线状态可以覆盖基本单元交叉耦合的反相器的以前的状态!
向存储单元写入“1”的过程是:
当WL字线为低电平,置BL位线为“1”电平,nBL为“0”电平;
置WL字线为高电平,此时M5、M6导通;
存储单元的存储节点nQ通过M5向NBL放电,达到“0”电平,M3截止;
BL位线通过M6,VDD通过M4,对存储节点Q充电至“1”电平,M1导通;
置WL字线为低电平,M5、M6管关闭,此时存储单元的结点Q处于“1”电平状态,nQ处于“0”电平状态。
这样就完成了向存储单元写入“1”的全过程。通常SRAM存储单元都做成阵列结构,多个存储单元共用一根字线,在连续进行写入操作时,如果时序上配合不当,就有可能用前次位线上的数据改写同一根字线上的其他单元中的数据。