靜態隨機存取存儲器(Static Random AccessMemory,SRAM)是隨機存取存儲器的一種,所謂「靜態」,是指只要保持通電,儲存的數據就可以恆常保持。而動態隨機存取存儲器(DRAM)所儲存的數據就需要周期性地刷新。本文先簡述SRAM的工作原理。
如下圖所示,6T SRAM由M1、M2組成一個inverter,由M3、M4組成另一個inverter,這兩個inverter的output分別接到另一個inverter的input,構成一個latch,從而可以將數據鎖住。
連接到M5、M6的gate信號是word line(縮寫成WL),是用來控制SRAM bit-cell的開關信號,M5、M6一起打開或關閉。M5、M6的Drain端是讀出或寫入的bit line(縮寫成BL)。若要寫入1,則BL驅動電壓為VDD;若要寫入0,則BL驅動電壓為0。
1. SRAM寫操作
當bit-cell存儲的內容為1而要寫入0,即Q的電壓值為VDD,此時只需要將WL電壓值提高到VDD且BL為0,那麼Q電壓值將通過M6被拉低,Q』的電壓值將通過M5被拉高,再由M1/M2,M3/M4兩個反相器推挽,bit-cell存儲的內容就從1變成0了。此時WL電壓拉低即可完成數據鎖存。
2. SRAM讀操作
讀出bit-cell存儲單元時,先將BL和BL』拉到等電位,這個電位通常為pre-charge voltage電壓,一般為VDD(或VDD-Vth),當BL及BL』兩端電位相等之後可以將之浮接(floating)或通過阻抗接至pre-charge voltage電壓源,然後將WL打開,利用Q及Q』的寄生電容通過M6、M5與BL、BL』產生chargesharing及分壓的效果從而讓BL與BL』產生電壓差,最後利用外部的sense amplifier將差異信號放大從而讀出0或1。
簡言之,6T SRAM的寫是利用外部電壓改變bit-cell的鎖存電荷值,而讀是bit-cell的內部鎖存電荷值去驅動外部相同電位的BL、BL』,bit-cell的驅動能力有限,因此需要sense amplifier來放大。
發散一下:
動態DRAM的每個單元可以看作是一個MOS管和一個電容組合,電容充電後是1,沒充電是0,WL被選中後,MOS管導通,BL就和電容導通,可以進行讀寫操作。相比SRAM而言,DRAM容易漏電,因此需要刷新,但其結構簡單、集成度高、成本低,因此被大規模使用。