靜態隨機存儲器

靜態隨機存取記憶體（static random-access memory, SRAM），是隨機存取記憶體的一種。所謂「靜態」，是指這種存儲器只要保持通電，儲存的數據就可以恆常保持。相對之下，動態隨機存取記憶體（DRAM）裡面所儲存的數據就需要週期性地更新。然而，當電力供應停止時，SRAM儲存的數據還是會消失（被稱為易失性存儲器），這與在斷電後還能儲存資料的ROM或快閃記憶體是不同的。

## 設計

SRAM由存儲矩陣、地址解碼器和讀/寫控制電路組成，容量的擴展有兩個方面：位數的擴展用晶片的並聯，字數的擴展可用外加解碼器控制晶片的片選輸入端。SRAM中的每一bit儲存在由4個場效應管（M1, M2, M3, M4）構成兩個交叉耦合的反相器中。另外兩個場效應管（M5, M6）是儲存基本單元到用於讀寫的位線（Bit Line）的控制開關。

反相器是一種電路器件，其輸出是輸入的邏輯非。如圖所示的CMOS靜態反相器，由兩個互補的金屬氧化物半導體場效應管（MOSFET）組成，源極連接在高電平的是P溝道場效應管，源極連接在低電平的是N溝道場效應管。輸入電路接在兩個場效應管的柵極上，輸出電路從兩個場效應管的連接處接出。當輸入低電平，則P溝道場效應管導通，N溝道場效應管關閉，輸出高電平。當輸入高電平，則N溝道場效應管導通，P溝道場效應管關閉，輸出低電平。這就實現了「反相」輸出。

一個SRAM基本單元有0 和 1兩個電平穩定狀態。SRAM基本單元由兩個CMOS反相器組成。兩個反相器的輸入、輸出交叉連接，即第一個反相器的輸出連接第二個反相器的輸入，第二個反相器的輸出連接第一個反相器的輸入。這就能實現兩個反相器的輸出狀態的鎖定、保存，即儲存了1個位元的狀態。

除了6電晶體的SRAM，其他SRAM還有8電晶體、10電晶體甚至每個位元使用更多的電晶體的實作。這可用於實現多埠（port）的讀寫訪問，如顯示記憶體或者暫存器檔案的多口SRAM電路的實現。

一般說來，每個基本單元用的電晶體數量越少，其占用面積就越小。由於矽晶片（silicon wafer）的生產成本是相對固定的，因此SRAM基本單元的面積越小，在矽晶片上就可以製造更多的位元存儲，每位元存儲的成本就越低。

記憶體基本單元使用少於6個電晶體是可能的—如3電晶體甚至單電晶體，但單電晶體儲存單元是DRAM，不是SRAM。

訪問SRAM時，字線（Word Line）加高電平，使得每個基本單元的兩個控制開關用的電晶體M5與M6導通，把基本單元與位線（Bit Line）連通。位線用於讀取或寫入基本單元的保存的狀態。雖然不是必須兩條反相的位線，但是這種反相的位線有助於改善雜訊容許值.

與動態存儲器（DRAM）相比，SRAM的帶寬有很大改進—由於兩條位線是反相，這種差分信號使得SRAM的抗雜訊干擾能力很強。而DRAM的位線連接到存儲電容，受困於電荷共享（charge sharing）使得其位線信號上下波動。另一項差別使得SRAM更快是其位址線各位元是同時工作選擇出目標存儲單元的字線，而DRAM往往為了降低成本，是先送出低半段的位址線的各位元，然後再送出高半段的位址線的各bit，這降低了DRAM封裝的位址引腳的數量。

有m條位址線與n條資料線的SRAM，其存儲容量是2m個字元（word），2m×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－10ns。起、落時間將影響有效時間槽（timeslot）約5ns。如果先讀入低半段地址，將會多耗費30ns。

## 應用與使用

### 特性

SRAM是比DRAM更為昂貴，但更為快速、非常低功耗（特別是在空閒狀態）。因此SRAM首選用於帶寬要求高，或者功耗要求低，或者二者兼而有之。SRAM比起DRAM更為容易控制，也更是隨機訪問。由於複雜的內部結構，SRAM比DRAM的占用面積更大，因而不適合用於更高儲存密度低成本的應用，如PC記憶體。

#### 時鐘頻率與功耗

SRAM功耗取決於它的訪問頻率。如果用高頻率訪問SRAM，其功耗比得上DRAM。有的SRAM在全帶寬時功耗達到幾個瓦特量級。另一方面，SRAM如果用於溫和的時鐘頻率的微處理器，其功耗將非常小，在空閒狀態時功耗可以忽略不計—幾個微瓦特級別。

SRAM用於：

- 通用的產品
- asynchronous界面，例如28腳32Kx8的chip（通常命名為XXC256），以及類似的產品最多16 Mbit每片
- synchronous界面，通常用做高速緩存（cache）以及其它要求突發傳輸的應用，最多18 Mbit（256Kx72）每片
- 整合於晶片內
- 作為微控制器的RAM或者cache（通常從32 bytes到128 kilobytes）
- 作為x86等微處理器的快取（如L1、L2、L3）
- 作為寄存器（參見寄存器堆）
- 用於特定的ICs或ASIC（通常在幾千字節量級）
- 用於FPGA與CPLD

#### 嵌入式應用

工業與科學用的很多子系統，汽車電子等等都用到了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）—非常快速但是功耗巨大
- MOSFET（用於CMOS）—本文詳細介紹的類型，低功耗，現在應用廣泛。

### 根據功能分類

- 異步—獨立的時鐘頻率，讀寫受控於位址線與控制致能訊號。
- 同步—所有工作是時鐘脈衝邊沿開始，位址線、資料線、控制線均與時鐘脈衝配合。

### 根據特性分類

- 零總線翻轉（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）。

### 根據觸發類型

- 二進位電腦SRAM
- 三進位電腦SRAM

## 參見

- DRAM,包括PSRAM (pseudo-static RAM)
- 快閃記憶體
- 電晶體