簡介
靜態隨機存取存儲器(
Static
Random-
Access
Memory,
SRAM)是
隨機存取存儲器的一種。所謂的“靜態”,是指這種存儲器只要保持
通電,裡面儲存的數據就可以恆常保持。相對之下,
動態隨機存取存儲器(DRAM)裡面所儲存的數據就需要周期性地更新。然而,當電力供應停止時,SRAM儲存的數據還是會消失(被稱為volatile memory),這與在斷電後還能儲存資料的
ROM或
快閃記憶體是不同的。
設計
SRAM由存儲矩陣、地址解碼器和讀/寫控制電路組成,容量的擴展有兩個方面:位數的擴展用晶片的並聯,字數的擴展可用外加解碼器控制晶片的片選輸入端。SRAM中的每一
bit儲存在由4個
場效應管(M1, M2, M3, M4)構成兩個交叉耦合的反相器中。另外兩個場效應管(M5, M6)是儲存基本單元到用於讀寫的位線(Bit Line)的控制開關。
反相器是一種電路器件,其輸出是輸入的
邏輯非。如圖所示的
CMOS靜態反相器,由兩個互補的
金屬氧化物半導體場效應管(MOSFET)組成,源極連線在高電平的是P溝道場效應管,源極連線在低電平的是N溝道場效應管。輸入電路接在兩個場效應管的柵極上,輸出電路從兩個場效應管的連線處接出。當輸入低電平,則P溝道場效應管開通,N溝道場效應管關閉,輸出高電平。當輸入高電平,則N溝道場效應管開通,P溝道場效應管關閉,輸出低電平。這就實現了“反相”輸出。
一個SRAM基本單元有0and1兩個電平穩定狀態。SRAM基本單元由兩個CMOS反相器組成。兩個反相器的輸入、輸出交叉連線,即第一個反相器的輸出連線第二個反相器的輸入,第二個反相器的輸出連線第一個反相器的輸入。這就能實現兩個反相器的輸出狀態的鎖定、保存,即儲存了1個位元的狀態。
除了6管的SRAM,其他SRAM還有8管、10管甚至每個位元使用更多的電晶體的實現。這可用於實現多連線埠(port)的讀寫訪問,如
顯存或者
暫存器堆的多口SRAM電路的實現。
一般說來,每個基本單元用的電晶體數量越少,其占用面積就越小。由於矽晶片(silicon wafer)的生產成本是相對固定的,因此SRAM基本單元的面積越小,在矽晶片上就可以製造更多的位元存儲,每位元存儲的成本就越低。
記憶體基本單元使用少於6個電晶體是可能的—如3管甚至單管,但單管儲存單元是
DRAM,不是SRAM。
訪問SRAM時,
字線(Word Line)加高電平,使得每個基本單元的兩個控制開關用的電晶體M
5與M
6開通,把基本單元與
位線(Bit Line)連通。位線用於讀取或寫入基本單元的保存的狀態。雖然不是必須兩條取反的位線,但是這種取反的位線有助於改善
噪聲容限.
與
動態存儲器(DRAM)相比,SRAM的頻寬有很大改進—由於兩條位線是反相,這種
差分信號使得SRAM的抗噪聲干擾能力很強。而DRAM的位線連線到存儲電容,受困於電荷共享(charge sharing)使得其位線信號上下波動。另一項差別使得SRAM更快是其地址線各位元是同時工作選擇出目標存儲單元的字線,而DRAM往往為了降低成本,是先送出低半段的地址線的各比特,然後再送出高半段的地址線的各bit,這降低了DRAM封裝的地址引腳的數量。
有m條地址線與n條數據線的SRAM,其存儲容量是2個字(word),2×nbit.每個字的長度至少是64bit。
SRAM操作
SRAM的基本單元有3種狀態:standby(電路處於空閒),reading(讀取)與writing(寫入). SRAM的讀取或寫入模式必須分別具有"readability"(可讀)與"write stability"(寫入穩定)。
如果字線沒有被選為高電平,那么作為控制用的M5與M6兩個電晶體處於斷路,把基本單元與位線隔離。由M1– M4組成的兩個反相器繼續保持其狀態,只要保持與高、低電平的連線。
假定儲存的內容為1,即在Q處的電平為高。讀取周期開始時,兩條位線預充值為邏輯1,隨後字線WL充高電平,使得兩個訪問控制電晶體M5與M6通路。第二步是保存在Q的值與位線BL的預充值相同,所以BL保持邏輯1,而Q與BL的預充值不同,使得BL經由M1與M5放電而變成邏輯0(即Q的高電平使得電晶體M1通路)。在位線BL一側,電晶體M4與M6通路,把位線連線到VDD所代表的邏輯1(M4作為P溝道場效應管,由於柵極加了Q的低電平而M4通路)。如果儲存的內容為0,相反的電路狀態將會使BL為1而BL為0.只需要BL與BL有一個很小的電位差,讀取的放大電路將會辨識出哪條位線是1哪條是0.敏感度越高,讀取速度越快。
寫入周期開始時,把要寫入的狀態載入到位線。如果要寫入0,則設定BL為1且BL為0。隨後字線WL載入為高電平,位線的狀態被載入SRAM的基本單元。這是通過位線輸入驅動能力設計的比基本單元相對較弱的電晶體更為強壯,使得位線狀態可以覆蓋基本單元交叉耦合的反相器的以前的狀態。
匯流排行為
訪問時間為70ns的
RAM在位址設定完成且有效之後,會在70ns之內將資料輸出。數據將繼續保持有效約5-10 ns。起、落時間將影響有效時間槽(timeslot)約5 ns.如果先讀入低半段地址,將會多耗費30 ns。
套用與使用
特性
SRAM是比DRAM更為昂貴,但更為快速、非常低功耗(特別是在空閒狀態)。因此SRAM首選用於頻寬要求高,或者功耗要求低,或者二者兼而有之。SRAM比起DRAM更為容易控制,也更是隨機訪問。由於複雜的內部結構,SRAM比DRAM的占用面積更大,因而不適合用於更高儲存密度低成本的套用,如PC記憶體。
時鐘頻率與功耗
SRAM功耗取決於它的訪問頻率。如果用高頻率訪問SRAM,其功耗比得上DRAM。有的SRAM在全頻寬時功耗達到幾個瓦特量級。另一方面,SRAM如果用於溫和的時鐘頻率的微處理器,其功耗將非常小,在空閒狀態時功耗可以忽略不計—幾個微瓦特級別。
SRAM用於:
集成於晶片內
嵌入式套用
工業與科學用的很多子系統,汽車電子等等都用到了SRAM。現代設備中很多都嵌入了幾千位元組的SRAM。實際上幾乎所有實現了電子用戶界面的現代設備都可能用上了SRAM,如玩具。數位相機、手機、音響合成器等往往用了幾兆位元組的SRAM。 實時信號處理電路往往使用雙口(dual-ported)的SRAM。
用於計算機
SRAM用於PC、工作站、路由器以及外設:內部的CPU高速快取,外部的突發模式使用的SRAM快取,硬碟緩衝區,路由器緩衝區,等等。LCD顯示器或者印表機也通常用SRAM來快取數據。SRAM做的小型緩衝區也常見於
CDROM與CDRW的驅動器中,通常為256 KiB或者更多,用來緩衝音軌數據。
線纜數據機及類似的連線於計算機的設備也使用了SRAM。
愛好者
搭建自己的處理器的業餘愛好者更願意選用SRAM,這是由於其易用性的工作界面。沒有DRAM所需的刷新周期;地址匯流排與數據匯流排直接訪問而不是像DRAM那樣
多工分別訪問。SRAM通常只需3個控制信號:Chip Enable (CE), Write Enable (WE)與Output Enable(OE)。對於同步SRAM,還需要時鐘信號(Clock,CLK)。
SRAM的類型
非揮發性SRAM
非揮發性SRAM(Non-volatile SRAM,nvSRAM)具有SRAM的標準功能,但在失去電源供電時可以保住其數據。非揮發性SRAM用於網路、航天、醫療等需要關鍵場合—保住數據是關鍵的而且不可能用上電池。
異步SRAM
異步SRAM(Asynchronous SRAM)的容量從4 Kb到64 Mb。SRAM的快速訪問使得異步SRAM適用於小型的cache很小的嵌入式處理器的主記憶體,這種處理器廣泛用於工業電子設備、測量設備、硬碟、網路設備等等。
根據電晶體類型分類
雙極性結型電晶體(用於
TTL與
ECL)—非常快速但是功耗巨大
根據功能分類
異步—獨立的時鐘頻率,讀寫受控於地址線與控制使能信號。
同步—所有工作是時鐘脈衝邊沿開始,地址線、數據線、控制線均與時鐘脈衝配合。
根據特性分類
零匯流排翻轉(Zero bus turnaround,ZBT)—SRAM匯流排從寫到讀以及從讀到寫所需要的時鐘周期是0
同步突發SRAM(synchronous-burst SRAM,syncBurst SRAM)—
DDR SRAM—同步、單口讀/寫,雙數據率I/O
QDR SRAM(Quad Data Rate (QDR) SRAM)—同步,分開的讀/寫口,同時讀寫4個字(word)。