静态随机存取存储器(Static Random-Access Memory,SRAM)是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。相对之下,动态随机存取存储器(DRAM)里面所储存的数据就需要周期性地更新。然而,当电力供应停止时,SRAM储存的数据还是会消失(被称为volatile memory),这与在断电后还能储存资料的ROM或闪存是不同的。
        随着微电子技术的迅猛发展,SRAM 逐渐呈现出高集成度、快速及低功耗的发展趋势。在半导体存储器的发展中,静态存储器(SRAM)由于其广泛的应用成为其中不可或缺的重要一员。近年来SRAM在改善系统性能、提高芯片可靠性、降低成本等方面都起到了积极的作用。
        在了解SRAM之前,有必要先说明一下RAM。RAM主要的作用就是存储代码和数据供CPU在需要的时候调用。但是这些数据并不是像用袋子盛米那么简单,更像是图书馆中用书架摆放书籍一样,不但要放进去还要能够在需要的时候准确的调用出来,虽然都是书但是每本书是不同的。对于RAM等存储器来说也是一样的,虽然存储的都是代表0和1的代码,但是不同的组合就是不同的数据。
        让我们重新回到书和书架上来,如果有一个书架上有10行和10列格子(每行和每列都有0-9的编号),有100本书要存放在里面,那么我们使用一个行的编号+一个列的编号就能确定某一本书的位置。在RAM存储器中也是利用了相似的原理。
        现在让我们回到RAM存储器上,对于RAM存储器而言数据总线是用来传入数据或者传出数据的。因为存储器中的存储空间是如果前面提到的存放图书的书架一样通过一定的规则定义的,所以我们可以通过这个规则来把数据存放到存储器上相应的位置,而进行这种定位的工作就要依靠地址总线来实现了。
        对于CPU来说,RAM就像是一条长长的有很多空格的细线,每个空格都有一个唯一的地址与之相对应。如果CPU想要从RAM中调用数据,它首先需要给地址总线发送“编号”,请求搜索图书(数据),然后等待若干个时钟周期之后,数据总线就会把数据传输给CPU。
        小圆点代表RAM中的存储空间,每一个都有一个唯一的地址线同它相连。当地址解码器接收到地址总线的指令:“我要这本书”(地址数据)之后,它会根据这个数据定位CPU想要调用的数据所在位置,然后数据总线就会把其中的数据传送到CPU。
        下面该介绍一下今天的主角SRAM:
        SRAM——“Static RAM(静态随机存储器)”的简称,所谓“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。这里与我们常见的DRAM动态随机存储器不同,具体来看看有哪些区别:
        SRAM VS DRAM
        SRAM不需要刷新电路即能保存它内部存储的数据。而DRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失。因此SRAM具有较高的性能,功耗较小。
        此外,SRAM主要用于二级高速缓存(Level2 Cache)。它利用晶体管来存储数据。与DRAM相比,SRAM的速度快,但在相同面积中SRAM的容量要比其他类型的内存小。
        但是SRAM也有它的缺点,集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积。同样面积的硅片可以做出更大容量的DRAM,因此SRAM显得更贵。
        还有,SRAM的速度快但昂贵,一般用小容量SRAM作为更高速CPU和较低速DRAM 之间的缓存。
        总结一下:
        SRAM成本比较高
        DRAM成本较低(1个场效应管加一个电容)
        SRAM存取速度比较快
        DRAM存取速度较慢(电容充放电时间)
        SRAM一般用在高速缓存中
        DRAM一般用在内存条里
        SRAM如何运作
        刚才总结到了SRAM有着很特别的优点,你该好奇这家伙是怎样的运作过程?
        一个SRAM单元通常由4-6只晶体管组成,当这个SRAM单元被赋予0或者1的状态之后,它会保持这个状态直到下次被赋予新的状态或者断电之后才会更改或者消失。SRAM的速度相对比较快,且比较省电,但是存储1bit的信息需要4-6只晶体管制造成本可想而知,但DRAM只要1只晶体管就可以实现。
        连接一下SRAM的结构,比较出名的是6场效应管组成一个存储bit单元的结构:
         366440.jpg
        M1-6表示6个晶体管,SRAM中的每一个bit存储由4个场效应管M1234构成两个交叉耦合的反相器中。一个SRAM基本单元有0、1 两个状态。
        SRAM基本单元由两个CMOS反相器组成,两个反相器的输入输出交叉连接,即第一个反相器的输出连接第二个反相器的输入,第二个反相器的输出连接第一个反相器的输入。这实现了两个反相器输出状态的锁定、保存,即存储了一个位元的状态。
        一般而言,每个基本单元的晶体管数量越少,其占用面积就会越小。由于硅晶圆生产成本相对固定,所以SRAM基本单元面积越小,在芯片上就可制造更多的位元存储,每个位元存储的成本就越低。
        SRAM工作原理相对比较简单,我们先看写0和写1操作。
        写0操作
        写0的时候,首先将BL输入0电平,(~BL)输入1电平。
        然后,相应的Word Line(WL)选通,则M5和M6将会被打开。
        0电平输入到M1和M2的G极控制端
        1电平输入到M3和M4的G极控制端
        因为M2是P型管,高电平截止,低电平导通。而M1则相反,高电平导通,低电平截止。
        所以在0电平的作用下,M1将截止,M2将打开。(~Q)点将会稳定在高电平。
        同样,M3和M4的控制端将会输入高电平,因NP管不同,M3将会导通,而M4将会截止。Q点将会稳定在低电平0。
        最后,关闭M5和M6,内部M1,M2,M3和M4处在稳定状态,一个bit为0的数据就被锁存住了。
        此时,在外部VDD不断电的情况下,这个内容将会一直保持。
        写1操作
        这里不再重复,大家可以自己推演一下过程。
        读操作相对比较简单,只需要预充BL和(~BL)到某一高电平,然后打开M5和M6,再通过差分放大器就能够读出其中锁存的内容。
        SRAM行业发展趋势
        随着处理器日趋强大,尺寸越发精巧。然而更加强大的处理器需要缓存进行相应的改进。与此同时每一个新的工艺节点让增加嵌入式缓存变得艰巨起来。SRAM的6晶体管架构(逻辑区通常包含4个晶体管/单元)意味着每平方厘米上的晶体管的数量将会非常多。这种极高的晶体管密度会造成很多问题,其中包括:
         366439.jpg
        SER:软错误率;Processnode:工艺节点soft:软错误
        更易出现软错误:工艺节点从130nm缩小到22nm后,软错误率预计将增加7倍。
        更低的成品率:由于位单元随着晶体管密度的增加而缩小,SRAM区域更容易因工艺变化出现缺陷。这些缺陷将降低处理器芯片的总成品率。
        更高的功耗:如果SRAM的位单元必需与逻辑位单元的大小相同,那么SRAM的晶体管就必须小于逻辑晶体管。较小的晶体管会导致泄露电流升高,从而增加待机功耗。
        另一个技术发展趋势可穿戴电子产品的出现。对于智能手表、健身手环等可穿戴设备而言,尺寸和功耗是关键因素。由于电路板的空间有限,MCU必须做得很小,而且必须能够使用便携式电池提供的微小电量运行。
        片上缓存难以满足上述要求。未来的可穿戴设备将会拥有更多功能。因此片上缓存将无法满足要求,对外置缓存的需求将会升高。在所有存储器选项中,SRAM最适合被用作外置缓存,因为它们的待机电流小于DRAM,存取速度高于DRAM和闪存。